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) (unidiff)
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) (show whitespace changes)
-rw-r--r--noncore/apps/advancedfm/advancedfm.cpp267
-rw-r--r--noncore/apps/advancedfm/advancedfm.h6
2 files changed, 230 insertions, 43 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
@@ -150,8 +150,9 @@ AdvancedFm::AdvancedFm( )
150 Local_View->addColumn( tr("Date"),-1); 150 Local_View->addColumn( tr("Date"),-1);
151 Local_View->setColumnAlignment(2,QListView::AlignRight); 151 Local_View->setColumnAlignment(2,QListView::AlignRight);
152 Local_View->setAllColumnsShowFocus(TRUE); 152 Local_View->setAllColumnsShowFocus(TRUE);
153// Local_View->setMultiSelection( TRUE ); 153 Local_View->setMultiSelection( TRUE );
154// Local_View->setSelectionMode(QListView::Extended); 154 Local_View->setSelectionMode(QListView::Extended);
155
155 QPEApplication::setStylusOperation( Local_View->viewport(),QPEApplication::RightOnHold); 156 QPEApplication::setStylusOperation( Local_View->viewport(),QPEApplication::RightOnHold);
156 157
157 tabLayout->addWidget( Local_View, 0, 0 ); 158 tabLayout->addWidget( Local_View, 0, 0 );
@@ -175,8 +176,9 @@ AdvancedFm::AdvancedFm( )
175 Remote_View->addColumn( tr("Date"),-1); 176 Remote_View->addColumn( tr("Date"),-1);
176 Remote_View->setColumnAlignment(2,QListView::AlignRight); 177 Remote_View->setColumnAlignment(2,QListView::AlignRight);
177 Remote_View->setAllColumnsShowFocus(TRUE); 178 Remote_View->setAllColumnsShowFocus(TRUE);
178// Remote_View->setMultiSelection( TRUE ); 179 Remote_View->setMultiSelection( TRUE );
179// Remote_View->setSelectionMode(QListView::Extended); 180 Remote_View->setSelectionMode(QListView::Extended);
181
180 QPEApplication::setStylusOperation( Remote_View->viewport(),QPEApplication::RightOnHold); 182 QPEApplication::setStylusOperation( Remote_View->viewport(),QPEApplication::RightOnHold);
181 183
182 connect( Remote_View, SIGNAL( clicked( QListViewItem*)), 184 connect( Remote_View, SIGNAL( clicked( QListViewItem*)),
@@ -369,6 +371,7 @@ void AdvancedFm::populateLocalView()
369 fillCombo( (const QString &) currentDir.canonicalPath()); 371 fillCombo( (const QString &) currentDir.canonicalPath());
370} 372}
371 373
374
372void AdvancedFm::populateRemoteView() 375void AdvancedFm::populateRemoteView()
373{ 376{
374// QList<QListViewItem> * getSelectedItems( QListView * Local_View ); 377// QList<QListViewItem> * getSelectedItems( QListView * Local_View );
@@ -564,17 +567,20 @@ void AdvancedFm::showHidden()
564{ 567{
565 if (b) { 568 if (b) {
566 currentDir.setFilter( QDir::Files | QDir::Dirs | QDir::Hidden | QDir::All); 569 currentDir.setFilter( QDir::Files | QDir::Dirs | QDir::Hidden | QDir::All);
570 fileMenu->setItemChecked( fileMenu->idAt(0),TRUE);
567// localMenu->setItemChecked(localMenu->idAt(0),TRUE); 571// localMenu->setItemChecked(localMenu->idAt(0),TRUE);
568// currentDir.setSorting(/* QDir::Size*/ /*| QDir::Reversed | */QDir::DirsFirst); 572// currentDir.setSorting(/* QDir::Size*/ /*| QDir::Reversed | */QDir::DirsFirst);
569 b=TRUE; 573 b=FALSE;
570 574
571 } else { 575 } else {
572 currentDir.setFilter( QDir::Files | QDir::Dirs/* | QDir::Hidden*/ | QDir::All); 576 currentDir.setFilter( QDir::Files | QDir::Dirs/* | QDir::Hidden*/ | QDir::All);
577 fileMenu->setItemChecked( fileMenu->idAt(0),FALSE);
573// localMenu->setItemChecked(localMenu->idAt(0),FALSE); 578// localMenu->setItemChecked(localMenu->idAt(0),FALSE);
574// currentDir.setSorting(/* QDir::Size*/ /*| QDir::Reversed | */QDir::DirsFirst); 579// currentDir.setSorting(/* QDir::Size*/ /*| QDir::Reversed | */QDir::DirsFirst);
575 b=FALSE; 580 b=TRUE;
576 } 581 }
577 populateLocalView(); 582 populateLocalView();
583
578} 584}
579 585
580void AdvancedFm::showRemoteHidden() 586void AdvancedFm::showRemoteHidden()
@@ -630,6 +636,8 @@ void AdvancedFm::showLocalMenu(QListViewItem * item)
630 m.insertItem( tr( "Open" ), this, SLOT( runThis() )); 636 m.insertItem( tr( "Open" ), this, SLOT( runThis() ));
631 m.insertItem( tr( "Open as Text" ), this, SLOT( runText() )); 637 m.insertItem( tr( "Open as Text" ), this, SLOT( runText() ));
632 m.insertItem( tr( "Make Directory" ), this, SLOT( localMakDir() )); 638 m.insertItem( tr( "Make Directory" ), this, SLOT( localMakDir() ));
639 m.insertItem( tr( "Make Symlink" ), this, SLOT( mkSym() ));
640 m.insertSeparator();
633 m.insertItem( tr( "Rename" ), this, SLOT( localRename() )); 641 m.insertItem( tr( "Rename" ), this, SLOT( localRename() ));
634 m.insertItem( tr( "Copy" ), this, SLOT( copy() )); 642 m.insertItem( tr( "Copy" ), this, SLOT( copy() ));
635 m.insertItem( tr( "Copy As" ), this, SLOT( copyAs() )); 643 m.insertItem( tr( "Copy As" ), this, SLOT( copyAs() ));
@@ -663,6 +671,8 @@ void AdvancedFm::showRemoteMenu(QListViewItem * item)
663 m.insertItem( tr( "Open" ), this, SLOT( runThis() )); 671 m.insertItem( tr( "Open" ), this, SLOT( runThis() ));
664 m.insertItem( tr( "Open as Text" ), this, SLOT( runText() )); 672 m.insertItem( tr( "Open as Text" ), this, SLOT( runText() ));
665 m.insertItem( tr( "Make Directory" ), this, SLOT( remoteMakDir() )); 673 m.insertItem( tr( "Make Directory" ), this, SLOT( remoteMakDir() ));
674 m.insertItem( tr( "Make Symlink" ), this, SLOT( mkSym() ));
675 m.insertSeparator();
666 m.insertItem( tr( "Rename" ), this, SLOT( remoteRename() )); 676 m.insertItem( tr( "Rename" ), this, SLOT( remoteRename() ));
667 m.insertItem( tr( "Copy" ), this, SLOT( copy() )); 677 m.insertItem( tr( "Copy" ), this, SLOT( copy() ));
668 m.insertItem( tr( "Copy As" ), this, SLOT( copyAs() )); 678 m.insertItem( tr( "Copy As" ), this, SLOT( copyAs() ));
@@ -752,13 +762,19 @@ void AdvancedFm::remoteMakDir()
752 762
753void AdvancedFm::localDelete() 763void AdvancedFm::localDelete()
754{ 764{
755 QString f = Local_View->currentItem()->text(0); 765 QStringList curFileList = getPath();
756 if(QDir(f).exists() ) { 766 QString myFile;
757 switch ( QMessageBox::warning(this,tr("Delete"),tr("Do you really want to delete\n")+f+ 767 for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it ) {
758 tr(" ?\nIt must be empty"),tr("Yes"),tr("No"),0,0,1) ) { 768 myFile = (*it);
769 if( myFile.find(" -> ",0,TRUE) != -1)
770 myFile = myFile.left( myFile.find(" -> ",0,TRUE));
771
772 QString f = currentDir.canonicalPath()+"/"+myFile;
773 if(QDir(f).exists() && !QFileInfo(f).isSymLink() ) {
774 switch ( QMessageBox::warning(this,tr("Delete"),tr("Do you really want to delete\n")+f+" ?"
775 ,tr("Yes"),tr("No"),0,0,1) ) {
759 case 0: { 776 case 0: {
760 f=currentDir.canonicalPath()+"/"+f; 777 QString cmd="rmdir -rf "+f;
761 QString cmd="rmdir "+f;
762 system( cmd.latin1()); 778 system( cmd.latin1());
763 populateLocalView(); 779 populateLocalView();
764 } 780 }
@@ -772,9 +788,10 @@ void AdvancedFm::localDelete()
772 switch ( QMessageBox::warning(this,tr("Delete"),tr("Do you really want to delete\n")+f 788 switch ( QMessageBox::warning(this,tr("Delete"),tr("Do you really want to delete\n")+f
773 +" ?",tr("Yes"),tr("No"),0,0,1) ) { 789 +" ?",tr("Yes"),tr("No"),0,0,1) ) {
774 case 0: { 790 case 0: {
775 f=currentDir.canonicalPath()+"/"+f;
776 QString cmd="rm "+f; 791 QString cmd="rm "+f;
777 system( cmd.latin1()); 792 QFile file(f);
793 file.remove();
794// system( cmd.latin1());
778 populateLocalView(); 795 populateLocalView();
779 } 796 }
780 break; 797 break;
@@ -783,17 +800,25 @@ void AdvancedFm::localDelete()
783 break; 800 break;
784 }; 801 };
785 } 802 }
803
804 }
786} 805}
787 806
788void AdvancedFm::remoteDelete() 807void AdvancedFm::remoteDelete()
789{ 808{
790 QString f = Remote_View->currentItem()->text(0); 809 QStringList curFileList = getPath();
791 if(QDir(f).exists() ) { 810 QString myFile;
792 switch ( QMessageBox::warning(this,tr("Delete"),tr("Do you really want to delete\n")+f+ 811
793 tr(" ?\nIt must be empty"),tr("Yes"),tr("No"),0,0,1) ) { 812 for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it ) {
813 myFile = (*it);
814 if(myFile.find(" -> ",0,TRUE) != -1)
815 myFile = myFile.left(myFile.find(" -> ",0,TRUE));
816 QString f = currentRemoteDir.canonicalPath()+"/"+myFile;
817 if(QDir(f).exists() && !QFileInfo(f).isSymLink() ) {
818 switch ( QMessageBox::warning(this,tr("Delete"),tr("Do you really want to delete\n")+f+" ?",
819 tr("Yes"),tr("No"),0,0,1) ) {
794 case 0: { 820 case 0: {
795 f = currentRemoteDir.canonicalPath()+"/"+f; 821 QString cmd="rmdir -rf "+f;
796 QString cmd="rmdir "+f;
797 system( cmd.latin1()); 822 system( cmd.latin1());
798 populateRemoteView(); 823 populateRemoteView();
799 } 824 }
@@ -807,9 +832,10 @@ void AdvancedFm::remoteDelete()
807 switch ( QMessageBox::warning(this,tr("Delete"),tr("Do you really want to delete\n")+f 832 switch ( QMessageBox::warning(this,tr("Delete"),tr("Do you really want to delete\n")+f
808 +" ?",tr("Yes"),tr("No"),0,0,1) ) { 833 +" ?",tr("Yes"),tr("No"),0,0,1) ) {
809 case 0: { 834 case 0: {
810 f = currentRemoteDir.canonicalPath()+"/"+f;
811 QString cmd="rm "+f; 835 QString cmd="rm "+f;
812 system( cmd.latin1()); 836 QFile file(f);
837 file.remove();
838// system( cmd.latin1());
813 populateRemoteView(); 839 populateRemoteView();
814 } 840 }
815 break; 841 break;
@@ -819,6 +845,7 @@ void AdvancedFm::remoteDelete()
819 }; 845 };
820 } 846 }
821} 847}
848}
822 849
823void AdvancedFm::localRename() 850void AdvancedFm::localRename()
824{ 851{
@@ -855,11 +882,13 @@ void AdvancedFm::remoteRename()
855void AdvancedFm::switchToLocalTab() 882void AdvancedFm::switchToLocalTab()
856{ 883{
857 TabWidget->setCurrentPage(0); 884 TabWidget->setCurrentPage(0);
885 Local_View->setFocus();
858} 886}
859 887
860void AdvancedFm::switchToRemoteTab() 888void AdvancedFm::switchToRemoteTab()
861{ 889{
862 TabWidget->setCurrentPage(1); 890 TabWidget->setCurrentPage(1);
891 Remote_View->setFocus();
863} 892}
864 893
865void AdvancedFm::readConfig() 894void AdvancedFm::readConfig()
@@ -926,31 +955,66 @@ void AdvancedFm::currentPathComboActivated(const QString & currentPath) {
926} 955}
927 956
928void AdvancedFm::filePerms() { 957void AdvancedFm::filePerms() {
929 QString curFile = getPath(); 958
959 QStringList curFileList = getPath();
960 QString filePath;
961
962 if (TabWidget->currentPageIndex() == 0) {
963 filePath = currentDir.canonicalPath()+"/";
964 } else {
965 filePath= currentRemoteDir.canonicalPath()+"/";
966 }
967
968 for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it ) {
930 filePermissions *filePerm; 969 filePermissions *filePerm;
931 filePerm = new filePermissions(this, "Permissions",true,0,(const QString &)(curFile)); 970 filePerm = new filePermissions(this, "Permissions",true,0,(const QString &)(filePath+*it));
932 filePerm->showMaximized(); 971 filePerm->showMaximized();
933 filePerm->exec(); 972 filePerm->exec();
934 if( filePerm) 973 if( filePerm)
935 delete filePerm; 974 delete filePerm;
936} 975}
976}
937 977
938void AdvancedFm::doProperties() { 978void AdvancedFm::doProperties() {
939 979 QStringList curFileList = getPath();
940 DocLnk lnk( getPath()); 980 QString filePath;
981 if (TabWidget->currentPageIndex() == 0) {
982 filePath = currentDir.canonicalPath()+"/";
983 } else {
984 filePath= currentRemoteDir.canonicalPath()+"/";
985 }
986 for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it ) {
987 DocLnk lnk( (filePath+*it));
941 LnkProperties prop( &lnk ); 988 LnkProperties prop( &lnk );
942// connect(&prop, SIGNAL(select(const AppLnk *)), this, SLOT(externalSelected(const AppLnk *))); 989// connect(&prop, SIGNAL(select(const AppLnk *)), this, SLOT(externalSelected(const AppLnk *)));
943 prop.showMaximized(); 990 prop.showMaximized();
944 prop.exec(); 991 prop.exec();
945} 992}
993}
946 994
947QString AdvancedFm::getPath() { 995QStringList AdvancedFm::getPath() {
996 QStringList strList;
948 if (TabWidget->currentPageIndex() == 0) { 997 if (TabWidget->currentPageIndex() == 0) {
949 return currentDir.canonicalPath()+"/"+ Local_View->currentItem()->text(0); 998 QList<QListViewItem> * getSelectedItems( QListView * Local_View );
999 QListViewItemIterator it( Local_View );
1000 for ( ; it.current(); ++it ) {
1001 if ( it.current()->isSelected() ) {
1002 strList << it.current()->text(0);
1003 }
1004 }
1005 return strList;
950 } else { 1006 } else {
951 return currentRemoteDir.canonicalPath() + "/"+Remote_View->currentItem()->text(0); 1007 QList<QListViewItem> * getSelectedItems( QListView * Remote_View );
1008 QListViewItemIterator it( Remote_View );
1009 for ( ; it.current(); ++it ) {
1010 if ( it.current()->isSelected() ) {
1011 strList << currentDir.canonicalPath()+"/"+ it.current()->text(0);
952 } 1012 }
953} 1013}
1014 return strList;
1015 }
1016 return "";
1017}
954 1018
955void AdvancedFm::homeButtonPushed() { 1019void AdvancedFm::homeButtonPushed() {
956 QString current = QDir::homeDirPath(); 1020 QString current = QDir::homeDirPath();
@@ -1032,23 +1096,33 @@ void AdvancedFm::upDir()
1032 1096
1033void AdvancedFm::copy() 1097void AdvancedFm::copy()
1034{ 1098{
1035 QString curFile = getPath(); 1099 QStringList curFileList = getPath();
1100 QString curFile;
1036 if (TabWidget->currentPageIndex() == 0) { 1101 if (TabWidget->currentPageIndex() == 0) {
1037 QString destFile = currentRemoteDir.canonicalPath()+"/"+Local_View->currentItem()->text(0); 1102 for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it ) {
1103
1104 QString destFile = currentRemoteDir.canonicalPath()+"/"+(*it);
1105 curFile = currentDir.canonicalPath()+"/"+(*it);
1038 QFile f(destFile); 1106 QFile f(destFile);
1039 if( f.exists()) 1107 if( f.exists())
1040 f.remove(); 1108 f.remove();
1041 if(!copyFile(destFile, curFile) ) 1109 if(!copyFile(destFile, curFile) )
1042 qWarning("nothin doing"); 1110 qWarning("nothin doing");
1111 }
1043 populateRemoteView(); 1112 populateRemoteView();
1044 TabWidget->setCurrentPage(1); 1113 TabWidget->setCurrentPage(1);
1114
1045 } else { 1115 } else {
1046 QString destFile = currentDir.canonicalPath()+"/"+Remote_View->currentItem()->text(0); 1116 for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it ) {
1117
1118 QString destFile = currentDir.canonicalPath()+"/"+(*it);
1119 curFile = currentRemoteDir.canonicalPath()+"/"+(*it);
1047 QFile f(destFile); 1120 QFile f(destFile);
1048 if( f.exists()) 1121 if( f.exists())
1049 f.remove(); 1122 f.remove();
1050 if(!copyFile(destFile, curFile) ) 1123 if(!copyFile(destFile, curFile) )
1051 qWarning("nothin doing"); 1124 qWarning("nothin doing");
1125 }
1052 populateLocalView(); 1126 populateLocalView();
1053 TabWidget->setCurrentPage(0); 1127 TabWidget->setCurrentPage(0);
1054 } 1128 }
@@ -1056,11 +1130,17 @@ void AdvancedFm::copy()
1056 1130
1057void AdvancedFm::copyAs() 1131void AdvancedFm::copyAs()
1058{ 1132{
1059 QString curFile = getPath(); 1133 QStringList curFileList = getPath();
1060 if (TabWidget->currentPageIndex() == 0) { 1134 QString curFile;
1061 QString destFile = Local_View->currentItem()->text(0);
1062 InputDialog *fileDlg; 1135 InputDialog *fileDlg;
1063 fileDlg = new InputDialog(this,tr("Copy As"),TRUE, 0); 1136 fileDlg = new InputDialog(this,tr("Copy As"),TRUE, 0);
1137
1138 if (TabWidget->currentPageIndex() == 0) {
1139 for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it ) {
1140 QString destFile = *it;
1141 curFile = currentDir.canonicalPath()+"/"+(*it);
1142// InputDialog *fileDlg;
1143// fileDlg = new InputDialog(this,tr("Copy As"),TRUE, 0);
1064 fileDlg->setInputText((const QString &) destFile ); 1144 fileDlg->setInputText((const QString &) destFile );
1065 fileDlg->exec(); 1145 fileDlg->exec();
1066 if( fileDlg->result() == 1 ) { 1146 if( fileDlg->result() == 1 ) {
@@ -1073,12 +1153,16 @@ void AdvancedFm::copyAs()
1073 if(!copyFile(destFile, curFile) ) 1153 if(!copyFile(destFile, curFile) )
1074 qWarning("nothin doing"); 1154 qWarning("nothin doing");
1075 } 1155 }
1156 }
1157
1076 populateRemoteView(); 1158 populateRemoteView();
1077 TabWidget->setCurrentPage(1); 1159 TabWidget->setCurrentPage(1);
1078 } else { 1160 } else {
1079 QString destFile = Remote_View->currentItem()->text(0); 1161 if (TabWidget->currentPageIndex() == 0) {
1080 InputDialog *fileDlg; 1162 for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it ) {
1081 fileDlg = new InputDialog(this,tr("Copy As"),TRUE, 0); 1163
1164 curFile = currentDir.canonicalPath()+"/"+(*it);
1165 QString destFile = *it;
1082 fileDlg->setInputText((const QString &) destFile); 1166 fileDlg->setInputText((const QString &) destFile);
1083 fileDlg->exec(); 1167 fileDlg->exec();
1084 if( fileDlg->result() == 1 ) { 1168 if( fileDlg->result() == 1 ) {
@@ -1091,17 +1175,24 @@ void AdvancedFm::copyAs()
1091 if(!copyFile(destFile, curFile) ) 1175 if(!copyFile(destFile, curFile) )
1092 qWarning("nothin doing"); 1176 qWarning("nothin doing");
1093 } 1177 }
1178 }
1094 populateLocalView(); 1179 populateLocalView();
1095 TabWidget->setCurrentPage(0); 1180 TabWidget->setCurrentPage(0);
1096 } 1181 }
1097} 1182}
1183}
1098 1184
1099void AdvancedFm::move() { 1185void AdvancedFm::move() {
1100 QString curFile = getPath(); 1186
1187 QStringList curFileList = getPath();
1188 QString curFile;
1101// qDebug(curFile); 1189// qDebug(curFile);
1102 QString destFile; 1190 QString destFile;
1191
1103 if (TabWidget->currentPageIndex() == 0) { 1192 if (TabWidget->currentPageIndex() == 0) {
1104 QString destFile = currentRemoteDir.canonicalPath() + "/" + Local_View->currentItem()->text(0); 1193 for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it ) {
1194 QString destFile = currentRemoteDir.canonicalPath() + "/" + *it;
1195 curFile = currentDir.canonicalPath()+"/"+(*it);
1105 qDebug("Destination file is "+destFile); 1196 qDebug("Destination file is "+destFile);
1106 1197
1107 QFile f(destFile); 1198 QFile f(destFile);
@@ -1112,10 +1203,13 @@ void AdvancedFm::move() {
1112 return; 1203 return;
1113 } 1204 }
1114 QFile::remove(curFile); 1205 QFile::remove(curFile);
1206 }
1115 TabWidget->setCurrentPage(1); 1207 TabWidget->setCurrentPage(1);
1116 } else { 1208 } else {
1117 QString destFile = currentDir.canonicalPath() + "/" + Remote_View->currentItem()->text(0); 1209 for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it ) {
1210 QString destFile = currentRemoteDir.canonicalPath() + "/" + *it;
1118 qDebug("Destination file is "+destFile); 1211 qDebug("Destination file is "+destFile);
1212 curFile = currentDir.canonicalPath()+"/"+(*it);
1119 1213
1120 QFile f(destFile); 1214 QFile f(destFile);
1121 if( f.exists()) 1215 if( f.exists())
@@ -1127,6 +1221,7 @@ void AdvancedFm::move() {
1127 QFile::remove(curFile); 1221 QFile::remove(curFile);
1128 TabWidget->setCurrentPage(0); 1222 TabWidget->setCurrentPage(0);
1129 } 1223 }
1224 }
1130 populateRemoteView(); 1225 populateRemoteView();
1131 populateLocalView(); 1226 populateLocalView();
1132} 1227}
@@ -1293,3 +1388,93 @@ void AdvancedFm::doAbout() {
1293 "L.J.Potter<llornkcor@handhelds.org>\n" 1388 "L.J.Potter<llornkcor@handhelds.org>\n"
1294 "and is licensed by the GPL"); 1389 "and is licensed by the GPL");
1295} 1390}
1391
1392void AdvancedFm::keyReleaseEvent( QKeyEvent *e)
1393{
1394 switch ( e->key() ) {
1395 case Key_Delete:
1396 del();
1397 break;
1398 case Key_H:
1399 showHidden();
1400 break;
1401 case Key_E:
1402 runThis();
1403 break;
1404 case Key_C:
1405 copy();
1406 break;
1407 case Key_A:
1408 copyAs();
1409 break;
1410 case Key_M:
1411 move();
1412 break;
1413 case Key_R:
1414 rn();
1415 break;
1416 case Key_I:
1417 fileStatus();
1418 break;
1419 case Key_U:
1420 upDir();
1421 break;
1422 case Key_P:
1423 filePerms();
1424 break;
1425 case Key_N:
1426 mkDir();
1427 break;
1428 case Key_1:
1429 switchToLocalTab();
1430 break;
1431 case Key_2:
1432 switchToRemoteTab();
1433 break;
1434 case Key_3:
1435 CFButtonPushed();
1436 break;
1437 case Key_4:
1438 SDButtonPushed();
1439 break;
1440 case Key_5:
1441 homeButtonPushed();
1442 break;
1443 case Key_6:
1444 docButtonPushed();
1445 break;
1446 case Key_7:
1447 break;
1448 case Key_8:
1449 break;
1450 case Key_9:
1451 break;
1452 case Key_0:
1453 break;
1454
1455
1456
1457 }
1458
1459}
1460
1461void AdvancedFm::mkSym() {
1462 QString cmd;
1463 if (TabWidget->currentPageIndex() == 0) {
1464 QString curFile = Local_View->currentItem()->text(0);
1465 if(curFile.right(1) == "/") curFile = curFile.left(curFile.length() - 1);
1466 QString destName = currentRemoteDir.canonicalPath()+"/"+curFile;
1467 curFile = currentDir.canonicalPath()+"/"+curFile;
1468 cmd = "ln -s "+curFile+" "+destName;
1469 system(cmd.latin1() );
1470 populateRemoteView();
1471 } else {
1472 QString curFile = Remote_View->currentItem()->text(0);
1473 if(curFile.right(1) == "/") curFile = curFile.left(curFile.length() - 1);
1474 QString destName = currentDir.canonicalPath()+"/"+curFile;
1475 curFile = currentRemoteDir.canonicalPath()+"/"+curFile;
1476 cmd = "ln -s "+curFile+" "+destName;
1477 system(cmd.latin1() );
1478 populateLocalView();
1479 }
1480}
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
@@ -18,6 +18,7 @@
18#include <qdir.h> 18#include <qdir.h>
19#include <qstring.h> 19#include <qstring.h>
20#include <qpoint.h> 20#include <qpoint.h>
21#include <qstringlist.h>
21 22
22class QVBoxLayout; 23class QVBoxLayout;
23class QHBoxLayout; 24class QHBoxLayout;
@@ -93,14 +94,15 @@ protected slots:
93 void doProperties(); 94 void doProperties();
94 void runCommand(); 95 void runCommand();
95 void runCommandStd(); 96 void runCommandStd();
96 QString getPath(); 97 QStringList getPath();
98 void mkSym();
97 void switchToLocalTab(); 99 void switchToLocalTab();
98 void switchToRemoteTab(); 100 void switchToRemoteTab();
99 101
100protected: 102protected:
101 QGridLayout *tabLayout, *tabLayout_2, *tabLayout_3; 103 QGridLayout *tabLayout, *tabLayout_2, *tabLayout_3;
102 QStringList remoteDirPathStringList, localDirPathStringList; 104 QStringList remoteDirPathStringList, localDirPathStringList;
103 105 void keyReleaseEvent( QKeyEvent *);
104protected slots: 106protected slots:
105 void homeButtonPushed(); 107 void homeButtonPushed();
106 void docButtonPushed(); 108 void docButtonPushed();