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 <qstring.h>
00024
#include <kparts/part.h>
00025
#include <kparts/browserextension.h>
00026
#include <kfileitem.h>
00027
#include <kdatastream.h>
00028
00029
namespace KParts {
class BrowserExtension; }
00030
class KonqPropsView;
00031
class QScrollView;
00032
class KAction;
00033
class KToggleAction;
00034
class KonqDirPartBrowserExtension;
00035
00036
class KonqDirPart:
public KParts::ReadOnlyPart
00037 {
00038 Q_OBJECT
00039
00040
friend class KonqDirPartBrowserExtension;
00041
00042
public:
00043 KonqDirPart( QObject *parent,
const char *name );
00044
00045
virtual ~KonqDirPart();
00046
00050
void setBrowserExtension( KonqDirPartBrowserExtension * extension )
00051 { m_extension = extension; }
00052
00053 KonqDirPartBrowserExtension * extension()
00054 {
return m_extension; }
00055
00056 QScrollView * scrollWidget();
00057
00058
virtual void saveState( QDataStream &stream );
00059
virtual void restoreState( QDataStream &stream );
00060
00064
void lmbClicked( KFileItem * fileItem );
00065
00068
void mmbClicked( KFileItem * fileItem );
00069
00070
void setNameFilter(
const QString & nameFilter ) { m_nameFilter = nameFilter; }
00071
00072 QString nameFilter()
const {
return m_nameFilter; }
00073
00088
void setMimeFilter (
const QStringList& filters);
00089
00094 QStringList mimeFilter() const;
00095
00096
00097
KonqPropsView * props()
const {
return m_pProps; }
00098
00102
virtual void disableIcons(
const KURL::List & lst ) = 0;
00103
00108
void resetCount()
00109 {
00110 m_lDirSize = 0;
00111 m_lFileCount = 0;
00112 m_lDirCount = 0;
00113 }
00114
00118
void newItems(
const KFileItemList & entries );
00119
00123
void deleteItem( KFileItem * fileItem );
00124
00128
void emitTotalCount();
00129
00135
void emitCounts(
const KFileItemList & lst,
bool selectionChanged );
00136
00137
void emitMouseOver(
const KFileItem * item );
00138
00144
void updatePasteAction();
00145
00151
virtual void newIconSize(
int size );
00152
00157
void setIconSize(
int size );
00158
00162
void setFindPart( KParts::ReadOnlyPart * part );
00163
00164 KParts::ReadOnlyPart * findPart()
const {
return m_findPart; }
00165
00166
virtual const KFileItem * currentItem() = 0;
00167
00168
virtual KFileItemList selectedFileItems() {
return KFileItemList(); }
00169
00174
bool closeURL ();
00175
00176 signals:
00177
00181
void aboutToOpenURL();
00182
00187
void findOpen( KonqDirPart * );
00188
00193
void findOpened( KonqDirPart * );
00194
00198
void findClosed( KonqDirPart * );
00199
00204
void itemsAdded(
const KFileItemList& );
00205
00210
void itemRemoved(
const KFileItem* );
00211
00216
void itemsFilteredByMime(
const KFileItemList& );
00217
00218
public slots:
00219
00224
bool openURL (
const KURL&);
00225
00231
void slotFindClosed();
00232
00236
void slotStartAnimationSearching();
00237
00241
void slotStopAnimationSearching();
00242
00243
void slotBackgroundColor();
00244
00245
void slotBackgroundImage();
00246
00251
void slotClipboardDataChanged();
00252
00253
void slotIncIconSize();
00254
void slotDecIconSize();
00255
00256
void slotIconSizeToggled(
bool );
00257
00258
00259
virtual void slotStarted() = 0;
00260
virtual void slotCanceled() = 0;
00261
virtual void slotCompleted() = 0;
00262
virtual void slotNewItems(
const KFileItemList& ) = 0;
00263
virtual void slotDeleteItem( KFileItem * ) = 0;
00264
virtual void slotRefreshItems(
const KFileItemList& ) = 0;
00265
virtual void slotClear() = 0;
00266
virtual void slotRedirection(
const KURL & ) = 0;
00267
00268
protected:
00273
virtual bool doOpenURL(
const KURL& ) = 0;
00274
virtual bool doCloseURL () = 0;
00275
00276
protected:
00277
00278 QString m_nameFilter;
00279
00280
KonqPropsView * m_pProps;
00281
00282 KAction *m_paIncIconSize;
00283 KAction *m_paDecIconSize;
00284 KToggleAction *m_paDefaultIcons;
00285 KToggleAction *m_paHugeIcons;
00286 KToggleAction *m_paLargeIcons;
00287 KToggleAction *m_paMediumIcons;
00288 KToggleAction *m_paSmallIcons;
00289
00290 KParts::ReadOnlyPart * m_findPart;
00291 KonqDirPartBrowserExtension * m_extension;
00292
00293
int m_iIconSize[5];
00294
00295
long long m_lDirSize;
00296 uint m_lFileCount;
00297 uint m_lDirCount;
00298
00299
00300
private:
00301
void saveFindState( QDataStream& );
00302
void restoreFindState( QDataStream& );
00303
00304
class KonqDirPartPrivate;
00305 KonqDirPartPrivate* d;
00306 };
00307
00308
class KonqDirPartBrowserExtension :
public KParts::BrowserExtension
00309 {
00310
public:
00311 KonqDirPartBrowserExtension( KonqDirPart* dirPart )
00312 : KParts::BrowserExtension( dirPart )
00313 , m_dirPart( dirPart )
00314 {}
00315
00323
virtual void saveState( QDataStream &stream );
00324
virtual void restoreState( QDataStream &stream );
00325
00326
private:
00327 KonqDirPart* m_dirPart;
00328 };
00329
00330
#endif