1 | /****************************************************************************
|
---|
2 | ** $Id: qfileiconview.h 160 2006-12-11 20:15:57Z dmik $
|
---|
3 | **
|
---|
4 | ** Copyright (C) 1992-2000 Trolltech AS. All rights reserved.
|
---|
5 | **
|
---|
6 | ** This file is part of an example program for Qt. This example
|
---|
7 | ** program may be used, distributed and modified without limitation.
|
---|
8 | **
|
---|
9 | *****************************************************************************/
|
---|
10 |
|
---|
11 | #ifndef QTFILEICONVIEW_H
|
---|
12 | #define QTFILEICONVIEW_H
|
---|
13 |
|
---|
14 |
|
---|
15 | #include <qiconset.h>
|
---|
16 | #include <qstring.h>
|
---|
17 | #include <qfileinfo.h>
|
---|
18 | #include <qdir.h>
|
---|
19 | #include <qtimer.h>
|
---|
20 | #include <qiconview.h>
|
---|
21 |
|
---|
22 | class QtFileIconView;
|
---|
23 | class QDragObject;
|
---|
24 | class QResizeEvent;
|
---|
25 |
|
---|
26 | /*****************************************************************************
|
---|
27 | *
|
---|
28 | * Class QtFileIconDrag
|
---|
29 | *
|
---|
30 | *****************************************************************************/
|
---|
31 |
|
---|
32 | class QtFileIconDrag : public QIconDrag
|
---|
33 | {
|
---|
34 | Q_OBJECT
|
---|
35 |
|
---|
36 | public:
|
---|
37 | QtFileIconDrag( QWidget * dragSource, const char* name = 0 );
|
---|
38 |
|
---|
39 | const char* format( int i ) const;
|
---|
40 | QByteArray encodedData( const char* mime ) const;
|
---|
41 | static bool canDecode( QMimeSource* e );
|
---|
42 | void append( const QIconDragItem &item, const QRect &pr, const QRect &tr, const QString &url );
|
---|
43 |
|
---|
44 | private:
|
---|
45 | QStringList urls;
|
---|
46 |
|
---|
47 | };
|
---|
48 |
|
---|
49 | /*****************************************************************************
|
---|
50 | *
|
---|
51 | * Class QtFileIconView
|
---|
52 | *
|
---|
53 | *****************************************************************************/
|
---|
54 | class QtFileIconViewItem;
|
---|
55 | class QtFileIconView : public QIconView
|
---|
56 | {
|
---|
57 | Q_OBJECT
|
---|
58 |
|
---|
59 | public:
|
---|
60 | QtFileIconView( const QString &dir, QWidget *parent = 0, const char *name = 0 );
|
---|
61 |
|
---|
62 | enum ViewMode { Large, Small };
|
---|
63 |
|
---|
64 | void setViewMode( ViewMode m );
|
---|
65 | ViewMode viewMode() const { return vm; }
|
---|
66 | void setOpenItem( QtFileIconViewItem *i ) {
|
---|
67 | openItem = i;
|
---|
68 | }
|
---|
69 |
|
---|
70 | public slots:
|
---|
71 | void setDirectory( const QString &dir );
|
---|
72 | void setDirectory( const QDir &dir );
|
---|
73 | void newDirectory();
|
---|
74 | QDir currentDir();
|
---|
75 |
|
---|
76 | signals:
|
---|
77 | void directoryChanged( const QString & );
|
---|
78 | void startReadDir( int dirs );
|
---|
79 | void readNextDir();
|
---|
80 | void readDirDone();
|
---|
81 | void enableUp();
|
---|
82 | void disableUp();
|
---|
83 | void enableMkdir();
|
---|
84 | void disableMkdir();
|
---|
85 |
|
---|
86 | protected slots:
|
---|
87 | void itemDoubleClicked( QIconViewItem *i );
|
---|
88 | void slotDropped( QDropEvent *e, const QValueList<QIconDragItem> & );
|
---|
89 |
|
---|
90 | void viewLarge();
|
---|
91 | void viewSmall();
|
---|
92 | void viewBottom();
|
---|
93 | void viewRight();
|
---|
94 | void flowEast();
|
---|
95 | void flowSouth();
|
---|
96 | void itemTextTruncate();
|
---|
97 | void itemTextWordWrap();
|
---|
98 | void sortAscending();
|
---|
99 | void sortDescending();
|
---|
100 | void arrangeItemsInGrid() {
|
---|
101 | QIconView::arrangeItemsInGrid( TRUE );
|
---|
102 | }
|
---|
103 |
|
---|
104 | void slotRightPressed( QIconViewItem *item );
|
---|
105 | void openFolder();
|
---|
106 |
|
---|
107 | protected:
|
---|
108 | void readDir( const QDir &dir );
|
---|
109 | virtual QDragObject *dragObject();
|
---|
110 |
|
---|
111 | virtual void keyPressEvent( QKeyEvent *e );
|
---|
112 |
|
---|
113 | QDir viewDir;
|
---|
114 | int newFolderNum;
|
---|
115 | QSize sz;
|
---|
116 | QPixmap pix;
|
---|
117 | ViewMode vm;
|
---|
118 | QtFileIconViewItem *openItem;
|
---|
119 |
|
---|
120 | };
|
---|
121 |
|
---|
122 | /*****************************************************************************
|
---|
123 | *
|
---|
124 | * Class QtFileIconViewItem
|
---|
125 | *
|
---|
126 | *****************************************************************************/
|
---|
127 |
|
---|
128 | class QtFileIconViewItem : public QIconViewItem
|
---|
129 | {
|
---|
130 | friend class QtFileIconView;
|
---|
131 |
|
---|
132 | public:
|
---|
133 | enum ItemType {
|
---|
134 | File = 0,
|
---|
135 | Dir,
|
---|
136 | Link
|
---|
137 | };
|
---|
138 |
|
---|
139 | QtFileIconViewItem( QtFileIconView *parent, QFileInfo *fi );
|
---|
140 |
|
---|
141 | virtual ~QtFileIconViewItem();
|
---|
142 |
|
---|
143 | ItemType type() const
|
---|
144 | { return itemType; }
|
---|
145 | QString filename() const { return itemFileName; }
|
---|
146 |
|
---|
147 | virtual bool acceptDrop( const QMimeSource *e ) const;
|
---|
148 |
|
---|
149 | virtual void setText( const QString &text );
|
---|
150 | virtual QPixmap *pixmap() const;
|
---|
151 |
|
---|
152 | virtual void dragEntered();
|
---|
153 | virtual void dragLeft();
|
---|
154 |
|
---|
155 | void viewModeChanged( QtFileIconView::ViewMode m );
|
---|
156 | void paintItem( QPainter *p, const QColorGroup &cg );
|
---|
157 |
|
---|
158 | protected:
|
---|
159 | virtual void dropped( QDropEvent *e, const QValueList<QIconDragItem> & );
|
---|
160 |
|
---|
161 | QString itemFileName;
|
---|
162 | QFileInfo *itemFileInfo;
|
---|
163 | ItemType itemType;
|
---|
164 | bool checkSetText;
|
---|
165 | QTimer timer;
|
---|
166 | QtFileIconView::ViewMode vm;
|
---|
167 |
|
---|
168 | };
|
---|
169 |
|
---|
170 |
|
---|
171 | #endif
|
---|