kdirlister.h
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef kdirlister_h
00022 #define kdirlister_h
00023
00024 #include "kfileitem.h"
00025 #include "kdirnotify.h"
00026
00027 #include <qstring.h>
00028 #include <qstringlist.h>
00029
00030 #include <kurl.h>
00031
00032 namespace KIO { class Job; class ListJob; }
00033
00054 class KDirLister : public QObject
00055 {
00056 class KDirListerPrivate;
00057 friend class KDirListerPrivate;
00058 friend class KDirListerCache;
00059
00060 Q_OBJECT
00061 Q_PROPERTY( bool autoUpdate READ autoUpdate WRITE setAutoUpdate )
00062 Q_PROPERTY( bool showingDotFiles READ showingDotFiles WRITE setShowingDotFiles )
00063 Q_PROPERTY( bool dirOnlyMode READ dirOnlyMode WRITE setDirOnlyMode )
00064 Q_PROPERTY( bool autoErrorHandlingEnabled READ autoErrorHandlingEnabled )
00065 Q_PROPERTY( QString nameFilter READ nameFilter WRITE setNameFilter )
00066 Q_PROPERTY( QStringList mimeFilter READ mimeFilters WRITE setMimeFilter RESET clearMimeFilter )
00067 public:
00073 KDirLister( bool _delayedMimeTypes = false );
00074
00078 virtual ~KDirLister();
00079
00102 virtual bool openURL( const KURL& _url, bool _keep = false, bool _reload = false );
00103
00111 virtual void stop();
00112
00122 virtual void stop( const KURL& _url );
00123
00129 bool autoUpdate() const;
00130
00136 virtual void setAutoUpdate( bool enable );
00137
00145 bool autoErrorHandlingEnabled() const;
00146
00156 void setAutoErrorHandlingEnabled( bool enable, QWidget* parent );
00157
00165 bool showingDotFiles() const;
00166
00175 virtual void setShowingDotFiles( bool _showDotFiles );
00176
00183 bool dirOnlyMode() const;
00184
00190 virtual void setDirOnlyMode( bool dirsOnly );
00191
00201 const KURL& url() const;
00202
00207 virtual void emitChanges();
00208
00220 virtual void updateDirectory( const KURL& _dir );
00221
00226 bool isFinished() const;
00227
00232 KFileItem* rootItem() const;
00233
00239 virtual KFileItem* findByURL( const KURL& _url ) const;
00240 #ifndef KDE_NO_COMPAT
00241 KFileItem* find( const KURL& _url ) const;
00242 #endif
00243
00249 virtual KFileItem* findByName( const QString& name ) const;
00250
00261 virtual void setNameFilter( const QString &filter );
00262
00268 const QString& nameFilter() const;
00269
00281 virtual void setMimeFilter( const QStringList &mimeList );
00282
00298 void setMimeExcludeFilter(const QStringList &mimeList );
00299
00300
00306 virtual void clearMimeFilter();
00307
00312 const QStringList& mimeFilters() const;
00313
00320 bool matchesFilter( const QString& name ) const;
00321
00329 bool matchesMimeFilter( const QString& mime ) const;
00330
00337 void setMainWindow(QWidget *window);
00338
00344 QWidget *mainWindow();
00345
00350 enum WhichItems
00351 {
00352 AllItems = 0,
00353 FilteredItems = 1
00354 };
00355
00374 KFileItemList items( WhichItems which = FilteredItems ) const;
00375
00396 KFileItemList itemsForDir( const KURL& dir,
00397 WhichItems which = FilteredItems ) const;
00398
00399 signals:
00409 void started( const KURL& _url );
00410
00414 void completed();
00415
00422 void completed( const KURL& _url );
00423
00427 void canceled();
00428
00435 void canceled( const KURL& _url );
00436
00443 void redirection( const KURL& _url );
00444
00450 void redirection( const KURL& oldUrl, const KURL& newUrl );
00451
00456 void clear();
00457
00463 void clear( const KURL& _url );
00464
00469 void newItems( const KFileItemList& items );
00470
00475 void itemsFilteredByMime( const KFileItemList& items );
00476
00486 void deleteItem( KFileItem *_fileItem );
00487
00493 void refreshItems( const KFileItemList& items );
00494
00500 void infoMessage( const QString& msg );
00501
00507 void percent( int percent );
00508
00513 void totalSize( KIO::filesize_t size );
00514
00519 void processedSize( KIO::filesize_t size );
00520
00525 void speed( int bytes_per_second );
00526
00527 protected:
00528 enum Changes {
00529 NONE=0, NAME_FILTER=1, MIME_FILTER=2, DOT_FILES=4, DIR_ONLY_MODE=8
00530 };
00531
00544 virtual bool matchesFilter( const KFileItem * ) const;
00545
00558 virtual bool matchesMimeFilter( const KFileItem * ) const;
00559
00567 virtual bool doNameFilter( const QString& name, const QPtrList<QRegExp>& filters ) const;
00568
00576 virtual bool doMimeFilter( const QString& mime, const QStringList& filters ) const;
00577
00581 bool doMimeExcludeFilter( const QString& mimeExclude, const QStringList& filters ) const;
00582
00588 virtual bool validURL( const KURL& ) const;
00589
00591 virtual void handleError( KIO::Job* );
00592
00593 protected:
00594 virtual void virtual_hook( int id, void* data );
00595
00596 private slots:
00597 void slotInfoMessage( KIO::Job *, const QString& );
00598 void slotPercent( KIO::Job *, unsigned long );
00599 void slotTotalSize( KIO::Job *, KIO::filesize_t );
00600 void slotProcessedSize( KIO::Job *, KIO::filesize_t );
00601 void slotSpeed( KIO::Job *, unsigned long );
00602
00603 private:
00604 void jobDone( KIO::ListJob *);
00605 void jobStarted( KIO::ListJob *);
00606 uint numJobs();
00607
00608 private:
00609 virtual void addNewItem( const KFileItem *item );
00610 virtual void addNewItems( const KFileItemList& items );
00611 virtual void addRefreshItem( const KFileItem *item );
00612 virtual void emitItems();
00613 virtual void emitDeleteItem( KFileItem *item );
00614
00615 KDirListerPrivate *d;
00616 };
00617
00618 #endif
00619
This file is part of the documentation for kdelibs Version 3.1.4.