author | llornkcor <llornkcor> | 2002-03-20 00:50:29 (UTC) |
---|---|---|
committer | llornkcor <llornkcor> | 2002-03-20 00:50:29 (UTC) |
commit | 090ac02da739600c577ed6396e04ed0e121f7890 (patch) (side-by-side diff) | |
tree | b994655686701aa5482e98a455141eb1757cc952 | |
parent | 5f6144b48cac5cc058ee06461e865ce03cda00f1 (diff) | |
download | opie-090ac02da739600c577ed6396e04ed0e121f7890.zip opie-090ac02da739600c577ed6396e04ed0e121f7890.tar.gz opie-090ac02da739600c577ed6396e04ed0e121f7890.tar.bz2 |
added hidden file option.
-rw-r--r-- | noncore/unsupported/filebrowser/filebrowser.cpp | 39 | ||||
-rw-r--r-- | noncore/unsupported/filebrowser/filebrowser.h | 6 |
2 files changed, 39 insertions, 6 deletions
diff --git a/noncore/unsupported/filebrowser/filebrowser.cpp b/noncore/unsupported/filebrowser/filebrowser.cpp index 41e7634..d9aabfd 100644 --- a/noncore/unsupported/filebrowser/filebrowser.cpp +++ b/noncore/unsupported/filebrowser/filebrowser.cpp @@ -171,16 +171,18 @@ FileView::FileView( const QString & dir, QWidget * parent, le( NULL ), itemToRename( NULL ) { addColumn( "Name" ); addColumn( "Date" ); addColumn( "Size" ); addColumn( "Type" ); + showingHidden=FALSE; + setMultiSelection( TRUE ); header()->hide(); setColumnWidthMode( 0, Manual ); setColumnWidthMode( 3, Manual ); // right align yize column setColumnAlignment( 1, AlignRight ); @@ -201,16 +203,19 @@ void FileView::resizeEvent( QResizeEvent *e ) // hide type column, we use it for "sort by type" only setColumnWidth( 3, 0 ); QListView::resizeEvent( e ); } void FileView::updateDir() { + setCaption( "Boogie on boogieboy"); + //qDebug("Caption should be "+currentDir); + generateDir( currentDir ); } void FileView::setDir( const QString & dir ) { if ( dir.startsWith( "/dev" ) ) { QMessageBox::warning( this, tr( "File Manager" ), tr( "Can't show /dev/ directory." ), tr( "&Ok" ) ); @@ -223,34 +228,37 @@ void FileView::setDir( const QString & dir ) void FileView::generateDir( const QString & dir ) { QDir d( dir ); if( d.exists() && !d.isReadable() ) return; currentDir = d.canonicalPath(); + if( !showingHidden) d.setFilter( QDir::Dirs | QDir::Files ); - d.setSorting( QDir::Name | QDir::DirsFirst | QDir::IgnoreCase | - QDir::Reversed ); + else + d.setFilter( QDir::Dirs | QDir::Files |QDir::Hidden | QDir::All); + + d.setSorting( QDir::Name | QDir::DirsFirst | QDir::IgnoreCase | QDir::Reversed ); + const QFileInfoList * list = d.entryInfoList(); QFileInfoListIterator it( *list ); QFileInfo *fi; clear(); while( (fi = it.current()) ){ - if( (fi->fileName() == ".") || (fi->fileName() == "..") ){ + if( (fi->fileName() == ".") || (fi->fileName() == "..") ){ ++it; continue; } (void) new FileItem( (QListView *) this, *fi ); ++it; } - emit dirChanged(); } void FileView::rename() { itemToRename = (FileItem *) currentItem(); const QPixmap * pm; int pmw; @@ -650,21 +658,22 @@ void FileView::showFileMenu() m->insertSeparator(); } m->insertItem( tr( "Rename" ), this, SLOT( rename() ) ); m->insertItem( Resource::loadPixmap("cut"), tr( "Cut" ), this, SLOT( cut() ) ); m->insertItem( Resource::loadPixmap("copy"), + tr( "Copy" ), this, SLOT( copy() ) ); m->insertItem( Resource::loadPixmap("paste"), tr( "Paste" ), this, SLOT( paste() ) ); m->insertItem( tr( "Change Permissions" ), this, SLOT( chPerm() ) ); - m->insertItem( tr( "Delete" ), this, SLOT( del() ) ); + m->insertItem(Resource::loadPixmap( "close" ), tr( "Delete" ), this, SLOT( del() ) ); m->insertSeparator(); m->insertItem( tr( "Select all" ), this, SLOT( selectAll() ) ); m->insertItem( tr( "Deselect all" ), this, SLOT( deselectAll() ) ); m->popup( QCursor::pos() ); } // // FileBrowser @@ -706,16 +715,20 @@ void FileBrowser::init(const QString & dir) sortMenu = new QPopupMenu( this ); menuBar->insertItem( tr( "Sort" ), sortMenu ); sortMenu->insertItem( tr( "by Name "), this, SLOT( sortName() ) ); sortMenu->insertItem( tr( "by Size "), this, SLOT( sortSize() ) ); sortMenu->insertItem( tr( "by Date "), this, SLOT( sortDate() ) ); sortMenu->insertItem( tr( "by Type "), this, SLOT( sortType() ) ); sortMenu->insertSeparator(); sortMenu->insertItem( tr( "Ascending" ), this, SLOT( updateSorting() ) ); + sortMenu->insertSeparator(); + sortMenu->insertItem( tr( "Show Hidden "), this, SLOT( showHidden() ) ); + fileView->showingHidden=FALSE; + sortMenu->setItemChecked( sortMenu->idAt( 5 ), TRUE ); sortMenu->setItemChecked( sortMenu->idAt( 0 ), TRUE ); toolBar = new QPEToolBar( this ); lastAction = new QAction( tr("Previous dir"), Resource::loadIconSet( "back" ), QString::null, 0, this, 0 ); connect( lastAction, SIGNAL( activated() ), fileView, SLOT( lastDir() ) ); @@ -742,16 +755,17 @@ void FileBrowser::init(const QString & dir) connect( a, SIGNAL( activated() ), fileView, SLOT( copy() ) ); a->addTo( toolBar ); pasteAction = new QAction( tr("Paste"), Resource::loadPixmap( "paste" ), QString::null, 0, this, 0 ); connect( pasteAction, SIGNAL( activated() ), fileView, SLOT( paste() ) ); pasteAction->addTo( toolBar ); +// dirLabel = new QLabel(this, "DirLabel"); connect( fileView, SIGNAL( dirChanged() ), SLOT( updateDirMenu() ) ); updateDirMenu(); QCopChannel* pcmciaChannel = new QCopChannel( "QPE/Card", this ); connect( pcmciaChannel, SIGNAL(received(const QCString &, const QByteArray &)), this, SLOT(pcmciaMessage( const QCString &, const QByteArray &)) ); } @@ -759,16 +773,20 @@ void FileBrowser::init(const QString & dir) void FileBrowser::pcmciaMessage( const QCString &msg, const QByteArray &) { if ( msg == "mtabChanged()" ) { // ## Only really needed if current dir is on a card fileView->updateDir(); } } +void FileBrowser::changeCaption(const QString & dir) { + setCaption( dir); +} + void FileBrowser::dirSelected( int id ) { int i = 0, j; QString dir; // Bulid target dir from menu while( (j = dirMenu->idAt( i )) != id ){ dir += dirMenu->text( j ).stripWhiteSpace(); @@ -849,16 +867,27 @@ void FileBrowser::updateSorting() else if ( sortMenu->isItemChecked( sortMenu->idAt( 1 ) ) ) sortSize(); else if ( sortMenu->isItemChecked( sortMenu->idAt( 2 ) ) ) sortDate(); else sortType(); } +void FileBrowser::showHidden() { + if(! fileView->showingHidden) { + fileView->showingHidden=TRUE; + sortMenu->setItemChecked( sortMenu->idAt( 7),TRUE); + } else { + fileView->showingHidden=FALSE; + sortMenu->setItemChecked( sortMenu->idAt( 7),FALSE); + } + fileView->updateDir(); +} + void FileView::chPerm() { FileItem * i; QStringList fl; QString cmd; int err; if((i = (FileItem *) firstChild()) == 0) return; diff --git a/noncore/unsupported/filebrowser/filebrowser.h b/noncore/unsupported/filebrowser/filebrowser.h index c214dbe..54856a0 100644 --- a/noncore/unsupported/filebrowser/filebrowser.h +++ b/noncore/unsupported/filebrowser/filebrowser.h @@ -21,17 +21,17 @@ #define FILEBROWSER_H #include <qlistview.h> #include <qmainwindow.h> #include <qfileinfo.h> #include <qaction.h> #include <qtimer.h> #include <qstringlist.h> - +class QLabel; class InlineEdit; class FileItem : public QListViewItem { public: FileItem( QListView * parent, const QFileInfo & fi ); QString key( int column, bool ascending = TRUE ) const; @@ -53,16 +53,17 @@ 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; } + bool showingHidden; public slots: void updateDir(); void parentDir(); void lastDir(); void rename(); void copy(); @@ -109,16 +110,18 @@ 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 ); +public slots: + void changeCaption(const QString &); private: void init(const QString & dir); QString fileToCopy; QPopupMenu * dirMenu, * sortMenu; FileView * fileView; QAction * pasteAction; QAction *lastAction; QAction *upAction; @@ -131,11 +134,12 @@ private slots: void sortName(); void sortDate(); void sortSize(); void sortType(); void updateSorting(); void updateDirMenu(); void dirSelected( int id ); + void showHidden(); }; #endif |