summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/apps/advancedfm/advancedfm.cpp27
-rw-r--r--noncore/apps/advancedfm/advancedfm.h2
-rw-r--r--noncore/apps/advancedfm/advancedfmData.cpp15
-rw-r--r--noncore/apps/advancedfm/advancedfmMenu.cpp17
4 files changed, 54 insertions, 7 deletions
diff --git a/noncore/apps/advancedfm/advancedfm.cpp b/noncore/apps/advancedfm/advancedfm.cpp
index 6b7fa1f..60558e7 100644
--- a/noncore/apps/advancedfm/advancedfm.cpp
+++ b/noncore/apps/advancedfm/advancedfm.cpp
@@ -713,200 +713,223 @@ void AdvancedFm::customDirsToMenu()
713} 713}
714 714
715void AdvancedFm::dirMenuSelected(int item) 715void AdvancedFm::dirMenuSelected(int item)
716{ 716{
717 qDebug("menu item %d", item); 717 qDebug("menu item %d", item);
718 switch(item) 718 switch(item)
719 { 719 {
720 720
721 case -21: 721 case -21:
722 case 0: 722 case 0:
723 addCustomDir(); 723 addCustomDir();
724 break; 724 break;
725 case -22: 725 case -22:
726 case 1: 726 case 1:
727 removeCustomDir(); 727 removeCustomDir();
728 break; 728 break;
729 default: 729 default:
730 { 730 {
731// gotoCustomDir( menuButton->text(item)); 731// gotoCustomDir( menuButton->text(item));
732// gotoCustomDir( customDirMenu->text(item)); 732// gotoCustomDir( customDirMenu->text(item));
733 } 733 }
734 break; 734 break;
735 735
736 }; 736 };
737} 737}
738 738
739void AdvancedFm::addCustomDir() 739void AdvancedFm::addCustomDir()
740{ 740{
741 Config cfg("AdvancedFm"); 741 Config cfg("AdvancedFm");
742 cfg.setGroup("Menu"); 742 cfg.setGroup("Menu");
743 QString dir; 743 QString dir;
744 QStringList list = cfg.readListEntry( (const QString &)"CustomDir", (const QChar)','); 744 QStringList list = cfg.readListEntry( (const QString &)"CustomDir", (const QChar)',');
745 745
746 dir = CurrentDir()->canonicalPath(); 746 dir = CurrentDir()->canonicalPath();
747 747
748 bool addIt=true; 748 bool addIt=true;
749 for ( QStringList::Iterator it = list.begin(); it != list.end(); ++it ) 749 for ( QStringList::Iterator it = list.begin(); it != list.end(); ++it )
750 { 750 {
751 if( dir == (*it)) 751 if( dir == (*it))
752 { 752 {
753 addIt=false; 753 addIt=false;
754 } 754 }
755 } 755 }
756 if(addIt) 756 if(addIt)
757 { 757 {
758 menuButton->insertItem(dir); 758 menuButton->insertItem(dir);
759// customDirMenu->insertItem(dir); 759// customDirMenu->insertItem(dir);
760 list << dir; 760 list << dir;
761 } 761 }
762 762
763 cfg.writeEntry("CustomDir", list, ','); 763 cfg.writeEntry("CustomDir", list, ',');
764 cfg.write(); 764 cfg.write();
765} 765}
766 766
767void AdvancedFm::removeCustomDir() 767void AdvancedFm::removeCustomDir()
768{ 768{
769// qDebug("remove custom dir"); 769// qDebug("remove custom dir");
770 Config cfg("AdvancedFm"); 770 Config cfg("AdvancedFm");
771 cfg.setGroup("Menu"); 771 cfg.setGroup("Menu");
772 QString dir; 772 QString dir;
773 QStringList list = cfg.readListEntry( (const QString &)"CustomDir", (const QChar)','); 773 QStringList list = cfg.readListEntry( (const QString &)"CustomDir", (const QChar)',');
774 QStringList list2; 774 QStringList list2;
775 dir = CurrentDir()->canonicalPath(); 775 dir = CurrentDir()->canonicalPath();
776 int ramble=2; 776 int ramble=2;
777// int ramble=-24; 777// int ramble=-24;
778//first remove list 778//first remove list
779 if(list.grep(dir,true).isEmpty()) 779 if(list.grep(dir,true).isEmpty())
780 { 780 {
781 QMessageBox::message(tr( "AdvancedFm" ), 781 QMessageBox::message(tr( "AdvancedFm" ),
782 tr("Cannot remove current directory\nfrom bookmarks.\nIt is not bookmarked!")); 782 tr("Cannot remove current directory\nfrom bookmarks.\nIt is not bookmarked!"));
783 } 783 }
784 else 784 else
785 { 785 {
786 for ( QStringList::Iterator it = list.begin(); it != list.end(); ++it ) 786 for ( QStringList::Iterator it = list.begin(); it != list.end(); ++it )
787 { 787 {
788 if((*it) != dir)//current item is not our current dir, so add it to temp list 788 if((*it) != dir)//current item is not our current dir, so add it to temp list
789 { 789 {
790 list2 <<(*it); 790 list2 <<(*it);
791 } 791 }
792 else 792 else
793 { 793 {
794// customDirMenu->removeItem( ramble); 794// customDirMenu->removeItem( ramble);
795 menuButton->remove( ramble); 795 menuButton->remove( ramble);
796 796
797 } 797 }
798 ramble++; 798 ramble++;
799// ramble--; 799// ramble--;
800 } 800 }
801 801
802 cfg.writeEntry("CustomDir", list2, ','); 802 cfg.writeEntry("CustomDir", list2, ',');
803 cfg.write(); 803 cfg.write();
804 } 804 }
805// customDirsToMenu(); 805// customDirsToMenu();
806 806
807} 807}
808 808
809void AdvancedFm::gotoCustomDir(const QString &dir) 809void AdvancedFm::gotoCustomDir(const QString &dir)
810{ 810{
811// qDebug("gotoCustomDir(const QString &dir) " +dir ); 811// qDebug("gotoCustomDir(const QString &dir) " +dir );
812// QString curDir = dir; 812// QString curDir = dir;
813// QDir *thisDir = CurrentDir(); 813// QDir *thisDir = CurrentDir();
814// if( curDir.isEmpty()) { 814// if( curDir.isEmpty()) {
815// } 815// }
816 if( dir == s_addBookmark) 816 if( dir == s_addBookmark)
817 { 817 {
818 addCustomDir(); 818 addCustomDir();
819 } 819 }
820 if( dir == s_removeBookmark) 820 if( dir == s_removeBookmark)
821 { 821 {
822 removeCustomDir( ); 822 removeCustomDir( );
823 } 823 }
824 else 824 else
825 { 825 {
826 gotoDirectory( dir); 826 gotoDirectory( dir);
827// if(QDir( curDir).exists() ) 827// if(QDir( curDir).exists() )
828// { 828// {
829// thisDir->setPath( curDir ); 829// thisDir->setPath( curDir );
830// chdir( curDir.latin1() ); 830// chdir( curDir.latin1() );
831// thisDir->cd( curDir, TRUE); 831// thisDir->cd( curDir, TRUE);
832// populateView(); 832// populateView();
833// } 833// }
834 } 834 }
835} 835}
836 836
837QDir *AdvancedFm::CurrentDir() 837QDir *AdvancedFm::CurrentDir()
838{ 838{
839 if ( whichTab == 1) 839 if ( whichTab == 1)
840 { 840 {
841 return &currentDir; 841 return &currentDir;
842 } 842 }
843 else 843 else
844 { 844 {
845 return &currentRemoteDir; 845 return &currentRemoteDir;
846 } 846 }
847} 847}
848 848
849QDir *AdvancedFm::OtherDir() 849QDir *AdvancedFm::OtherDir()
850{ 850{
851 if ( whichTab == 1) 851 if ( whichTab == 1)
852 { 852 {
853 return &currentRemoteDir; 853 return &currentRemoteDir;
854 } 854 }
855 else 855 else
856 { 856 {
857 return &currentDir; 857 return &currentDir;
858 } 858 }
859} 859}
860 860
861QListView * AdvancedFm::CurrentView() 861QListView * AdvancedFm::CurrentView()
862{ 862{
863 if ( whichTab == 1) 863 if ( whichTab == 1)
864 return Local_View; 864 return Local_View;
865 else 865 else
866 return Remote_View; 866 return Remote_View;
867} 867}
868 868
869QListView * AdvancedFm::OtherView() 869QListView * AdvancedFm::OtherView()
870{ 870{
871 if ( whichTab == 1) 871 if ( whichTab == 1)
872 return Remote_View; 872 return Remote_View;
873 else 873 else
874 return Local_View; 874 return Local_View;
875} 875}
876 876
877void AdvancedFm::setOtherTabCurrent() 877void AdvancedFm::setOtherTabCurrent()
878{ 878{
879 if ( whichTab == 1) 879 if ( whichTab == 1)
880 TabWidget->setCurrentTab(1); 880 TabWidget->setCurrentTab(1);
881 else 881 else
882 TabWidget->setCurrentTab(0); 882 TabWidget->setCurrentTab(0);
883} 883}
884 884
885void AdvancedFm::qcopReceive(const QCString &msg, const QByteArray &data) { 885void AdvancedFm::qcopReceive(const QCString &msg, const QByteArray &data) {
886 qDebug("qcop message "+msg ); 886 qDebug("qcop message "+msg );
887 QDataStream stream ( data, IO_ReadOnly ); 887 QDataStream stream ( data, IO_ReadOnly );
888 if ( msg == "openDirectory(QString)" ) { 888 if ( msg == "openDirectory(QString)" ) {
889 qDebug("received"); 889 qDebug("received");
890 QString file; 890 QString file;
891 stream >> file; 891 stream >> file;
892 gotoDirectory( (const QString &) file); 892 gotoDirectory( (const QString &) file);
893 } 893 }
894} 894}
895 895
896 void AdvancedFm::setDocument(const QString &file) { 896 void AdvancedFm::setDocument(const QString &file) {
897 gotoDirectory( file); 897 gotoDirectory( file);
898 898
899 } 899 }
900 900
901void AdvancedFm::gotoDirectory(const QString &file) { 901void AdvancedFm::gotoDirectory(const QString &file) {
902 902
903 QString curDir = file; 903 QString curDir = file;
904 QDir *thisDir = CurrentDir(); 904 QDir *thisDir = CurrentDir();
905 905 if(QDir( curDir).exists() ) {
906 if(QDir( curDir).exists() ) {
907 thisDir->setPath( curDir ); 906 thisDir->setPath( curDir );
908 chdir( curDir.latin1() ); 907 chdir( curDir.latin1() );
909 thisDir->cd( curDir, TRUE); 908 thisDir->cd( curDir, TRUE);
910 populateView(); 909 populateView();
911 } 910 }
911 else if(QFileInfo(curDir).exists()) {
912 QFileInfo fileInfo(curDir);
913 curDir=fileInfo.dirPath();
914 if(QDir( curDir).exists() ) {
915 thisDir->setPath( curDir );
916 chdir( curDir.latin1() );
917 thisDir->cd( curDir, TRUE);
918 populateView();
919 }
920 findFile(file);
921 }
922
923}
924
925void AdvancedFm::findFile(const QString &fileName) {
926 QFileInfo fi(fileName);
927 QListView *thisView = CurrentView();
928 QListViewItemIterator it( thisView );
929 for ( ; it.current(); ++it ) {
930 if(it.current()->text(0) == fi.fileName()) {
931 it.current()->setSelected(true);
932 thisView->ensureItemVisible(it.current());
933 }
934 }
912} 935}
diff --git a/noncore/apps/advancedfm/advancedfm.h b/noncore/apps/advancedfm/advancedfm.h
index c9a5525..94d7bd7 100644
--- a/noncore/apps/advancedfm/advancedfm.h
+++ b/noncore/apps/advancedfm/advancedfm.h
@@ -1,178 +1,180 @@
1/*************************************************************************** 1/***************************************************************************
2 advancedfm.h 2 advancedfm.h
3 ------------------- 3 -------------------
4 ** Created: Sat Mar 9 23:33:09 2002 4 ** Created: Sat Mar 9 23:33:09 2002
5 copyright : (C) 2002 by ljp 5 copyright : (C) 2002 by ljp
6 email : ljp@llornkcor.com 6 email : ljp@llornkcor.com
7 * This program is free software; you can redistribute it and/or modify * 7 * This program is free software; you can redistribute it and/or modify *
8 * it under the terms of the GNU General Public License as published by * 8 * it under the terms of the GNU General Public License as published by *
9 * the Free Software Foundation; either version 2 of the License, or * 9 * the Free Software Foundation; either version 2 of the License, or *
10 * (at your option) any later version. * 10 * (at your option) any later version. *
11 ***************************************************************************/ 11 ***************************************************************************/
12#ifndef ADVANCEDFM_H 12#ifndef ADVANCEDFM_H
13#define ADVANCEDFM_H 13#define ADVANCEDFM_H
14#define QTOPIA_INTERNAL_FSLP // to get access to fileproperties 14#define QTOPIA_INTERNAL_FSLP // to get access to fileproperties
15#define QT_QWS_OPIE 15#define QT_QWS_OPIE
16 16
17//#include <opie/otabwidget.h> 17//#include <opie/otabwidget.h>
18#include <opie/oprocess.h> 18#include <opie/oprocess.h>
19 19
20#include <qpe/ir.h> 20#include <qpe/ir.h>
21#include <qpe/qcopenvelope_qws.h> 21#include <qpe/qcopenvelope_qws.h>
22 22
23#include <qvariant.h> 23#include <qvariant.h>
24#include <qdialog.h> 24#include <qdialog.h>
25#include <qmainwindow.h> 25#include <qmainwindow.h>
26#include <qstringlist.h> 26#include <qstringlist.h>
27#include <qdir.h> 27#include <qdir.h>
28#include <qstring.h> 28#include <qstring.h>
29#include <qpoint.h> 29#include <qpoint.h>
30#include <qtimer.h> 30#include <qtimer.h>
31#include <qpixmap.h> 31#include <qpixmap.h>
32 32
33class OTabWidget; 33class OTabWidget;
34class QVBoxLayout; 34class QVBoxLayout;
35class QHBoxLayout; 35class QHBoxLayout;
36class QGridLayout; 36class QGridLayout;
37class QComboBox; 37class QComboBox;
38class QListView; 38class QListView;
39class QListviewItem; 39class QListviewItem;
40class QLabel; 40class QLabel;
41class QProgressBar; 41class QProgressBar;
42class QSpinBox; 42class QSpinBox;
43class QTabWidget; 43class QTabWidget;
44class QWidget; 44class QWidget;
45class QPopupMenu; 45class QPopupMenu;
46class QFile; 46class QFile;
47class QListViewItem; 47class QListViewItem;
48class QLineEdit; 48class QLineEdit;
49class MenuButton; 49class MenuButton;
50 50
51class QToolButton; 51class QToolButton;
52class Ir; 52class Ir;
53 53
54class AdvancedFm : public QMainWindow 54class AdvancedFm : public QMainWindow
55{ 55{
56 Q_OBJECT 56 Q_OBJECT
57public: 57public:
58 AdvancedFm(); 58 AdvancedFm();
59 ~AdvancedFm(); 59 ~AdvancedFm();
60protected slots: 60protected slots:
61 void selectAll(); 61 void selectAll();
62 void addToDocs(); 62 void addToDocs();
63 void doDirChange(); 63 void doDirChange();
64 void mkDir(); 64 void mkDir();
65 void del(); 65 void del();
66 void rn(); 66 void rn();
67 void populateView(); 67 void populateView();
68 void rePopulate(); 68 void rePopulate();
69 void showHidden(); 69 void showHidden();
70 void showMenuHidden(); 70 void showMenuHidden();
71 void writeConfig(); 71 void writeConfig();
72 void readConfig(); 72 void readConfig();
73 void ListClicked(QListViewItem *); 73 void ListClicked(QListViewItem *);
74 void ListPressed( int, QListViewItem *, const QPoint&, int); 74 void ListPressed( int, QListViewItem *, const QPoint&, int);
75 void makeDir(); 75 void makeDir();
76 void doDelete(); 76 void doDelete();
77 void tabChanged(QWidget*); 77 void tabChanged(QWidget*);
78 void cleanUp(); 78 void cleanUp();
79 void renameIt(); 79 void renameIt();
80 void runThis(); 80 void runThis();
81 void runText(); 81 void runText();
82 void filePerms(); 82 void filePerms();
83 void doProperties(); 83 void doProperties();
84 void runCommand(); 84 void runCommand();
85 void runCommandStd(); 85 void runCommandStd();
86 QStringList getPath(); 86 QStringList getPath();
87 void mkSym(); 87 void mkSym();
88 void switchToLocalTab(); 88 void switchToLocalTab();
89 void switchToRemoteTab(); 89 void switchToRemoteTab();
90 90
91protected: 91protected:
92 92
93 OTabWidget *TabWidget; 93 OTabWidget *TabWidget;
94 QCopChannel * channel; 94 QCopChannel * channel;
95 QPixmap unknownXpm; 95 QPixmap unknownXpm;
96 int whichTab; 96 int whichTab;
97// QTabWidget *TabWidget; 97// QTabWidget *TabWidget;
98 QWidget *tab, *tab_2, *tab_3; 98 QWidget *tab, *tab_2, *tab_3;
99 QListView *Local_View, *Remote_View; 99 QListView *Local_View, *Remote_View;
100 100
101 QLineEdit *currentPathEdit; 101 QLineEdit *currentPathEdit;
102 QPopupMenu *fileMenu, *localMenu, *remoteMenu, *viewMenu /*, *customDirMenu*/; 102 QPopupMenu *fileMenu, *localMenu, *remoteMenu, *viewMenu /*, *customDirMenu*/;
103 QToolButton *homeButton, *docButton, *cdUpButton, *sdButton, *cfButton, *qpeDirButton; 103 QToolButton *homeButton, *docButton, *cdUpButton, *sdButton, *cfButton, *qpeDirButton;
104// QPushButton *homeButton, *docButton, *cdUpButton, *sdButton, *cfButton, *qpeDirButton; 104// QPushButton *homeButton, *docButton, *cdUpButton, *sdButton, *cfButton, *qpeDirButton;
105 QDir currentDir, currentRemoteDir; 105 QDir currentDir, currentRemoteDir;
106 QComboBox *currentPathCombo; 106 QComboBox *currentPathCombo;
107 QString filterStr, s_addBookmark, s_removeBookmark; 107 QString filterStr, s_addBookmark, s_removeBookmark;
108 QListViewItem * item; 108 QListViewItem * item;
109 bool b; 109 bool b;
110 QStringList fileSystemTypeList, fsList; 110 QStringList fileSystemTypeList, fsList;
111 int currentServerConfig; 111 int currentServerConfig;
112 bool zaurusDevice; 112 bool zaurusDevice;
113 QGridLayout *tabLayout, *tabLayout_2, *tabLayout_3; 113 QGridLayout *tabLayout, *tabLayout_2, *tabLayout_3;
114 QStringList remoteDirPathStringList, localDirPathStringList; 114 QStringList remoteDirPathStringList, localDirPathStringList;
115 QLineEdit *renameBox; 115 QLineEdit *renameBox;
116 116
117 void init(); 117 void init();
118 void initConnections(); 118 void initConnections();
119 void keyReleaseEvent( QKeyEvent *); 119 void keyReleaseEvent( QKeyEvent *);
120 void keyPressEvent( QKeyEvent *); 120 void keyPressEvent( QKeyEvent *);
121 QString getFileSystemType(const QString &); 121 QString getFileSystemType(const QString &);
122 QString getDiskSpace(const QString &); 122 QString getDiskSpace(const QString &);
123 void parsetab(const QString &fileName); 123 void parsetab(const QString &fileName);
124 QString checkDiskSpace(const QString &); 124 QString checkDiskSpace(const QString &);
125 QString dealWithSymName(const QString &); 125 QString dealWithSymName(const QString &);
126 QDir *CurrentDir(); 126 QDir *CurrentDir();
127 QDir *OtherDir(); 127 QDir *OtherDir();
128 QListView *CurrentView(); 128 QListView *CurrentView();
129 QListView *OtherView(); 129 QListView *OtherView();
130 void setOtherTabCurrent(); 130 void setOtherTabCurrent();
131 131
132protected slots: 132protected slots:
133 void dirMenuSelected(int); 133 void dirMenuSelected(int);
134 void showFileMenu(); 134 void showFileMenu();
135 void cancelMenuTimer(); 135 void cancelMenuTimer();
136 void homeButtonPushed(); 136 void homeButtonPushed();
137 void docButtonPushed(); 137 void docButtonPushed();
138 void SDButtonPushed(); 138 void SDButtonPushed();
139 void CFButtonPushed(); 139 void CFButtonPushed();
140 void QPEButtonPushed(); 140 void QPEButtonPushed();
141 void upDir(); 141 void upDir();
142 void currentPathComboChanged(); 142 void currentPathComboChanged();
143 void copy(); 143 void copy();
144 void copyAs(); 144 void copyAs();
145 void copySameDir(); 145 void copySameDir();
146 void currentPathComboActivated(const QString &); 146 void currentPathComboActivated(const QString &);
147 void fillCombo(const QString &); 147 void fillCombo(const QString &);
148 bool copyFile( const QString & , const QString & ); 148 bool copyFile( const QString & , const QString & );
149 void move(); 149 void move();
150 void fileStatus(); 150 void fileStatus();
151 void doAbout(); 151 void doAbout();
152 void doBeam(); 152 void doBeam();
153 void fileBeamFinished( Ir *); 153 void fileBeamFinished( Ir *);
154 154
155private: 155private:
156 MenuButton *menuButton; 156 MenuButton *menuButton;
157 QString oldName; 157 QString oldName;
158 QTimer menuTimer; 158 QTimer menuTimer;
159 void startProcess(const QString &); 159 void startProcess(const QString &);
160 bool eventFilter( QObject * , QEvent * ); 160 bool eventFilter( QObject * , QEvent * );
161 void cancelRename(); 161 void cancelRename();
162 void doRename(QListView *); 162 void doRename(QListView *);
163 void okRename(); 163 void okRename();
164 void customDirsToMenu(); 164 void customDirsToMenu();
165 void addCustomDir(); 165 void addCustomDir();
166 void removeCustomDir(); 166 void removeCustomDir();
167 void gotoDirectory(const QString &); 167 void gotoDirectory(const QString &);
168 void openSearch();
169 void findFile(const QString &);
168 170
169private slots: 171private slots:
170 void processEnded(OProcess *); 172 void processEnded(OProcess *);
171 void oprocessStderr(OProcess *, char *, int); 173 void oprocessStderr(OProcess *, char *, int);
172 void gotoCustomDir(const QString &); 174 void gotoCustomDir(const QString &);
173 void qcopReceive(const QCString&, const QByteArray&); 175 void qcopReceive(const QCString&, const QByteArray&);
174 void setDocument(const QString &); 176 void setDocument(const QString &);
175 177
176}; 178};
177 179
178#endif // ADVANCEDFM_H 180#endif // ADVANCEDFM_H
diff --git a/noncore/apps/advancedfm/advancedfmData.cpp b/noncore/apps/advancedfm/advancedfmData.cpp
index d0de442..a120f35 100644
--- a/noncore/apps/advancedfm/advancedfmData.cpp
+++ b/noncore/apps/advancedfm/advancedfmData.cpp
@@ -1,271 +1,284 @@
1/*************************************************************************** 1/***************************************************************************
2 advancedfmData.cpp 2 advancedfmData.cpp
3 ------------------- 3 -------------------
4** Created: Mon 09-23-2002 13:24:11 4** Created: Mon 09-23-2002 13:24:11
5 copyright : (C) 2002 by ljp 5 copyright : (C) 2002 by ljp
6 email : ljp@llornkcor.com 6 email : ljp@llornkcor.com
7 * This program is free software; you can redistribute it and/or modify * 7 * This program is free software; you can redistribute it and/or modify *
8 * it under the terms of the GNU General Public License as published by * 8 * it under the terms of the GNU General Public License as published by *
9 * the Free Software Foundation; either version 2 of the License, or * 9 * the Free Software Foundation; either version 2 of the License, or *
10 * (at your option) any later version. * 10 * (at your option) any later version. *
11 ***************************************************************************/ 11 ***************************************************************************/
12#include "advancedfm.h" 12#include "advancedfm.h"
13 13
14#include <opie/otabwidget.h> 14#include <opie/otabwidget.h>
15#include <qpe/storage.h>
16
15#include <qpe/qpeapplication.h> 17#include <qpe/qpeapplication.h>
16#include <qpe/resource.h> 18#include <qpe/resource.h>
17#include <qpe/menubutton.h> 19#include <qpe/menubutton.h>
18 20
19#include <qlayout.h> 21#include <qlayout.h>
20#include <qhbox.h> 22#include <qhbox.h>
21#include <qmenubar.h> 23#include <qmenubar.h>
22#include <qcombobox.h> 24#include <qcombobox.h>
23#include <qtoolbutton.h> 25#include <qtoolbutton.h>
24#include <qlineedit.h> 26#include <qlineedit.h>
25#include <qlistview.h> 27#include <qlistview.h>
26 28
27#include <sys/utsname.h> 29#include <sys/utsname.h>
28 30
29 31
30void AdvancedFm::init() { 32void AdvancedFm::init() {
31#if defined(QT_QWS_OPIE) 33#if defined(QT_QWS_OPIE)
32 qDebug("<<<<<<<<<<<<<<<<<<<<<<<< OPIE!!!"); 34 qDebug("<<<<<<<<<<<<<<<<<<<<<<<< OPIE!!!");
33#endif 35#endif
34 setCaption( tr( "AdvancedFm" ) ); 36 setCaption( tr( "AdvancedFm" ) );
35 37
36 QVBoxLayout *layout = new QVBoxLayout( this ); 38 QVBoxLayout *layout = new QVBoxLayout( this );
37 layout->setSpacing( 2); 39 layout->setSpacing( 2);
38 layout->setMargin( 2); 40 layout->setMargin( 2);
39 41
40 QMenuBar *menuBar = new QMenuBar(this); 42 QMenuBar *menuBar = new QMenuBar(this);
41 fileMenu = new QPopupMenu( this ); 43 fileMenu = new QPopupMenu( this );
42 viewMenu = new QPopupMenu( this ); 44 viewMenu = new QPopupMenu( this );
43// customDirMenu = new QPopupMenu( this ); 45// customDirMenu = new QPopupMenu( this );
44 46
45 layout->addWidget( menuBar ); 47 layout->addWidget( menuBar );
46 48
47 menuBar->insertItem( tr( "File" ), fileMenu); 49 menuBar->insertItem( tr( "File" ), fileMenu);
48 menuBar->insertItem( tr( "View" ), viewMenu); 50 menuBar->insertItem( tr( "View" ), viewMenu);
49 51
50 cdUpButton = new QToolButton( 0,"cdUpButton"); 52 cdUpButton = new QToolButton( 0,"cdUpButton");
51 cdUpButton->setPixmap(Resource::loadPixmap("up")); 53 cdUpButton->setPixmap(Resource::loadPixmap("up"));
52 cdUpButton->setAutoRaise( true ); 54 cdUpButton->setAutoRaise( true );
53 menuBar->insertItem( cdUpButton ); 55 menuBar->insertItem( cdUpButton );
54 56
55 57
56 QHBox *lineBox = new QHBox( this ); 58 QHBox *lineBox = new QHBox( this );
57 59
58 qpeDirButton= new QToolButton( 0,"QPEButton"); 60 qpeDirButton= new QToolButton( 0,"QPEButton");
59 qpeDirButton->setPixmap( Resource::loadPixmap("launcher/opielogo16x16"));//,"",this,"QPEButton"); 61 qpeDirButton->setPixmap( Resource::loadPixmap("launcher/opielogo16x16"));//,"",this,"QPEButton");
60 qpeDirButton->setAutoRaise( true ); 62 qpeDirButton->setAutoRaise( true );
61 menuBar->insertItem( qpeDirButton ); 63 menuBar->insertItem( qpeDirButton );
62 64
63 cfButton = new QToolButton( 0, "CFButton"); 65 cfButton = new QToolButton( 0, "CFButton");
64 cfButton->setPixmap(Resource::loadPixmap("cardmon/pcmcia")); 66 cfButton->setPixmap(Resource::loadPixmap("cardmon/pcmcia"));
65 cfButton->setAutoRaise( true ); 67 cfButton->setAutoRaise( true );
66 menuBar->insertItem( cfButton ); 68 menuBar->insertItem( cfButton );
67 69
68 sdButton = new QToolButton( 0, "SDButton"); 70 sdButton = new QToolButton( 0, "SDButton");
69 sdButton->setPixmap(Resource::loadPixmap("advancedfm/sdcard")); 71 sdButton->setPixmap(Resource::loadPixmap("advancedfm/sdcard"));
70 sdButton->setAutoRaise( true ); 72 sdButton->setAutoRaise( true );
71 menuBar->insertItem( sdButton ); 73 menuBar->insertItem( sdButton );
72 74
73 docButton = new QToolButton( 0,"docsButton"); 75 docButton = new QToolButton( 0,"docsButton");
74 docButton->setPixmap(Resource::loadPixmap("DocsIcon")); 76 docButton->setPixmap(Resource::loadPixmap("DocsIcon"));
75 docButton->setAutoRaise( true ); 77 docButton->setAutoRaise( true );
76 menuBar->insertItem( docButton ); 78 menuBar->insertItem( docButton );
77 79
78 homeButton = new QToolButton( 0, "homeButton"); 80 homeButton = new QToolButton( 0, "homeButton");
79 homeButton->setPixmap(Resource::loadPixmap("home")); 81 homeButton->setPixmap(Resource::loadPixmap("home"));
80 homeButton->setAutoRaise( true ); 82 homeButton->setAutoRaise( true );
81 menuBar->insertItem( homeButton ); 83 menuBar->insertItem( homeButton );
82 84
83 fileMenu->insertItem( tr( "Show Hidden Files" ), this, SLOT( showMenuHidden() )); 85 fileMenu->insertItem( tr( "Show Hidden Files" ), this, SLOT( showMenuHidden() ));
84 fileMenu->setItemChecked( fileMenu->idAt(0),TRUE); 86 fileMenu->setItemChecked( fileMenu->idAt(0),TRUE);
85 fileMenu->insertSeparator(); 87 fileMenu->insertSeparator();
88 fileMenu->insertItem( tr( "File Search" ), this, SLOT( openSearch() ));
89 fileMenu->insertSeparator();
86 fileMenu->insertItem( tr( "Make Directory" ), this, SLOT( mkDir() )); 90 fileMenu->insertItem( tr( "Make Directory" ), this, SLOT( mkDir() ));
87 fileMenu->insertItem( tr( "Rename" ), this, SLOT( rn() )); 91 fileMenu->insertItem( tr( "Rename" ), this, SLOT( rn() ));
88 fileMenu->insertItem( tr( "Run Command" ), this, SLOT( runCommandStd() )); 92 fileMenu->insertItem( tr( "Run Command" ), this, SLOT( runCommandStd() ));
89 fileMenu->insertItem( tr( "Run Command with Output" ), this, SLOT( runCommand() )); 93 fileMenu->insertItem( tr( "Run Command with Output" ), this, SLOT( runCommand() ));
90 fileMenu->insertSeparator(); 94 fileMenu->insertSeparator();
91 fileMenu->insertItem( tr( "Make Symlink" ), this, SLOT( mkSym() )); 95 fileMenu->insertItem( tr( "Make Symlink" ), this, SLOT( mkSym() ));
92 fileMenu->insertItem( tr( "Select All" ), this, SLOT( selectAll() )); 96 fileMenu->insertItem( tr( "Select All" ), this, SLOT( selectAll() ));
93 fileMenu->insertItem( tr( "Add To Documents" ), this, SLOT( addToDocs() )); 97 fileMenu->insertItem( tr( "Add To Documents" ), this, SLOT( addToDocs() ));
94 fileMenu->insertItem( tr( "Delete" ), this, SLOT( del() )); 98 fileMenu->insertItem( tr( "Delete" ), this, SLOT( del() ));
95 fileMenu->setCheckable(TRUE); 99 fileMenu->setCheckable(TRUE);
96 100
97 viewMenu->insertItem( tr( "Switch to Local" ), this, SLOT( switchToLocalTab() )); 101 viewMenu->insertItem( tr( "Switch to Local" ), this, SLOT( switchToLocalTab() ));
98 viewMenu->insertItem( tr( "Switch to Remote" ), this, SLOT( switchToRemoteTab() )); 102 viewMenu->insertItem( tr( "Switch to Remote" ), this, SLOT( switchToRemoteTab() ));
99// viewMenu->insertSeparator(); 103// viewMenu->insertSeparator();
100// viewMenu->insertItem( tr( "About" ), this, SLOT( doAbout() )); 104// viewMenu->insertItem( tr( "About" ), this, SLOT( doAbout() ));
101 viewMenu->setCheckable(TRUE); 105 viewMenu->setCheckable(TRUE);
102 106
103 s_addBookmark = tr("Bookmark Directory"); 107 s_addBookmark = tr("Bookmark Directory");
104 s_removeBookmark = tr("Remove Current Directory from Bookmarks"); 108 s_removeBookmark = tr("Remove Current Directory from Bookmarks");
105 109
106// menuButton->insertItem(""); 110// menuButton->insertItem("");
107 111
108// customDirMenu->insertItem(tr("Add This Directory")); 112// customDirMenu->insertItem(tr("Add This Directory"));
109// customDirMenu->insertItem(tr("Remove This Directory")); 113// customDirMenu->insertItem(tr("Remove This Directory"));
110// customDirMenu->insertSeparator(); 114// customDirMenu->insertSeparator();
111 115
112 menuButton = new MenuButton( lineBox ); 116 menuButton = new MenuButton( lineBox );
113 117
114 menuButton->setUseLabel(false); 118 menuButton->setUseLabel(false);
115 menuButton->setMaximumWidth( 20 ); 119 menuButton->setMaximumWidth( 20 );
116 menuButton->insertItem( s_addBookmark); 120 menuButton->insertItem( s_addBookmark);
117 menuButton->insertItem( s_removeBookmark); 121 menuButton->insertItem( s_removeBookmark);
118 menuButton->insertSeparator(); 122 menuButton->insertSeparator();
119 123
120 customDirsToMenu(); 124 customDirsToMenu();
121 125
122 currentPathCombo = new QComboBox( FALSE, lineBox, "currentPathCombo" ); 126 currentPathCombo = new QComboBox( FALSE, lineBox, "currentPathCombo" );
123 currentPathCombo->setEditable(TRUE); 127 currentPathCombo->setEditable(TRUE);
124 currentPathCombo->lineEdit()->setText( currentDir.canonicalPath()); 128 currentPathCombo->lineEdit()->setText( currentDir.canonicalPath());
125 129
126 layout->addWidget( lineBox ); 130 layout->addWidget( lineBox );
127 131
128 132
129 TabWidget = new OTabWidget( this, "TabWidget",/* OTabWidget::Global | */OTabWidget::IconTab); 133 TabWidget = new OTabWidget( this, "TabWidget",/* OTabWidget::Global | */OTabWidget::IconTab);
130// TabWidget = new QTabWidget( this, "TabWidget" ); 134// TabWidget = new QTabWidget( this, "TabWidget" );
131 layout->addWidget( TabWidget, 4 ); 135 layout->addWidget( TabWidget, 4 );
132 136
133 tab = new QWidget( TabWidget, "tab" ); 137 tab = new QWidget( TabWidget, "tab" );
134 tabLayout = new QGridLayout( tab ); 138 tabLayout = new QGridLayout( tab );
135 tabLayout->setSpacing( 2); 139 tabLayout->setSpacing( 2);
136 tabLayout->setMargin( 2); 140 tabLayout->setMargin( 2);
137 141
138 Local_View = new QListView( tab, "Local_View" ); 142 Local_View = new QListView( tab, "Local_View" );
139 Local_View->addColumn( tr("File"),130); 143 Local_View->addColumn( tr("File"),130);
140 Local_View->addColumn( tr("Size"),-1); 144 Local_View->addColumn( tr("Size"),-1);
141 Local_View->setColumnAlignment(1,QListView::AlignRight); 145 Local_View->setColumnAlignment(1,QListView::AlignRight);
142 Local_View->addColumn( tr("Date"),-1); 146 Local_View->addColumn( tr("Date"),-1);
143 Local_View->setColumnAlignment(2,QListView::AlignRight); 147 Local_View->setColumnAlignment(2,QListView::AlignRight);
144 Local_View->setAllColumnsShowFocus(TRUE); 148 Local_View->setAllColumnsShowFocus(TRUE);
145 Local_View->setMultiSelection( TRUE ); 149 Local_View->setMultiSelection( TRUE );
146 Local_View->setSelectionMode(QListView::Extended); 150 Local_View->setSelectionMode(QListView::Extended);
147 151
148 QPEApplication::setStylusOperation( Local_View->viewport(),QPEApplication::RightOnHold); 152 QPEApplication::setStylusOperation( Local_View->viewport(),QPEApplication::RightOnHold);
149 153
150 tabLayout->addWidget( Local_View, 0, 0 ); 154 tabLayout->addWidget( Local_View, 0, 0 );
151 155
152 TabWidget->addTab( tab,"advancedfm/smFileBrowser.png", tr("1")); 156 TabWidget->addTab( tab,"advancedfm/smFileBrowser.png", tr("1"));
153// TabWidget->insertTab( tab, tr("1")); 157// TabWidget->insertTab( tab, tr("1"));
154 158
155 tab_2 = new QWidget( TabWidget, "tab_2" ); 159 tab_2 = new QWidget( TabWidget, "tab_2" );
156 tabLayout_2 = new QGridLayout( tab_2 ); 160 tabLayout_2 = new QGridLayout( tab_2 );
157 tabLayout_2->setSpacing( 2); 161 tabLayout_2->setSpacing( 2);
158 tabLayout_2->setMargin( 2); 162 tabLayout_2->setMargin( 2);
159 163
160 Remote_View = new QListView( tab_2, "Remote_View" ); 164 Remote_View = new QListView( tab_2, "Remote_View" );
161 Remote_View->addColumn( tr("File"),130); 165 Remote_View->addColumn( tr("File"),130);
162 Remote_View->addColumn( tr("Size"),-1); 166 Remote_View->addColumn( tr("Size"),-1);
163 Remote_View->setColumnAlignment(1,QListView::AlignRight); 167 Remote_View->setColumnAlignment(1,QListView::AlignRight);
164 Remote_View->addColumn( tr("Date"),-1); 168 Remote_View->addColumn( tr("Date"),-1);
165 Remote_View->setColumnAlignment(2,QListView::AlignRight); 169 Remote_View->setColumnAlignment(2,QListView::AlignRight);
166 Remote_View->setAllColumnsShowFocus(TRUE); 170 Remote_View->setAllColumnsShowFocus(TRUE);
167 Remote_View->setMultiSelection( TRUE ); 171 Remote_View->setMultiSelection( TRUE );
168 Remote_View->setSelectionMode(QListView::Extended); 172 Remote_View->setSelectionMode(QListView::Extended);
169 173
170 174
171 QPEApplication::setStylusOperation( Remote_View->viewport(),QPEApplication::RightOnHold); 175 QPEApplication::setStylusOperation( Remote_View->viewport(),QPEApplication::RightOnHold);
172 176
173 tabLayout_2->addWidget( Remote_View, 0, 0 ); 177 tabLayout_2->addWidget( Remote_View, 0, 0 );
174 178
175 TabWidget->addTab( tab_2, "advancedfm/smFileBrowser.png",tr( "2")); 179 TabWidget->addTab( tab_2, "advancedfm/smFileBrowser.png",tr( "2"));
176// TabWidget->insertTab( tab_2, tr( "2")); 180// TabWidget->insertTab( tab_2, tr( "2"));
177 181
178 /* tab_3 = new QWidget( TabWidget, "tab_3" ); 182 /* tab_3 = new QWidget( TabWidget, "tab_3" );
179 tabLayout_3 = new QGridLayout( tab_3 ); 183 tabLayout_3 = new QGridLayout( tab_3 );
180 tabLayout_3->setSpacing( 2); 184 tabLayout_3->setSpacing( 2);
181 tabLayout_3->setMargin( 2); 185 tabLayout_3->setMargin( 2);
182 186
183 187
184 // OFileDialog fileDialog; 188 // OFileDialog fileDialog;
185 // fileDialog; 189 // fileDialog;
186 // fileSelector = new FileSelector( "*",tab_3, "fileselector" , FALSE, FALSE); //buggy 190 // fileSelector = new FileSelector( "*",tab_3, "fileselector" , FALSE, FALSE); //buggy
187 // fileDialog = new OFileDialog("bangalow", tab_3, 4, 2, "Bungalow"); 191 // fileDialog = new OFileDialog("bangalow", tab_3, 4, 2, "Bungalow");
188 // OFileSelector fileDialog = new OFileSelector( tab_3, 4, 2,"/"); 192 // OFileSelector fileDialog = new OFileSelector( tab_3, 4, 2,"/");
189 193
190 QListView *fileTree; 194 QListView *fileTree;
191 fileTree = new QListView( tab_3, "tree" ); 195 fileTree = new QListView( tab_3, "tree" );
192 196
193 197
194 tabLayout_3->addMultiCellWidget( fileTree, 0, 0, 0, 3 ); 198 tabLayout_3->addMultiCellWidget( fileTree, 0, 0, 0, 3 );
195 199
196 TabWidget->insertTab( tab_3, tr( "Remote" ) ); 200 TabWidget->insertTab( tab_3, tr( "Remote" ) );
197 */ 201 */
198 202
199 /////////////// 203 ///////////////
200 204
205
201 struct utsname name; /* check for embedix kernel running on the zaurus*/ 206 struct utsname name; /* check for embedix kernel running on the zaurus*/
202 if (uname(&name) != -1) { 207 if (uname(&name) != -1) {
203 QString release=name.release; 208 QString release=name.release;
204 if(release.find("embedix",0,TRUE) !=-1) { 209 if(release.find("embedix",0,TRUE) !=-1) {
205 zaurusDevice=TRUE; 210 zaurusDevice=TRUE;
206 } else { 211 } else {
207 zaurusDevice=FALSE; 212 zaurusDevice=FALSE;
208 sdButton->hide();
209 } 213 }
210 } 214 }
211 215
216 if( !StorageInfo::hasSd() || !StorageInfo::hasMmc()) {
217 qDebug("not have sd");
218 sdButton->hide();
219 }
220 if( !StorageInfo::hasCf() ) {
221 qDebug("not have cf");
222 cfButton->hide();
223 }
212 currentDir.setFilter( QDir::Files | QDir::Dirs | QDir::Hidden | QDir::All); 224 currentDir.setFilter( QDir::Files | QDir::Dirs | QDir::Hidden | QDir::All);
213 currentDir.setPath( QDir::currentDirPath()); 225 currentDir.setPath( QDir::currentDirPath());
214 226
215 currentRemoteDir.setFilter( QDir::Files | QDir::Dirs | QDir::Hidden | QDir::All); 227 currentRemoteDir.setFilter( QDir::Files | QDir::Dirs | QDir::Hidden | QDir::All);
216 currentRemoteDir.setPath( QDir::currentDirPath()); 228 currentRemoteDir.setPath( QDir::currentDirPath());
217 229
218 b = TRUE; 230 b = TRUE;
219 231
220 filterStr="*"; 232 filterStr="*";
221 b=FALSE; 233 b=FALSE;
222 TabWidget->setCurrentTab(0); 234 TabWidget->setCurrentTab(0);
223 235
224} 236}
225 237
226void AdvancedFm::initConnections() 238void AdvancedFm::initConnections()
227{ 239{
228 240
229 connect( qApp,SIGNAL( aboutToQuit()), 241 connect( qApp,SIGNAL( aboutToQuit()),
230 this, SLOT( cleanUp()) ); 242 this, SLOT( cleanUp()) );
231 connect( qpeDirButton ,SIGNAL(released()), 243 connect( qpeDirButton ,SIGNAL(released()),
232 this,SLOT( QPEButtonPushed()) ); 244 this,SLOT( QPEButtonPushed()) );
233 connect( cfButton ,SIGNAL(released()), 245 connect( cfButton ,SIGNAL(released()),
234 this,SLOT( CFButtonPushed()) ); 246 this,SLOT( CFButtonPushed()) );
235 connect( sdButton ,SIGNAL(released()), 247 connect( sdButton ,SIGNAL(released()),
236 this,SLOT( SDButtonPushed()) ); 248 this,SLOT( SDButtonPushed()) );
237 connect( cdUpButton ,SIGNAL(released()), 249 connect( cdUpButton ,SIGNAL(released()),
238 this,SLOT( upDir()) ); 250 this,SLOT( upDir()) );
239 connect( docButton,SIGNAL(released()), 251 connect( docButton,SIGNAL(released()),
240 this,SLOT( docButtonPushed()) ); 252 this,SLOT( docButtonPushed()) );
241 connect( homeButton,SIGNAL(released()), 253 connect( homeButton,SIGNAL(released()),
242 this,SLOT( homeButtonPushed()) ); 254 this,SLOT( homeButtonPushed()) );
243 connect( currentPathCombo, SIGNAL( activated( const QString & ) ), 255 connect( currentPathCombo, SIGNAL( activated( const QString & ) ),
244 this, SLOT( currentPathComboActivated( const QString & ) ) ); 256 this, SLOT( currentPathComboActivated( const QString & ) ) );
245 257
246 connect( currentPathCombo->lineEdit(),SIGNAL(returnPressed()), 258 connect( currentPathCombo->lineEdit(),SIGNAL(returnPressed()),
247 this,SLOT(currentPathComboChanged())); 259 this,SLOT(currentPathComboChanged()));
248 260
249 connect( Local_View, SIGNAL( clicked( QListViewItem*)), 261 connect( Local_View, SIGNAL( clicked( QListViewItem*)),
250 this,SLOT( ListClicked(QListViewItem *)) ); 262 this,SLOT( ListClicked(QListViewItem *)) );
263
251 connect( Local_View, SIGNAL( mouseButtonPressed( int, QListViewItem *, const QPoint&, int)), 264 connect( Local_View, SIGNAL( mouseButtonPressed( int, QListViewItem *, const QPoint&, int)),
252 this,SLOT( ListPressed(int, QListViewItem *, const QPoint&, int)) ); 265 this,SLOT( ListPressed(int, QListViewItem *, const QPoint&, int)) );
253 266
254 connect( Local_View, SIGNAL( selectionChanged() ), SLOT( cancelMenuTimer() ) ); 267 connect( Local_View, SIGNAL( selectionChanged() ), SLOT( cancelMenuTimer() ) );
255 268
256 connect( Remote_View, SIGNAL( clicked( QListViewItem*)), 269 connect( Remote_View, SIGNAL( clicked( QListViewItem*)),
257 this,SLOT( ListClicked(QListViewItem *)) ); 270 this,SLOT( ListClicked(QListViewItem *)) );
258 connect( Remote_View, SIGNAL( mouseButtonPressed( int, QListViewItem *, const QPoint&, int)), 271 connect( Remote_View, SIGNAL( mouseButtonPressed( int, QListViewItem *, const QPoint&, int)),
259 this,SLOT( ListPressed(int, QListViewItem *, const QPoint&, int)) ); 272 this,SLOT( ListPressed(int, QListViewItem *, const QPoint&, int)) );
260 273
261 connect( TabWidget,SIGNAL(currentChanged(QWidget *)), 274 connect( TabWidget,SIGNAL(currentChanged(QWidget *)),
262 this,SLOT(tabChanged(QWidget*))); 275 this,SLOT(tabChanged(QWidget*)));
263 276
264 connect( &menuTimer, SIGNAL( timeout() ), SLOT( showFileMenu() ) ); 277 connect( &menuTimer, SIGNAL( timeout() ), SLOT( showFileMenu() ) );
265 278
266 connect( menuButton, SIGNAL( selected(const QString &)), SLOT(gotoCustomDir(const QString&))); 279 connect( menuButton, SIGNAL( selected(const QString &)), SLOT(gotoCustomDir(const QString&)));
267// connect( menuButton, SIGNAL( selected( int)), SLOT( dirMenuSelected(int))); 280// connect( menuButton, SIGNAL( selected( int)), SLOT( dirMenuSelected(int)));
268 281
269// connect( customDirMenu, SIGNAL( activated(int)), this, SLOT( dirMenuSelected(int))); 282// connect( customDirMenu, SIGNAL( activated(int)), this, SLOT( dirMenuSelected(int)));
270 283
271} 284}
diff --git a/noncore/apps/advancedfm/advancedfmMenu.cpp b/noncore/apps/advancedfm/advancedfmMenu.cpp
index 575833a..2201960 100644
--- a/noncore/apps/advancedfm/advancedfmMenu.cpp
+++ b/noncore/apps/advancedfm/advancedfmMenu.cpp
@@ -1,429 +1,434 @@
1/*************************************************************************** 1/***************************************************************************
2 AdvancedFm.cpp 2 AdvancedFm.cpp
3 ------------------- 3 -------------------
4 ** Created: Sat Mar 9 23:33:09 2002 4 ** Created: Sat Mar 9 23:33:09 2002
5 copyright : (C) 2002 by ljp 5 copyright : (C) 2002 by ljp
6 email : ljp@llornkcor.com 6 email : ljp@llornkcor.com
7 * This program is free software; you can redistribute it and/or modify * 7 * This program is free software; you can redistribute it and/or modify *
8 * it under the terms of the GNU General Public License as published by * 8 * it under the terms of the GNU General Public License as published by *
9 * the Free Software Foundation; either version 2 of the License, or * 9 * the Free Software Foundation; either version 2 of the License, or *
10 * (at your option) any later version. * 10 * (at your option) any later version. *
11 ***************************************************************************/ 11 ***************************************************************************/
12#include "advancedfm.h" 12#include "advancedfm.h"
13#include "output.h" 13#include "output.h"
14#include "filePermissions.h" 14#include "filePermissions.h"
15 15
16#include <opie/otabwidget.h> 16#include <opie/otabwidget.h>
17#include <opie/oprocess.h> 17#include <opie/oprocess.h>
18 18
19#include <qpe/lnkproperties.h> 19#include <qpe/lnkproperties.h>
20#include <qpe/qpeapplication.h> 20#include <qpe/qpeapplication.h>
21#include <qpe/resource.h> 21#include <qpe/resource.h>
22#include <qpe/qcopenvelope_qws.h> 22#include <qpe/qcopenvelope_qws.h>
23#include <qpe/applnk.h> 23#include <qpe/applnk.h>
24#include <qpe/ir.h> 24#include <qpe/ir.h>
25 25
26#include <qmessagebox.h> 26#include <qmessagebox.h>
27#include <qmultilineedit.h> 27#include <qmultilineedit.h>
28 28
29#include <qstring.h> 29#include <qstring.h>
30 30
31#include <qlayout.h> 31#include <qlayout.h>
32#include <qpixmap.h> 32#include <qpixmap.h>
33#include <qcombobox.h> 33#include <qcombobox.h>
34#include <qpopupmenu.h> 34#include <qpopupmenu.h>
35#include <qtabwidget.h> 35#include <qtabwidget.h>
36#include <qtoolbutton.h> 36#include <qtoolbutton.h>
37#include <qtabwidget.h> 37#include <qtabwidget.h>
38#include <qlineedit.h> 38#include <qlineedit.h>
39#include <qlistview.h> 39#include <qlistview.h>
40 40
41#include <stdlib.h> 41#include <stdlib.h>
42#include <unistd.h> 42#include <unistd.h>
43#include <sys/stat.h> 43#include <sys/stat.h>
44#include <dirent.h> 44#include <dirent.h>
45#include <sys/sendfile.h> 45#include <sys/sendfile.h>
46#include <fcntl.h> 46#include <fcntl.h>
47 47
48void AdvancedFm::doDirChange() 48void AdvancedFm::doDirChange()
49{ 49{
50 ListClicked( CurrentView()->currentItem()); 50 ListClicked( CurrentView()->currentItem());
51} 51}
52 52
53void AdvancedFm::showMenuHidden() 53void AdvancedFm::showMenuHidden()
54{ 54{
55 if (b) 55 if (b)
56 { 56 {
57 CurrentDir()->setFilter( QDir::Files | QDir::Dirs | QDir::Hidden | QDir::All); 57 CurrentDir()->setFilter( QDir::Files | QDir::Dirs | QDir::Hidden | QDir::All);
58 OtherDir()->setFilter( QDir::Files | QDir::Dirs | QDir::Hidden | QDir::All); 58 OtherDir()->setFilter( QDir::Files | QDir::Dirs | QDir::Hidden | QDir::All);
59 fileMenu->setItemChecked( fileMenu->idAt(0),TRUE); 59 fileMenu->setItemChecked( fileMenu->idAt(0),TRUE);
60// b=FALSE; 60// b=FALSE;
61 61
62 } 62 }
63 else 63 else
64 { 64 {
65 CurrentDir()->setFilter( QDir::Files | QDir::Dirs/* | QDir::Hidden*/ | QDir::All); 65 CurrentDir()->setFilter( QDir::Files | QDir::Dirs/* | QDir::Hidden*/ | QDir::All);
66 OtherDir()->setFilter( QDir::Files | QDir::Dirs/* | QDir::Hidden*/ | QDir::All); 66 OtherDir()->setFilter( QDir::Files | QDir::Dirs/* | QDir::Hidden*/ | QDir::All);
67 fileMenu->setItemChecked( fileMenu->idAt(0),FALSE); 67 fileMenu->setItemChecked( fileMenu->idAt(0),FALSE);
68// b=TRUE; 68// b=TRUE;
69 } 69 }
70 rePopulate(); 70 rePopulate();
71// if(b) qDebug("<<<<<<<<<<<<<<<<<<<<<<<<<<<< true"); 71// if(b) qDebug("<<<<<<<<<<<<<<<<<<<<<<<<<<<< true");
72 if(b) b = false; else b = true; 72 if(b) b = false; else b = true;
73} 73}
74 74
75void AdvancedFm::showHidden() 75void AdvancedFm::showHidden()
76{ 76{
77 if (b) 77 if (b)
78 { 78 {
79 CurrentDir()->setFilter( QDir::Files | QDir::Dirs | QDir::Hidden | QDir::All); 79 CurrentDir()->setFilter( QDir::Files | QDir::Dirs | QDir::Hidden | QDir::All);
80 OtherDir()->setFilter( QDir::Files | QDir::Dirs | QDir::Hidden | QDir::All); 80 OtherDir()->setFilter( QDir::Files | QDir::Dirs | QDir::Hidden | QDir::All);
81// fileMenu->setItemChecked( fileMenu->idAt(0),TRUE); 81// fileMenu->setItemChecked( fileMenu->idAt(0),TRUE);
82// b=FALSE; 82// b=FALSE;
83 83
84 } 84 }
85 else 85 else
86 { 86 {
87 CurrentDir()->setFilter( QDir::Files | QDir::Dirs/* | QDir::Hidden*/ | QDir::All); 87 CurrentDir()->setFilter( QDir::Files | QDir::Dirs/* | QDir::Hidden*/ | QDir::All);
88 OtherDir()->setFilter( QDir::Files | QDir::Dirs/* | QDir::Hidden*/ | QDir::All); 88 OtherDir()->setFilter( QDir::Files | QDir::Dirs/* | QDir::Hidden*/ | QDir::All);
89// fileMenu->setItemChecked( fileMenu->idAt(0),FALSE); 89// fileMenu->setItemChecked( fileMenu->idAt(0),FALSE);
90// b=TRUE; 90// b=TRUE;
91 } 91 }
92 rePopulate(); 92 rePopulate();
93} 93}
94 94
95QString AdvancedFm::dealWithSymName(const QString &fileName) 95QString AdvancedFm::dealWithSymName(const QString &fileName)
96{ 96{
97 QString strItem = fileName; 97 QString strItem = fileName;
98 return strItem.right( (strItem.length() - strItem.find("->",0,TRUE)) - 4); 98 return strItem.right( (strItem.length() - strItem.find("->",0,TRUE)) - 4);
99} 99}
100 100
101void AdvancedFm::runThis() 101void AdvancedFm::runThis()
102{ 102{
103 QString fs; 103 QString fs;
104 QDir *thisDir = CurrentDir(); 104 QDir *thisDir = CurrentDir();
105 105
106 QString curFile = CurrentView()->currentItem()->text(0); 106 QString curFile = CurrentView()->currentItem()->text(0);
107 QString path = thisDir->canonicalPath(); 107 QString path = thisDir->canonicalPath();
108 108
109 if( curFile.find("@",0,TRUE) !=-1 || curFile.find("->",0,TRUE) !=-1 ) //if symlink 109 if( curFile.find("@",0,TRUE) !=-1 || curFile.find("->",0,TRUE) !=-1 ) //if symlink
110 110
111 curFile = dealWithSymName((const QString&)curFile); 111 curFile = dealWithSymName((const QString&)curFile);
112 112
113 if(curFile != "../") 113 if(curFile != "../")
114 { 114 {
115 115
116 fs = getFileSystemType((const QString &) path); 116 fs = getFileSystemType((const QString &) path);
117 QFileInfo fileInfo( path + "/" + curFile); 117 QFileInfo fileInfo( path + "/" + curFile);
118 qDebug( fileInfo.owner()); 118 qDebug( fileInfo.owner());
119 119
120 if( (fileInfo.permission( QFileInfo::ExeUser) 120 if( (fileInfo.permission( QFileInfo::ExeUser)
121 | fileInfo.permission( QFileInfo::ExeGroup) 121 | fileInfo.permission( QFileInfo::ExeGroup)
122 | fileInfo.permission( QFileInfo::ExeOther)) // & fs.find("vfat",0,TRUE) == -1) { 122 | fileInfo.permission( QFileInfo::ExeOther)) // & fs.find("vfat",0,TRUE) == -1) {
123 | fs == "vfat" && fileInfo.filePath().contains("/bin") ) { 123 | fs == "vfat" && fileInfo.filePath().contains("/bin") ) {
124 QCopEnvelope e("QPE/System", "execute(QString)" ); 124 QCopEnvelope e("QPE/System", "execute(QString)" );
125 e << curFile; 125 e << curFile;
126 } 126 }
127 else 127 else
128 { 128 {
129 curFile = path + "/" + curFile; 129 curFile = path + "/" + curFile;
130 DocLnk nf(curFile); 130 DocLnk nf(curFile);
131 QString execStr = nf.exec(); 131 QString execStr = nf.exec();
132 qDebug( execStr); 132 qDebug( execStr);
133 if( execStr.isEmpty() ) 133 if( execStr.isEmpty() )
134 { 134 {
135 } 135 }
136 else 136 else
137 { 137 {
138 nf.execute(); 138 nf.execute();
139 } 139 }
140 } 140 }
141 } 141 }
142} 142}
143 143
144void AdvancedFm::runText() 144void AdvancedFm::runText()
145{ 145{
146 QString curFile = CurrentView()->currentItem()->text(0); 146 QString curFile = CurrentView()->currentItem()->text(0);
147 if(curFile != "../") 147 if(curFile != "../")
148 { 148 {
149 if( curFile.find("@",0,TRUE) !=-1 || curFile.find("->",0,TRUE) !=-1 ) //if symlink 149 if( curFile.find("@",0,TRUE) !=-1 || curFile.find("->",0,TRUE) !=-1 ) //if symlink
150 curFile = dealWithSymName((const QString&)curFile); 150 curFile = dealWithSymName((const QString&)curFile);
151 curFile = CurrentDir()->canonicalPath()+"/"+curFile; 151 curFile = CurrentDir()->canonicalPath()+"/"+curFile;
152 QCopEnvelope e("QPE/Application/textedit", "setDocument(QString)" ); 152 QCopEnvelope e("QPE/Application/textedit", "setDocument(QString)" );
153 e << curFile; 153 e << curFile;
154 } 154 }
155} 155}
156 156
157void AdvancedFm::makeDir() 157void AdvancedFm::makeDir()
158{ 158{
159 InputDialog *fileDlg; 159 InputDialog *fileDlg;
160 fileDlg = new InputDialog(this,tr("Make Directory"),TRUE, 0); 160 fileDlg = new InputDialog(this,tr("Make Directory"),TRUE, 0);
161 fileDlg->exec(); 161 fileDlg->exec();
162 if( fileDlg->result() == 1 ) 162 if( fileDlg->result() == 1 )
163 { 163 {
164 QDir *thisDir = CurrentDir(); 164 QDir *thisDir = CurrentDir();
165 QString filename = fileDlg->LineEdit1->text(); 165 QString filename = fileDlg->LineEdit1->text();
166 thisDir->mkdir( thisDir->canonicalPath()+"/"+filename); 166 thisDir->mkdir( thisDir->canonicalPath()+"/"+filename);
167 } 167 }
168 populateView(); 168 populateView();
169} 169}
170 170
171void AdvancedFm::doDelete() 171void AdvancedFm::doDelete()
172{ 172{
173 173
174 QStringList curFileList = getPath(); 174 QStringList curFileList = getPath();
175 bool doMsg=true; 175 bool doMsg=true;
176 int count = curFileList.count(); 176 int count = curFileList.count();
177 if( count > 0) 177 if( count > 0)
178 { 178 {
179 if(count > 1 ) 179 if(count > 1 )
180 { 180 {
181 QString msg; 181 QString msg;
182 msg=tr("Really delete\n%1 files?").arg(count); 182 msg=tr("Really delete\n%1 files?").arg(count);
183 switch ( QMessageBox::warning(this,tr("Delete"),msg 183 switch ( QMessageBox::warning(this,tr("Delete"),msg
184 ,tr("Yes"),tr("No"),0,0,1) ) 184 ,tr("Yes"),tr("No"),0,0,1) )
185 { 185 {
186 case 0: 186 case 0:
187 doMsg=false; 187 doMsg=false;
188 break; 188 break;
189 case 1: 189 case 1:
190 return; 190 return;
191 break; 191 break;
192 }; 192 };
193 } 193 }
194 194
195 QString myFile; 195 QString myFile;
196 for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it ) 196 for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it )
197 { 197 {
198 myFile = (*it); 198 myFile = (*it);
199 if( myFile.find(" -> ",0,TRUE) != -1) 199 if( myFile.find(" -> ",0,TRUE) != -1)
200 myFile = myFile.left( myFile.find(" -> ",0,TRUE)); 200 myFile = myFile.left( myFile.find(" -> ",0,TRUE));
201 201
202 QString f = CurrentDir()->canonicalPath(); 202 QString f = CurrentDir()->canonicalPath();
203 if(f.right(1).find("/",0,TRUE) == -1) 203 if(f.right(1).find("/",0,TRUE) == -1)
204 f += "/"; 204 f += "/";
205 f += myFile; 205 f += myFile;
206 if(QDir(f).exists() && !QFileInfo(f).isSymLink() ) 206 if(QDir(f).exists() && !QFileInfo(f).isSymLink() ) //if file is a directory
207 { 207 {
208 switch ( QMessageBox::warning( this, tr("Delete Directory?"), tr("Really delete\n") + f + 208 switch ( QMessageBox::warning( this, tr("Delete Directory?"), tr("Really delete\n") + f +
209 "\nand all it's contents ?" 209 "\nand all it's contents ?"
210 ,tr("Yes"),tr("No"),0,0,1) ) 210 ,tr("Yes"),tr("No"),0,0,1) )
211 { 211 {
212 case 0: 212 case 0:
213 { 213 {
214 f=f.left(f.length()-1); 214 f=f.left(f.length()-1);
215 QString cmd="rm -rf "+f; 215 QString cmd="rm -rf "+f;
216 startProcess( (const QString)cmd.latin1() ); 216 startProcess( (const QString)cmd.latin1() );
217 populateView(); 217 populateView();
218 } 218 }
219 break; 219 break;
220 case 1: 220 case 1:
221 // exit 221 // exit
222 break; 222 break;
223 }; 223 };
224 224
225 } else { 225 } else {
226 if(doMsg) { 226 if(doMsg) {
227 switch ( QMessageBox::warning(this,tr("Delete"),tr("Really delete\n")+f 227 switch ( QMessageBox::warning(this,tr("Delete"),tr("Really delete\n")+f
228 +" ?",tr("Yes"),tr("No"),0,0,1) ) { 228 +" ?",tr("Yes"),tr("No"),0,0,1) ) {
229 case 1: 229 case 1:
230 return; 230 return;
231 break; 231 break;
232 }; 232 };
233 } 233 }
234 QString cmd="rm "+f; 234 QString cmd="rm "+f;
235 QFile file(f); 235 QFile file(f);
236 if(QFileInfo(myFile).fileName().find("../",0,TRUE)==-1) 236 if(QFileInfo(myFile).fileName().find("../",0,TRUE)==-1) {
237 file.remove(); 237 qDebug("remove link files "+f);
238// AppLnk lnk(f);
239// qDebug(lnk.linkFile());
240// lnk.removeLinkFile();
241 file.remove();
242 }
238 } 243 }
239 } 244 }
240 } 245 }
241 populateView(); 246 populateView();
242} 247}
243 248
244void AdvancedFm::filePerms() 249void AdvancedFm::filePerms()
245{ 250{
246 QStringList curFileList = getPath(); 251 QStringList curFileList = getPath();
247 QString filePath; 252 QString filePath;
248 253
249 filePath = CurrentDir()->canonicalPath()+"/"; 254 filePath = CurrentDir()->canonicalPath()+"/";
250 255
251 for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it ) 256 for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it )
252 { 257 {
253 filePermissions *filePerm; 258 filePermissions *filePerm;
254 filePerm = new filePermissions(this, "Permissions",true,0,(const QString &)(filePath+*it)); 259 filePerm = new filePermissions(this, "Permissions",true,0,(const QString &)(filePath+*it));
255 filePerm->showMaximized(); 260 filePerm->showMaximized();
256 filePerm->exec(); 261 filePerm->exec();
257 if( filePerm) 262 if( filePerm)
258 delete filePerm; 263 delete filePerm;
259 } 264 }
260 populateView(); 265 populateView();
261} 266}
262 267
263void AdvancedFm::doProperties() 268void AdvancedFm::doProperties()
264{ 269{
265#if defined(QT_QWS_OPIE) 270#if defined(QT_QWS_OPIE)
266 271
267 QStringList curFileList = getPath(); 272 QStringList curFileList = getPath();
268 273
269 QString filePath; 274 QString filePath;
270 filePath = CurrentDir()->canonicalPath()+"/"; 275 filePath = CurrentDir()->canonicalPath()+"/";
271 276
272 qDebug("%d",curFileList.count()); 277 qDebug("%d",curFileList.count());
273 278
274 for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it ) 279 for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it )
275 { 280 {
276 qDebug((filePath+*it)); 281 qDebug((filePath+*it));
277 DocLnk lnk( (filePath+*it)); 282 DocLnk lnk( (filePath+*it));
278 LnkProperties prop( &lnk ); 283 LnkProperties prop( &lnk );
279 prop.showMaximized(); 284 prop.showMaximized();
280 prop.exec(); 285 prop.exec();
281 } 286 }
282#endif 287#endif
283 288
284} 289}
285 290
286void AdvancedFm::upDir() 291void AdvancedFm::upDir()
287{ 292{
288 QDir *thisDir = CurrentDir(); 293 QDir *thisDir = CurrentDir();
289 QString current = thisDir->canonicalPath(); 294 QString current = thisDir->canonicalPath();
290 QDir dir(current); 295 QDir dir(current);
291 dir.cdUp(); 296 dir.cdUp();
292 current = dir.canonicalPath(); 297 current = dir.canonicalPath();
293 chdir( current.latin1() ); 298 chdir( current.latin1() );
294 thisDir->cd( current, TRUE); 299 thisDir->cd( current, TRUE);
295 300
296 populateView(); 301 populateView();
297 update(); 302 update();
298} 303}
299 304
300void AdvancedFm::copy() 305void AdvancedFm::copy()
301{ 306{
302 qApp->processEvents(); 307 qApp->processEvents();
303 QStringList curFileList = getPath(); 308 QStringList curFileList = getPath();
304 309
305 QDir *thisDir = CurrentDir(); 310 QDir *thisDir = CurrentDir();
306 QDir *thatDir = OtherDir(); 311 QDir *thatDir = OtherDir();
307 312
308 bool doMsg=true; 313 bool doMsg=true;
309 int count=curFileList.count(); 314 int count=curFileList.count();
310 if( count > 0) { 315 if( count > 0) {
311 if(count > 1 ){ 316 if(count > 1 ){
312 QString msg; 317 QString msg;
313 msg=tr("Really copy\n%1 files?").arg(count); 318 msg=tr("Really copy\n%1 files?").arg(count);
314 switch ( QMessageBox::warning(this,tr("Copy"),msg 319 switch ( QMessageBox::warning(this,tr("Copy"),msg
315 ,tr("Yes"),tr("No"),0,0,1) ) 320 ,tr("Yes"),tr("No"),0,0,1) )
316 { 321 {
317 case 0: 322 case 0:
318 doMsg=false; 323 doMsg=false;
319 break; 324 break;
320 case 1: 325 case 1:
321 return; 326 return;
322 break; 327 break;
323 }; 328 };
324 } 329 }
325 330
326 QString curFile, item, destFile; 331 QString curFile, item, destFile;
327 for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it ) 332 for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it )
328 { 333 {
329 item=(*it); 334 item=(*it);
330 if(item.find("->",0,TRUE)) //symlink 335 if(item.find("->",0,TRUE)) //symlink
331 item = item.left(item.find("->",0,TRUE)); 336 item = item.left(item.find("->",0,TRUE));
332 337
333 curFile = thisDir->canonicalPath()+"/"+ item; 338 curFile = thisDir->canonicalPath()+"/"+ item;
334 destFile = thatDir->canonicalPath()+"/"+ item; 339 destFile = thatDir->canonicalPath()+"/"+ item;
335 340
336 qDebug("Destination file is "+destFile); 341 qDebug("Destination file is "+destFile);
337 qDebug("CurrentFile file is " + curFile); 342 qDebug("CurrentFile file is " + curFile);
338 343
339 QFile f(destFile); 344 QFile f(destFile);
340 if( f.exists()) 345 if( f.exists())
341 { 346 {
342 if(doMsg) 347 if(doMsg)
343 { 348 {
344 switch ( QMessageBox::warning(this,tr("File Exists!"), 349 switch ( QMessageBox::warning(this,tr("File Exists!"),
345 tr("%1 exists. Ok to overwrite?").arg( item ), 350 tr("%1 exists. Ok to overwrite?").arg( item ),
346 tr("Yes"),tr("No"),0,0,1) ) 351 tr("Yes"),tr("No"),0,0,1) )
347 { 352 {
348 case 1: 353 case 1:
349 return; 354 return;
350 break; 355 break;
351 }; 356 };
352 } 357 }
353 f.remove(); 358 f.remove();
354 } 359 }
355 360
356 if( !copyFile( curFile, destFile) ) 361 if( !copyFile( curFile, destFile) )
357 { 362 {
358 QMessageBox::message("AdvancedFm", 363 QMessageBox::message("AdvancedFm",
359 tr( "Could not copy %1 to %2").arg( curFile ).arg( destFile ) ); 364 tr( "Could not copy %1 to %2").arg( curFile ).arg( destFile ) );
360 return; 365 return;
361 } 366 }
362 } 367 }
363 setOtherTabCurrent(); 368 setOtherTabCurrent();
364 populateView(); 369 populateView();
365 } 370 }
366} 371}
367 372
368void AdvancedFm::copyAs() 373void AdvancedFm::copyAs()
369{ 374{
370 qApp->processEvents(); 375 qApp->processEvents();
371 376
372 QStringList curFileList = getPath(); 377 QStringList curFileList = getPath();
373 QString curFile, item; 378 QString curFile, item;
374 InputDialog *fileDlg; 379 InputDialog *fileDlg;
375 380
376 QDir *thisDir = CurrentDir(); 381 QDir *thisDir = CurrentDir();
377 QDir *thatDir = OtherDir(); 382 QDir *thatDir = OtherDir();
378 383
379 for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it ) 384 for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it )
380 { 385 {
381 QString destFile; 386 QString destFile;
382 item=(*it); 387 item=(*it);
383 curFile = thisDir->canonicalPath()+"/"+(*it); 388 curFile = thisDir->canonicalPath()+"/"+(*it);
384 fileDlg = new InputDialog( this, tr("Copy "+curFile+" As"), TRUE, 0); 389 fileDlg = new InputDialog( this, tr("Copy "+curFile+" As"), TRUE, 0);
385 390
386 fileDlg->setInputText((const QString &) destFile ); 391 fileDlg->setInputText((const QString &) destFile );
387 fileDlg->exec(); 392 fileDlg->exec();
388 393
389 if( fileDlg->result() == 1 ) 394 if( fileDlg->result() == 1 )
390 { 395 {
391 QString filename = fileDlg->LineEdit1->text(); 396 QString filename = fileDlg->LineEdit1->text();
392 destFile = thatDir->canonicalPath()+"/"+filename; 397 destFile = thatDir->canonicalPath()+"/"+filename;
393 398
394 QFile f( destFile); 399 QFile f( destFile);
395 if( f.exists()) 400 if( f.exists())
396 { 401 {
397 switch (QMessageBox::warning(this,tr("File Exists!"), 402 switch (QMessageBox::warning(this,tr("File Exists!"),
398 item+tr("\nexists. Ok to overwrite?"), 403 item+tr("\nexists. Ok to overwrite?"),
399 tr("Yes"),tr("No"),0,0,1) ) 404 tr("Yes"),tr("No"),0,0,1) )
400 { 405 {
401 case 0: 406 case 0:
402 f.remove(); 407 f.remove();
403 break; 408 break;
404 case 1: 409 case 1:
405 return; 410 return;
406 break; 411 break;
407 }; 412 };
408 } 413 }
409 if( !copyFile( curFile, destFile) ) 414 if( !copyFile( curFile, destFile) )
410 { 415 {
411 QMessageBox::message("AdvancedFm",tr("Could not copy\n") 416 QMessageBox::message("AdvancedFm",tr("Could not copy\n")
412 +curFile +tr("to\n")+destFile); 417 +curFile +tr("to\n")+destFile);
413 return; 418 return;
414 } 419 }
415 } 420 }
416 delete fileDlg; 421 delete fileDlg;
417 422
418 } 423 }
419 setOtherTabCurrent(); 424 setOtherTabCurrent();
420 populateView(); 425 populateView();
421} 426}
422 427
423void AdvancedFm::copySameDir() 428void AdvancedFm::copySameDir()
424{ 429{
425 qApp->processEvents(); 430 qApp->processEvents();
426 QStringList curFileList = getPath(); 431 QStringList curFileList = getPath();
427 QString curFile, item, destFile; 432 QString curFile, item, destFile;
428 InputDialog *fileDlg; 433 InputDialog *fileDlg;
429 434
@@ -696,192 +701,196 @@ void AdvancedFm::mkSym()
696 } 701 }
697} 702}
698 703
699void AdvancedFm::doBeam() 704void AdvancedFm::doBeam()
700{ 705{
701 Ir ir; 706 Ir ir;
702 if(!ir.supported()) 707 if(!ir.supported())
703 { 708 {
704 } 709 }
705 else 710 else
706 { 711 {
707 QStringList curFileList = getPath(); 712 QStringList curFileList = getPath();
708 if( curFileList.count() > 0) 713 if( curFileList.count() > 0)
709 { 714 {
710 for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it ) 715 for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it )
711 { 716 {
712 717
713 QString curFile = CurrentDir()->canonicalPath()+"/"+(*it); 718 QString curFile = CurrentDir()->canonicalPath()+"/"+(*it);
714 if( curFile.right(1) == "/") 719 if( curFile.right(1) == "/")
715 { 720 {
716 curFile = curFile.left( curFile.length() -1); 721 curFile = curFile.left( curFile.length() -1);
717 } 722 }
718 Ir *file = new Ir(this, "IR"); 723 Ir *file = new Ir(this, "IR");
719 connect(file, SIGNAL(done(Ir*)), this, SLOT( fileBeamFinished( Ir * ))); 724 connect(file, SIGNAL(done(Ir*)), this, SLOT( fileBeamFinished( Ir * )));
720 file->send( curFile, curFile ); 725 file->send( curFile, curFile );
721 } 726 }
722 } 727 }
723 } 728 }
724 729
725} 730}
726 731
727void AdvancedFm::fileBeamFinished( Ir *) 732void AdvancedFm::fileBeamFinished( Ir *)
728{ 733{
729 QMessageBox::message( tr("Advancedfm Beam out"), tr("Ir sent.") ,tr("Ok") ); 734 QMessageBox::message( tr("Advancedfm Beam out"), tr("Ir sent.") ,tr("Ok") );
730} 735}
731 736
732void AdvancedFm::selectAll() 737void AdvancedFm::selectAll()
733{ 738{
734// if (TabWidget->currentTab() == 0) { 739// if (TabWidget->currentTab() == 0) {
735 QListView *thisView = CurrentView(); 740 QListView *thisView = CurrentView();
736 thisView->selectAll(true); 741 thisView->selectAll(true);
737 thisView->setSelected( thisView->firstChild(),false); 742 thisView->setSelected( thisView->firstChild(),false);
738// } else { 743// } else {
739// Remote_View->selectAll(true); 744// Remote_View->selectAll(true);
740// Remote_View->setSelected( Remote_View->firstChild(),false); 745// Remote_View->setSelected( Remote_View->firstChild(),false);
741// } 746// }
742} 747}
743 748
744void AdvancedFm::startProcess(const QString & cmd) 749void AdvancedFm::startProcess(const QString & cmd)
745{ 750{
746 QStringList command; 751 QStringList command;
747 OProcess *process; 752 OProcess *process;
748 process = new OProcess(); 753 process = new OProcess();
749 connect(process, SIGNAL(processExited(OProcess *)), 754 connect(process, SIGNAL(processExited(OProcess *)),
750 this, SLOT( processEnded(OProcess *))); 755 this, SLOT( processEnded(OProcess *)));
751 756
752 connect(process, SIGNAL( receivedStderr(OProcess *, char *, int)), 757 connect(process, SIGNAL( receivedStderr(OProcess *, char *, int)),
753 this, SLOT( oprocessStderr(OProcess *, char *, int))); 758 this, SLOT( oprocessStderr(OProcess *, char *, int)));
754 759
755 command << "/bin/sh"; 760 command << "/bin/sh";
756 command << "-c"; 761 command << "-c";
757 command << cmd.latin1(); 762 command << cmd.latin1();
758 *process << command; 763 *process << command;
759 if(!process->start(OProcess::NotifyOnExit, OProcess::All) ) 764 if(!process->start(OProcess::NotifyOnExit, OProcess::All) )
760 qDebug("could not start process"); 765 qDebug("could not start process");
761} 766}
762 767
763void AdvancedFm::processEnded(OProcess *) 768void AdvancedFm::processEnded(OProcess *)
764{ 769{
765// populateLocalView(); 770// populateLocalView();
766 populateView(); 771 populateView();
767} 772}
768 773
769void AdvancedFm::oprocessStderr(OProcess*, char *buffer, int buflen) { 774void AdvancedFm::oprocessStderr(OProcess*, char *buffer, int buflen) {
770 qWarning("received stderrt %d bytes", buflen); 775 qWarning("received stderrt %d bytes", buflen);
771 776
772 QString lineStr = buffer; 777 QString lineStr = buffer;
773// lineStr=lineStr.left(lineStr.length()-1); 778// lineStr=lineStr.left(lineStr.length()-1);
774 QMessageBox::warning( this, tr("Error"), lineStr ,tr("Ok") ); 779 QMessageBox::warning( this, tr("Error"), lineStr ,tr("Ok") );
775 780
776// OutputEdit->append(lineStr); 781// OutputEdit->append(lineStr);
777// OutputEdit->setCursorPosition( OutputEdit->numLines() + 1,0,FALSE); 782// OutputEdit->setCursorPosition( OutputEdit->numLines() + 1,0,FALSE);
778} 783}
779 784
780bool AdvancedFm::eventFilter( QObject * o, QEvent * e ) 785bool AdvancedFm::eventFilter( QObject * o, QEvent * e )
781{ 786{
782 if ( o->inherits( "QLineEdit" ) ) 787 if ( o->inherits( "QLineEdit" ) )
783 { 788 {
784 if ( e->type() == QEvent::KeyPress ) 789 if ( e->type() == QEvent::KeyPress )
785 { 790 {
786 QKeyEvent *ke = (QKeyEvent*)e; 791 QKeyEvent *ke = (QKeyEvent*)e;
787 if ( ke->key() == Key_Return || 792 if ( ke->key() == Key_Return ||
788 ke->key() == Key_Enter ) 793 ke->key() == Key_Enter )
789 { 794 {
790 okRename(); 795 okRename();
791 return true; 796 return true;
792 } 797 }
793 else if ( ke->key() == Key_Escape ) 798 else if ( ke->key() == Key_Escape )
794 { 799 {
795 cancelRename(); 800 cancelRename();
796 return true; 801 return true;
797 } 802 }
798 } 803 }
799 else if ( e->type() == QEvent::FocusOut ) 804 else if ( e->type() == QEvent::FocusOut )
800 { 805 {
801 cancelRename(); 806 cancelRename();
802 return true; 807 return true;
803 } 808 }
804 } 809 }
805 if ( o->inherits( "QListView" ) ) 810 if ( o->inherits( "QListView" ) )
806 { 811 {
807 if ( e->type() == QEvent::FocusOut ) 812 if ( e->type() == QEvent::FocusOut )
808 { 813 {
809 printf("focusIn\n"); 814 printf("focusIn\n");
810 815
811 } 816 }
812 } 817 }
813 818
814 return QWidget::eventFilter( o, e ); 819 return QWidget::eventFilter( o, e );
815} 820}
816 821
817 822
818void AdvancedFm::cancelRename() 823void AdvancedFm::cancelRename()
819{ 824{
820 qDebug("cancel rename"); 825 qDebug("cancel rename");
821 QListView * view; 826 QListView * view;
822 view = CurrentView(); 827 view = CurrentView();
823 828
824 bool resetFocus = view->viewport()->focusProxy() == renameBox; 829 bool resetFocus = view->viewport()->focusProxy() == renameBox;
825 delete renameBox; 830 delete renameBox;
826 renameBox = 0; 831 renameBox = 0;
827 if ( resetFocus ) 832 if ( resetFocus )
828 { 833 {
829 view->viewport()->setFocusProxy( view); 834 view->viewport()->setFocusProxy( view);
830 view->setFocus(); 835 view->setFocus();
831 } 836 }
832} 837}
833 838
834void AdvancedFm::doRename(QListView * view) 839void AdvancedFm::doRename(QListView * view)
835{ 840{
836 841
837 QRect r = view->itemRect( view->currentItem( )); 842 QRect r = view->itemRect( view->currentItem( ));
838 r = QRect( view->viewportToContents( r.topLeft() ), r.size() ); 843 r = QRect( view->viewportToContents( r.topLeft() ), r.size() );
839 r.setX( view->contentsX() ); 844 r.setX( view->contentsX() );
840 if ( r.width() > view->visibleWidth() ) 845 if ( r.width() > view->visibleWidth() )
841 r.setWidth( view->visibleWidth() ); 846 r.setWidth( view->visibleWidth() );
842 847
843 renameBox = new QLineEdit( view->viewport(), "qt_renamebox" ); 848 renameBox = new QLineEdit( view->viewport(), "qt_renamebox" );
844 renameBox->setFrame(true); 849 renameBox->setFrame(true);
845 850
846 renameBox->setText( view->currentItem()->text(0) ); 851 renameBox->setText( view->currentItem()->text(0) );
847 852
848 renameBox->selectAll(); 853 renameBox->selectAll();
849 renameBox->installEventFilter( this ); 854 renameBox->installEventFilter( this );
850 view->addChild( renameBox, r.x(), r.y() ); 855 view->addChild( renameBox, r.x(), r.y() );
851 renameBox->resize( r.size() ); 856 renameBox->resize( r.size() );
852 view->viewport()->setFocusProxy( renameBox ); 857 view->viewport()->setFocusProxy( renameBox );
853 renameBox->setFocus(); 858 renameBox->setFocus();
854 renameBox->show(); 859 renameBox->show();
855 860
856} 861}
857 862
858 863
859void AdvancedFm::renameIt() 864void AdvancedFm::renameIt()
860{ 865{
861 QListView *thisView = CurrentView(); 866 QListView *thisView = CurrentView();
862 oldName = thisView->currentItem()->text(0); 867 oldName = thisView->currentItem()->text(0);
863 doRename( thisView ); 868 doRename( thisView );
864 populateView(); 869 populateView();
865} 870}
866 871
867void AdvancedFm::okRename() 872void AdvancedFm::okRename()
868{ 873{
869 QString newName = renameBox->text(); 874 QString newName = renameBox->text();
870 cancelRename(); 875 cancelRename();
871// int tabs=0; 876// int tabs=0;
872 QListView * view = CurrentView(); 877 QListView * view = CurrentView();
873 QString path = CurrentDir()->canonicalPath() + "/"; 878 QString path = CurrentDir()->canonicalPath() + "/";
874 oldName = path + oldName; 879 oldName = path + oldName;
875 newName = path + newName; 880 newName = path + newName;
876 881
877 if( view->currentItem() == NULL) 882 if( view->currentItem() == NULL)
878 return; 883 return;
879 if( rename( oldName.latin1(), newName.latin1())== -1) 884 if( rename( oldName.latin1(), newName.latin1())== -1)
880 QMessageBox::message(tr("Note"),tr("Could not rename")); 885 QMessageBox::message(tr("Note"),tr("Could not rename"));
881 else 886 else
882 oldName = ""; 887 oldName = "";
883 888
884 view->takeItem( view->currentItem() ); 889 view->takeItem( view->currentItem() );
885 delete view->currentItem(); 890 delete view->currentItem();
886 populateView(); 891 populateView();
887} 892}
893
894void AdvancedFm::openSearch() {
895
896}