summaryrefslogtreecommitdiff
Side-by-side diff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/apps/advancedfm/advancedfm.cpp609
-rw-r--r--noncore/apps/advancedfm/advancedfm.h16
2 files changed, 337 insertions, 288 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
@@ -73,2 +73,3 @@ AdvancedFm::AdvancedFm( )
setCaption( tr( "AdvancedFm" ) );
+// menuTimer( this );
@@ -146,4 +147,21 @@ AdvancedFm::AdvancedFm( )
+
+ 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);
@@ -167,2 +185,4 @@ AdvancedFm::AdvancedFm( )
+
+
tabLayout->addWidget( Local_View, 0, 0 );
@@ -173,2 +193,3 @@ AdvancedFm::AdvancedFm( )
this,SLOT( localListPressed(int, QListViewItem *, const QPoint&, int)) );
+ connect( Local_View, SIGNAL( selectionChanged() ), SLOT( cancelMenuTimer() ) );
@@ -197,2 +218,3 @@ AdvancedFm::AdvancedFm( )
this,SLOT( remoteListPressed(int, QListViewItem *, const QPoint&, int)) );
+ connect( Remote_View, SIGNAL( selectionChanged() ), SLOT( cancelMenuTimer() ) );
@@ -223,16 +245,2 @@ AdvancedFm::AdvancedFm( )
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);
@@ -240,2 +248,5 @@ AdvancedFm::AdvancedFm( )
b=FALSE;
+
+ connect( &menuTimer, SIGNAL( timeout() ), SLOT( showFileMenu() ) );
+
populateLocalView();
@@ -538,6 +549,6 @@ void AdvancedFm::localListClicked(QListViewItem *selectedItem)
if( QFile::exists(strItem ) ) {
- qDebug("clicked item "+strItem);
- DocLnk doc( strItem, FALSE );
- doc.execute();
- // Local_View->clearSelection();
+ qDebug("clicked item "+strItem);
+ DocLnk doc( strItem, FALSE );
+ doc.execute();
+ // Local_View->clearSelection();
}
@@ -579,6 +590,6 @@ void AdvancedFm::remoteListClicked(QListViewItem *selectedItem)
if( QFile::exists(strItem ) ) {
- qDebug("clicked item "+strItem);
- DocLnk doc( strItem, FALSE );
- doc.execute();
- // Remote_View->clearSelection();
+ qDebug("clicked item "+strItem);
+ DocLnk doc( strItem, FALSE );
+ doc.execute();
+ // Remote_View->clearSelection();
}
@@ -639,10 +650,9 @@ void AdvancedFm::localListPressed( int mouse, QListViewItem *item, const QPoint
{
- switch (mouse) {
- case 1:
- break;
- case 2:
- showLocalMenu(item);
- Local_View->clearSelection();
- break;
- };
+ switch (mouse) {
+ case 1:
+ break;
+ case 2:
+ menuTimer.start( 500, TRUE );
+ break;
+ };
}
@@ -651,88 +661,10 @@ void AdvancedFm::remoteListPressed( int mouse, QListViewItem *item, const QPoint
{
- switch (mouse) {
- case 1:
- break;
- case 2:
- showRemoteMenu(item);
- Remote_View->clearSelection();
- 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() );
- }
+ switch (mouse) {
+ case 1:
+ break;
+ case 2:
+ menuTimer.start( 500, TRUE );
+ break;
+ };
}
@@ -741,26 +673,28 @@ void AdvancedFm::runThis() {
// QFileInfo *fi;
-QString fs;
+ QString fs;
if (TabWidget->currentPageIndex() == 0) {
QString curFile = Local_View->currentItem()->text(0);
-
- 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") ) {
+ 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") ) {
// if( fileInfo.isExecutable() |
- QCopEnvelope e("QPE/System", "execute(QString)" );
- e << curFile;
- } else {
- curFile = currentDir.canonicalPath()+"/"+curFile;
- DocLnk nf(curFile);
- QString execStr = nf.exec();
- qDebug( execStr);
- if( execStr.isEmpty() ) {
+ QCopEnvelope e("QPE/System", "execute(QString)" );
+ e << curFile;
} else {
- nf.execute();
+ curFile = currentDir.canonicalPath()+"/"+curFile;
+ DocLnk nf(curFile);
+ QString execStr = nf.exec();
+ qDebug( execStr);
+ if( execStr.isEmpty() ) {
+ } else {
+ nf.execute();
+ }
}
- }
+ }
// MimeType mt( curFile);
@@ -768,21 +702,24 @@ QString fs;
QString curFile = Remote_View->currentItem()->text(0);
- 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)" );
- e << curFile;
- } else {
- curFile = currentRemoteDir.canonicalPath()+"/"+curFile;
- DocLnk nf(curFile);
- QString execStr = nf.exec();
- qDebug(execStr);
- if( execStr.isEmpty() ) {
+ 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)" );
+ e << curFile;
} else {
- nf.execute();
+ curFile = currentRemoteDir.canonicalPath()+"/"+curFile;
+ DocLnk nf(curFile);
+ QString execStr = nf.exec();
+ qDebug(execStr);
+ if( execStr.isEmpty() ) {
+ } else {
+ nf.execute();
+ }
}
- }
+ }
// MimeType mt( curFile);
@@ -794,2 +731,3 @@ void AdvancedFm::runText() {
QString curFile = Local_View->currentItem()->text(0);
+ if(curFile != "../") {
curFile = currentDir.canonicalPath()+"/"+curFile;
@@ -797,4 +735,6 @@ void AdvancedFm::runText() {
e << curFile;
+ }
} else {
QString curFile = Remote_View->currentItem()->text(0);
+ if(curFile != "../") {
curFile = currentRemoteDir.canonicalPath()+"/"+curFile;
@@ -803,2 +743,3 @@ void AdvancedFm::runText() {
e << curFile;
+ }
}
@@ -833,43 +774,45 @@ void AdvancedFm::localDelete()
QStringList curFileList = getPath();
- 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)
- f+="/";
- f+=myFile;
- if(QDir(f).exists() && !QFileInfo(f).isSymLink() ) {
- switch ( QMessageBox::warning(this,tr("Delete"),tr("Do you really want to delete\n")+f+
- "\nand all it's contents ?"
- ,tr("Yes"),tr("No"),0,0,1) ) {
- case 0: {
- f=f.left(f.length()-1);
- QString cmd="rm -rf "+f;
- system( cmd.latin1());
- populateLocalView();
- }
- break;
- case 1:
- // exit
- break;
- };
+ 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)
+ f+="/";
+ f+=myFile;
+ if(QDir(f).exists() && !QFileInfo(f).isSymLink() ) {
+ switch ( QMessageBox::warning(this,tr("Delete"),tr("Do you really want to delete\n")+f+
+ "\nand all it's contents ?"
+ ,tr("Yes"),tr("No"),0,0,1) ) {
+ case 0: {
+ f=f.left(f.length()-1);
+ QString cmd="rm -rf "+f;
+ system( cmd.latin1());
+ populateLocalView();
+ }
+ break;
+ case 1:
+ // exit
+ break;
+ };
- } else {
- switch ( QMessageBox::warning(this,tr("Delete"),tr("Do you really want to delete\n")+f
- +" ?",tr("Yes"),tr("No"),0,0,1) ) {
- case 0: {
- QString cmd="rm "+f;
- QFile file(f);
- file.remove();
+ } else {
+ switch ( QMessageBox::warning(this,tr("Delete"),tr("Do you really want to delete\n")+f
+ +" ?",tr("Yes"),tr("No"),0,0,1) ) {
+ case 0: {
+ QString cmd="rm "+f;
+ QFile file(f);
+ file.remove();
// system( cmd.latin1());
- populateLocalView();
- }
- break;
- case 1:
- // exit
- break;
- };
+ populateLocalView();
+ }
+ break;
+ case 1:
+ // exit
+ break;
+ };
+ }
}
@@ -881,43 +824,45 @@ void AdvancedFm::remoteDelete()
QStringList curFileList = getPath();
- QString myFile;
+ 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)
- f+="/";
- f+=myFile;
- if(QDir(f).exists() && !QFileInfo(f).isSymLink() ) {
- switch ( QMessageBox::warning(this,tr("Delete"),tr("Do you really want to delete\n")+f+
- "\nand all it's contents ?",
- tr("Yes"),tr("No"),0,0,1) ) {
- case 0: {
- f=f.left(f.length()-1);
- QString cmd="rm -rf "+f;
- system( cmd.latin1());
- populateRemoteView();
- }
- break;
- case 1:
- // exit
- break;
- };
+ 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)
+ f+="/";
+ f+=myFile;
+ if(QDir(f).exists() && !QFileInfo(f).isSymLink() ) {
+ switch ( QMessageBox::warning(this,tr("Delete"),tr("Do you really want to delete\n")+f+
+ "\nand all it's contents ?",
+ tr("Yes"),tr("No"),0,0,1) ) {
+ case 0: {
+ f=f.left(f.length()-1);
+ QString cmd="rm -rf "+f;
+ system( cmd.latin1());
+ populateRemoteView();
+ }
+ break;
+ case 1:
+ // exit
+ break;
+ };
- } else {
- switch ( QMessageBox::warning(this,tr("Delete"),tr("Do you really want to delete\n")+f
- +" ?",tr("Yes"),tr("No"),0,0,1) ) {
- case 0: {
- QString cmd="rm "+f;
- QFile file(f);
- file.remove();
+ } else {
+ switch ( QMessageBox::warning(this,tr("Delete"),tr("Do you really want to delete\n")+f
+ +" ?",tr("Yes"),tr("No"),0,0,1) ) {
+ case 0: {
+ QString cmd="rm "+f;
+ QFile file(f);
+ file.remove();
// system( cmd.latin1());
- populateRemoteView();
- }
- break;
- case 1:
- // exit
- break;
- };
+ populateRemoteView();
+ }
+ break;
+ case 1:
+ // exit
+ break;
+ };
+ }
}
@@ -929,13 +874,16 @@ void AdvancedFm::localRename()
QString curFile = Local_View->currentItem()->text(0);
- 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();
+ 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();
+ }
}
@@ -943,15 +891,17 @@ void AdvancedFm::localRename()
void AdvancedFm::remoteRename()
-{
- QString curFile = Local_View->currentItem()->text(0);
- 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();
+ {
+ 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();
+ }
}
@@ -1057,4 +1007,2 @@ void AdvancedFm::filePerms() {
}
-
-
}
@@ -1065,3 +1013,2 @@ void AdvancedFm::doProperties() {
if (TabWidget->currentPageIndex() == 0) {
-
filePath = currentDir.canonicalPath()+"/";
@@ -1186,2 +1133,3 @@ void AdvancedFm::copy()
QStringList curFileList = getPath();
+ if( curFileList.count() > 0) {
QString curFile;
@@ -1230,2 +1178,3 @@ void AdvancedFm::copy()
}
+}
@@ -1234,2 +1183,3 @@ void AdvancedFm::copyAs()
QStringList curFileList = getPath();
+ if( curFileList.count() > 0) {
QString curFile;
@@ -1286,3 +1236,4 @@ void AdvancedFm::copyAs()
}
- }
+ }
+}
}
@@ -1292,2 +1243,3 @@ void AdvancedFm::move() {
QStringList curFileList = getPath();
+ if( curFileList.count() > 0) {
QString curFile;
@@ -1343,2 +1295,3 @@ void AdvancedFm::move() {
populateLocalView();
+}
}
@@ -1576,2 +1529,3 @@ void AdvancedFm::mkSym() {
QStringList curFileList = getPath();
+ if( curFileList.count() > 0) {
@@ -1588,4 +1542,4 @@ void AdvancedFm::mkSym() {
}
- populateRemoteView();
- TabWidget->setCurrentPage(1);
+ populateRemoteView();
+ TabWidget->setCurrentPage(1);
} else {
@@ -1602,6 +1556,7 @@ void AdvancedFm::mkSym() {
}
- populateLocalView();
- TabWidget->setCurrentPage(0);
+ populateLocalView();
+ TabWidget->setCurrentPage(0);
}
}
+}
@@ -1665,30 +1620,33 @@ QString AdvancedFm::getFileSystemType(const QString &currentText) {
void AdvancedFm::doBeam() {
- Ir ir;
- if(!ir.supported()){
- } else {
+ Ir ir;
+ if(!ir.supported()){
+ } else {
- QStringList curFileList = getPath();
+ QStringList curFileList = getPath();
+ if( curFileList.count() > 0) {
- if (TabWidget->currentPageIndex() == 0) {
- for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it ) {
+ 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 * )));
+ file->send( curFile, curFile );
+ }
- 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 * )));
- file->send( curFile, curFile );
- }
+ } else {
+ for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it ) {
- } else {
- for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it ) {
+ QString curFile = currentRemoteDir.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 * )));
+ file->send( curFile, curFile );
- QString curFile = currentRemoteDir.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 * )));
- file->send( curFile, curFile );
+ }
+ }
+ }
+}
- }
- }
- }
}
@@ -1710 +1668,86 @@ void AdvancedFm::fileBeamFinished( Ir *ir) {
// }
+
+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
@@ -14,2 +14,4 @@
+#include <qpe/ir.h>
+
#include <qvariant.h>
@@ -17,2 +19,3 @@
#include <qmainwindow.h>
+#include <qstringlist.h>
#include <qdir.h>
@@ -20,4 +23,3 @@
#include <qpoint.h>
-#include <qstringlist.h>
-#include <qpe/ir.h>
+#include <qtimer.h>
@@ -41,2 +43,3 @@ class QLineEdit;
class QPushButton;
+class Ir;
@@ -64,4 +67,2 @@ public:
protected slots:
- void showLocalMenu( QListViewItem *);
- void showRemoteMenu( QListViewItem *);
void doLocalCd();
@@ -106,2 +107,3 @@ protected:
QStringList remoteDirPathStringList, localDirPathStringList;
+
void keyReleaseEvent( QKeyEvent *);
@@ -111,2 +113,4 @@ protected:
protected slots:
+ void showFileMenu();
+ void cancelMenuTimer();
void homeButtonPushed();
@@ -127,3 +131,5 @@ protected slots:
void doBeam();
- void fileBeamFinished( Ir *ir);
+ void fileBeamFinished( Ir *);
+private:
+ QTimer menuTimer;
};