00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef __konqdirpart_h
00021 #define __konqdirpart_h
00022
00023 #include <tqstring.h>
00024 #include <tdeparts/part.h>
00025 #include <tdeparts/browserextension.h>
00026 #include <tdefileitem.h>
00027 #include <kdatastream.h>
00028 #include <tdeio/global.h>
00029 #include <libkonq_export.h>
00030
00031 class KDirLister;
00032 namespace KParts { class BrowserExtension; }
00033 class KonqPropsView;
00034 class TQScrollView;
00035 class TDEAction;
00036 class TDEToggleAction;
00037 class KonqDirPartBrowserExtension;
00038
00039 class LIBKONQ_EXPORT KonqDirPart: public KParts::ReadOnlyPart
00040 {
00041 Q_OBJECT
00042
00043 friend class KonqDirPartBrowserExtension;
00044
00045 public:
00046 KonqDirPart( TQObject *parent, const char *name );
00047
00048 virtual ~KonqDirPart();
00049
00053 void setBrowserExtension( KonqDirPartBrowserExtension * extension )
00054 { m_extension = extension; }
00055
00056 KonqDirPartBrowserExtension * extension()
00057 { return m_extension; }
00058
00062 void setDirLister( KDirLister* lister );
00063
00064
00065 TQScrollView * scrollWidget();
00066
00067 virtual void saveState( TQDataStream &stream );
00068 virtual void restoreState( TQDataStream &stream );
00069
00073 void lmbClicked( KFileItem * fileItem );
00074
00077 void mmbClicked( KFileItem * fileItem );
00078
00079 void setNameFilter( const TQString & nameFilter ) { m_nameFilter = nameFilter; }
00080
00081 TQString nameFilter() const { return m_nameFilter; }
00082
00083 void setFilesToSelect( const TQStringList & filesToSelect ) { m_filesToSelect = filesToSelect; }
00084
00099 void setMimeFilter (const TQStringList& filters);
00100
00105 TQStringList mimeFilter() const;
00106
00107
00108 KonqPropsView * props() const { return m_pProps; }
00109
00113 virtual void disableIcons( const KURL::List & lst ) = 0;
00114
00119 void resetCount();
00120
00124 void newItems( const KFileItemList & entries );
00125
00129 void deleteItem( KFileItem * fileItem );
00130
00134 void refreshItems(const KFileItemList &entries);
00135
00139 void emitTotalCount();
00140
00141
00150 void emitCounts( const KFileItemList & lst, bool selectionChanged );
00151
00159 void emitCounts( const KFileItemList & lst );
00160
00161 void emitMouseOver( const KFileItem * item );
00162
00168 void updatePasteAction();
00169
00175 virtual void newIconSize( int size );
00176
00181 void setIconSize( int size );
00182
00186 void setFindPart( KParts::ReadOnlyPart * part );
00187
00188 KParts::ReadOnlyPart * findPart() const { return m_findPart; }
00189
00190 virtual const KFileItem * currentItem() = 0;
00191
00192 virtual KFileItemList selectedFileItems() { return KFileItemList(); }
00193
00198 bool closeURL ();
00199
00200 signals:
00201
00205 void aboutToOpenURL();
00206
00211 void findOpen( KonqDirPart * );
00212
00217 void findOpened( KonqDirPart * );
00218
00222 void findClosed( KonqDirPart * );
00223
00228 void itemsAdded(const KFileItemList &);
00229
00234 void itemRemoved(const KFileItem *);
00235
00240 void itemsRefresh(const KFileItemList &);
00241
00246 void itemsFilteredByMime( const KFileItemList& );
00247
00248 public slots:
00249
00254 bool openURL (const KURL&);
00255
00261 void slotFindClosed();
00262
00266 void slotStartAnimationSearching();
00267
00271 void slotStopAnimationSearching();
00272
00273 void slotBackgroundSettings();
00274
00279 void slotClipboardDataChanged();
00280
00281 void slotIncIconSize();
00282 void slotDecIconSize();
00283
00284 void slotIconSizeToggled( bool );
00285
00286
00287 virtual void slotStarted() = 0;
00288 virtual void slotCanceled() = 0;
00289 virtual void slotCompleted() = 0;
00290 virtual void slotNewItems( const KFileItemList& ) = 0;
00291 virtual void slotDeleteItem( KFileItem * ) = 0;
00292 virtual void slotRefreshItems( const KFileItemList& ) = 0;
00293 virtual void slotClear() = 0;
00294 virtual void slotRedirection( const KURL & ) = 0;
00295
00296 private slots:
00297 void slotIconChanged(int group);
00298 protected:
00303 virtual bool doOpenURL( const KURL& ) = 0;
00304 virtual bool doCloseURL () = 0;
00305
00306 protected:
00307
00308 TQString m_nameFilter;
00309 TQStringList m_filesToSelect;
00310
00311 KonqPropsView * m_pProps;
00312
00313 TDEAction *m_paIncIconSize;
00314 TDEAction *m_paDecIconSize;
00315 TDEToggleAction *m_paDefaultIcons;
00316 TDEToggleAction *m_paHugeIcons;
00317 TDEToggleAction *m_paLargeIcons;
00318 TDEToggleAction *m_paMediumIcons;
00319 TDEToggleAction *m_paSmallIcons;
00320
00321 KParts::ReadOnlyPart * m_findPart;
00322 KonqDirPartBrowserExtension * m_extension;
00323
00324
00325 int m_iIconSize[5];
00326 TDEIO::filesize_t m_lDirSize;
00327 uint m_lFileCount;
00328 uint m_lDirCount;
00329
00330 private:
00331 void saveFindState( TQDataStream& );
00332 void restoreFindState( TQDataStream& );
00333
00334 void adjustIconSizes();
00335
00336 class KonqDirPartPrivate;
00337 KonqDirPartPrivate* d;
00338 };
00339
00340 class LIBKONQ_EXPORT KonqDirPartBrowserExtension : public KParts::BrowserExtension
00341 {
00342 public:
00343 KonqDirPartBrowserExtension( KonqDirPart* dirPart )
00344 : KParts::BrowserExtension( dirPart )
00345 , m_dirPart( dirPart )
00346 {}
00347
00355 virtual void saveState( TQDataStream &stream );
00356 virtual void restoreState( TQDataStream &stream );
00357
00358 private:
00359 KonqDirPart* m_dirPart;
00360 };
00361
00362 #endif