summaryrefslogtreecommitdiff
path: root/noncore/apps/advancedfm/advancedfm.cpp
Unidiff
Diffstat (limited to 'noncore/apps/advancedfm/advancedfm.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/apps/advancedfm/advancedfm.cpp209
1 files changed, 197 insertions, 12 deletions
diff --git a/noncore/apps/advancedfm/advancedfm.cpp b/noncore/apps/advancedfm/advancedfm.cpp
index 9edf7c1..d8bdff7 100644
--- a/noncore/apps/advancedfm/advancedfm.cpp
+++ b/noncore/apps/advancedfm/advancedfm.cpp
@@ -16,6 +16,7 @@
16// #include <opie/ofileselector.h> 16// #include <opie/ofileselector.h>
17// #include <opie/ofiledialog.h> 17// #include <opie/ofiledialog.h>
18 18
19#include <qpe/config.h>
19#include <qpe/filemanager.h> 20#include <qpe/filemanager.h>
20#include <qpe/qcopenvelope_qws.h> 21#include <qpe/qcopenvelope_qws.h>
21#include <qpe/qpemenubar.h> 22#include <qpe/qpemenubar.h>
@@ -27,7 +28,10 @@
27#include <qpe/applnk.h> 28#include <qpe/applnk.h>
28#include <qpe/ir.h> 29#include <qpe/ir.h>
29#include <qpe/resource.h> 30#include <qpe/resource.h>
31#include <qpe/menubutton.h>
32
30 33
34#include <qregexp.h>
31#include <qtabwidget.h> 35#include <qtabwidget.h>
32#include <qtextstream.h> 36#include <qtextstream.h>
33#include <qpushbutton.h> 37#include <qpushbutton.h>
@@ -90,7 +94,7 @@ void AdvancedFm::cleanUp() {
90} 94}
91 95
92void AdvancedFm::tabChanged(QWidget *w) { 96void AdvancedFm::tabChanged(QWidget *w) {
93 qDebug("tab changed %d",TabWidget->getCurrentTab()); 97// qDebug("tab changed %d",TabWidget->getCurrentTab());
94 98
95 if ( w == tab) { 99 if ( w == tab) {
96// if (TabWidget->getCurrentTab() == 0) { 100// if (TabWidget->getCurrentTab() == 0) {
@@ -194,7 +198,7 @@ void AdvancedFm::populateLocalView() {
194 if((dir = opendir( currentDir.canonicalPath().latin1())) != NULL) 198 if((dir = opendir( currentDir.canonicalPath().latin1())) != NULL)
195 while ((mydirent = readdir(dir)) != NULL) { 199 while ((mydirent = readdir(dir)) != NULL) {
196 lstat( mydirent->d_name, &buf); 200 lstat( mydirent->d_name, &buf);
197 qDebug(mydirent->d_name); 201// qDebug(mydirent->d_name);
198 fileL.sprintf("%s", mydirent->d_name); 202 fileL.sprintf("%s", mydirent->d_name);
199 devT = buf.st_dev; 203 devT = buf.st_dev;
200 fileS.sprintf("%d, %d", (int) ( devT >>8) &0xFF, (int)devT &0xFF); 204 fileS.sprintf("%d, %d", (int) ( devT >>8) &0xFF, (int)devT &0xFF);
@@ -293,7 +297,7 @@ void AdvancedFm::populateRemoteView() {
293 if((dir = opendir( currentRemoteDir.canonicalPath().latin1())) != NULL) 297 if((dir = opendir( currentRemoteDir.canonicalPath().latin1())) != NULL)
294 while ((mydirent = readdir(dir)) != NULL) { 298 while ((mydirent = readdir(dir)) != NULL) {
295 lstat( mydirent->d_name, &buf); 299 lstat( mydirent->d_name, &buf);
296 qDebug(mydirent->d_name); 300// qDebug(mydirent->d_name);
297 fileL.sprintf("%s", mydirent->d_name); 301 fileL.sprintf("%s", mydirent->d_name);
298 fileS.sprintf("%d,%d", (int) (buf.st_dev>>8)&0xFF, (int) buf.st_dev &0xFF); 302 fileS.sprintf("%d,%d", (int) (buf.st_dev>>8)&0xFF, (int) buf.st_dev &0xFF);
299 fileDate.sprintf("%s", ctime( &buf.st_mtime)); 303 fileDate.sprintf("%s", ctime( &buf.st_mtime));
@@ -407,7 +411,7 @@ void AdvancedFm::localListPressed( int mouse, QListViewItem *, const QPoint& , i
407 { 411 {
408 if(renameBox != 0 ) 412 if(renameBox != 0 )
409 { 413 {
410 qDebug("cancel rename"); 414// qDebug("cancel rename");
411 cancelRename(); 415 cancelRename();
412 } 416 }
413 417
@@ -415,7 +419,7 @@ void AdvancedFm::localListPressed( int mouse, QListViewItem *, const QPoint& , i
415 break; 419 break;
416 case 2: 420 case 2:
417 menuTimer.start( 500, TRUE ); 421 menuTimer.start( 500, TRUE );
418 qDebug("Start menu timer\n"); 422// qDebug("Start menu timer\n");
419 break; 423 break;
420 }; 424 };
421} 425}
@@ -427,14 +431,14 @@ void AdvancedFm::remoteListPressed( int mouse, QListViewItem*, const QPoint&, in
427 { 431 {
428 if(renameBox != 0 ) 432 if(renameBox != 0 )
429 { 433 {
430 qDebug("cancel rename"); 434// qDebug("cancel rename");
431 cancelRename(); 435 cancelRename();
432 } 436 }
433 } 437 }
434 break; 438 break;
435 case 2: 439 case 2:
436 menuTimer.start( 500, TRUE ); 440 menuTimer.start( 500, TRUE );
437 qDebug("Start menu timer"); 441// qDebug("Start menu timer");
438 break; 442 break;
439 }; 443 };
440} 444}
@@ -480,7 +484,7 @@ void AdvancedFm::currentPathComboChanged() {
480} 484}
481 485
482void AdvancedFm::fillCombo(const QString &currentPath) { 486void AdvancedFm::fillCombo(const QString &currentPath) {
483 qDebug("%d",TabWidget->getCurrentTab()); 487// qDebug("%d",TabWidget->getCurrentTab());
484 if (TabWidget->getCurrentTab() == 0) { 488 if (TabWidget->getCurrentTab() == 0) {
485// if (TabWidget->currentPageIndex() == 0) { 489// if (TabWidget->currentPageIndex() == 0) {
486 currentPathCombo->lineEdit()->setText( currentPath); 490 currentPathCombo->lineEdit()->setText( currentPath);
@@ -523,7 +527,7 @@ QStringList AdvancedFm::getPath() {
523 for ( ; it.current(); ++it ) { 527 for ( ; it.current(); ++it ) {
524 if ( it.current()->isSelected() ) { 528 if ( it.current()->isSelected() ) {
525 strList << it.current()->text(0); 529 strList << it.current()->text(0);
526 qDebug(it.current()->text(0)); 530// qDebug(it.current()->text(0));
527 } 531 }
528 } 532 }
529 return strList; 533 return strList;
@@ -533,7 +537,7 @@ QStringList AdvancedFm::getPath() {
533 for ( ; it.current(); ++it ) { 537 for ( ; it.current(); ++it ) {
534 if ( it.current()->isSelected() ) { 538 if ( it.current()->isSelected() ) {
535 strList << it.current()->text(0); 539 strList << it.current()->text(0);
536 qDebug(it.current()->text(0)); 540// qDebug(it.current()->text(0));
537 } 541 }
538 } 542 }
539 return strList; 543 return strList;
@@ -875,7 +879,7 @@ void AdvancedFm::addToDocs() {
875// if (TabWidget->currentPageIndex() == 0) { 879// if (TabWidget->currentPageIndex() == 0) {
876 for ( QStringList::Iterator it = strListPaths.begin(); it != strListPaths.end(); ++it ) { 880 for ( QStringList::Iterator it = strListPaths.begin(); it != strListPaths.end(); ++it ) {
877 curFile = currentDir.canonicalPath()+"/"+(*it); 881 curFile = currentDir.canonicalPath()+"/"+(*it);
878 qDebug(curFile); 882// qDebug(curFile);
879 DocLnk f; 883 DocLnk f;
880// curFile.replace(QRegExp("\\..*"),""); 884// curFile.replace(QRegExp("\\..*"),"");
881 f.setName((*it)); 885 f.setName((*it));
@@ -885,7 +889,7 @@ void AdvancedFm::addToDocs() {
885 } else { 889 } else {
886 for ( QStringList::Iterator it = strListPaths.begin(); it != strListPaths.end(); ++it ) { 890 for ( QStringList::Iterator it = strListPaths.begin(); it != strListPaths.end(); ++it ) {
887 curFile = currentRemoteDir.canonicalPath()+"/"+(*it); 891 curFile = currentRemoteDir.canonicalPath()+"/"+(*it);
888 qDebug(curFile); 892// qDebug(curFile);
889 893
890 DocLnk f; 894 DocLnk f;
891// curFile.replace(QRegExp("\\..*"),""); 895// curFile.replace(QRegExp("\\..*"),"");
@@ -897,3 +901,184 @@ void AdvancedFm::addToDocs() {
897 } 901 }
898} 902}
899 903
904
905void AdvancedFm::customDirsToMenu()
906{
907
908 Config cfg("AdvancedFm");
909 cfg.setGroup("Menu");
910
911 QStringList list = cfg.readListEntry( "CustomDir", ',');
912 menuButton->insertItems(list );
913
914// for ( QStringList::Iterator it = list.begin(); it != list.end(); ++it )
915// {
916// customDirMenu->insertItem(*it );
917// }
918}
919
920void AdvancedFm::dirMenuSelected(int item)
921{
922 qDebug("menu item %d", item);
923 switch(item)
924 {
925
926 case -21:
927 case 0:
928 addCustomDir();
929 break;
930 case -22:
931 case 1:
932 removeCustomDir();
933 break;
934 default:
935 {
936// gotoCustomDir( menuButton->text(item));
937// gotoCustomDir( customDirMenu->text(item));
938 }
939 break;
940
941 };
942}
943
944void AdvancedFm::addCustomDir()
945{
946 Config cfg("AdvancedFm");
947 cfg.setGroup("Menu");
948 QString dir;
949 QStringList list = cfg.readListEntry( (const QString &)"CustomDir", (const QChar)',');
950
951 if (TabWidget->getCurrentTab() == 0)
952 {
953 dir = currentDir.canonicalPath();
954 }
955 else
956 {
957 dir = currentRemoteDir.canonicalPath();
958 }
959
960 bool addIt=true;
961 for ( QStringList::Iterator it = list.begin(); it != list.end(); ++it )
962 {
963 if( dir == (*it))
964 {
965 addIt=false;
966 }
967 }
968 if(addIt)
969 {
970 menuButton->insertItem(dir);
971// customDirMenu->insertItem(dir);
972 list << dir;
973 }
974
975 cfg.writeEntry("CustomDir", list, ',');
976 cfg.write();
977}
978
979void AdvancedFm::removeCustomDir()
980{
981// qDebug("remove custom dir");
982 Config cfg("AdvancedFm");
983 cfg.setGroup("Menu");
984 QString dir;
985 QStringList list = cfg.readListEntry( (const QString &)"CustomDir", (const QChar)',');
986 QStringList list2;
987
988 if (TabWidget->getCurrentTab() == 0)
989 {
990 dir = currentDir.canonicalPath();
991 }
992 else
993 {
994 dir = currentRemoteDir.canonicalPath();
995 }
996 int ramble=2;
997// int ramble=-24;
998//first remove list
999 if(list.grep(dir,true).isEmpty())
1000 {
1001 QMessageBox::message("AdvancedFm",tr("Cannot remove current directory\nfrom bookmarks.\nIt is not bookmarked!!"));
1002 }
1003 else
1004 {
1005 for ( QStringList::Iterator it = list.begin(); it != list.end(); ++it )
1006 {
1007 if((*it) != dir)//current item is not our current dir, so add it to temp list
1008 {
1009 list2 <<(*it);
1010 }
1011 else
1012 {
1013// customDirMenu->removeItem( ramble);
1014 menuButton->remove( ramble);
1015
1016 }
1017 ramble++;
1018// ramble--;
1019 }
1020
1021 cfg.writeEntry("CustomDir", list2, ',');
1022 cfg.write();
1023 }
1024// customDirsToMenu();
1025
1026}
1027
1028void AdvancedFm::gotoCustomDir(const QString &dir)
1029{
1030// qDebug("gotoCustomDir(const QString &dir) " +dir );
1031 QString curDir = dir;
1032// if( curDir.isEmpty()) {
1033// }
1034 if( curDir == s_addBookmark)
1035 {
1036 addCustomDir();
1037 }
1038 if( curDir == s_removeBookmark)
1039 {
1040 removeCustomDir( );
1041 }
1042 else
1043 {
1044 if(QDir( curDir).exists() )
1045 {
1046 if (TabWidget->getCurrentTab() == 0)
1047 {
1048 currentDir.setPath( curDir );
1049 chdir( curDir.latin1() );
1050 currentDir.cd( curDir, TRUE);
1051 populateLocalView();
1052 }
1053 else
1054 {
1055 currentRemoteDir.setPath( curDir );
1056 chdir( curDir.latin1() );
1057 currentRemoteDir.cd( curDir, TRUE);
1058 populateRemoteView();
1059 }
1060 }
1061 }
1062// menuButton
1063// qDebug("gotoCustomDir(const QString &dir) " +dir );
1064// QString curDir = dir;
1065// if(QDir( curDir).exists() )
1066// {
1067// if (TabWidget->getCurrentTab() == 0)
1068// {
1069// currentDir.setPath( curDir );
1070// chdir( curDir.latin1() );
1071// currentDir.cd( curDir, TRUE);
1072// populateLocalView();
1073// }
1074// else
1075// {
1076// currentRemoteDir.setPath( curDir );
1077// chdir( curDir.latin1() );
1078// currentRemoteDir.cd( curDir, TRUE);
1079// populateRemoteView();
1080// }
1081// }
1082// menuButton->setLabel(" ");
1083// menuButton
1084}