summaryrefslogtreecommitdiff
path: root/noncore
authorllornkcor <llornkcor>2002-04-27 22:47:48 (UTC)
committer llornkcor <llornkcor>2002-04-27 22:47:48 (UTC)
commit8e3c0aa915801b862f97ba7a7598ef5f3bd350aa (patch) (side-by-side diff)
tree6fed799512ebdcd4c78a56097c49d354de648690 /noncore
parent392596c06dedf8ddaea7c55745460e631073d15a (diff)
downloadopie-8e3c0aa915801b862f97ba7a7598ef5f3bd350aa.zip
opie-8e3c0aa915801b862f97ba7a7598ef5f3bd350aa.tar.gz
opie-8e3c0aa915801b862f97ba7a7598ef5f3bd350aa.tar.bz2
fixed some bugs, added multi select, added symlink handling and keyboard shortcuts, but listview steals the event to move selection according to alpha. delete works
Diffstat (limited to 'noncore') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/apps/advancedfm/advancedfm.cpp591
-rw-r--r--noncore/apps/advancedfm/advancedfm.h8
2 files changed, 393 insertions, 206 deletions
diff --git a/noncore/apps/advancedfm/advancedfm.cpp b/noncore/apps/advancedfm/advancedfm.cpp
index 5f47b9b..bb932c5 100644
--- a/noncore/apps/advancedfm/advancedfm.cpp
+++ b/noncore/apps/advancedfm/advancedfm.cpp
@@ -147,15 +147,16 @@ AdvancedFm::AdvancedFm( )
Local_View->addColumn( tr("File"),130);
Local_View->addColumn( tr("Size"),-1);
Local_View->setColumnAlignment(1,QListView::AlignRight);
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);
+ 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)),
@@ -172,15 +173,16 @@ AdvancedFm::AdvancedFm( )
Remote_View->addColumn( tr("File"),130);
Remote_View->addColumn( tr("Size"),-1);
Remote_View->setColumnAlignment(1,QListView::AlignRight);
Remote_View->addColumn( tr("Date"),-1);
Remote_View->setColumnAlignment(2,QListView::AlignRight);
Remote_View->setAllColumnsShowFocus(TRUE);
-// Remote_View->setMultiSelection( TRUE );
-// Remote_View->setSelectionMode(QListView::Extended);
- QPEApplication::setStylusOperation( Remote_View->viewport(),QPEApplication::RightOnHold);
+ Remote_View->setMultiSelection( TRUE );
+ 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)) );
@@ -366,12 +368,13 @@ void AdvancedFm::populateLocalView()
}
Local_View->setSorting( 3,FALSE);
fillCombo( (const QString &) currentDir.canonicalPath());
}
+
void AdvancedFm::populateRemoteView()
{
// QList<QListViewItem> * getSelectedItems( QListView * Local_View );
// QListViewItemIterator it( Remote_View );
// for ( ; it.current(); ++it ) {
// if ( it.current()->isSelected() ) {
@@ -561,23 +564,26 @@ void AdvancedFm::doRemoteCd()
}
void AdvancedFm::showHidden()
{
if (b) {
currentDir.setFilter( QDir::Files | QDir::Dirs | QDir::Hidden | QDir::All);
+ fileMenu->setItemChecked( fileMenu->idAt(0),TRUE);
// localMenu->setItemChecked(localMenu->idAt(0),TRUE);
// currentDir.setSorting(/* QDir::Size*/ /*| QDir::Reversed | */QDir::DirsFirst);
- b=TRUE;
+ b=FALSE;
} else {
currentDir.setFilter( QDir::Files | QDir::Dirs/* | QDir::Hidden*/ | QDir::All);
+ fileMenu->setItemChecked( fileMenu->idAt(0),FALSE);
// localMenu->setItemChecked(localMenu->idAt(0),FALSE);
// currentDir.setSorting(/* QDir::Size*/ /*| QDir::Reversed | */QDir::DirsFirst);
- b=FALSE;
+ b=TRUE;
}
populateLocalView();
+
}
void AdvancedFm::showRemoteHidden()
{
if (b) {
currentRemoteDir.setFilter( QDir::Files | QDir::Dirs | QDir::Hidden | QDir::All);
@@ -618,72 +624,76 @@ void AdvancedFm::remoteListPressed( int mouse, QListViewItem *item, const QPoint
};
}
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" ), this, SLOT( runThis() ));
- m.insertItem( tr( "Open as Text" ), this, SLOT( runText() ));
- m.insertItem( tr( "Make Directory" ), this, SLOT( localMakDir() ));
- 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( "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() ));
- 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);
- m.exec( QCursor::pos() );
+ 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" ), 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( "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() ));
+ 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);
+ 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" ), this, SLOT( runThis() ));
- m.insertItem( tr( "Open as Text" ), this, SLOT( runText() ));
- m.insertItem( tr( "Make Directory" ), this, SLOT( remoteMakDir() ));
- 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( "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() ));
- 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);
- m.exec( QCursor::pos() );
+ 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" ), 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( "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() ));
+ 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);
+ m.exec( QCursor::pos() );
}
}
void AdvancedFm::runThis() {
// QFileInfo *fi;
if (TabWidget->currentPageIndex() == 0) {
@@ -749,77 +759,94 @@ void AdvancedFm::remoteMakDir()
}
populateRemoteView();
}
void AdvancedFm::localDelete()
{
- QString f = Local_View->currentItem()->text(0);
- if(QDir(f).exists() ) {
- switch ( QMessageBox::warning(this,tr("Delete"),tr("Do you really want to delete\n")+f+
- tr(" ?\nIt must be empty"),tr("Yes"),tr("No"),0,0,1) ) {
- case 0: {
- f=currentDir.canonicalPath()+"/"+f;
- QString cmd="rmdir "+f;
- system( cmd.latin1());
- populateLocalView();
- }
- break;
- case 1:
- // exit
- break;
- };
+ 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()+"/"+myFile;
+ if(QDir(f).exists() && !QFileInfo(f).isSymLink() ) {
+ 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="rmdir -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: {
- f=currentDir.canonicalPath()+"/"+f;
- QString cmd="rm "+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();
+// system( cmd.latin1());
+ populateLocalView();
+ }
+ break;
+ case 1:
+ // exit
+ break;
+ };
+ }
+
}
}
void AdvancedFm::remoteDelete()
{
- QString f = Remote_View->currentItem()->text(0);
- if(QDir(f).exists() ) {
- switch ( QMessageBox::warning(this,tr("Delete"),tr("Do you really want to delete\n")+f+
- tr(" ?\nIt must be empty"),tr("Yes"),tr("No"),0,0,1) ) {
- case 0: {
- f = currentRemoteDir.canonicalPath()+"/"+f;
- QString cmd="rmdir "+f;
- system( cmd.latin1());
- populateRemoteView();
- }
- break;
- case 1:
- // exit
- break;
- };
+ 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 = currentRemoteDir.canonicalPath()+"/"+myFile;
+ if(QDir(f).exists() && !QFileInfo(f).isSymLink() ) {
+ 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="rmdir -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: {
- f = currentRemoteDir.canonicalPath()+"/"+f;
- QString cmd="rm "+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();
+// system( cmd.latin1());
+ populateRemoteView();
+ }
+ break;
+ case 1:
+ // exit
+ break;
+ };
+ }
}
}
void AdvancedFm::localRename()
{
QString curFile = Local_View->currentItem()->text(0);
@@ -852,17 +879,19 @@ void AdvancedFm::remoteRename()
populateRemoteView();
}
void AdvancedFm::switchToLocalTab()
{
TabWidget->setCurrentPage(0);
+ Local_View->setFocus();
}
void AdvancedFm::switchToRemoteTab()
{
TabWidget->setCurrentPage(1);
+ Remote_View->setFocus();
}
void AdvancedFm::readConfig()
{
Config cfg("AdvancedFm");
}
@@ -923,36 +952,71 @@ void AdvancedFm::currentPathComboActivated(const QString & currentPath) {
populateRemoteView();
update();
}
}
void AdvancedFm::filePerms() {
- QString curFile = getPath();
- filePermissions *filePerm;
- filePerm = new filePermissions(this, "Permissions",true,0,(const QString &)(curFile));
- filePerm->showMaximized();
- filePerm->exec();
- if( filePerm)
- delete filePerm;
+
+ QStringList curFileList = getPath();
+ QString filePath;
+
+ if (TabWidget->currentPageIndex() == 0) {
+ filePath = currentDir.canonicalPath()+"/";
+ } else {
+ filePath= currentRemoteDir.canonicalPath()+"/";
+ }
+
+ for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it ) {
+ filePermissions *filePerm;
+ filePerm = new filePermissions(this, "Permissions",true,0,(const QString &)(filePath+*it));
+ filePerm->showMaximized();
+ filePerm->exec();
+ if( filePerm)
+ delete filePerm;
+ }
}
void AdvancedFm::doProperties() {
-
- DocLnk lnk( getPath());
- LnkProperties prop( &lnk );
+ QStringList curFileList = getPath();
+ QString filePath;
+ if (TabWidget->currentPageIndex() == 0) {
+ filePath = currentDir.canonicalPath()+"/";
+ } else {
+ filePath= currentRemoteDir.canonicalPath()+"/";
+ }
+ for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it ) {
+ DocLnk lnk( (filePath+*it));
+ LnkProperties prop( &lnk );
// connect(&prop, SIGNAL(select(const AppLnk *)), this, SLOT(externalSelected(const AppLnk *)));
- prop.showMaximized();
- prop.exec();
+ prop.showMaximized();
+ prop.exec();
+ }
}
-QString AdvancedFm::getPath() {
+QStringList AdvancedFm::getPath() {
+ QStringList strList;
if (TabWidget->currentPageIndex() == 0) {
- return currentDir.canonicalPath()+"/"+ Local_View->currentItem()->text(0);
+ QList<QListViewItem> * getSelectedItems( QListView * Local_View );
+ QListViewItemIterator it( Local_View );
+ for ( ; it.current(); ++it ) {
+ if ( it.current()->isSelected() ) {
+ strList << it.current()->text(0);
+ }
+ }
+ return strList;
} else {
- return currentRemoteDir.canonicalPath() + "/"+Remote_View->currentItem()->text(0);
+ 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);
+ }
+ }
+ return strList;
}
+ return "";
}
void AdvancedFm::homeButtonPushed() {
QString current = QDir::homeDirPath();
chdir( current.latin1() );
if (TabWidget->currentPageIndex() == 0) {
@@ -1029,112 +1093,143 @@ void AdvancedFm::upDir()
update();
}
}
void AdvancedFm::copy()
{
- QString curFile = getPath();
+ QStringList curFileList = getPath();
+ QString curFile;
if (TabWidget->currentPageIndex() == 0) {
- QString destFile = currentRemoteDir.canonicalPath()+"/"+Local_View->currentItem()->text(0);
- QFile f(destFile);
- if( f.exists())
- f.remove();
- if(!copyFile(destFile, curFile) )
- qWarning("nothin doing");
+ for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it ) {
+
+ QString destFile = currentRemoteDir.canonicalPath()+"/"+(*it);
+ curFile = currentDir.canonicalPath()+"/"+(*it);
+ QFile f(destFile);
+ if( f.exists())
+ f.remove();
+ if(!copyFile(destFile, curFile) )
+ qWarning("nothin doing");
+ }
populateRemoteView();
TabWidget->setCurrentPage(1);
+
} else {
- QString destFile = currentDir.canonicalPath()+"/"+Remote_View->currentItem()->text(0);
- QFile f(destFile);
- if( f.exists())
- f.remove();
- if(!copyFile(destFile, curFile) )
- qWarning("nothin doing");
+ for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++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");
+ }
populateLocalView();
TabWidget->setCurrentPage(0);
}
}
void AdvancedFm::copyAs()
{
- QString curFile = getPath();
+ QStringList curFileList = getPath();
+ QString curFile;
+ InputDialog *fileDlg;
+ fileDlg = new InputDialog(this,tr("Copy As"),TRUE, 0);
+
if (TabWidget->currentPageIndex() == 0) {
- QString destFile = Local_View->currentItem()->text(0);
- 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()+"/"+destFile;
-
- QFile f(destFile);
- if( f.exists())
- f.remove();
- if(!copyFile(destFile, curFile) )
- qWarning("nothin doing");
+ for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it ) {
+ QString destFile = *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()+"/"+destFile;
+
+ QFile f(destFile);
+ if( f.exists())
+ f.remove();
+ if(!copyFile(destFile, curFile) )
+ qWarning("nothin doing");
+ }
}
+
populateRemoteView();
TabWidget->setCurrentPage(1);
} else {
- QString destFile = Remote_View->currentItem()->text(0);
- 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 = currentDir.canonicalPath()+"/"+destFile;
-
- QFile f(destFile);
- if( f.exists())
- f.remove();
- if(!copyFile(destFile, curFile) )
- qWarning("nothin doing");
+ if (TabWidget->currentPageIndex() == 0) {
+ for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it ) {
+
+ curFile = currentDir.canonicalPath()+"/"+(*it);
+ QString destFile = *it;
+ fileDlg->setInputText((const QString &) destFile);
+ fileDlg->exec();
+ if( fileDlg->result() == 1 ) {
+ QString filename = fileDlg->LineEdit1->text();
+ destFile = currentDir.canonicalPath()+"/"+destFile;
+
+ QFile f(destFile);
+ if( f.exists())
+ f.remove();
+ if(!copyFile(destFile, curFile) )
+ qWarning("nothin doing");
+ }
+ }
+ populateLocalView();
+ TabWidget->setCurrentPage(0);
}
- populateLocalView();
- TabWidget->setCurrentPage(0);
}
}
void AdvancedFm::move() {
- QString curFile = getPath();
+
+ QStringList curFileList = getPath();
+ QString curFile;
// qDebug(curFile);
QString destFile;
+
if (TabWidget->currentPageIndex() == 0) {
- QString destFile = currentRemoteDir.canonicalPath() + "/" + Local_View->currentItem()->text(0);
- qDebug("Destination file is "+destFile);
-
- QFile f(destFile);
- if( f.exists())
- f.remove();
- if(!copyFile( destFile, curFile) ) {
- QMessageBox::message(tr("Note"),tr("Could not move\n"+curFile));
- return;
+ for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it ) {
+ QString destFile = currentRemoteDir.canonicalPath() + "/" + *it;
+ curFile = currentDir.canonicalPath()+"/"+(*it);
+ qDebug("Destination file is "+destFile);
+
+ QFile f(destFile);
+ if( f.exists())
+ f.remove();
+ if(!copyFile( destFile, curFile) ) {
+ QMessageBox::message(tr("Note"),tr("Could not move\n"+curFile));
+ return;
+ }
+ QFile::remove(curFile);
}
- QFile::remove(curFile);
TabWidget->setCurrentPage(1);
} else {
- QString destFile = currentDir.canonicalPath() + "/" + Remote_View->currentItem()->text(0);
- qDebug("Destination file is "+destFile);
-
- QFile f(destFile);
- if( f.exists())
- f.remove();
- if(!copyFile(destFile, curFile) ) {
- QMessageBox::message(tr("Note"),tr("Could not move\n"+curFile));
- return;
+ for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it ) {
+ QString destFile = currentRemoteDir.canonicalPath() + "/" + *it;
+ qDebug("Destination file is "+destFile);
+ curFile = currentDir.canonicalPath()+"/"+(*it);
+
+ QFile f(destFile);
+ if( f.exists())
+ f.remove();
+ if(!copyFile(destFile, curFile) ) {
+ QMessageBox::message(tr("Note"),tr("Could not move\n"+curFile));
+ return;
+ }
+ QFile::remove(curFile);
+ TabWidget->setCurrentPage(0);
}
- QFile::remove(curFile);
- TabWidget->setCurrentPage(0);
}
populateRemoteView();
populateLocalView();
-}
+ }
-bool AdvancedFm::copyFile( const QString & dest, const QString & src )
+ bool AdvancedFm::copyFile( const QString & dest, const QString & src )
{
char bf[ 50000 ];
int bytesRead;
bool success = TRUE;
struct stat status;
@@ -1290,6 +1385,96 @@ void AdvancedFm::del() {
void AdvancedFm::doAbout() {
QMessageBox::message("AdvancedFm","Advanced FileManager\n"
"is copyright 2002 by\n"
"L.J.Potter<llornkcor@handhelds.org>\n"
"and is licensed by the GPL");
}
+
+void AdvancedFm::keyReleaseEvent( QKeyEvent *e)
+{
+ switch ( e->key() ) {
+ case Key_Delete:
+ del();
+ break;
+ case Key_H:
+ showHidden();
+ break;
+ case Key_E:
+ runThis();
+ break;
+ case Key_C:
+ copy();
+ break;
+ case Key_A:
+ copyAs();
+ break;
+ case Key_M:
+ move();
+ break;
+ case Key_R:
+ rn();
+ break;
+ case Key_I:
+ fileStatus();
+ break;
+ case Key_U:
+ upDir();
+ break;
+ case Key_P:
+ filePerms();
+ break;
+ case Key_N:
+ mkDir();
+ break;
+ case Key_1:
+ switchToLocalTab();
+ break;
+ case Key_2:
+ switchToRemoteTab();
+ break;
+ case Key_3:
+ CFButtonPushed();
+ break;
+ case Key_4:
+ SDButtonPushed();
+ break;
+ case Key_5:
+ homeButtonPushed();
+ break;
+ case Key_6:
+ docButtonPushed();
+ break;
+ case Key_7:
+ break;
+ case Key_8:
+ break;
+ case Key_9:
+ break;
+ case Key_0:
+ break;
+
+
+
+ }
+
+}
+
+void AdvancedFm::mkSym() {
+ QString cmd;
+ 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();
+ } 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();
+ }
+}
diff --git a/noncore/apps/advancedfm/advancedfm.h b/noncore/apps/advancedfm/advancedfm.h
index a5f26a7..c00713f 100644
--- a/noncore/apps/advancedfm/advancedfm.h
+++ b/noncore/apps/advancedfm/advancedfm.h
@@ -15,12 +15,13 @@
#include <qvariant.h>
#include <qdialog.h>
#include <qmainwindow.h>
#include <qdir.h>
#include <qstring.h>
#include <qpoint.h>
+#include <qstringlist.h>
class QVBoxLayout;
class QHBoxLayout;
class QGridLayout;
class QComboBox;
class QListView;
@@ -90,20 +91,21 @@ protected slots:
void runThis();
void runText();
void filePerms();
void doProperties();
void runCommand();
void runCommandStd();
- QString getPath();
+ QStringList getPath();
+ void mkSym();
void switchToLocalTab();
void switchToRemoteTab();
protected:
- QGridLayout *tabLayout, *tabLayout_2, *tabLayout_3;
+ QGridLayout *tabLayout, *tabLayout_2, *tabLayout_3;
QStringList remoteDirPathStringList, localDirPathStringList;
-
+ void keyReleaseEvent( QKeyEvent *);
protected slots:
void homeButtonPushed();
void docButtonPushed();
void SDButtonPushed();
void CFButtonPushed();
void upDir();