diff options
Diffstat (limited to 'examples/fileiconview/qfileiconview.h')
-rw-r--r-- | examples/fileiconview/qfileiconview.h | 170 |
1 files changed, 170 insertions, 0 deletions
diff --git a/examples/fileiconview/qfileiconview.h b/examples/fileiconview/qfileiconview.h new file mode 100644 index 0000000..4192280 --- /dev/null +++ b/examples/fileiconview/qfileiconview.h @@ -0,0 +1,170 @@ +/**************************************************************************** +** +** Copyright (C) 1992-2008 Trolltech ASA. All rights reserved. +** +** This file is part of an example program for Qt. This example +** program may be used, distributed and modified without limitation. +** +*****************************************************************************/ + +#ifndef QTFILEICONVIEW_H +#define QTFILEICONVIEW_H + + +#include <qiconset.h> +#include <qstring.h> +#include <qfileinfo.h> +#include <qdir.h> +#include <qtimer.h> +#include <qiconview.h> + +class QtFileIconView; +class QDragObject; +class QResizeEvent; + +/***************************************************************************** + * + * Class QtFileIconDrag + * + *****************************************************************************/ + +class QtFileIconDrag : public QIconDrag +{ + Q_OBJECT + +public: + QtFileIconDrag( QWidget * dragSource, const char* name = 0 ); + + const char* format( int i ) const; + QByteArray encodedData( const char* mime ) const; + static bool canDecode( QMimeSource* e ); + void append( const QIconDragItem &item, const QRect &pr, const QRect &tr, const QString &url ); + +private: + QStringList urls; + +}; + +/***************************************************************************** + * + * Class QtFileIconView + * + *****************************************************************************/ +class QtFileIconViewItem; +class QtFileIconView : public QIconView +{ + Q_OBJECT + +public: + QtFileIconView( const QString &dir, QWidget *parent = 0, const char *name = 0 ); + + enum ViewMode { Large, Small }; + + void setViewMode( ViewMode m ); + ViewMode viewMode() const { return vm; } + void setOpenItem( QtFileIconViewItem *i ) { + openItem = i; + } + +public slots: + void setDirectory( const QString &dir ); + void setDirectory( const QDir &dir ); + void newDirectory(); + QDir currentDir(); + +signals: + void directoryChanged( const QString & ); + void startReadDir( int dirs ); + void readNextDir(); + void readDirDone(); + void enableUp(); + void disableUp(); + void enableMkdir(); + void disableMkdir(); + +protected slots: + void itemDoubleClicked( QIconViewItem *i ); + void slotDropped( QDropEvent *e, const QValueList<QIconDragItem> & ); + + void viewLarge(); + void viewSmall(); + void viewBottom(); + void viewRight(); + void flowEast(); + void flowSouth(); + void itemTextTruncate(); + void itemTextWordWrap(); + void sortAscending(); + void sortDescending(); + void arrangeItemsInGrid() { + QIconView::arrangeItemsInGrid( TRUE ); + } + + void slotRightPressed( QIconViewItem *item ); + void openFolder(); + +protected: + void readDir( const QDir &dir ); + virtual QDragObject *dragObject(); + + virtual void keyPressEvent( QKeyEvent *e ); + + QDir viewDir; + int newFolderNum; + QSize sz; + QPixmap pix; + ViewMode vm; + QtFileIconViewItem *openItem; + +}; + +/***************************************************************************** + * + * Class QtFileIconViewItem + * + *****************************************************************************/ + +class QtFileIconViewItem : public QIconViewItem +{ + friend class QtFileIconView; + +public: + enum ItemType { + File = 0, + Dir, + Link + }; + + QtFileIconViewItem( QtFileIconView *parent, QFileInfo *fi ); + + virtual ~QtFileIconViewItem(); + + ItemType type() const + { return itemType; } + QString filename() const { return itemFileName; } + + virtual bool acceptDrop( const QMimeSource *e ) const; + + virtual void setText( const QString &text ); + virtual QPixmap *pixmap() const; + + virtual void dragEntered(); + virtual void dragLeft(); + + void viewModeChanged( QtFileIconView::ViewMode m ); + void paintItem( QPainter *p, const QColorGroup &cg ); + +protected: + virtual void dropped( QDropEvent *e, const QValueList<QIconDragItem> & ); + + QString itemFileName; + QFileInfo *itemFileInfo; + ItemType itemType; + bool checkSetText; + QTimer timer; + QtFileIconView::ViewMode vm; + +}; + + +#endif |