本文整理汇总了C++中kio::UDSEntry::insert方法的典型用法代码示例。如果您正苦于以下问题:C++ UDSEntry::insert方法的具体用法?C++ UDSEntry::insert怎么用?C++ UDSEntry::insert使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类kio::UDSEntry
的用法示例。
在下文中一共展示了UDSEntry::insert方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: group
QString KFileItemPrivate::group() const
{
QString groupName = m_entry.stringValue( KIO::UDSEntry::UDS_GROUP );
if (groupName.isEmpty() && m_bIsLocalUrl )
{
#ifdef Q_WS_WIN
QFileInfo a(m_url.toLocalFile( KUrl::RemoveTrailingSlash ));
groupName = a.group();
m_entry.insert( KIO::UDSEntry::UDS_GROUP, groupName );
#else
KDE_struct_stat buff;
if ( KDE::lstat( m_url.toLocalFile( KUrl::RemoveTrailingSlash ), &buff ) == 0) // get uid/gid of the link, if it's a link
{
struct group *ge = getgrgid( buff.st_gid );
if ( ge != 0 ) {
groupName = QString::fromLocal8Bit(ge->gr_name);
if (groupName.isEmpty())
groupName.sprintf("%d",ge->gr_gid);
}
else
groupName.sprintf("%d",buff.st_gid);
m_entry.insert( KIO::UDSEntry::UDS_GROUP, groupName );
}
#endif
}
return groupName;
}
示例2: createRootUDSEntry
void ArchiveProtocol::createRootUDSEntry( KIO::UDSEntry & entry )
{
entry.clear();
entry.insert( KIO::UDSEntry::UDS_NAME, "." );
entry.insert( KIO::UDSEntry::UDS_FILE_TYPE, S_IFDIR );
entry.insert( KIO::UDSEntry::UDS_MODIFICATION_TIME, m_mtime );
//entry.insert( KIO::UDSEntry::UDS_ACCESS, 07777 ); // fake 'x' permissions, this is a pseudo-directory
entry.insert( KIO::UDSEntry::UDS_USER, m_user);
entry.insert( KIO::UDSEntry::UDS_GROUP, m_group);
}
示例3: translateTextToUDS
// translate a simple text to a UDS entry
void KameraProtocol::translateTextToUDS(KIO::UDSEntry &udsEntry,
const QString &fn,
const char *text)
{
udsEntry.clear();
udsEntry.insert(KIO::UDSEntry::UDS_FILE_TYPE,S_IFREG);
udsEntry.insert(KIO::UDSEntry::UDS_NAME,path_quote(fn));
udsEntry.insert(KIO::UDSEntry::UDS_DISPLAY_NAME,fn);
udsEntry.insert(KIO::UDSEntry::UDS_SIZE,strlen(text));
udsEntry.insert(KIO::UDSEntry::UDS_ACCESS,(S_IRUSR | S_IRGRP | S_IROTH));
}
示例4: translateDirectoryToUDS
// translate a directory name to a UDSFieldType
// which we can return as a directory listing entry
void KameraProtocol::translateDirectoryToUDS(KIO::UDSEntry &udsEntry,
const QString &dirname)
{
udsEntry.clear();
udsEntry.insert(KIO::UDSEntry::UDS_FILE_TYPE,S_IFDIR);
udsEntry.insert(KIO::UDSEntry::UDS_NAME,path_quote(dirname));
udsEntry.insert(KIO::UDSEntry::UDS_DISPLAY_NAME, dirname);
udsEntry.insert(KIO::UDSEntry::UDS_ACCESS,
S_IRUSR | S_IRGRP | S_IROTH |S_IWUSR | S_IWGRP |
S_IWOTH | S_IXUSR | S_IXOTH | S_IXGRP);
udsEntry.insert(KIO::UDSEntry::UDS_MIME_TYPE, QString("inode/directory"));
}
示例5: statRoot
// Implements stat("/") -- which always returns the same value.
void KameraProtocol::statRoot(void)
{
KIO::UDSEntry entry;
entry.insert( KIO::UDSEntry::UDS_NAME, QString::fromLocal8Bit("/"));
entry.insert(KIO::UDSEntry::UDS_FILE_TYPE,S_IFDIR);
entry.insert(KIO::UDSEntry::UDS_ACCESS,(S_IRUSR | S_IRGRP | S_IROTH));
statEntry(entry);
finished();
// If we just do this call, timeout right away if no other requests are
// pending. This is for the kdemm autodetection using media://camera
idletime = MAXIDLETIME;
}
示例6: listAllDevices
void KioKdeconnect::listAllDevices()
{
infoMessage(i18n("Listing devices..."));
//TODO: Change to all devices and show different icons for connected and disconnected?
QStringList devices = m_dbusInterface->devices(true, true);
Q_FOREACH(const QString& deviceId, devices) {
DeviceDbusInterface interface(deviceId);
if (!interface.hasPlugin(QStringLiteral("kdeconnect_sftp"))) continue;
const QString path = QStringLiteral("kdeconnect://").append(deviceId).append("/");
const QString name = interface.name();
const QString icon = QStringLiteral("kdeconnect");
KIO::UDSEntry entry;
entry.insert(KIO::UDSEntry::UDS_NAME, name);
entry.insert(KIO::UDSEntry::UDS_ICON_NAME, icon);
entry.insert(KIO::UDSEntry::UDS_FILE_TYPE, S_IFDIR);
entry.insert(KIO::UDSEntry::UDS_ACCESS, S_IRUSR | S_IXUSR | S_IRGRP | S_IXGRP | S_IROTH | S_IXOTH);
entry.insert(KIO::UDSEntry::UDS_MIME_TYPE, QLatin1String(""));
entry.insert(KIO::UDSEntry::UDS_URL, path);
listEntry(entry);
}
示例7: switch
void Nepomuk2::TimelineProtocol::stat( const KUrl& url )
{
switch( parseTimelineUrl( url, &m_date, &m_filename ) ) {
case RootFolder: {
KIO::UDSEntry uds;
uds.insert( KIO::UDSEntry::UDS_NAME, QString::fromLatin1( "/" ) );
uds.insert( KIO::UDSEntry::UDS_ICON_NAME, QString::fromLatin1( "nepomuk" ) );
uds.insert( KIO::UDSEntry::UDS_FILE_TYPE, S_IFDIR );
uds.insert( KIO::UDSEntry::UDS_MIME_TYPE, QString::fromLatin1( "inode/directory" ) );
statEntry( uds );
finished();
break;
}
case CalendarFolder:
statEntry( createFolderUDSEntry( QLatin1String("calendar"), i18n("Calendar"), QDate::currentDate() ) );
finished();
break;
case MonthFolder:
statEntry( createMonthUDSEntry( m_date.month(), m_date.year() ) );
finished();
break;
case DayFolder:
if ( m_filename.isEmpty() ) {
statEntry( createDayUDSEntry( m_date ) );
finished();
}
else {
ForwardingSlaveBase::stat( url );
}
break;
default:
error( KIO::ERR_DOES_NOT_EXIST, url.prettyUrl() );
break;
}
}
示例8: user
QString KFileItemPrivate::user() const
{
QString userName = m_entry.stringValue(KIO::UDSEntry::UDS_USER);
if (userName.isEmpty() && m_bIsLocalUrl) {
#ifdef Q_WS_WIN
QFileInfo a(m_url.toLocalFile( KUrl::RemoveTrailingSlash ));
userName = a.owner();
m_entry.insert( KIO::UDSEntry::UDS_USER, userName );
#else
KDE_struct_stat buff;
if ( KDE::lstat( m_url.toLocalFile( KUrl::RemoveTrailingSlash ), &buff ) == 0) // get uid/gid of the link, if it's a link
{
struct passwd *pwuser = getpwuid( buff.st_uid );
if ( pwuser != 0 ) {
userName = QString::fromLocal8Bit(pwuser->pw_name);
m_entry.insert( KIO::UDSEntry::UDS_USER, userName );
}
}
#endif
}
return userName;
}
示例9: createTopLevelDirEntry
void TrashProtocol::createTopLevelDirEntry(KIO::UDSEntry& entry)
{
entry.clear();
entry.insert( KIO::UDSEntry::UDS_NAME, QString::fromLatin1("."));
entry.insert( KIO::UDSEntry::UDS_FILE_TYPE, S_IFDIR);
entry.insert( KIO::UDSEntry::UDS_ACCESS, 0700);
entry.insert( KIO::UDSEntry::UDS_MIME_TYPE, QString::fromLatin1("inode/directory"));
entry.insert( KIO::UDSEntry::UDS_USER, m_userName);
entry.insert( KIO::UDSEntry::UDS_GROUP, m_groupName);
}
示例10: createFileEntry
static void createFileEntry(KIO::UDSEntry& entry, const KService::Ptr& service, const KUrl& parentUrl)
{
entry.clear();
entry.insert(KIO::UDSEntry::UDS_NAME, KIO::encodeFileName(service->name()));
entry.insert(KIO::UDSEntry::UDS_FILE_TYPE, S_IFREG);
const QString fileUrl = parentUrl.url(KUrl::AddTrailingSlash) + service->desktopEntryName();
entry.insert(KIO::UDSEntry::UDS_URL, fileUrl);
entry.insert(KIO::UDSEntry::UDS_ACCESS, 0500);
entry.insert(KIO::UDSEntry::UDS_MIME_TYPE, "application/x-desktop");
entry.insert(KIO::UDSEntry::UDS_SIZE, 0);
entry.insert(KIO::UDSEntry::UDS_LOCAL_PATH, KStandardDirs::locate("apps", service->entryPath()));
entry.insert(KIO::UDSEntry::UDS_MODIFICATION_TIME, time(0));
entry.insert(KIO::UDSEntry::UDS_ICON_NAME, service->icon());
}
示例11: if
void Nepomuk2::TvshowProtocol::stat( const KUrl& url )
{
// for basic functionality we only need to stat the folders
const QStringList pathTokens = url.path().split('/', QString::SkipEmptyParts);
if(pathTokens.count() == 1 && pathTokens.first() == QLatin1String("latest")) {
KIO::UDSEntry uds = createFolderUDSEntry(QLatin1String("latest"), i18n("Next Episodes To Watch"));
uds.insert(KIO::UDSEntry::UDS_ICON_NAME, QLatin1String("favorites"));
statEntry(uds);
finished();
}
else if(pathTokens.count() == 1) {
// stat series folder
Soprano::QueryResultIterator it
= Nepomuk2::ResourceManager::instance()->mainModel()->executeQuery(QString::fromLatin1("select distinct * where { "
"?r a nmm:TVSeries ; "
"nie:title %1 ; "
"nao:created ?cd ; "
"nao:lastModified ?md ; "
"nie:description ?d . } LIMIT 1")
.arg(Soprano::Node::literalToN3(pathTokens[0])),
Soprano::Query::QueryLanguageSparql);
if(it.next()) {
statEntry(createSeriesUDSEntry(it["r"].uri(),
pathTokens[0],
pathTokens[0],
it["d"].toString(),
it["cd"].literal().toDateTime(),
it["md"].literal().toDateTime()));
finished();
}
else {
error( ERR_DOES_NOT_EXIST, url.prettyUrl() );
}
}
else if(pathTokens.count() == 2) {
// stat season folder
statEntry(createFolderUDSEntry(pathTokens[0], pathTokens[1]));
finished();
}
else {
// FIXME
error( ERR_UNSUPPORTED_ACTION, url.prettyUrl() );
}
}
示例12: createDirEntry
static void createDirEntry(KIO::UDSEntry& entry, const QString& name, const QString& url, const QString& mime,const QString& iconName)
{
entry.clear();
entry.insert( KIO::UDSEntry::UDS_NAME, name );
entry.insert( KIO::UDSEntry::UDS_FILE_TYPE, S_IFDIR );
entry.insert( KIO::UDSEntry::UDS_ACCESS, 0500 );
entry.insert( KIO::UDSEntry::UDS_MIME_TYPE, mime );
if (!url.isEmpty())
entry.insert( KIO::UDSEntry::UDS_URL, url );
entry.insert( KIO::UDSEntry::UDS_ICON_NAME, iconName );
}
示例13: init
void KFileItemPrivate::init()
{
m_access.clear();
// metaInfo = KFileMetaInfo();
// stat() local files if needed
// TODO: delay this until requested
if (m_fileMode == KFileItem::Unknown || m_permissions == KFileItem::Unknown || m_entry.count() == 0) {
if (m_url.isLocalFile()) {
/* directories may not have a slash at the end if
* we want to stat() them; it requires that we
* change into it .. which may not be allowed
* stat("/is/unaccessible") -> rwx------
* stat("/is/unaccessible/") -> EPERM H.Z.
* This is the reason for the StripTrailingSlash
*/
QT_STATBUF buf;
const QString path = m_url.adjusted(QUrl::StripTrailingSlash).toLocalFile();
const QByteArray pathBA = QFile::encodeName(path);
if (QT_LSTAT(pathBA.constData(), &buf) == 0) {
m_entry.insert(KIO::UDSEntry::UDS_DEVICE_ID, buf.st_dev);
m_entry.insert(KIO::UDSEntry::UDS_INODE, buf.st_ino);
mode_t mode = buf.st_mode;
if ((buf.st_mode & QT_STAT_MASK) == QT_STAT_LNK) {
m_bLink = true;
if (QT_STAT(pathBA, &buf) == 0) {
mode = buf.st_mode;
} else {// link pointing to nowhere (see FileProtocol::createUDSEntry() in ioslaves/file/file.cpp)
mode = (QT_STAT_MASK - 1) | S_IRWXU | S_IRWXG | S_IRWXO;
}
}
m_entry.insert(KIO::UDSEntry::UDS_SIZE, buf.st_size);
m_entry.insert(KIO::UDSEntry::UDS_FILE_TYPE, buf.st_mode & QT_STAT_MASK); // extract file type
m_entry.insert(KIO::UDSEntry::UDS_ACCESS, buf.st_mode & 07777); // extract permissions
m_entry.insert(KIO::UDSEntry::UDS_MODIFICATION_TIME, buf.st_mtime); // TODO: we could use msecs too...
m_entry.insert(KIO::UDSEntry::UDS_ACCESS_TIME, buf.st_atime);
#ifndef Q_OS_WIN
m_entry.insert(KIO::UDSEntry::UDS_USER, KUser(buf.st_uid).loginName());
m_entry.insert(KIO::UDSEntry::UDS_GROUP, KUserGroup(buf.st_gid).name());
#endif
// TODO: these can be removed, we can use UDS_FILE_TYPE and UDS_ACCESS everywhere
if (m_fileMode == KFileItem::Unknown) {
m_fileMode = mode & QT_STAT_MASK; // extract file type
}
if (m_permissions == KFileItem::Unknown) {
m_permissions = mode & 07777; // extract permissions
}
}
}
}
}
示例14: translateFileToUDS
// translate a CameraFileInfo to a UDSFieldType
// which we can return as a directory listing entry
void KameraProtocol::translateFileToUDS(KIO::UDSEntry &udsEntry,
const CameraFileInfo &info,
QString name)
{
udsEntry.clear();
udsEntry.insert(KIO::UDSEntry::UDS_FILE_TYPE,S_IFREG);
udsEntry.insert(KIO::UDSEntry::UDS_NAME,path_quote(name));
udsEntry.insert(KIO::UDSEntry::UDS_DISPLAY_NAME,name);
if (info.file.fields & GP_FILE_INFO_SIZE) {
udsEntry.insert(KIO::UDSEntry::UDS_SIZE,info.file.size);
}
if (info.file.fields & GP_FILE_INFO_MTIME) {
udsEntry.insert(KIO::UDSEntry::UDS_MODIFICATION_TIME,info.file.mtime);
} else {
udsEntry.insert(KIO::UDSEntry::UDS_MODIFICATION_TIME,time(NULL));
}
if (info.file.fields & GP_FILE_INFO_TYPE) {
udsEntry.insert(KIO::UDSEntry::UDS_MIME_TYPE,
QString::fromLatin1(info.file.type));
}
if (info.file.fields & GP_FILE_INFO_PERMISSIONS) {
udsEntry.insert(KIO::UDSEntry::UDS_ACCESS,
((info.file.permissions & GP_FILE_PERM_READ) ?
(S_IRUSR | S_IRGRP | S_IROTH) : 0)
);
} else {
udsEntry.insert(KIO::UDSEntry::UDS_ACCESS,S_IRUSR | S_IRGRP | S_IROTH);
}
// TODO: We do not handle info.preview in any way
}
示例15: listDir
void RecentDocuments::listDir(const QUrl& url)
{
if (isRootUrl(url)) {
QStringList list = KRecentDocument::recentDocuments();
KIO::UDSEntryList udslist;
QSet<QString> urlSet;
Q_FOREACH(const QString & entry, list) {
if (KDesktopFile::isDesktopFile(entry)) {
QFileInfo info(entry);
KDesktopFile file(entry);
QUrl urlInside(file.readUrl());
QString toDisplayString = urlInside.toDisplayString();
if (urlInside.scheme() == "recentdocuments" || urlSet.contains(toDisplayString))
continue;
KIO::UDSEntry uds;
if (urlInside.isLocalFile()) {
KIO::StatJob* job = KIO::stat(urlInside, KIO::HideProgressInfo);
// we do not want to wait for the event loop to delete the job
QScopedPointer<KIO::StatJob> sp(job);
job->setAutoDelete(false);
if (KIO::NetAccess::synchronousRun(job, 0)) {
uds = job->statResult();
}
}
urlSet.insert(toDisplayString);
uds.insert(KIO::UDSEntry::UDS_NAME, info.completeBaseName());
if (urlInside.isLocalFile()) {
uds.insert(KIO::UDSEntry::UDS_DISPLAY_NAME, urlInside.toLocalFile());
uds.insert(KIO::UDSEntry::UDS_LOCAL_PATH, urlInside.path());
} else {
uds.insert(KIO::UDSEntry::UDS_DISPLAY_NAME, toDisplayString);
uds.insert(KIO::UDSEntry::UDS_ICON_NAME, file.readIcon());
}
uds.insert(KIO::UDSEntry::UDS_TARGET_URL, toDisplayString);
udslist << uds;
}
}
listEntries(udslist);
finished();
}
else