Diffstat (limited to 'noncore/unsupported/filebrowser/filebrowser.h') (more/less context) (ignore whitespace changes)
-rw-r--r-- | noncore/unsupported/filebrowser/filebrowser.h | 141 |
1 files changed, 141 insertions, 0 deletions
diff --git a/noncore/unsupported/filebrowser/filebrowser.h b/noncore/unsupported/filebrowser/filebrowser.h new file mode 100644 index 0000000..2e9e444 --- a/dev/null +++ b/noncore/unsupported/filebrowser/filebrowser.h @@ -0,0 +1,141 @@ +/********************************************************************** +** Copyright (C) 2000 Trolltech AS. All rights reserved. +** +** This file is part of Qtopia Environment. +** +** This file may be distributed and/or modified under the terms of the +** GNU General Public License version 2 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. +** +** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE +** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. +** +** See http://www.trolltech.com/gpl/ for GPL licensing information. +** +** Contact info@trolltech.com if any conditions of this licensing are +** not clear to you. +** +**********************************************************************/ +#ifndef FILEBROWSER_H +#define FILEBROWSER_H + +#include <qlistview.h> +#include <qmainwindow.h> +#include <qfileinfo.h> +#include <qaction.h> +#include <qtimer.h> +#include <qstringlist.h> + +class InlineEdit; + +class FileItem : public QListViewItem +{ +public: + FileItem( QListView * parent, const QFileInfo & fi ); + + QString key( int column, bool ascending = TRUE ) const; + QString getFilePath(){ return fileInfo.filePath(); } + QString getFileName(){ return fileInfo.fileName(); } + bool isDir(){ return fileInfo.isDir(); } + bool isExecutable(){ return fileInfo.isExecutable(); } + bool isLib(); + int launch(); + bool rename( const QString & name ); +private: + QString sizeString( unsigned int size ); + QFileInfo fileInfo; +}; + + +class FileView : public QListView +{ + Q_OBJECT + +public: + FileView( const QString & dir, QWidget * parent = 0, + const char * name = 0 ); + void setDir( const QString & dir ); + QString cd(){ return currentDir; } + QStringList history() const { return dirHistory; } + +public slots: + void updateDir(); + void parentDir(); + void lastDir(); + + void rename(); + void copy(); + void paste(); + void del(); + void cut(); + void newFolder(); + void viewAsText(); + +protected: + void generateDir( const QString & dir ); + void resizeEvent( QResizeEvent* ); + void contentsMousePressEvent( QMouseEvent * e ); + void contentsMouseReleaseEvent( QMouseEvent * e ); + +protected slots: + void itemClicked( QListViewItem * i ); + void itemDblClicked( QListViewItem * i ); + void showFileMenu(); + void cancelMenuTimer(); + void selectAll(){ QListView::selectAll( TRUE ); } + void deselectAll(){ QListView::selectAll( FALSE ); } + void addToDocuments(); + void run(); + void endRenaming(); + +private: + QString currentDir; + QStringList dirHistory, flist; + QTimer menuTimer; + InlineEdit * le; + FileItem * itemToRename; + bool selected; + + bool copyFile( const QString & dest, const QString & src ); + +signals: + void dirChanged(); + void textViewActivated( QWidget * w ); + void textViewDeactivated(); +}; + +class FileBrowser : public QMainWindow +{ + Q_OBJECT + +public: + FileBrowser( QWidget * parent = 0, + const char * name = 0, WFlags f = 0 ); + FileBrowser( const QString & dir, QWidget * parent = 0, + const char * name = 0, WFlags f = 0 ); +private: + void init(const QString & dir); + QString fileToCopy; + QPopupMenu * dirMenu, * sortMenu; + FileView * fileView; + QAction * pasteAction; + QAction *lastAction; + QAction *upAction; + + bool copyFile( const QString & dest, const QString & src ); + +private slots: + void pcmciaMessage( const QCString &msg, const QByteArray &); + + void sortName(); + void sortDate(); + void sortSize(); + void sortType(); + void updateSorting(); + + void updateDirMenu(); + void dirSelected( int id ); +}; + +#endif |