/**************************************************************************** Matias henttunen hei00rhe@syd.kth.se original file is from QT-demos create a instance of DirectoryView(QWidget); QWidget being where you want it. ** *****************************************************************************/ #ifndef DIRVIEW_H #define DIRVIEW_H #include #include #include #include #include class QWidget; class QDragEnterEvent; class QDragMoveEvent; class QDragLeaveEvent; class QDropEvent; class FileItem : public QListViewItem { public: FileItem( QListViewItem *parent, const QString &s1, const QString &s2 ) : QListViewItem( parent, s1, s2 ), pix( 0 ) {} const QPixmap *pixmap( int i ) const; void setPixmap( QPixmap *p ); private: QPixmap *pix; }; class Directory : public QListViewItem { public: Directory( QListView * parent, const QString& filename ); Directory( Directory * parent, const QString& filename, const QString &col2 ) : QListViewItem( parent, filename, col2 ), pix( 0 ) {} Directory( Directory * parent, const QString& filename ); QString text( int column ) const; QString fullName(); void setOpen( bool ); void setup(); const QPixmap *pixmap( int i ) const; void setPixmap( QPixmap *p ); private: QFile f; Directory * p; bool readable; bool showDirsOnly; QPixmap *pix; }; class DirectoryView : public QListView { Q_OBJECT public: DirectoryView( QWidget *parent = 0, const char *name = 0, bool sdo = FALSE ); bool showDirsOnly() { return dirsOnly; } public slots: void setDir( const QString & ); signals: void folderSelected( const QString & ); void openFile(QString); protected slots: void slotClicked( QListViewItem * ); void openFolder(); protected: void contentsMousePressEvent( QMouseEvent *e ); void contentsMouseReleaseEvent( QMouseEvent *e ); void contentsDoubleClickEvent(QMouseEvent *e); private: QString fullPath(QListViewItem* item); bool dirsOnly; QListViewItem *oldCurrent; QListViewItem *dropItem; QTimer* autoopen_timer; QPoint presspos; bool mousePressed; }; #endif