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
@@ -141,52 +141,54 @@ AdvancedFm::AdvancedFm( )
tabLayout = new QGridLayout( tab );
tabLayout->setSpacing( 2);
tabLayout->setMargin( 2);
Local_View = new QListView( tab, "Local_View" );
// Local_View->setResizePolicy( QListView::AutoOneFit );
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)),
this,SLOT( localListPressed(int, QListViewItem *, const QPoint&, int)) );
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);
Remote_View = new QListView( tab_2, "Remote_View" );
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)) );
tabLayout_2->addWidget( Remote_View, 0, 0 );
TabWidget->insertTab( tab_2, tr( "2"));
connect(TabWidget,SIGNAL(currentChanged(QWidget *)),
this,SLOT(tabChanged(QWidget*)));
@@ -360,24 +362,25 @@ void AdvancedFm::populateLocalView()
pm = Resource::loadPixmap( "UnknownDocument-14" );
item->setPixmap( 0,pm);
}
}
closedir(dir);
}
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() ) {
// QString strItem = it.current()->text(0);
// QString localFile = currentRemoteDir.canonicalPath()+"/"+strItem;
// QFileInfo fi(localFile);
// }
// }
QPixmap pm;
@@ -555,35 +558,38 @@ void AdvancedFm::doLocalCd()
localListClicked( Local_View->currentItem());
}
void AdvancedFm::doRemoteCd()
{
localListClicked( Remote_View->currentItem());
}
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);
// viewMenu->setItemChecked(localMenu->idAt(0),TRUE);
// currentDir.setSorting(/* QDir::Size*/ /*| QDir::Reversed | */QDir::DirsFirst);
b=TRUE;
} else {
currentRemoteDir.setFilter( QDir::Files | QDir::Dirs/* | QDir::Hidden*/ | QDir::All);
@@ -612,84 +618,88 @@ void AdvancedFm::remoteListPressed( int mouse, QListViewItem *item, const QPoint
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" ), 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) {
QString curFile = Local_View->currentItem()->text(0);
curFile = currentDir.canonicalPath()+"/"+curFile;
DocLnk nf(curFile);
QString execStr = nf.exec();
qDebug( execStr);
if( execStr.isEmpty() ) {
@@ -743,89 +753,106 @@ void AdvancedFm::remoteMakDir()
InputDialog *fileDlg;
fileDlg = new InputDialog(this,tr("Make Directory"),TRUE, 0);
fileDlg->exec();
if( fileDlg->result() == 1 ) {
QString filename = fileDlg->LineEdit1->text();
currentRemoteDir.mkdir( currentRemoteDir.canonicalPath()+"/"+filename);
}
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);
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;
@@ -846,29 +873,31 @@ void AdvancedFm::remoteRename()
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()
{
TabWidget->setCurrentPage(1);
+ Remote_View->setFocus();
}
void AdvancedFm::readConfig()
{
Config cfg("AdvancedFm");
}
void AdvancedFm::writeConfig()
{
Config cfg("AdvancedFm");
}
@@ -917,48 +946,83 @@ void AdvancedFm::currentPathComboActivated(const QString & currentPath) {
currentDir.cd( currentPath, TRUE);
populateLocalView();
update();
} else {
chdir( currentPath.latin1() );
currentRemoteDir.cd( currentPath, TRUE);
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) {
currentDir.cd( current, TRUE);
populateLocalView();
} else {
currentRemoteDir.cd( current, TRUE);
populateRemoteView();
}
@@ -1023,124 +1087,155 @@ void AdvancedFm::upDir()
QDir dir(current);
dir.cdUp();
current = dir.canonicalPath();
chdir( current.latin1() );
currentRemoteDir.cd( current, TRUE);
populateRemoteView();
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;
QFile s( src );
QFile d( dest );
if( s.open( IO_ReadOnly | IO_Raw ) && d.open( IO_WriteOnly | IO_Raw ) ) {
while( (bytesRead = s.readBlock( bf, sizeof( bf ) )) == sizeof( bf ) ) {
if( d.writeBlock( bf, sizeof( bf ) ) != sizeof( bf ) ){
@@ -1284,12 +1379,102 @@ void AdvancedFm::del() {
if (TabWidget->currentPageIndex() == 0)
localDelete();
else
remoteDelete();
}
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
@@ -9,24 +9,25 @@
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
***************************************************************************/
#ifndef ADVANCEDFM_H
#define ADVANCEDFM_H
#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;
class QListviewItem;
class QLabel;
class QProgressBar;
class QSpinBox;
class QTabWidget;
class QWidget;
@@ -84,32 +85,33 @@ protected slots:
/* bool remoteDirList(const QString &); */
/* bool remoteChDir(const QString &); */
void tabChanged(QWidget*);
void cleanUp();
void remoteRename();
void localRename();
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();
void currentPathComboChanged();
void copy();
void copyAs();
void currentPathComboActivated(const QString &);
void fillCombo(const QString &);
bool copyFile( const QString & , const QString & );