[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