author | llornkcor <llornkcor> | 2002-06-01 18:38:27 (UTC) |
---|---|---|
committer | llornkcor <llornkcor> | 2002-06-01 18:38:27 (UTC) |
commit | bc167b7ef02ccd5f6127d9f9640f4b7af6c5a496 (patch) (side-by-side diff) | |
tree | d885205c7c2b6c690db1a9e9ff993fd09b2e78bd | |
parent | 2815c0b50bd52d58022eb1d5f4364079a0e99e0a (diff) | |
download | opie-bc167b7ef02ccd5f6127d9f9640f4b7af6c5a496.zip opie-bc167b7ef02ccd5f6127d9f9640f4b7af6c5a496.tar.gz opie-bc167b7ef02ccd5f6127d9f9640f4b7af6c5a496.tar.bz2 |
fixed bug woth my eyes no seeing the path combo very well, also fixed bug with popupmenu
-rw-r--r-- | noncore/apps/advancedfm/advancedfm.cpp | 245 | ||||
-rw-r--r-- | noncore/apps/advancedfm/advancedfm.h | 16 |
2 files changed, 155 insertions, 106 deletions
diff --git a/noncore/apps/advancedfm/advancedfm.cpp b/noncore/apps/advancedfm/advancedfm.cpp index f32031b..869a433 100644 --- a/noncore/apps/advancedfm/advancedfm.cpp +++ b/noncore/apps/advancedfm/advancedfm.cpp @@ -66,16 +66,17 @@ #include <mntent.h> #include <string.h> #include <errno.h> AdvancedFm::AdvancedFm( ) : QMainWindow( ) { setCaption( tr( "AdvancedFm" ) ); +// menuTimer( this ); QGridLayout *layout = new QGridLayout( this ); layout->setSpacing( 2); layout->setMargin( 2); connect( qApp,SIGNAL( aboutToQuit()),SLOT( cleanUp()) ); QPEMenuBar *menuBar = new QPEMenuBar(this); @@ -139,18 +140,35 @@ AdvancedFm::AdvancedFm( ) fileMenu->setCheckable(TRUE); viewMenu->insertItem( tr( "Switch to Local" ), this, SLOT( switchToLocalTab() )); viewMenu->insertItem( tr( "Switch to Remote" ), this, SLOT( switchToRemoteTab() )); viewMenu->insertSeparator(); viewMenu->insertItem( tr( "About" ), this, SLOT( doAbout() )); viewMenu->setCheckable(TRUE); + + currentPathCombo = new QComboBox( FALSE, this, "currentPathCombo" ); + currentPathCombo->setEditable(TRUE); + layout->addMultiCellWidget( currentPathCombo, 1, 1, 0, 7); + currentPathCombo->lineEdit()->setText( currentDir.canonicalPath()); + + connect( currentPathCombo, SIGNAL( activated( const QString & ) ), + this, SLOT( currentPathComboActivated( const QString & ) ) ); + + connect( currentPathCombo->lineEdit(),SIGNAL(returnPressed()), + this,SLOT(currentPathComboChanged())); + + currentPathCombo->lineEdit()->setText( currentDir.canonicalPath()); + + layout->addMultiCellWidget( currentPathCombo, 1, 1, 0, 7); + + TabWidget = new QTabWidget( this, "TabWidget" ); - layout->addMultiCellWidget( TabWidget, 1, 1, 0, 7); + layout->addMultiCellWidget( TabWidget, 2, 2, 0, 7); tab = new QWidget( TabWidget, "tab" ); tabLayout = new QGridLayout( tab ); tabLayout->setSpacing( 2); tabLayout->setMargin( 2); Local_View = new QListView( tab, "Local_View" ); // Local_View->setResizePolicy( QListView::AutoOneFit ); @@ -160,22 +178,25 @@ AdvancedFm::AdvancedFm( ) Local_View->addColumn( tr("Date"),-1); Local_View->setColumnAlignment(2,QListView::AlignRight); Local_View->setAllColumnsShowFocus(TRUE); Local_View->setMultiSelection( TRUE ); Local_View->setSelectionMode(QListView::Extended); QPEApplication::setStylusOperation( Local_View->viewport(),QPEApplication::RightOnHold); + + tabLayout->addWidget( Local_View, 0, 0 ); connect( Local_View, SIGNAL( clicked( QListViewItem*)), this,SLOT( localListClicked(QListViewItem *)) ); connect( Local_View, SIGNAL( mouseButtonPressed( int, QListViewItem *, const QPoint&, int)), this,SLOT( localListPressed(int, QListViewItem *, const QPoint&, int)) ); + connect( Local_View, SIGNAL( selectionChanged() ), SLOT( cancelMenuTimer() ) ); TabWidget->insertTab( tab, tr("1")); tab_2 = new QWidget( TabWidget, "tab_2" ); tabLayout_2 = new QGridLayout( tab_2 ); tabLayout_2->setSpacing( 2); tabLayout_2->setMargin( 2); @@ -190,16 +211,17 @@ AdvancedFm::AdvancedFm( ) Remote_View->setSelectionMode(QListView::Extended); QPEApplication::setStylusOperation( Remote_View->viewport(),QPEApplication::RightOnHold); connect( Remote_View, SIGNAL( clicked( QListViewItem*)), this,SLOT( remoteListClicked(QListViewItem *)) ); connect( Remote_View, SIGNAL( mouseButtonPressed( int, QListViewItem *, const QPoint&, int)), this,SLOT( remoteListPressed(int, QListViewItem *, const QPoint&, int)) ); + connect( Remote_View, SIGNAL( selectionChanged() ), SLOT( cancelMenuTimer() ) ); tabLayout_2->addWidget( Remote_View, 0, 0 ); TabWidget->insertTab( tab_2, tr( "2")); connect(TabWidget,SIGNAL(currentChanged(QWidget *)), this,SLOT(tabChanged(QWidget*))); @@ -216,33 +238,22 @@ AdvancedFm::AdvancedFm( ) currentDir.setFilter( QDir::Files | QDir::Dirs | QDir::Hidden | QDir::All); currentDir.setPath( QDir::currentDirPath()); currentRemoteDir.setFilter( QDir::Files | QDir::Dirs | QDir::Hidden | QDir::All); currentRemoteDir.setPath( QDir::currentDirPath()); b = TRUE; - currentPathCombo = new QComboBox( FALSE, this, "currentPathCombo" ); - currentPathCombo->setEditable(TRUE); - layout->addMultiCellWidget( currentPathCombo, 3, 3, 0, 7); - currentPathCombo->lineEdit()->setText( currentDir.canonicalPath()); - - connect( currentPathCombo, SIGNAL( activated( const QString & ) ), - this, SLOT( currentPathComboActivated( const QString & ) ) ); - - connect( currentPathCombo->lineEdit(),SIGNAL(returnPressed()), - this,SLOT(currentPathComboChanged())); - - currentPathCombo->lineEdit()->setText( currentDir.canonicalPath()); - - layout->addMultiCellWidget( currentPathCombo, 3, 3, 0, 7); filterStr="*"; b=FALSE; + + connect( &menuTimer, SIGNAL( timeout() ), SLOT( showFileMenu() ) ); + populateLocalView(); populateRemoteView(); } AdvancedFm::~AdvancedFm() { } @@ -636,117 +647,39 @@ void AdvancedFm::showRemoteHidden() } void AdvancedFm::localListPressed( int mouse, QListViewItem *item, const QPoint &point, int i) { switch (mouse) { case 1: break; case 2: - showLocalMenu(item); - Local_View->clearSelection(); + menuTimer.start( 500, TRUE ); break; }; } void AdvancedFm::remoteListPressed( int mouse, QListViewItem *item, const QPoint &point, int i) { + switch (mouse) { case 1: break; case 2: - showRemoteMenu(item); - Remote_View->clearSelection(); + menuTimer.start( 500, TRUE ); break; }; } -void AdvancedFm::showLocalMenu(QListViewItem * item) -{ - if(item) { - QPopupMenu m; - m.insertItem( tr( "Show Hidden Files" ), this, SLOT( showHidden() )); - m.insertSeparator(); - if( /*item->text(0).right(1) == "/" ||*/ item->text(0).find("/",0,TRUE) !=-1) - m.insertItem( tr( "Change Directory" ), this, SLOT( doLocalCd() )); - else - m.insertItem( tr( "Open / Execute" ), this, SLOT( runThis() )); - m.insertItem( tr( "Open as Text" ), this, SLOT( runText() )); - m.insertItem( tr( "Make Directory" ), this, SLOT( localMakDir() )); - m.insertItem( tr( "Make Symlink" ), this, SLOT( mkSym() )); - m.insertSeparator(); - m.insertItem( tr( "Rename" ), this, SLOT( localRename() )); - m.insertItem( tr( "Copy" ), this, SLOT( copy() )); - m.insertItem( tr( "Copy As" ), this, SLOT( copyAs() )); - m.insertItem( tr( "Move" ), this, SLOT( move() )); - m.insertSeparator(); - m.insertItem( tr( "Rescan" ), this, SLOT( populateLocalView() )); - m.insertItem( tr( "Run Command" ), this, SLOT( runCommand() )); - m.insertItem( tr( "File Info" ), this, SLOT( fileStatus() )); - m.insertSeparator(); - m.insertItem( tr( "Delete" ), this, SLOT( localDelete() )); - m.insertSeparator(); - m.insertItem( tr( "Set Permissions" ), this, SLOT( filePerms() )); - if( QFile(QPEApplication::qpeDir()+"lib/libopie.so").exists() ) //bad hack for Sharp zaurus failings - m.insertItem( tr( "Properties" ), this, SLOT( doProperties() )); - m.setCheckable(TRUE); - if (!b) - m.setItemChecked(m.idAt(0),TRUE); - else - m.setItemChecked(m.idAt(0),FALSE); - if(Ir::supported()) - m.insertItem( tr( "Beam File" ), this, SLOT( doBeam() )); - m.exec( QCursor::pos() ); - } -} - -void AdvancedFm::showRemoteMenu(QListViewItem * item) -{ - if(item) { - QPopupMenu m; - m.insertItem( tr( "Show Hidden Files" ), this, SLOT( showRemoteHidden() )); - m.insertSeparator(); - if( /*item->text(0).right(1) == "/" ||*/ item->text(0).find("/",0,TRUE) !=-1) - m.insertItem( tr( "Change Directory" ), this, SLOT( doRemoteCd() )); - else - m.insertItem( tr( "Open / Execute" ), this, SLOT( runThis() )); - m.insertItem( tr( "Open as Text" ), this, SLOT( runText() )); - m.insertItem( tr( "Make Directory" ), this, SLOT( remoteMakDir() )); - m.insertItem( tr( "Make Symlink" ), this, SLOT( mkSym() )); - m.insertSeparator(); - m.insertItem( tr( "Rename" ), this, SLOT( remoteRename() )); - m.insertItem( tr( "Copy" ), this, SLOT( copy() )); - m.insertItem( tr( "Copy As" ), this, SLOT( copyAs() )); - m.insertItem( tr( "Move" ), this, SLOT( move() )); - m.insertSeparator(); - m.insertItem( tr( "Rescan" ), this, SLOT( populateRemoteView() )); - m.insertItem( tr( "Run Command" ), this, SLOT( runCommand() )); - m.insertItem( tr( "File Info" ), this, SLOT( fileStatus() )); - m.insertSeparator(); - m.insertItem( tr( "Delete" ), this, SLOT( remoteDelete() )); - m.insertSeparator(); - m.insertItem( tr( "Set Permissions" ), this, SLOT( filePerms() )); - if( QFile(QPEApplication::qpeDir()+"lib/libopie.so").exists() ) //bad hack for Sharp zaurus failings - m.insertItem( tr( "Properties" ), this, SLOT( doProperties() )); - m.setCheckable(TRUE); - if (!b) - m.setItemChecked(m.idAt(0),TRUE); - else - m.setItemChecked(m.idAt(0),FALSE); - if(Ir::supported()) - m.insertItem( tr( "Beam File" ), this, SLOT( doBeam() )); - m.exec( QCursor::pos() ); - } -} - void AdvancedFm::runThis() { // QFileInfo *fi; QString fs; if (TabWidget->currentPageIndex() == 0) { QString curFile = Local_View->currentItem()->text(0); + if(curFile != "../") { fs= getFileSystemType((const QString &) currentDir.canonicalPath()); QFileInfo fileInfo( currentDir.canonicalPath()+"/"+curFile); qDebug( fileInfo.owner()); if( (fileInfo.permission( QFileInfo::ExeUser) | fileInfo.permission( QFileInfo::ExeGroup) | fileInfo.permission( QFileInfo::ExeOther)) // & fs.find("vfat",0,TRUE) == -1) { | fs == "vfat" && fileInfo.filePath().contains("/bin") ) { @@ -758,19 +691,22 @@ QString fs; DocLnk nf(curFile); QString execStr = nf.exec(); qDebug( execStr); if( execStr.isEmpty() ) { } else { nf.execute(); } } + } // MimeType mt( curFile); } else { QString curFile = Remote_View->currentItem()->text(0); + if(curFile != "../") { + fs= getFileSystemType((const QString &) currentRemoteDir.canonicalPath()); qDebug("Filesystemtype is "+fs); QFileInfo fileInfo( currentRemoteDir.canonicalPath()+"/"+curFile); if( (fileInfo.permission( QFileInfo::ExeUser) | fileInfo.permission( QFileInfo::ExeGroup) | fileInfo.permission( QFileInfo::ExeOther)) // & fs.find("vfat",0,TRUE) == -1) { | fs == "vfat" && fileInfo.filePath().contains("/bin") ) { QCopEnvelope e("QPE/System", "execute(QString)" ); @@ -780,34 +716,39 @@ QString fs; DocLnk nf(curFile); QString execStr = nf.exec(); qDebug(execStr); if( execStr.isEmpty() ) { } else { nf.execute(); } } + } // MimeType mt( curFile); } } void AdvancedFm::runText() { if (TabWidget->currentPageIndex() == 0) { QString curFile = Local_View->currentItem()->text(0); + if(curFile != "../") { curFile = currentDir.canonicalPath()+"/"+curFile; QCopEnvelope e("QPE/Application/textedit", "setDocument(QString)" ); e << curFile; + } } else { QString curFile = Remote_View->currentItem()->text(0); + if(curFile != "../") { curFile = currentRemoteDir.canonicalPath()+"/"+curFile; DocLnk nf(curFile); QCopEnvelope e("QPE/Application/textedit", "setDocument(QString)" ); e << curFile; } } +} void AdvancedFm::localMakDir() { InputDialog *fileDlg; fileDlg = new InputDialog(this,tr("Make Directory"),TRUE, 0); fileDlg->exec(); if( fileDlg->result() == 1 ) { QString filename = fileDlg->LineEdit1->text(); @@ -826,16 +767,17 @@ void AdvancedFm::remoteMakDir() currentRemoteDir.mkdir( currentRemoteDir.canonicalPath()+"/"+filename); } populateRemoteView(); } void AdvancedFm::localDelete() { QStringList curFileList = getPath(); + if(curFileList.count() > 0) { QString myFile; for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it ) { myFile = (*it); if( myFile.find(" -> ",0,TRUE) != -1) myFile = myFile.left( myFile.find(" -> ",0,TRUE)); QString f = currentDir.canonicalPath(); if(f.right(1).find("/",0,TRUE) == -1) @@ -870,20 +812,22 @@ void AdvancedFm::localDelete() break; case 1: // exit break; }; } } } +} void AdvancedFm::remoteDelete() { QStringList curFileList = getPath(); + if( curFileList.count() > 0) { QString myFile; for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it ) { myFile = (*it); if(myFile.find(" -> ",0,TRUE) != -1) myFile = myFile.left(myFile.find(" -> ",0,TRUE)); QString f = currentRemoteDir.canonicalPath(); if(f.right(1).find("/",0,TRUE) == -1) @@ -918,48 +862,54 @@ void AdvancedFm::remoteDelete() break; case 1: // exit break; }; } } } +} void AdvancedFm::localRename() { QString curFile = Local_View->currentItem()->text(0); + qDebug("currentItem "+curFile); + if( curFile !="../") { InputDialog *fileDlg; fileDlg = new InputDialog(this,tr("Rename"),TRUE, 0); fileDlg->setInputText((const QString &)curFile); fileDlg->exec(); if( fileDlg->result() == 1 ) { QString oldname = currentDir.canonicalPath() + "/" + curFile; QString newName = currentDir.canonicalPath() + "/" + fileDlg->LineEdit1->text();//+".playlist"; if( rename(oldname.latin1(), newName.latin1())== -1) QMessageBox::message(tr("Note"),tr("Could not rename")); } populateLocalView(); } +} void AdvancedFm::remoteRename() { - QString curFile = Local_View->currentItem()->text(0); + QString curFile = Remote_View->currentItem()->text(0); + if( curFile !="../") { InputDialog *fileDlg; fileDlg = new InputDialog(this,tr("Rename"),TRUE, 0); fileDlg->setInputText((const QString &)curFile); fileDlg->exec(); if( fileDlg->result() == 1 ) { QString oldname = currentRemoteDir.canonicalPath() + "/" + curFile; QString newName = currentRemoteDir.canonicalPath() + "/" + fileDlg->LineEdit1->text();//+".playlist"; if( rename(oldname.latin1(), newName.latin1())== -1) QMessageBox::message(tr("Note"),tr("Could not rename")); } populateRemoteView(); } +} void AdvancedFm::switchToLocalTab() { TabWidget->setCurrentPage(0); Local_View->setFocus(); } void AdvancedFm::switchToRemoteTab() @@ -1050,25 +1000,22 @@ void AdvancedFm::filePerms() { if( filePerm) delete filePerm; } if (TabWidget->currentPageIndex() == 0) { populateLocalView(); } else { populateRemoteView(); } - - } void AdvancedFm::doProperties() { QStringList curFileList = getPath(); QString filePath; if (TabWidget->currentPageIndex() == 0) { - filePath = currentDir.canonicalPath()+"/"; } else { filePath= currentRemoteDir.canonicalPath()+"/"; } // qDebug("%d",curFileList.count()); for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it ) { qDebug((filePath+*it)); DocLnk lnk( (filePath+*it)); @@ -1179,16 +1126,17 @@ void AdvancedFm::upDir() populateRemoteView(); update(); } } void AdvancedFm::copy() { QStringList curFileList = getPath(); + if( curFileList.count() > 0) { QString curFile; if (TabWidget->currentPageIndex() == 0) { for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it ) { QString destFile = currentRemoteDir.canonicalPath()+"/"+(*it); // if(destFile.right(1).find("/",0,TRUE) == -1) // destFile+="/"; // destFile +=(*it); @@ -1223,20 +1171,22 @@ void AdvancedFm::copy() qWarning("nothin doing"); } } populateLocalView(); TabWidget->setCurrentPage(0); } } +} void AdvancedFm::copyAs() { QStringList curFileList = getPath(); + if( curFileList.count() > 0) { QString curFile; InputDialog *fileDlg; fileDlg = new InputDialog(this,tr("Copy As"),TRUE, 0); if (TabWidget->currentPageIndex() == 0) { for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it ) { QString destFile; curFile = currentDir.canonicalPath()+"/"+(*it); @@ -1281,20 +1231,22 @@ void AdvancedFm::copyAs() } } } populateLocalView(); TabWidget->setCurrentPage(0); } } } +} void AdvancedFm::move() { QStringList curFileList = getPath(); + if( curFileList.count() > 0) { QString curFile; // qDebug(curFile); QString destFile; if (TabWidget->currentPageIndex() == 0) { for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it ) { QString destFile = currentRemoteDir.canonicalPath(); if(destFile.right(1).find("/",0,TRUE) == -1) @@ -1337,16 +1289,17 @@ void AdvancedFm::move() { } QFile::remove(curFile); TabWidget->setCurrentPage(0); } } populateRemoteView(); populateLocalView(); } + } bool AdvancedFm::copyFile( const QString & dest, const QString & src ) { char bf[ 50000 ]; int bytesRead; bool success = TRUE; struct stat status; @@ -1569,16 +1522,17 @@ void AdvancedFm::keyReleaseEvent( QKeyEvent *e) case Key_0: break; } } void AdvancedFm::mkSym() { QString cmd; QStringList curFileList = getPath(); + if( curFileList.count() > 0) { if (TabWidget->currentPageIndex() == 0) { for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it ) { QString destName = currentRemoteDir.canonicalPath()+"/"+(*it); if(destName.right(1) == "/") destName = destName.left( destName.length() -1); QString curFile = currentDir.canonicalPath()+"/"+(*it); if( curFile.right(1) == "/") curFile = curFile.left( curFile.length() -1); @@ -1599,16 +1553,17 @@ void AdvancedFm::mkSym() { cmd = "ln -s "+curFile+" "+destName; qDebug(cmd); system(cmd.latin1() ); } populateLocalView(); TabWidget->setCurrentPage(0); } } +} void AdvancedFm::QPEButtonPushed() { QString current = QPEApplication::qpeDir(); chdir( current.latin1() ); if (TabWidget->currentPageIndex() == 0) { currentDir.cd( current, TRUE); populateLocalView(); } else { @@ -1663,16 +1618,17 @@ QString AdvancedFm::getFileSystemType(const QString ¤tText) { void AdvancedFm::doBeam() { Ir ir; if(!ir.supported()){ } else { QStringList curFileList = getPath(); + if( curFileList.count() > 0) { if (TabWidget->currentPageIndex() == 0) { for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it ) { QString curFile = currentDir.canonicalPath()+"/"+(*it); if( curFile.right(1) == "/") curFile = curFile.left( curFile.length() -1); Ir *file = new Ir(this, "IR"); connect(file, SIGNAL(done(Ir*)), this, SLOT( fileBeamFinished( Ir * ))); @@ -1688,23 +1644,110 @@ void AdvancedFm::doBeam() { connect(file, SIGNAL(done(Ir*)), this, SLOT( fileBeamFinished( Ir * ))); file->send( curFile, curFile ); } } } } +} + void AdvancedFm::fileBeamFinished( Ir *ir) { QMessageBox::message( tr("Advancedfm Beam out"), tr("Ir sent.") ,tr("Ok") ); } // QList<QListViewItem> * getSelectedItems( QListView * Local_View ); // QListViewItemIterator it( Local_View ); // for ( ; it.current(); ++it ) { // if ( it.current()->isSelected() ) { // QString strItem = it.current()->text(0); // QString localFile = currentDir.canonicalPath()+"/"+strItem; // QFileInfo fi(localFile); // } // } + +void AdvancedFm::showFileMenu() { + QString curApp; + bool isLocalView = false; + if (TabWidget->currentPageIndex() == 0) { + isLocalView = TRUE; + curApp = Local_View->currentItem()->text(0); + } else { + curApp = Remote_View->currentItem()->text(0); + } + + MimeType mt( curApp ); + const AppLnk* app = mt.application(); + QFile fi(curApp); + + QPopupMenu m; + m.insertItem( tr( "Show Hidden Files" ), this, SLOT( showHidden() )); + m.insertSeparator(); + if ( QFileInfo(fi).isDir() ) { + m.insertItem( tr( "Change Directory" ), this, SLOT( doLocalCd() )); + } else { + + if ( app ) + m.insertItem( app->pixmap(), tr( "Open in " + app->name() ), this, SLOT( run() ) ); + else if( QFileInfo(fi).isExecutable() ) + m.insertItem( tr( "Execute" ), this, SLOT( run() ) ); + + m.insertItem( /*Resource::loadPixmap( "txt" ),*/ tr( "Open as text" ),this, SLOT( runText() ) ); + } + m.insertSeparator(); + + + if(isLocalView) + m.insertItem( tr( "Make Directory" ), this, SLOT( localMakDir() )); + else + m.insertItem( tr( "Make Directory" ), this, SLOT( remoteMakDir() )); + + m.insertItem( tr( "Make Symlink" ), this, SLOT( mkSym() )); + m.insertSeparator(); + + if(isLocalView) + m.insertItem( tr( "Rename" ), this, SLOT( localRename() )); + else + m.insertItem( tr( "Rename" ), this, SLOT( remoteRename() )); + + m.insertItem( tr( "Copy" ), this, SLOT( copy() )); + m.insertItem( tr( "Copy As" ), this, SLOT( copyAs() )); + m.insertItem( tr( "Move" ), this, SLOT( move() )); + m.insertSeparator(); + + if(isLocalView) + m.insertItem( tr( "Rescan" ), this, SLOT( populateLocalView() )); + else + m.insertItem( tr( "Rescan" ), this, SLOT( populateRemoteView() )); + + m.insertItem( tr( "Run Command" ), this, SLOT( runCommand() )); + m.insertItem( tr( "File Info" ), this, SLOT( fileStatus() )); + m.insertSeparator(); + + if(isLocalView) + m.insertItem( tr( "Delete" ), this, SLOT( localDelete() )); + else + m.insertItem( tr( "Delete" ), this, SLOT( remoteDelete() )); + + m.insertSeparator(); + m.insertItem( tr( "Set Permissions" ), this, SLOT( filePerms() )); + if( QFile(QPEApplication::qpeDir()+"lib/libopie.so").exists() ) //bad hack for Sharp zaurus failings + m.insertItem( tr( "Properties" ), this, SLOT( doProperties() )); + m.setCheckable(TRUE); + if (!b) + m.setItemChecked(m.idAt(0),TRUE); + else + m.setItemChecked(m.idAt(0),FALSE); + if(Ir::supported()) + m.insertItem( tr( "Beam File" ), this, SLOT( doBeam() )); + m.exec( QCursor::pos() ); +} + + +void AdvancedFm::cancelMenuTimer() +{ +qDebug("cancel menu timer"); + if( menuTimer.isActive() ) + menuTimer.stop(); +} diff --git a/noncore/apps/advancedfm/advancedfm.h b/noncore/apps/advancedfm/advancedfm.h index 5817fca..0cf94c6 100644 --- a/noncore/apps/advancedfm/advancedfm.h +++ b/noncore/apps/advancedfm/advancedfm.h @@ -7,24 +7,26 @@ * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * ***************************************************************************/ #ifndef ADVANCEDFM_H #define ADVANCEDFM_H +#include <qpe/ir.h> + #include <qvariant.h> #include <qdialog.h> #include <qmainwindow.h> +#include <qstringlist.h> #include <qdir.h> #include <qstring.h> #include <qpoint.h> -#include <qstringlist.h> -#include <qpe/ir.h> +#include <qtimer.h> class QVBoxLayout; class QHBoxLayout; class QGridLayout; class QComboBox; class QListView; class QListviewItem; class QLabel; @@ -34,16 +36,17 @@ class QTabWidget; class QWidget; class QPEToolBar; class QPEMenuBar; class QPopupMenu; class QFile; class QListViewItem; class QLineEdit; class QPushButton; +class Ir; class AdvancedFm : public QMainWindow { Q_OBJECT public: AdvancedFm(); ~AdvancedFm(); @@ -57,18 +60,16 @@ public: QDir currentDir, currentRemoteDir; QComboBox *currentPathCombo; QString filterStr; QListViewItem * item; bool b; QStringList fileSystemTypeList, fsList; int currentServerConfig; protected slots: - void showLocalMenu( QListViewItem *); - void showRemoteMenu( QListViewItem *); void doLocalCd(); void doRemoteCd(); // void copy(); void mkDir(); void del(); void rn(); void populateLocalView(); void populateRemoteView(); @@ -99,33 +100,38 @@ protected slots: QStringList getPath(); void mkSym(); void switchToLocalTab(); void switchToRemoteTab(); protected: QGridLayout *tabLayout, *tabLayout_2, *tabLayout_3; QStringList remoteDirPathStringList, localDirPathStringList; + void keyReleaseEvent( QKeyEvent *); QString getFileSystemType(const QString &); void parsetab(const QString &fileName); protected slots: + void showFileMenu(); + void cancelMenuTimer(); void homeButtonPushed(); void docButtonPushed(); void SDButtonPushed(); void CFButtonPushed(); void QPEButtonPushed(); void upDir(); void currentPathComboChanged(); void copy(); void copyAs(); void currentPathComboActivated(const QString &); void fillCombo(const QString &); bool copyFile( const QString & , const QString & ); void move(); void fileStatus(); void doAbout(); void doBeam(); - void fileBeamFinished( Ir *ir); + void fileBeamFinished( Ir *); +private: + QTimer menuTimer; }; #endif // ADVANCEDFM_H |