1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171
|
/****************************************************************************
** $Id: qt/examples/fileiconview/qfileiconview.h 2.3.1 edited 2001-01-26 $
**
** Copyright (C) 1992-2000 Trolltech AS. 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
|