source: trunk/examples/fileiconview/qfileiconview.h@ 168

Last change on this file since 168 was 160, checked in by dmik, 19 years ago

Imported table and iconview modules and a bunch of dependent examples from the official release 3.3.1 from Trolltech.

  • Property svn:keywords set to Id
File size: 4.2 KB
Line 
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
22class QtFileIconView;
23class QDragObject;
24class QResizeEvent;
25
26/*****************************************************************************
27 *
28 * Class QtFileIconDrag
29 *
30 *****************************************************************************/
31
32class QtFileIconDrag : public QIconDrag
33{
34 Q_OBJECT
35
36public:
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
44private:
45 QStringList urls;
46
47};
48
49/*****************************************************************************
50 *
51 * Class QtFileIconView
52 *
53 *****************************************************************************/
54class QtFileIconViewItem;
55class QtFileIconView : public QIconView
56{
57 Q_OBJECT
58
59public:
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
70public slots:
71 void setDirectory( const QString &dir );
72 void setDirectory( const QDir &dir );
73 void newDirectory();
74 QDir currentDir();
75
76signals:
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
86protected 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
107protected:
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
128class QtFileIconViewItem : public QIconViewItem
129{
130 friend class QtFileIconView;
131
132public:
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
158protected:
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
Note: See TracBrowser for help on using the repository browser.