KIO
kdirlister.cpp
Go to the documentation of this file.
64 kdirnotify = new org::kde::KDirNotify(QString(), QString(), QDBusConnection::sessionBus(), this);
65 connect(kdirnotify, SIGNAL(FileRenamed(QString,QString)), SLOT(slotFileRenamed(QString,QString)));
70 // The use of KUrl::url() in ~DirItem (sendSignal) crashes if the static for QRegExpEngine got deleted already,
242 kDebug(7004) << "Entry currently being listed:" << _url << "by" << dirData.listersCurrentlyListing;
264 KDirLister::Private::CachedItemsJob *cachedItemsJob = new KDirLister::Private::CachedItemsJob(lister, _url, _reload);
268 // ### If it finishes before the CachedItemsJob, then we'll emit cached items after completed(), not sure how bad this is.
281KDirLister::Private::CachedItemsJob* KDirLister::Private::cachedItemsJobForUrl(const KUrl& url) const
290KDirLister::Private::CachedItemsJob::CachedItemsJob(KDirLister* lister, const KUrl& url, bool reload)
325void KDirListerCache::emitItemsFromCache(KDirLister::Private::CachedItemsJob* cachedItemsJob, KDirLister* lister, const KUrl& _url, bool _reload, bool _emitCompleted)
367void KDirListerCache::forgetCachedItemsJob(KDirLister::Private::CachedItemsJob* cachedItemsJob, KDirLister* lister, const KUrl& _url)
385 //kDebug(7004) << "Still having a listjob" << listJob << ", so not moving to currently-holding.";
486 // So, change of plan, let's kill it after all, in a way that triggers slotResult/slotUpdateResult.
544 // noauto -> manually mounted. Otherwise, mounted at boot time, won't be unmounted any time soon hopefully.
602 // 2) [**] becomes: if (Drive is hotpluggable or Volume is removable) "set to dirty" else "keep watch"
603 const KMountPoint::List possibleMountPoints = KMountPoint::possibleMountPoints(KMountPoint::NeedMountOptions);
901 for (KFileItemList::iterator fit = dirItem->lstItems.begin(), fend = dirItem->lstItems.end(); fit != fend ; ++fit) {
905 // If we found a fileitem, we can test if it's a dir. If not, we'll go to deleteDir just in case.
966void KDirListerCache::slotFileRenamed( const QString &_src, const QString &_dst ) // from KDirNotify signals
1005 // #172945 - if the fileitem was the root item of a DirItem that was just removed from the cache,
1013 if (!oldItem.isLocalFile() && !oldItem.localPath().isEmpty()) { // it uses UDS_LOCAL_PATH? ouch, needs an update then
1033QSet<KDirLister*> KDirListerCache::emitRefreshItem(const KFileItem& oldItem, const KFileItem& fileitem)
1073 dirs << canonicalUrls.value(dir).toSet().toList(); /* make unique; there are faster ways, but this is really small anyway */
1195 kError(7004) << "Internal error: job is listing" << url << "but itemsInUse only knows about" << itemsInUse.keys();
1202 kError(7004) << "Internal error: job is listing" << url << "but directoryData doesn't know about that url, only about:" << directoryData.keys();
1208 kError(7004) << "Internal error: job is listing" << url << "but directoryData says no listers are currently listing " << urlStr;
1276 jobUrl.adjustPath(KUrl::RemoveTrailingSlash); // need remove trailing slashes again, in case of redirections
1422 // only in this case there can newUrl already be in listersCurrentlyListing or listersCurrentlyHolding
1474 // emit old items: listers, holders. NOT: newUrlListers/newUrlHolders, they already have them listed
1674 const QList<QString> cachedDirs = itemsCached.keys(); // seems slow, but there's no qcache iterator...
1692 jobUrl.adjustPath(KUrl::RemoveTrailingSlash); // need remove trailing slashes again, in case of redirections
1753 for ( KFileItemList::iterator kit = dir->lstItems.begin(), kend = dir->lstItems.end() ; kit != kend ; ++kit )
1878void KDirListerCache::deleteUnmarkedItems( const QList<KDirLister *>& listers, KFileItemList &lstItems )
1895void KDirListerCache::itemsDeleted(const QList<KDirLister *>& listers, const KFileItemList& deletedItems)
2022 kDebug(7004) << " " << dit.key() << (*dit).listersCurrentlyListing.count() << "listers:" << list;
2036 kDebug(7004) << " " << dit.key() << (*dit).listersCurrentlyHolding.count() << "holders:" << list;
2042 kDebug(7004) << " " << jit.key() << "listing" << joburl( jit.key() ) << ":" << (*jit).count() << "entries.";
2299 if (mimeFilter.contains(QLatin1String("application/octet-stream")) || mimeFilter.contains(QLatin1String("all/allfiles"))) // all files
2393bool KDirLister::Private::doMimeExcludeFilter( const QString& mime, const QStringList& filters ) const
2447 // Of course if there is no filter and we can do a range-insertion instead of a loop, that might be good.
2454void KDirLister::Private::addRefreshItem(const KUrl& directoryUrl, const KFileItem& oldItem, const KFileItem& item)
2783 //kDebug(7004) << "Not moving" << kdl << "to listersCurrentlyHolding because it still has job" << kdl->d->m_cachedItemsJobs;
QWidget * window() const
Design of the cache: There is a single KDirListerCache for the whole process.
Definition: kdirlister_p.h:182
void slotFileRenamed(const QString &srcUrl, const QString &dstUrl)
Definition: kdirlister.cpp:966
void setAutoUpdate(KDirLister *lister, bool enable)
Definition: kdirlister.cpp:498
KFileItem itemForUrl(const KUrl &url) const
Definition: kdirlister.cpp:782
KFileItem * findByUrl(const KDirLister *lister, const KUrl &url) const
Definition: kdirlister.cpp:823
void slotFilesRemoved(const QStringList &fileList)
Notify that files have been deleted.
Definition: kdirlister.cpp:872
void slotFilesChanged(const QStringList &fileList)
Notify that files have been changed.
Definition: kdirlister.cpp:932
KFileItem findByName(const KDirLister *lister, const QString &_name) const
Definition: kdirlister.cpp:807
bool listDir(KDirLister *lister, const KUrl &_url, bool _keep, bool _reload)
Definition: kdirlister.cpp:91
void slotFilesAdded(const QString &urlDirectory)
Notify that files have been added in directory The receiver will list that directory again to find th...
Definition: kdirlister.cpp:859
void emitItemsFromCache(KDirLister::Private::CachedItemsJob *job, KDirLister *lister, const KUrl &_url, bool _reload, bool _emitCompleted)
Definition: kdirlister.cpp:325
void stopListingUrl(KDirLister *lister, const KUrl &_url, bool silent=false)
Definition: kdirlister.cpp:439
KFileItemList * itemsForDir(const KUrl &dir) const
Definition: kdirlister.cpp:801
void forgetCachedItemsJob(KDirLister::Private::CachedItemsJob *job, KDirLister *lister, const KUrl &url)
Definition: kdirlister.cpp:367
void setEmitCompleted(bool b)
Definition: kdirlister_p.h:478
CachedItemsJob(KDirLister *lister, const KUrl &url, bool reload)
Definition: kdirlister.cpp:290
Definition: kdirlister_p.h:43
void _k_slotInfoMessage(KJob *, const QString &)
Definition: kdirlister.cpp:2563
void addRefreshItem(const KUrl &directoryUrl, const KFileItem &oldItem, const KFileItem &item)
Definition: kdirlister.cpp:2454
void addNewItem(const KUrl &directoryUrl, const KFileItem &item)
Definition: kdirlister.cpp:2415
void _k_slotSpeed(KJob *, unsigned long)
Definition: kdirlister.cpp:2621
void _k_slotProcessedSize(KJob *, qulonglong)
Definition: kdirlister.cpp:2606
void _k_slotTotalSize(KJob *, qulonglong)
Definition: kdirlister.cpp:2591
void emitItemsDeleted(const KFileItemList &items)
Definition: kdirlister.cpp:2544
CachedItemsJob * cachedItemsJobForUrl(const KUrl &url) const
Definition: kdirlister.cpp:281
void _k_slotPercent(KJob *, unsigned long)
Definition: kdirlister.cpp:2568
bool isItemVisible(const KFileItem &item) const
Should this item be visible according to the current filter settings?
Definition: kdirlister.cpp:2535
QList< CachedItemsJob * > m_cachedItemsJobs
Definition: kdirlister_p.h:150
bool doMimeExcludeFilter(const QString &mimeExclude, const QStringList &filters) const
Definition: kdirlister.cpp:2393
void prepareForSettingsChange()
Definition: kdirlister_p.h:99
void addNewItems(const KUrl &directoryUrl, const KFileItemList &items)
Definition: kdirlister.cpp:2443
void redirect(const KUrl &oldUrl, const KUrl &newUrl, bool keepItems)
Redirect this dirlister from oldUrl to newUrl.
Definition: kdirlister.cpp:2733
Helper class for the kiojob used to list and update a directory.
Definition: kdirlister.h:58
virtual void handleError(KIO::Job *)
Reimplement to customize error handling.
Definition: kdirlister.cpp:2406
QWidget * mainWindow()
Returns the main window associated with this object.
Definition: kdirlister.cpp:2688
void speed(int bytes_per_second)
Emitted to display information about the speed of the jobs.
virtual KFileItem findByName(const QString &name) const
Find an item by its name.
Definition: kdirlister.cpp:2265
bool matchesFilter(const QString &name) const
Checks whether name matches a filter in the list of name filters.
Definition: kdirlister.cpp:2327
KUrl::List directories() const
Returns all URLs that are listed by this KDirLister.
Definition: kdirlister.cpp:2167
void setMainWindow(QWidget *window)
Pass the main window this object is associated with this is used for caching authentication data.
Definition: kdirlister.cpp:2683
bool isFinished() const
Returns true if no io operation is currently in progress.
Definition: kdirlister.cpp:2245
virtual void setMimeFilter(const QStringList &mimeList)
Set mime-based filter to only list items matching the given mimetypes.
Definition: kdirlister.cpp:2293
virtual void updateDirectory(const KUrl &_dir)
Update the directory _dir.
Definition: kdirlister.cpp:2240
KFileItemList itemsForDir(const KUrl &dir, WhichItems which=FilteredItems) const
Returns the items listed for the given dir.
Definition: kdirlister.cpp:2698
void itemsDeleted(const KFileItemList &items)
Signal that items have been deleted.
bool matchesMimeFilter(const QString &mime) const
Checks whether mime matches a filter in the list of mime types.
Definition: kdirlister.cpp:2332
KFileItemList items(WhichItems which=FilteredItems) const
Returns the items listed for the current url().
Definition: kdirlister.cpp:2693
void infoMessage(const QString &msg)
Emitted to display information about running jobs.
virtual void emitChanges()
Actually emit the changes made with setShowingDotFiles, setDirOnlyMode, setNameFilter and setMimeFilt...
Definition: kdirlister.cpp:2172
virtual void setDirOnlyMode(bool dirsOnly)
Call this to list only directories.
Definition: kdirlister.cpp:2142
QT_MOC_COMPAT void deleteItem(const KFileItem &_fileItem)
Signals that an item has been deleted.
virtual bool doMimeFilter(const QString &mime, const QStringList &filters) const
Called by the public matchesMimeFilter() to do the actual filtering.
Definition: kdirlister.cpp:2374
@ Keep
Previous directories aren't forgotten (they are still watched by kdirwatch and their items are kept f...
Definition: kdirlister.h:76
@ Reload
Indicates whether to use the cache or to reread the directory from the disk.
Definition: kdirlister.h:81
void setAutoErrorHandlingEnabled(bool enable, QWidget *parent)
Enable or disable auto error handling is enabled.
Definition: kdirlister.cpp:2156
virtual void setNameFilter(const QString &filter)
Set a name filter to only list items matching this name, e.g.
Definition: kdirlister.cpp:2273
virtual bool doNameFilter(const QString &name, const QList< QRegExp > &filters) const
Called by the public matchesFilter() to do the actual filtering.
Definition: kdirlister.cpp:2365
void processedSize(KIO::filesize_t size)
Regularly emitted to show the progress of this KDirLister.
void setMimeExcludeFilter(const QStringList &mimeList)
Filtering should be done with KFileFilter.
Definition: kdirlister.cpp:2305
QStringList mimeFilters() const
Returns the list of mime based filters, as set via setMimeFilter().
Definition: kdirlister.cpp:2322
virtual void stop()
Stop listing all directories currently being listed.
Definition: kdirlister.cpp:2099
static KFileItem cachedItemForUrl(const KUrl &url)
Return the KFileItem for the given URL, if we listed it recently and it's still in the cache - which ...
Definition: kdirlister.cpp:2788
virtual bool openUrl(const KUrl &_url, OpenUrlFlags _flags=NoFlags)
Run the directory lister on the given url.
Definition: kdirlister.cpp:2088
virtual void setShowingDotFiles(bool _showDotFiles)
Changes the "is viewing dot files" setting.
Definition: kdirlister.cpp:2128
void setDelayedMimeTypes(bool delayedMimeTypes)
Delayed mimetypes feature: If enabled, mime types will be fetched on demand, which leads to a faster ...
Definition: kdirlister.cpp:2727
virtual void setAutoUpdate(bool enable)
Enable/disable automatic directory updating, when a directory changes (using KDirWatch).
Definition: kdirlister.cpp:2114
WhichItems
Used by items() and itemsForDir() to specify whether you want all items for a directory or just the f...
Definition: kdirlister.h:392
void percent(int percent)
Progress signal showing the overall progress of the KDirLister.
virtual KFileItem findByUrl(const KUrl &_url) const
Find an item by its URL.
Definition: kdirlister.cpp:2255
KUrl url() const
Returns the top level URL that is listed by this KDirLister.
Definition: kdirlister.cpp:2162
static KDirWatch * self()
static bool exists()
List of KFileItems, which adds a few helper methods to QList<KFileItem>.
Definition: kfileitem.h:675
A KFileItem is a generic class to handle a file, local or remote.
Definition: kfileitem.h:46
KMimeType::Ptr determineMimeType() const
Returns the mimetype of the file item.
Definition: kfileitem.cpp:779
QString localPath() const
Returns the local path if isLocalFile() == true or the KIO item has a UDS_LOCAL_PATH atom.
Definition: kfileitem.cpp:602
QString name(bool lowerCase=false) const
Return the name of the file item (without a path).
Definition: kfileitem.cpp:1591
void refresh()
Throw away and re-read (for local files) all information about the file.
Definition: kfileitem.cpp:512
virtual void setWindow(QWidget *window)
Associate this job with a window given by window.
Definition: jobuidelegate.cpp:58
A ListJob is allows you to get the get the content of a directory.
Definition: jobclasses.h:936
virtual void showErrorMessage()
EmitResult
int error() const
bool kill(KillVerbosity verbosity=Quietly)
KilledJobError
KJobUiDelegate * uiDelegate() const
void setAutoDelete(bool autodelete)
static void error(QWidget *parent, const QString &text, const QString &caption=QString(), Options options=Notify)
static Ptr mimeType(const QString &name, FindByNameOption options=ResolveAliases)
Ptr findByPath(const QString &path) const
NeedMountOptions
static List possibleMountPoints(DetailsNeededFlags infoNeeded=BasicInfoNeeded)
static bool supportsListing(const KUrl &url)
Returns whether the protocol can list files/objects.
Definition: kprotocolmanager.cpp:1033
void cleanPath(const CleanPathOption &options=SimplifyDirSeparators)
QString prettyUrl(AdjustPathOption trailing=LeaveTrailingSlash) const
AppendTrailingSlash
IgnoreTrailingSlash
RemoveTrailingSlash
AddTrailingSlash
void adjustPath(AdjustPathOption trailing)
QString url(AdjustPathOption trailing=LeaveTrailingSlash) const
QString path(AdjustPathOption trailing=LeaveTrailingSlash) const
QString directory(const DirectoryOptions &options=IgnoreTrailingSlash) const
bool isLocalFile() const
CompareWithoutTrailingSlash
void setPath(const QString &path)
bool isParentOf(const KUrl &u) const
QString fileName(const DirectoryOptions &options=IgnoreTrailingSlash) const
QString protocol() const
QString toLocalFile(AdjustPathOption trailing=LeaveTrailingSlash) const
void addPath(const QString &txt)
#define K_GLOBAL_STATIC(TYPE, NAME)
#define kDebug
#define kWarning
static bool manually_mounted(const QString &path, const KMountPoint::List &possibleMountPoints)
Definition: kdirlister.cpp:532
int timeout
QString i18n(const char *text)
int stat(const QString &path, KDE_struct_stat *buf)
KStandardDirs * dirs()
ListJob * listDir(const KUrl &url, JobFlags flags=DefaultFlags, bool includeHidden=true)
List the contents of url, which is assumed to be a directory.
Definition: job.cpp:2735
void message(KMessage::MessageType messageType, const QString &text, const QString &caption=QString())
QString dir(const QString &fileClass)
Returns the most recently used directory accociated with this file-class.
Definition: krecentdirs.cpp:68
QStringList list(const QString &fileClass)
Returns a list of directories associated with this file-class.
Definition: krecentdirs.cpp:60
const char * name(StandardAction id)
const KShortcut & end()
const KShortcut & reload()
Definition: kdirlister_p.h:449
QList< KDirLister * > listersCurrentlyListing
Definition: kdirlister_p.h:457
QList< KDirLister * > listersCurrentlyHolding
Definition: kdirlister_p.h:459
void moveListersWithoutCachedItemsJob(const KUrl &url)
Definition: kdirlister.cpp:2763
QList< QRegExp > lstFilters
Definition: kdirlister_p.h:158
QStringList mimeExcludeFilter
Definition: kdirlister_p.h:160
bool isShowingDotFiles
Definition: kdirlister_p.h:156
Definition: kdirlister_p.h:134
KIO::filesize_t processedSize
Definition: kdirlister_p.h:136
This file is part of the KDE documentation.
Documentation copyright © 1996-2023 The KDE developers.
Generated on Mon Feb 20 2023 00:00:00 by doxygen 1.9.6 written by Dimitri van Heesch, © 1997-2006
Documentation copyright © 1996-2023 The KDE developers.
Generated on Mon Feb 20 2023 00:00:00 by doxygen 1.9.6 written by Dimitri van Heesch, © 1997-2006
KDE's Doxygen guidelines are available online.