00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
#ifndef KFILEVIEW_H
00023
#define KFILEVIEW_H
00024
00025
class QPoint;
00026
class KActionCollection;
00027
00028
#include <qwidget.h>
00029
00030
#include "kfileitem.h"
00031
#include "kfile.h"
00032
00037 class KIO_EXPORT KFileViewSignaler :
public QObject
00038 {
00039 Q_OBJECT
00040
00041
public:
00046 void activate(
const KFileItem *item ) {
00047
if ( item->
isDir() )
00048 emit dirActivated( item );
00049
else
00050 emit fileSelected( item );
00051 }
00056 void highlightFile(
const KFileItem *i) { emit fileHighlighted(i); }
00057
00058
void activateMenu(
const KFileItem *i,
const QPoint& pos ) {
00059 emit activatedMenu( i, pos );
00060 }
00061
00062
void changeSorting( QDir::SortSpec sorting ) {
00063 emit sortingChanged( sorting );
00064 }
00065
00066
void dropURLs(
const KFileItem *i,
QDropEvent*e,
const KURL::List&urls) {
00067 emit dropped(i, e, urls);
00068 }
00069
00070 signals:
00071
void dirActivated(
const KFileItem*);
00072
00073
void sortingChanged( QDir::SortSpec );
00074
00079
void fileHighlighted(
const KFileItem*);
00080
void fileSelected(
const KFileItem*);
00081
void activatedMenu(
const KFileItem *i,
const QPoint& );
00082
void dropped(
const KFileItem *,
QDropEvent*,
const KURL::List&);
00083 };
00084
00098 class KIO_EXPORT KFileView {
00099
00100
public:
00101 KFileView();
00102
00106
virtual ~KFileView();
00107
00111
void addItemList(
const KFileItemList &list);
00112
00118
virtual QWidget *widget() = 0;
00119
00123 QWidget *widget()
const {
return const_cast<KFileView*>(
this)->widget(); }
00124
00128
void setCurrentItem(
const QString &filename );
00129
00134
virtual void setCurrentItem(
const KFileItem *item ) = 0;
00135
00141
virtual KFileItem *currentFileItem() const = 0;
00142
00146 virtual
void clear();
00147
00156 virtual
void updateView(
bool f = true);
00157
00158 virtual
void updateView(const
KFileItem*);
00159
00164 virtual
void removeItem(const KFileItem *item);
00165
00171 virtual
void listingCompleted();
00172
00177 QDir::SortSpec sorting()
const {
return m_sorting; }
00178
00193
virtual void setSorting(QDir::SortSpec sort);
00194
00199 bool isReversed()
const {
return (m_sorting & QDir::Reversed); }
00200
00201
void sortReversed();
00202
00206 uint count()
const {
return filesNumber + dirsNumber; }
00207
00211 uint numFiles()
const {
return filesNumber; }
00212
00216 uint numDirs()
const {
return dirsNumber; }
00217
00218
virtual void setSelectionMode( KFile::SelectionMode sm );
00219
virtual KFile::SelectionMode selectionMode() const;
00220
00221 enum ViewMode {
00222 Files = 1,
00223 Directories = 2,
00224 All = Files | Directories
00225 };
00226
virtual void setViewMode( ViewMode vm );
00227
virtual ViewMode viewMode()
const {
return view_mode; }
00228
00234 QString viewName()
const {
return m_viewName; }
00235
00240 void setViewName(
const QString& name ) { m_viewName = name; }
00241
00242
virtual void setParentView(KFileView *parent);
00243
00252
virtual void insertItem(
KFileItem *i);
00253
00258
virtual void clearView() = 0;
00259
00264
virtual void ensureItemVisible(
const KFileItem *i ) = 0;
00265
00270
virtual void clearSelection() = 0;
00271
00277
virtual void selectAll();
00278
00283
virtual void invertSelection();
00284
00289
virtual void setSelected(
const KFileItem *,
bool enable) = 0;
00290
00295
virtual bool isSelected(
const KFileItem * ) const = 0;
00296
00300 const
KFileItemList * selectedItems() const;
00301
00305 const
KFileItemList * items() const;
00306
00307 virtual
KFileItem * firstFileItem() const = 0;
00308 virtual
KFileItem * nextItem( const
KFileItem * ) const = 0;
00309 virtual
KFileItem * prevItem( const
KFileItem * ) const = 0;
00310
00321 void setOnlyDoubleClickSelectsFiles(
bool enable ) {
00322 myOnlyDoubleClickSelectsFiles = enable;
00323 }
00324
00330 bool onlyDoubleClickSelectsFiles()
const {
00331
return myOnlyDoubleClickSelectsFiles;
00332 }
00333
00338
bool updateNumbers(
const KFileItem *i);
00339
00345
virtual KActionCollection * actionCollection() const;
00346
00347 KFileViewSignaler * signaler()
const {
return sig; }
00348
00349
virtual void readConfig(
KConfig *,
const QString& group = QString::null );
00350
virtual void writeConfig(
KConfig *,
const QString& group = QString::null);
00351
00359 enum DropOptions {
00360 AutoOpenDirs = 1
00361 };
00367
00368
void setDropOptions(
int options);
00369
00375
int dropOptions();
00376
00390
static QString sortingKey(
const QString& value,
bool isDir,
int sortSpec);
00391
00398
static QString sortingKey( KIO::filesize_t value,
bool isDir,
int sortSpec);
00399
00404
static int autoOpenDelay();
00405
00406
protected:
00411 KFileViewSignaler *sig;
00412
00413
private:
00414
static QDir::SortSpec defaultSortSpec;
00415 QDir::SortSpec m_sorting;
00416
QString m_viewName;
00417
00421 uint filesNumber;
00422 uint dirsNumber;
00423
00424 ViewMode view_mode;
00425 KFile::SelectionMode selection_mode;
00426
00427
00428
00429
mutable KFileItemList m_itemList;
00430
00431
mutable KFileItemList *m_selectedList;
00432
bool myOnlyDoubleClickSelectsFiles;
00433
00434
protected:
00435
virtual void virtual_hook(
int id,
void* data );
00436
00437
enum { VIRTUAL_SET_DROP_OPTIONS = 1 };
00438
void setDropOptions_impl(
int options);
00439
private:
00440
class KFileViewPrivate;
00441 KFileViewPrivate *d;
00442 };
00443
00444
#endif // KFILEINFOLISTWIDGET_H