author | llornkcor <llornkcor> | 2002-04-28 21:59:34 (UTC) |
---|---|---|
committer | llornkcor <llornkcor> | 2002-04-28 21:59:34 (UTC) |
commit | 726d985ddb6a5c7eb25a48efdadb189eb38b9a2a (patch) (side-by-side diff) | |
tree | e92814b56ee706ccb1d95a0c2e86294aa79ab2c2 /noncore/apps/advancedfm | |
parent | d9a38221ea876cae8ef8b015968e14af75e202bb (diff) | |
download | opie-726d985ddb6a5c7eb25a48efdadb189eb38b9a2a.zip opie-726d985ddb6a5c7eb25a48efdadb189eb38b9a2a.tar.gz opie-726d985ddb6a5c7eb25a48efdadb189eb38b9a2a.tar.bz2 |
fixed multi symlink handling
-rw-r--r-- | noncore/apps/advancedfm/advancedfm.cpp | 149 |
1 files changed, 76 insertions, 73 deletions
diff --git a/noncore/apps/advancedfm/advancedfm.cpp b/noncore/apps/advancedfm/advancedfm.cpp index bd513c0..b5fcccf 100644 --- a/noncore/apps/advancedfm/advancedfm.cpp +++ b/noncore/apps/advancedfm/advancedfm.cpp @@ -310,29 +310,29 @@ void AdvancedFm::populateLocalView() // qDebug( fileL); } } if(fileL !="./" && fi->exists()) { item= new QListViewItem( Local_View, fileL, fileS , fileDate); if(isDir || fileL.find("/",0,TRUE) != -1) { if( !QDir( fi->filePath() ).isReadable()) pm = Resource::loadPixmap( "lockedfolder" ); else pm= Resource::loadPixmap( "folder" ); item->setPixmap( 0,pm ); } else { - if(fi->isExecutable()) { - pm = Resource::loadPixmap( "exec"); - item->setPixmap( 0,pm); - } - else if( !fi->isReadable() ) { +// if(fi->isExecutable()) { +// pm = Resource::loadPixmap( "exec"); +// item->setPixmap( 0,pm); +// } + if( !fi->isReadable() ) { pm = Resource::loadPixmap( "locked" ); item->setPixmap( 0,pm); } else { MimeType mt(fi->filePath()); pm=mt.pixmap(); //sets the correct pixmap for mimetype if(pm.isNull()) pm = Resource::loadPixmap( "UnknownDocument-14" ); item->setPixmap( 0,pm); } } @@ -426,29 +426,29 @@ void AdvancedFm::populateRemoteView() } if(fileL !="./" && fi->exists()) { item= new QListViewItem( Remote_View, fileL, fileS, fileDate); QPixmap pm; if(isDir || fileL.find("/",0,TRUE) != -1) { if( !QDir( fi->filePath() ).isReadable()) pm = Resource::loadPixmap( "lockedfolder" ); else pm= Resource::loadPixmap( "folder" ); item->setPixmap( 0,pm ); } else { - if(fi->isExecutable()) { - pm = Resource::loadPixmap( "exec"); - item->setPixmap( 0,pm); - } - else if( !fi->isReadable() ) { +// if(fi->isExecutable()) { +// pm = Resource::loadPixmap( "exec"); +// item->setPixmap( 0,pm); +// } + if( !fi->isReadable() ) { pm = Resource::loadPixmap( "locked" ); item->setPixmap( 0,pm); } else { MimeType mt(fi->filePath()); pm=mt.pixmap(); //sets the correct pixmap for mimetype if(pm.isNull()) pm = Resource::loadPixmap( "UnknownDocument-14" ); item->setPixmap( 0,pm); } } if( fileL.find("->",0,TRUE) != -1) { // overlay link image @@ -707,54 +707,54 @@ void AdvancedFm::showRemoteMenu(QListViewItem * item) m.setItemChecked(m.idAt(0),TRUE); else m.setItemChecked(m.idAt(0),FALSE); m.exec( QCursor::pos() ); } } void AdvancedFm::runThis() { // QFileInfo *fi; if (TabWidget->currentPageIndex() == 0) { QString curFile = Local_View->currentItem()->text(0); QFileInfo fileInfo( currentDir.canonicalPath()+"/"+curFile); - if(fileInfo.isExecutable()) { - QCopEnvelope e("QPE/System", "execute(QString)" ); - e << curFile; - } else { +// 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() ) { } else { nf.execute(); } - } +// } // MimeType mt( curFile); } else { QString curFile = Remote_View->currentItem()->text(0); QFileInfo fileInfo( currentRemoteDir.canonicalPath()+"/"+curFile); - if(fileInfo.isExecutable()) { - QCopEnvelope e("QPE/System", "execute(QString)" ); - e << curFile; - } else { +// if(fileInfo.isExecutable()) { +// 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() ) { } else { nf.execute(); } - } +// } // MimeType mt( curFile); } } void AdvancedFm::runText() { if (TabWidget->currentPageIndex() == 0) { QString curFile = Local_View->currentItem()->text(0); curFile = currentDir.canonicalPath()+"/"+curFile; QCopEnvelope e("QPE/Application/textedit", "setDocument(QString)" ); e << curFile; } else { QString curFile = Remote_View->currentItem()->text(0); @@ -1037,25 +1037,25 @@ QStringList AdvancedFm::getPath() { QListViewItemIterator it( Local_View ); for ( ; it.current(); ++it ) { if ( it.current()->isSelected() ) { strList << it.current()->text(0); } } return strList; } else { QList<QListViewItem> * getSelectedItems( QListView * Remote_View ); QListViewItemIterator it( Remote_View ); for ( ; it.current(); ++it ) { if ( it.current()->isSelected() ) { - strList << currentDir.canonicalPath()+"/"+ it.current()->text(0); + strList << it.current()->text(0); } } return strList; } return ""; } void AdvancedFm::homeButtonPushed() { QString current = QDir::homeDirPath(); chdir( current.latin1() ); if (TabWidget->currentPageIndex() == 0) { currentDir.cd( current, TRUE); @@ -1130,121 +1130,115 @@ void AdvancedFm::upDir() populateRemoteView(); update(); } } void AdvancedFm::copy() { QStringList curFileList = getPath(); QString curFile; 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) - destFile+="/"; - destFile +=(*it); - curFile = currentDir.canonicalPath(); - if(curFile.right(1).find("/",0,TRUE) == -1) - curFile +="/"; - curFile +=(*it); + QString destFile = currentRemoteDir.canonicalPath()+"/"+(*it); +// if(destFile.right(1).find("/",0,TRUE) == -1) +// destFile+="/"; +// destFile +=(*it); + + curFile = currentDir.canonicalPath()+"/"+(*it); +// if(curFile.right(1).find("/",0,TRUE) == -1) +// curFile +="/"; +// curFile +=(*it); + QFile f(destFile); if( f.exists()) f.remove(); - if(!copyFile(destFile, curFile) ) + if(!copyFile(destFile, curFile) ) { + QMessageBox::message("AdvancedFm","Could not copy\n"+curFile +"to\n"+destFile); qWarning("nothin doing"); + } } populateRemoteView(); TabWidget->setCurrentPage(1); } else { for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it ) { - QString destFile = currentDir.canonicalPath(); - if(destFile.right(1).find("/",0,TRUE) == -1) - destFile+="/"; - destFile +=(*it); - curFile = currentRemoteDir.canonicalPath(); - if(curFile.right(1).find("/",0,TRUE) == -1) - curFile +="/"; - curFile +=(*it); + QString destFile = currentDir.canonicalPath()+"/"+(*it); + curFile = currentRemoteDir.canonicalPath()+"/"+(*it); + QFile f(destFile); if( f.exists()) f.remove(); - if(!copyFile(destFile, curFile) ) - qWarning("nothin doing"); + if(!copyFile(destFile, curFile) ) { + QMessageBox::message("AdvancedFm","Could not copy\n"+curFile +"to\n"+destFile); + + qWarning("nothin doing"); + } } populateLocalView(); TabWidget->setCurrentPage(0); } } void AdvancedFm::copyAs() { QStringList curFileList = getPath(); 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(); - if(curFile.right(1).find("/",0,TRUE) == -1) - curFile +="/"; - curFile+=(*it); + curFile = currentDir.canonicalPath()+"/"+(*it); // InputDialog *fileDlg; // fileDlg = new InputDialog(this,tr("Copy As"),TRUE, 0); fileDlg->setInputText((const QString &) destFile ); fileDlg->exec(); if( fileDlg->result() == 1 ) { QString filename = fileDlg->LineEdit1->text(); - destFile = currentRemoteDir.canonicalPath(); - if(destFile.right(1).find("/",0,TRUE) == -1) - destFile+="/"; - destFile +=(*it); + destFile = currentRemoteDir.canonicalPath()+"/"+(*it); QFile f(destFile); if( f.exists()) f.remove(); - if(!copyFile(destFile, curFile) ) + if(!copyFile(destFile, curFile) ) { + QMessageBox::message("AdvancedFm","Could not copy\n"+curFile +"to\n"+destFile); qWarning("nothin doing"); + } } } populateRemoteView(); TabWidget->setCurrentPage(1); } else { if (TabWidget->currentPageIndex() == 0) { for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it ) { - curFile = currentDir.canonicalPath(); - if(curFile.right(1).find("/",0,TRUE) == -1) - curFile +="/"; - curFile+=(*it); + curFile = currentDir.canonicalPath()+"/"+(*it); QString destFile; fileDlg->setInputText((const QString &) destFile); fileDlg->exec(); if( fileDlg->result() == 1 ) { QString filename = fileDlg->LineEdit1->text(); - destFile = currentDir.canonicalPath(); - if(destFile.right(1).find("/",0,TRUE) == -1) - destFile+="/"; - destFile +=(*it); + destFile = currentDir.canonicalPath()+"/"+(*it); QFile f(destFile); if( f.exists()) f.remove(); - if(!copyFile(destFile, curFile) ) - qWarning("nothin doing"); + if(!copyFile(destFile, curFile) ) { + QMessageBox::message("AdvancedFm","Could not copy\n"+curFile +"to\n"+destFile); + qWarning("nothin doing"); + } } } populateLocalView(); TabWidget->setCurrentPage(0); } } } void AdvancedFm::move() { QStringList curFileList = getPath(); QString curFile; @@ -1525,40 +1519,49 @@ void AdvancedFm::keyReleaseEvent( QKeyEvent *e) break; case Key_0: break; } } void AdvancedFm::mkSym() { QString cmd; + QStringList curFileList = getPath(); + if (TabWidget->currentPageIndex() == 0) { - QString curFile = Local_View->currentItem()->text(0); - if(curFile.right(1) == "/") curFile = curFile.left(curFile.length() - 1); - QString destName = currentRemoteDir.canonicalPath()+"/"+curFile; - curFile = currentDir.canonicalPath()+"/"+curFile; - cmd = "ln -s "+curFile+" "+destName; - system(cmd.latin1() ); - populateRemoteView(); + for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it ) { + + QString destName = currentRemoteDir.canonicalPath()+"/"+(*it); + QString curFile = currentDir.canonicalPath()+"/"+(*it); + cmd = "ln -s "+curFile+" "+destName; + qDebug(cmd); + system(cmd.latin1() ); + } + populateRemoteView(); + TabWidget->setCurrentPage(1); } else { - QString curFile = Remote_View->currentItem()->text(0); - if(curFile.right(1) == "/") curFile = curFile.left(curFile.length() - 1); - QString destName = currentDir.canonicalPath()+"/"+curFile; - curFile = currentRemoteDir.canonicalPath()+"/"+curFile; - cmd = "ln -s "+curFile+" "+destName; - system(cmd.latin1() ); - populateLocalView(); + for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it ) { + + QString destName = currentDir.canonicalPath()+"/"+(*it); + QString curFile = currentRemoteDir.canonicalPath()+"/"+(*it); + + 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 { currentRemoteDir.cd( current, TRUE); populateRemoteView(); |