[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: KDE/kdelibs/kio/kio
From: Michael Brade <brade () kde ! org>
Date: 2006-01-02 15:47:37
Message-ID: 1136216857.150515.8118.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 493505 by brade:
Let's do it this way. Even if someone other than KDirLister includes kdirlister_p.h,
make damn sure that only "safe" members of KDirListerCache can be called to prevent
people from shooting themselves in the foot.
M +9 -4 kdirlister.cpp
M +29 -23 kdirlister_p.h
--- trunk/KDE/kdelibs/kio/kio/kdirlister.cpp #493504:493505
@@ -609,8 +609,13 @@
return true;
}
-KFileItemList *KDirListerCache::itemsForDir( const KURL &_dir ) const
+KFileItem *KDirListerCache::itemForURL( const KURL& url ) const
{
+ return findByURL( 0, url );
+}
+
+KFileItemList *KDirListerCache::itemsForDir( const KURL& _dir ) const
+{
QString urlStr = _dir.url(-1);
DirItem *item = itemsInUse[ urlStr ];
if ( !item )
@@ -631,7 +636,7 @@
return (*kit);
}
- return 0L;
+ return 0;
}
KFileItem *KDirListerCache::findByURL( const KDirLister *lister, const KURL& _u ) const
@@ -644,7 +649,7 @@
// If lister is set, check that it contains this dir
if ( lister && !lister->d->lstDirs.contains( parentDir ) )
- return 0L;
+ return 0;
KFileItemList *itemList = itemsForDir( parentDir );
if ( itemList )
@@ -654,7 +659,7 @@
if ( (*kit)->url() == _url )
return (*kit);
}
- return 0L;
+ return 0;
}
void KDirListerCache::FilesAdded( const KURL &dir )
--- trunk/KDE/kdelibs/kio/kio/kdirlister_p.h #493504:493505
@@ -125,38 +125,24 @@
*/
class KDirListerCache : public QObject, KDirNotify
{
+ friend class KDirLister;
+
Q_OBJECT
public:
- KDirListerCache( int maxCount = 10 );
~KDirListerCache();
- void listDir( KDirLister *lister, const KURL &_url, bool _keep, bool _reload );
+ void updateDirectory( const KURL& dir );
- // stop all running jobs for lister
- void stop( KDirLister *lister );
- // stop just the job listing url for lister
- void stop( KDirLister *lister, const KURL &_url );
+ KFileItem *itemForURL( const KURL& url ) const;
+ KFileItemList *itemsForDir( const KURL& dir ) const;
- void setAutoUpdate( KDirLister *lister, bool enable );
-
- void forgetDirs( KDirLister *lister );
- void forgetDirs( KDirLister *lister, const KURL &_url, bool notify );
-
- void updateDirectory( const KURL &_dir );
-
- KFileItemList *itemsForDir( const KURL &_dir ) const;
-
- KFileItem *findByName( const KDirLister *lister, const QString &_name ) const;
- // if lister is set, it is checked that the url is held by the lister
- KFileItem *findByURL( const KDirLister *lister, const KURL &_url ) const;
-
/**
* Notify that files have been added in @p directory
* The receiver will list that directory again to find
* the new items (since it needs more than just the names anyway).
* Reimplemented from KDirNotify.
*/
- virtual void FilesAdded( const KURL &directory );
+ virtual void FilesAdded( const KURL& directory );
/**
* Notify that files have been deleted.
@@ -165,7 +151,7 @@
* or be closed (if its current dir was deleted)
* Reimplemented from KDirNotify.
*/
- virtual void FilesRemoved( const KURL::List &fileList );
+ virtual void FilesRemoved( const KURL::List& fileList );
/**
* Notify that files have been changed.
@@ -173,11 +159,31 @@
* used for size etc. as well.
* Note: this is ASYNC so that it can be used with a broadcast
*/
- virtual void FilesChanged( const KURL::List &fileList );
- virtual void FileRenamed( const KURL &src, const KURL &dst );
+ virtual void FilesChanged( const KURL::List& fileList );
+ virtual void FileRenamed( const KURL& src, const KURL& dst );
static KDirListerCache *self();
+protected:
+ KDirListerCache( int maxCount = 10 );
+
+ void listDir( KDirLister *lister, const KURL &_url, bool _keep, bool _reload );
+
+ // stop all running jobs for lister
+ void stop( KDirLister *lister );
+ // stop just the job listing url for lister
+ void stop( KDirLister *lister, const KURL &_url );
+
+ void setAutoUpdate( KDirLister *lister, bool enable );
+
+ void forgetDirs( KDirLister *lister );
+ void forgetDirs( KDirLister *lister, const KURL &_url, bool notify );
+
+
+ KFileItem *findByName( const KDirLister *lister, const QString &_name ) const;
+ // if lister is set, it is checked that the url is held by the lister
+ KFileItem *findByURL( const KDirLister *lister, const KURL &_url ) const;
+
private slots:
void slotFileDirty( const QString &_file );
void slotFileCreated( const QString &_file );
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic