summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/apps/advancedfm/advancedfm.cpp10
-rw-r--r--noncore/apps/advancedfm/advancedfm.h5
-rw-r--r--noncore/apps/advancedfm/advancedfm.pro28
-rw-r--r--noncore/apps/advancedfm/main.cpp6
4 files changed, 44 insertions, 5 deletions
diff --git a/noncore/apps/advancedfm/advancedfm.cpp b/noncore/apps/advancedfm/advancedfm.cpp
index ac16540..9c13e53 100644
--- a/noncore/apps/advancedfm/advancedfm.cpp
+++ b/noncore/apps/advancedfm/advancedfm.cpp
@@ -1,240 +1,244 @@
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#define DEVELOPERS_VERSION 12#define DEVELOPERS_VERSION
13#include "advancedfm.h" 13#include "advancedfm.h"
14 14
15 15
16// #include <opie/ofileselector.h> 16// #include <opie/ofileselector.h>
17// #include <opie/ofiledialog.h> 17// #include <opie/ofiledialog.h>
18 18
19#include <opie/osplitter.h> 19#include <opie/osplitter.h>
20 20
21#include <qpe/filemanager.h> 21#include <qpe/filemanager.h>
22#include <qpe/qcopenvelope_qws.h> 22#include <qpe/qcopenvelope_qws.h>
23#include <qpe/qpeapplication.h> 23#include <qpe/qpeapplication.h>
24#include <qpe/config.h> 24#include <qpe/config.h>
25#include <qpe/mimetype.h> 25#include <qpe/mimetype.h>
26#include <qpe/applnk.h> 26#include <qpe/applnk.h>
27#include <qpe/ir.h> 27#include <qpe/ir.h>
28#include <qpe/resource.h> 28#include <qpe/resource.h>
29#include <qpe/menubutton.h> 29#include <qpe/menubutton.h>
30 30
31#include <qdatetime.h> 31#include <qdatetime.h>
32#include <qfile.h> 32#include <qfile.h>
33#include <qcombobox.h> 33#include <qcombobox.h>
34#include <qpopupmenu.h> 34#include <qpopupmenu.h>
35#include <qlistview.h> 35#include <qlistview.h>
36#include <qlabel.h> 36#include <qlabel.h>
37#include <qwidget.h> 37#include <qwidget.h>
38#include <qlayout.h> 38#include <qlayout.h>
39#include <qimage.h> 39#include <qimage.h>
40#include <qmessagebox.h> 40#include <qmessagebox.h>
41#include <qlineedit.h> 41#include <qlineedit.h>
42 42
43#include <qpe/qpemessagebox.h> 43#include <qpe/qpemessagebox.h>
44 44
45#include <sys/stat.h> 45#include <sys/stat.h>
46#include <time.h> 46#include <time.h>
47#include <dirent.h> 47#include <dirent.h>
48#include <fcntl.h> 48#include <fcntl.h>
49#include <sys/vfs.h> 49#include <sys/vfs.h>
50#include <mntent.h> 50#include <mntent.h>
51 51
52#ifdef NOQUICKLAUNCH
52AdvancedFm::AdvancedFm( ) 53AdvancedFm::AdvancedFm( )
54#else
55AdvancedFm::AdvancedFm(QWidget *,const char*, WFlags )
56#endif
53 : QMainWindow( ) { 57 : QMainWindow( ) {
54 init(); 58 init();
55 renameBox = 0; 59 renameBox = 0;
56 60
57 unknownXpm = Resource::loadImage( "UnknownDocument" ).smoothScale( AppLnk::smallIconSize(), AppLnk::smallIconSize() ); 61 unknownXpm = Resource::loadImage( "UnknownDocument" ).smoothScale( AppLnk::smallIconSize(), AppLnk::smallIconSize() );
58 62
59 initConnections(); 63 initConnections();
60 whichTab=1; 64 whichTab=1;
61 rePopulate(); 65 rePopulate();
62 currentPathCombo->setFocus(); 66 currentPathCombo->setFocus();
63 channel = new QCopChannel( "QPE/Application/advancedfm", this ); 67 channel = new QCopChannel( "QPE/Application/advancedfm", this );
64 connect( channel, SIGNAL(received(const QCString&, const QByteArray&)), 68 connect( channel, SIGNAL(received(const QCString&, const QByteArray&)),
65 this, SLOT( qcopReceive(const QCString&, const QByteArray&)) ); 69 this, SLOT( qcopReceive(const QCString&, const QByteArray&)) );
66} 70}
67 71
68AdvancedFm::~AdvancedFm() { 72AdvancedFm::~AdvancedFm() {
69} 73}
70 74
71 75
72void AdvancedFm::cleanUp() { 76void AdvancedFm::cleanUp() {
73 QString sfile=QDir::homeDirPath(); 77 QString sfile=QDir::homeDirPath();
74 if(sfile.right(1) != "/") 78 if(sfile.right(1) != "/")
75 sfile+="/._temp"; 79 sfile+="/._temp";
76 else 80 else
77 sfile+="._temp"; 81 sfile+="._temp";
78 QFile file( sfile); 82 QFile file( sfile);
79 if(file.exists()) 83 if(file.exists())
80 file.remove(); 84 file.remove();
81} 85}
82 86
83void AdvancedFm::tabChanged(QWidget *) { 87void AdvancedFm::tabChanged(QWidget *) {
84// qWarning("tab changed"); 88// qWarning("tab changed");
85 QString path = CurrentDir()->canonicalPath(); 89 QString path = CurrentDir()->canonicalPath();
86 currentPathCombo->lineEdit()->setText( path ); 90 currentPathCombo->lineEdit()->setText( path );
87 91
88 if(whichTab == 1) { 92 if(whichTab == 1) {
89 viewMenu->setItemChecked(viewMenu->idAt(0), true); 93 viewMenu->setItemChecked(viewMenu->idAt(0), true);
90 viewMenu->setItemChecked(viewMenu->idAt(1), false); 94 viewMenu->setItemChecked(viewMenu->idAt(1), false);
91 } else { 95 } else {
92 viewMenu->setItemChecked(viewMenu->idAt(0), false); 96 viewMenu->setItemChecked(viewMenu->idAt(0), false);
93 viewMenu->setItemChecked(viewMenu->idAt(1), true); 97 viewMenu->setItemChecked(viewMenu->idAt(1), true);
94 } 98 }
95 99
96 QString fs= getFileSystemType( (const QString &) path); 100 QString fs= getFileSystemType( (const QString &) path);
97 101
98 setCaption(tr("AdvancedFm :: ")+fs+" :: " 102 setCaption(tr("AdvancedFm :: ")+fs+" :: "
99 +checkDiskSpace( (const QString &) path )+ tr(" kB free") ); 103 +checkDiskSpace( (const QString &) path )+ tr(" kB free") );
100 chdir( path.latin1()); 104 chdir( path.latin1());
101} 105}
102 106
103 107
104void AdvancedFm::populateView() { 108void AdvancedFm::populateView() {
105 109
106qWarning("PopulateView"); 110// qWarning("PopulateView");
107 QPixmap pm; 111 QPixmap pm;
108 QListView *thisView = CurrentView(); 112 QListView *thisView = CurrentView();
109 QDir *thisDir = CurrentDir(); 113 QDir *thisDir = CurrentDir();
110 QString path = thisDir->canonicalPath(); 114 QString path = thisDir->canonicalPath();
111 115
112qWarning("path is "+path); 116//qWarning("path is "+path);
113 thisView->clear(); 117 thisView->clear();
114 thisDir->setSorting(/* QDir::Size*/ /*| QDir::Reversed | */QDir::DirsFirst); 118 thisDir->setSorting(/* QDir::Size*/ /*| QDir::Reversed | */QDir::DirsFirst);
115 thisDir->setMatchAllDirs(TRUE); 119 thisDir->setMatchAllDirs(TRUE);
116 thisDir->setNameFilter(filterStr); 120 thisDir->setNameFilter(filterStr);
117 QString fileL, fileS, fileDate; 121 QString fileL, fileS, fileDate;
118 QString fs= getFileSystemType((const QString &) path); 122 QString fs= getFileSystemType((const QString &) path);
119 setCaption(tr("AdvancedFm :: ")+fs+" :: " 123 setCaption(tr("AdvancedFm :: ")+fs+" :: "
120 +checkDiskSpace((const QString &) path)+ tr(" kB free") ); 124 +checkDiskSpace((const QString &) path)+ tr(" kB free") );
121 bool isDir=FALSE; 125 bool isDir=FALSE;
122 const QFileInfoList *list = thisDir->entryInfoList( /*QDir::All*/ /*, QDir::SortByMask*/); 126 const QFileInfoList *list = thisDir->entryInfoList( /*QDir::All*/ /*, QDir::SortByMask*/);
123 QFileInfoListIterator it(*list); 127 QFileInfoListIterator it(*list);
124 QFileInfo *fi; 128 QFileInfo *fi;
125 while ( (fi=it.current()) ) { 129 while ( (fi=it.current()) ) {
126 if (fi->isSymLink() ) { 130 if (fi->isSymLink() ) {
127 QString symLink=fi->readLink(); 131 QString symLink=fi->readLink();
128 QFileInfo sym( symLink); 132 QFileInfo sym( symLink);
129 fileS.sprintf( "%10i", sym.size() ); 133 fileS.sprintf( "%10i", sym.size() );
130 fileL = fi->fileName() +" -> " + sym.filePath().data(); 134 fileL = fi->fileName() +" -> " + sym.filePath().data();
131 fileDate = sym.lastModified().toString(); 135 fileDate = sym.lastModified().toString();
132 } else { 136 } else {
133 fileS.sprintf( "%10i", fi->size() ); 137 fileS.sprintf( "%10i", fi->size() );
134 fileL = fi->fileName(); 138 fileL = fi->fileName();
135 fileDate= fi->lastModified().toString(); 139 fileDate= fi->lastModified().toString();
136 if( QDir(QDir::cleanDirPath( path +"/"+fileL)).exists() ) { 140 if( QDir(QDir::cleanDirPath( path +"/"+fileL)).exists() ) {
137// if(fileL == "..") 141// if(fileL == "..")
138 fileL += "/"; 142 fileL += "/";
139 isDir=TRUE; 143 isDir=TRUE;
140 } 144 }
141 } 145 }
142 QFileInfo fileInfo( path + "/" + fileL); 146 QFileInfo fileInfo( path + "/" + fileL);
143 147
144 if(fileL !="./" && fi->exists()) { 148 if(fileL !="./" && fi->exists()) {
145 item = new QListViewItem( thisView, fileL, fileS , fileDate); 149 item = new QListViewItem( thisView, fileL, fileS , fileDate);
146 150
147 if(isDir || fileL.find("/",0,TRUE) != -1) { 151 if(isDir || fileL.find("/",0,TRUE) != -1) {
148 152
149 if( !QDir( fi->filePath() ).isReadable()) //is directory 153 if( !QDir( fi->filePath() ).isReadable()) //is directory
150 pm = Resource::loadPixmap( "lockedfolder" ); 154 pm = Resource::loadPixmap( "lockedfolder" );
151 else 155 else
152 pm= Resource::loadPixmap( "folder" ); 156 pm= Resource::loadPixmap( "folder" );
153 } 157 }
154 else if ( fs == "vfat" && fileInfo.filePath().contains("/bin") ) { 158 else if ( fs == "vfat" && fileInfo.filePath().contains("/bin") ) {
155 pm = Resource::loadPixmap( "exec"); 159 pm = Resource::loadPixmap( "exec");
156 } 160 }
157 else if( (fileInfo.permission( QFileInfo::ExeUser) 161 else if( (fileInfo.permission( QFileInfo::ExeUser)
158 | fileInfo.permission( QFileInfo::ExeGroup) 162 | fileInfo.permission( QFileInfo::ExeGroup)
159 | fileInfo.permission( QFileInfo::ExeOther)) && fs != "vfat" ) { 163 | fileInfo.permission( QFileInfo::ExeOther)) && fs != "vfat" ) {
160 pm = Resource::loadPixmap( "exec"); 164 pm = Resource::loadPixmap( "exec");
161 } 165 }
162 else if( !fi->isReadable() ) { 166 else if( !fi->isReadable() ) {
163 pm = Resource::loadPixmap( "locked" ); 167 pm = Resource::loadPixmap( "locked" );
164 } 168 }
165 else { //everything else goes by mimetype 169 else { //everything else goes by mimetype
166 MimeType mt(fi->filePath()); 170 MimeType mt(fi->filePath());
167 pm=mt.pixmap(); //sets the correct pixmap for mimetype 171 pm=mt.pixmap(); //sets the correct pixmap for mimetype
168 if(pm.isNull()) { 172 if(pm.isNull()) {
169 pm = unknownXpm; 173 pm = unknownXpm;
170 } 174 }
171 } 175 }
172 if( fi->isSymLink() || fileL.find("->",0,TRUE) != -1) { 176 if( fi->isSymLink() || fileL.find("->",0,TRUE) != -1) {
173 // qDebug(" overlay link image"); 177 // qDebug(" overlay link image");
174 pm= Resource::loadPixmap( "advancedfm/symlink" ); 178 pm= Resource::loadPixmap( "advancedfm/symlink" );
175 // pm= Resource::loadPixmap( "folder" ); 179 // pm= Resource::loadPixmap( "folder" );
176// QPixmap lnk = Resource::loadPixmap( "opie/symlink" ); 180// QPixmap lnk = Resource::loadPixmap( "opie/symlink" );
177// QPainter painter( &pm ); 181// QPainter painter( &pm );
178// painter.drawPixmap( pm.width()-lnk.width(), pm.height()-lnk.height(), lnk ); 182// painter.drawPixmap( pm.width()-lnk.width(), pm.height()-lnk.height(), lnk );
179// pm.setMask( pm.createHeuristicMask( FALSE ) ); 183// pm.setMask( pm.createHeuristicMask( FALSE ) );
180 } 184 }
181 item->setPixmap( 0,pm); 185 item->setPixmap( 0,pm);
182 186
183 } 187 }
184 isDir=FALSE; 188 isDir=FALSE;
185 ++it; 189 ++it;
186 } 190 }
187 191
188 if( path.find("dev",0,TRUE) != -1) { 192 if( path.find("dev",0,TRUE) != -1) {
189 struct stat buf; 193 struct stat buf;
190 dev_t devT; 194 dev_t devT;
191 DIR *dir; 195 DIR *dir;
192 struct dirent *mydirent; 196 struct dirent *mydirent;
193 197
194 if((dir = opendir( path.latin1())) != NULL) 198 if((dir = opendir( path.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);
201 fileDate.sprintf("%s", ctime( &buf.st_mtime)); 205 fileDate.sprintf("%s", ctime( &buf.st_mtime));
202 if( fileL.find(".") == -1 ) { 206 if( fileL.find(".") == -1 ) {
203 item= new QListViewItem( thisView, fileL, fileS, fileDate); 207 item= new QListViewItem( thisView, fileL, fileS, fileDate);
204 pm = unknownXpm; 208 pm = unknownXpm;
205 item->setPixmap( 0,pm); 209 item->setPixmap( 0,pm);
206 } 210 }
207 } 211 }
208 212
209 closedir(dir); 213 closedir(dir);
210 } 214 }
211 215
212 thisView->setSorting( 3,FALSE); 216 thisView->setSorting( 3,FALSE);
213 fillCombo( (const QString &) path ); 217 fillCombo( (const QString &) path );
214} 218}
215 219
216void AdvancedFm::rePopulate() { 220void AdvancedFm::rePopulate() {
217 populateView(); 221 populateView();
218 setOtherTabCurrent(); 222 setOtherTabCurrent();
219 populateView(); 223 populateView();
220 224
221// int tmpTab = whichTab; 225// int tmpTab = whichTab;
222// // qDebug("%d", tmpTab); 226// // qDebug("%d", tmpTab);
223 227
224// for(int i =1; i < 3; i++) { 228// for(int i =1; i < 3; i++) {
225// TabWidget->setCurrentWidget(i - 1); 229// TabWidget->setCurrentWidget(i - 1);
226// populateView(); 230// populateView();
227// } 231// }
228// TabWidget->setCurrentWidget( tmpTab - 1); 232// TabWidget->setCurrentWidget( tmpTab - 1);
229} 233}
230 234
231void AdvancedFm::ListClicked(QListViewItem *selectedItem) { 235void AdvancedFm::ListClicked(QListViewItem *selectedItem) {
232//qWarning("listclicked"); 236//qWarning("listclicked");
233 if(selectedItem) { 237 if(selectedItem) {
234 QString strItem=selectedItem->text(0); 238 QString strItem=selectedItem->text(0);
235// qWarning(strItem); 239// qWarning(strItem);
236 QString strSize=selectedItem->text(1); 240 QString strSize=selectedItem->text(1);
237 strSize=strSize.stripWhiteSpace(); 241 strSize=strSize.stripWhiteSpace();
238 bool isDirectory = false; 242 bool isDirectory = false;
239 QString strItem2; 243 QString strItem2;
240 244
@@ -688,208 +692,208 @@ void AdvancedFm::dirMenuSelected(int item) {
688 break; 692 break;
689 default: 693 default:
690 { 694 {
691// gotoCustomDir( menuButton->text(item)); 695// gotoCustomDir( menuButton->text(item));
692// gotoCustomDir( customDirMenu->text(item)); 696// gotoCustomDir( customDirMenu->text(item));
693 } 697 }
694 break; 698 break;
695 699
696 }; 700 };
697} 701}
698 702
699void AdvancedFm::addCustomDir() { 703void AdvancedFm::addCustomDir() {
700 Config cfg("AdvancedFm"); 704 Config cfg("AdvancedFm");
701 cfg.setGroup("Menu"); 705 cfg.setGroup("Menu");
702 QString dir; 706 QString dir;
703 QStringList list = cfg.readListEntry( (const QString &)"CustomDir", (const QChar)','); 707 QStringList list = cfg.readListEntry( (const QString &)"CustomDir", (const QChar)',');
704 708
705 dir = CurrentDir()->canonicalPath(); 709 dir = CurrentDir()->canonicalPath();
706 710
707 bool addIt=true; 711 bool addIt=true;
708 for ( QStringList::Iterator it = list.begin(); it != list.end(); ++it ) { 712 for ( QStringList::Iterator it = list.begin(); it != list.end(); ++it ) {
709 if( dir == (*it)) { 713 if( dir == (*it)) {
710 addIt=false; 714 addIt=false;
711 } 715 }
712 } 716 }
713 if(addIt) { 717 if(addIt) {
714 menuButton->insertItem(dir); 718 menuButton->insertItem(dir);
715// customDirMenu->insertItem(dir); 719// customDirMenu->insertItem(dir);
716 list << dir; 720 list << dir;
717 } 721 }
718 722
719 cfg.writeEntry("CustomDir", list, ','); 723 cfg.writeEntry("CustomDir", list, ',');
720 cfg.write(); 724 cfg.write();
721} 725}
722 726
723void AdvancedFm::removeCustomDir() { 727void AdvancedFm::removeCustomDir() {
724// qDebug("remove custom dir"); 728// qDebug("remove custom dir");
725 Config cfg("AdvancedFm"); 729 Config cfg("AdvancedFm");
726 cfg.setGroup("Menu"); 730 cfg.setGroup("Menu");
727 QString dir; 731 QString dir;
728 QStringList list = cfg.readListEntry( (const QString &)"CustomDir", (const QChar)','); 732 QStringList list = cfg.readListEntry( (const QString &)"CustomDir", (const QChar)',');
729 QStringList list2; 733 QStringList list2;
730 dir = CurrentDir()->canonicalPath(); 734 dir = CurrentDir()->canonicalPath();
731 int ramble=2; 735 int ramble=2;
732// int ramble=-24; 736// int ramble=-24;
733//first remove list 737//first remove list
734 if(list.grep(dir,true).isEmpty()) { 738 if(list.grep(dir,true).isEmpty()) {
735 QMessageBox::message(tr( "AdvancedFm" ), 739 QMessageBox::message(tr( "AdvancedFm" ),
736 tr("Cannot remove current directory\nfrom bookmarks.\nIt is not bookmarked!")); 740 tr("Cannot remove current directory\nfrom bookmarks.\nIt is not bookmarked!"));
737 } else { 741 } else {
738 for ( QStringList::Iterator it = list.begin(); it != list.end(); ++it ) { 742 for ( QStringList::Iterator it = list.begin(); it != list.end(); ++it ) {
739 if((*it) != dir) { 743 if((*it) != dir) {
740//current item is not our current dir, so add it to temp list 744//current item is not our current dir, so add it to temp list
741 list2 <<(*it); 745 list2 <<(*it);
742 } else { 746 } else {
743// customDirMenu->removeItem( ramble); 747// customDirMenu->removeItem( ramble);
744 menuButton->remove( ramble); 748 menuButton->remove( ramble);
745 749
746 } 750 }
747 ramble++; 751 ramble++;
748// ramble--; 752// ramble--;
749 } 753 }
750 754
751 cfg.writeEntry("CustomDir", list2, ','); 755 cfg.writeEntry("CustomDir", list2, ',');
752 cfg.write(); 756 cfg.write();
753 } 757 }
754// customDirsToMenu(); 758// customDirsToMenu();
755 759
756} 760}
757 761
758void AdvancedFm::gotoCustomDir(const QString &dir) { 762void AdvancedFm::gotoCustomDir(const QString &dir) {
759// qDebug("gotoCustomDir(const QString &dir) " +dir ); 763// qDebug("gotoCustomDir(const QString &dir) " +dir );
760// QString curDir = dir; 764// QString curDir = dir;
761// QDir *thisDir = CurrentDir(); 765// QDir *thisDir = CurrentDir();
762// if( curDir.isEmpty()) { 766// if( curDir.isEmpty()) {
763// } 767// }
764 if( dir == s_addBookmark) { 768 if( dir == s_addBookmark) {
765 addCustomDir(); 769 addCustomDir();
766 } 770 }
767 if( dir == s_removeBookmark) { 771 if( dir == s_removeBookmark) {
768 removeCustomDir( ); 772 removeCustomDir( );
769 } else { 773 } else {
770 gotoDirectory( dir); 774 gotoDirectory( dir);
771// if(QDir( curDir).exists() ) 775// if(QDir( curDir).exists() )
772// { 776// {
773// thisDir->setPath( curDir ); 777// thisDir->setPath( curDir );
774// chdir( curDir.latin1() ); 778// chdir( curDir.latin1() );
775// thisDir->cd( curDir, TRUE); 779// thisDir->cd( curDir, TRUE);
776// populateView(); 780// populateView();
777// } 781// }
778 } 782 }
779} 783}
780 784
781QDir *AdvancedFm::CurrentDir() { 785QDir *AdvancedFm::CurrentDir() {
782 786
783 if ( whichTab == 1) { 787 if ( whichTab == 1) {
784 return &currentDir; 788 return &currentDir;
785 } else { 789 } else {
786 return &currentRemoteDir; 790 return &currentRemoteDir;
787 } 791 }
788} 792}
789 793
790QDir *AdvancedFm::OtherDir() { 794QDir *AdvancedFm::OtherDir() {
791 if ( whichTab == 1) { 795 if ( whichTab == 1) {
792 return &currentRemoteDir; 796 return &currentRemoteDir;
793 } else { 797 } else {
794 return &currentDir; 798 return &currentDir;
795 } 799 }
796} 800}
797 801
798QListView * AdvancedFm::CurrentView() { 802QListView * AdvancedFm::CurrentView() {
799 if ( whichTab == 1) { 803 if ( whichTab == 1) {
800// qWarning("CurrentView Tab 1"); 804// qWarning("CurrentView Tab 1");
801 return Local_View; 805 return Local_View;
802 } else { 806 } else {
803// qWarning("CurrentView Tab 2"); 807// qWarning("CurrentView Tab 2");
804 return Remote_View; 808 return Remote_View;
805 } 809 }
806} 810}
807 811
808QListView * AdvancedFm::OtherView() { 812QListView * AdvancedFm::OtherView() {
809 if ( whichTab == 1) 813 if ( whichTab == 1)
810 return Remote_View; 814 return Remote_View;
811 else 815 else
812 return Local_View; 816 return Local_View;
813} 817}
814 818
815void AdvancedFm::setOtherTabCurrent() { 819void AdvancedFm::setOtherTabCurrent() {
816 qWarning("setOtherTabCurrent() %d", whichTab); 820// qWarning("setOtherTabCurrent() %d", whichTab);
817 if ( whichTab == 1) { 821 if ( whichTab == 1) {
818 TabWidget->setCurrentWidget(1); 822 TabWidget->setCurrentWidget(1);
819 } else { 823 } else {
820 TabWidget->setCurrentWidget(0); 824 TabWidget->setCurrentWidget(0);
821 } 825 }
822 OtherView()->setFocus(); 826 OtherView()->setFocus();
823 OtherView()->setSelected( CurrentView()->firstChild(), true); 827 OtherView()->setSelected( CurrentView()->firstChild(), true);
824} 828}
825 829
826void AdvancedFm::qcopReceive(const QCString &msg, const QByteArray &data) { 830void AdvancedFm::qcopReceive(const QCString &msg, const QByteArray &data) {
827// qDebug("qcop message "+msg ); 831// qDebug("qcop message "+msg );
828 QDataStream stream ( data, IO_ReadOnly ); 832 QDataStream stream ( data, IO_ReadOnly );
829 if ( msg == "openDirectory(QString)" ) { 833 if ( msg == "openDirectory(QString)" ) {
830// qDebug("received"); 834// qDebug("received");
831 QString file; 835 QString file;
832 stream >> file; 836 stream >> file;
833 gotoDirectory( (const QString &) file); 837 gotoDirectory( (const QString &) file);
834 } 838 }
835} 839}
836 840
837void AdvancedFm::setDocument(const QString &file) { 841void AdvancedFm::setDocument(const QString &file) {
838 gotoDirectory( file); 842 gotoDirectory( file);
839 843
840} 844}
841 845
842void AdvancedFm::gotoDirectory(const QString &file) { 846void AdvancedFm::gotoDirectory(const QString &file) {
843// qWarning("goto dir "+file); 847// qWarning("goto dir "+file);
844 QString curDir = file; 848 QString curDir = file;
845 QDir *thisDir = CurrentDir(); 849 QDir *thisDir = CurrentDir();
846 if(QDir( curDir).exists() ) { 850 if(QDir( curDir).exists() ) {
847 thisDir->setPath( curDir ); 851 thisDir->setPath( curDir );
848 chdir( curDir.latin1() ); 852 chdir( curDir.latin1() );
849 thisDir->cd( curDir, TRUE); 853 thisDir->cd( curDir, TRUE);
850 populateView(); 854 populateView();
851 } 855 }
852 else if(QFileInfo(curDir).exists()) { 856 else if(QFileInfo(curDir).exists()) {
853 QFileInfo fileInfo(curDir); 857 QFileInfo fileInfo(curDir);
854 curDir=fileInfo.dirPath(); 858 curDir=fileInfo.dirPath();
855 if(QDir( curDir).exists() ) { 859 if(QDir( curDir).exists() ) {
856 thisDir->setPath( curDir ); 860 thisDir->setPath( curDir );
857 chdir( curDir.latin1() ); 861 chdir( curDir.latin1() );
858 thisDir->cd( curDir, TRUE); 862 thisDir->cd( curDir, TRUE);
859 populateView(); 863 populateView();
860 } 864 }
861 findFile(file); 865 findFile(file);
862 } 866 }
863 867
864} 868}
865 869
866void AdvancedFm::findFile(const QString &fileName) { 870void AdvancedFm::findFile(const QString &fileName) {
867 QFileInfo fi(fileName); 871 QFileInfo fi(fileName);
868 QListView *thisView = CurrentView(); 872 QListView *thisView = CurrentView();
869 QListViewItemIterator it( thisView ); 873 QListViewItemIterator it( thisView );
870 for ( ; it.current(); ++it ) { 874 for ( ; it.current(); ++it ) {
871 if(it.current()->text(0) == fi.fileName()) { 875 if(it.current()->text(0) == fi.fileName()) {
872 it.current()->setSelected(true); 876 it.current()->setSelected(true);
873 thisView->ensureItemVisible(it.current()); 877 thisView->ensureItemVisible(it.current());
874 } 878 }
875 } 879 }
876} 880}
877 881
878void AdvancedFm::slotSwitchMenu(int ) { 882void AdvancedFm::slotSwitchMenu(int ) {
879// qDebug("Switch %d", item); 883// qDebug("Switch %d", item);
880 // viewMenu->setItemChecked(item, true); 884 // viewMenu->setItemChecked(item, true);
881} 885}
882 886
883void AdvancedFm::dealWithSchmooSchmaa(QWidget *w) { 887void AdvancedFm::dealWithSchmooSchmaa(QWidget *w) {
884 tabChanged( w); 888 tabChanged( w);
885 if( w == Local_View) { 889 if( w == Local_View) {
886 Remote_View->clearFocus(); 890 Remote_View->clearFocus();
887 } else { 891 } else {
888 Local_View->clearFocus(); 892 Local_View->clearFocus();
889 } 893 }
890} 894}
891 895
892void AdvancedFm::navigateToSelected() { 896void AdvancedFm::navigateToSelected() {
893 if( !CurrentView()->currentItem()) return; 897 if( !CurrentView()->currentItem()) return;
894 doDirChange(); 898 doDirChange();
895} 899}
diff --git a/noncore/apps/advancedfm/advancedfm.h b/noncore/apps/advancedfm/advancedfm.h
index be574c4..bfefa77 100644
--- a/noncore/apps/advancedfm/advancedfm.h
+++ b/noncore/apps/advancedfm/advancedfm.h
@@ -1,186 +1,191 @@
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 OSplitter; 33class OSplitter;
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 static QString appName() { return QString::fromLatin1("advancedfm"); }
59#ifdef NOQUICKLAUNCH
58 AdvancedFm(); 60 AdvancedFm();
61#else
62 AdvancedFm(QWidget *p = 0, const char* name = 0, WFlags fl = 0);
63#endif
59 ~AdvancedFm(); 64 ~AdvancedFm();
60protected slots: 65protected slots:
61 void slotSwitchMenu(int); 66 void slotSwitchMenu(int);
62 void selectAll(); 67 void selectAll();
63 void addToDocs(); 68 void addToDocs();
64 void doDirChange(); 69 void doDirChange();
65 void mkDir(); 70 void mkDir();
66 void del(); 71 void del();
67 void rn(); 72 void rn();
68 void populateView(); 73 void populateView();
69 void rePopulate(); 74 void rePopulate();
70 void showHidden(); 75 void showHidden();
71 void showMenuHidden(); 76 void showMenuHidden();
72 void writeConfig(); 77 void writeConfig();
73 void readConfig(); 78 void readConfig();
74 void ListClicked(QListViewItem *); 79 void ListClicked(QListViewItem *);
75 void ListPressed( int, QListViewItem *, const QPoint&, int); 80 void ListPressed( int, QListViewItem *, const QPoint&, int);
76 void makeDir(); 81 void makeDir();
77 void doDelete(); 82 void doDelete();
78 void tabChanged(QWidget*); 83 void tabChanged(QWidget*);
79 void cleanUp(); 84 void cleanUp();
80 void renameIt(); 85 void renameIt();
81 void runThis(); 86 void runThis();
82 void runText(); 87 void runText();
83 void filePerms(); 88 void filePerms();
84 void doProperties(); 89 void doProperties();
85 void runCommand(); 90 void runCommand();
86 void runCommandStd(); 91 void runCommandStd();
87 QStringList getPath(); 92 QStringList getPath();
88 void mkSym(); 93 void mkSym();
89 void switchToLocalTab(); 94 void switchToLocalTab();
90 void switchToRemoteTab(); 95 void switchToRemoteTab();
91 96
92protected: 97protected:
93 98
94 OSplitter *TabWidget; 99 OSplitter *TabWidget;
95 QCopChannel * channel; 100 QCopChannel * channel;
96 QPixmap unknownXpm; 101 QPixmap unknownXpm;
97 int whichTab; 102 int whichTab;
98// QTabWidget *TabWidget; 103// QTabWidget *TabWidget;
99 QWidget *tab, *tab_2, *tab_3; 104 QWidget *tab, *tab_2, *tab_3;
100 QListView *Local_View, *Remote_View; 105 QListView *Local_View, *Remote_View;
101 106
102 QLineEdit *currentPathEdit; 107 QLineEdit *currentPathEdit;
103 QPopupMenu *fileMenu, *localMenu, *remoteMenu, *viewMenu /*, *customDirMenu*/; 108 QPopupMenu *fileMenu, *localMenu, *remoteMenu, *viewMenu /*, *customDirMenu*/;
104 QToolButton *homeButton, *docButton, *cdUpButton, *sdButton, *cfButton, *qpeDirButton; 109 QToolButton *homeButton, *docButton, *cdUpButton, *sdButton, *cfButton, *qpeDirButton;
105// QPushButton *homeButton, *docButton, *cdUpButton, *sdButton, *cfButton, *qpeDirButton; 110// QPushButton *homeButton, *docButton, *cdUpButton, *sdButton, *cfButton, *qpeDirButton;
106 QDir currentDir, currentRemoteDir; 111 QDir currentDir, currentRemoteDir;
107 QComboBox *currentPathCombo; 112 QComboBox *currentPathCombo;
108 QString filterStr, s_addBookmark, s_removeBookmark; 113 QString filterStr, s_addBookmark, s_removeBookmark;
109 QListViewItem * item; 114 QListViewItem * item;
110 bool b; 115 bool b;
111 QStringList fileSystemTypeList, fsList; 116 QStringList fileSystemTypeList, fsList;
112 int currentServerConfig; 117 int currentServerConfig;
113 bool zaurusDevice; 118 bool zaurusDevice;
114 QGridLayout *tabLayout, *tabLayout_2, *tabLayout_3; 119 QGridLayout *tabLayout, *tabLayout_2, *tabLayout_3;
115 QStringList remoteDirPathStringList, localDirPathStringList; 120 QStringList remoteDirPathStringList, localDirPathStringList;
116 QLineEdit *renameBox; 121 QLineEdit *renameBox;
117 122
118 void init(); 123 void init();
119 void initConnections(); 124 void initConnections();
120 void keyReleaseEvent( QKeyEvent *); 125 void keyReleaseEvent( QKeyEvent *);
121 void keyPressEvent( QKeyEvent *); 126 void keyPressEvent( QKeyEvent *);
122 QString getFileSystemType(const QString &); 127 QString getFileSystemType(const QString &);
123 QString getDiskSpace(const QString &); 128 QString getDiskSpace(const QString &);
124 void parsetab(const QString &fileName); 129 void parsetab(const QString &fileName);
125 QString checkDiskSpace(const QString &); 130 QString checkDiskSpace(const QString &);
126 QString dealWithSymName(const QString &); 131 QString dealWithSymName(const QString &);
127 QDir *CurrentDir(); 132 QDir *CurrentDir();
128 QDir *OtherDir(); 133 QDir *OtherDir();
129 QListView *CurrentView(); 134 QListView *CurrentView();
130 QListView *OtherView(); 135 QListView *OtherView();
131 void setOtherTabCurrent(); 136 void setOtherTabCurrent();
132 void dealWithSchmooSchmaa(QWidget *); 137 void dealWithSchmooSchmaa(QWidget *);
133 138
134protected slots: 139protected slots:
135 void openSearch(); 140 void openSearch();
136 void dirMenuSelected(int); 141 void dirMenuSelected(int);
137 void showFileMenu(); 142 void showFileMenu();
138 void cancelMenuTimer(); 143 void cancelMenuTimer();
139 void homeButtonPushed(); 144 void homeButtonPushed();
140 void docButtonPushed(); 145 void docButtonPushed();
141 void SDButtonPushed(); 146 void SDButtonPushed();
142 void CFButtonPushed(); 147 void CFButtonPushed();
143 void QPEButtonPushed(); 148 void QPEButtonPushed();
144 void upDir(); 149 void upDir();
145 void currentPathComboChanged(); 150 void currentPathComboChanged();
146 void copy(); 151 void copy();
147 void copyAs(); 152 void copyAs();
148 void copySameDir(); 153 void copySameDir();
149 void currentPathComboActivated(const QString &); 154 void currentPathComboActivated(const QString &);
150 void fillCombo(const QString &); 155 void fillCombo(const QString &);
151 bool copyFile( const QString & , const QString & ); 156 bool copyFile( const QString & , const QString & );
152 void move(); 157 void move();
153 void fileStatus(); 158 void fileStatus();
154 void doAbout(); 159 void doAbout();
155 void doBeam(); 160 void doBeam();
156 void fileBeamFinished( Ir *); 161 void fileBeamFinished( Ir *);
157 bool copyDirectory( const QString & , const QString & ); 162 bool copyDirectory( const QString & , const QString & );
158// void navigateToSelected(); 163// void navigateToSelected();
159 bool moveDirectory( const QString & , const QString & ); 164 bool moveDirectory( const QString & , const QString & );
160// void slotSwitchtoLocal(int); 165// void slotSwitchtoLocal(int);
161 166
162private: 167private:
163 MenuButton *menuButton; 168 MenuButton *menuButton;
164 QString oldName; 169 QString oldName;
165 QTimer menuTimer; 170 QTimer menuTimer;
166 void startProcess(const QString &); 171 void startProcess(const QString &);
167 bool eventFilter( QObject * , QEvent * ); 172 bool eventFilter( QObject * , QEvent * );
168 void cancelRename(); 173 void cancelRename();
169 void doRename(QListView *); 174 void doRename(QListView *);
170 void okRename(); 175 void okRename();
171 void customDirsToMenu(); 176 void customDirsToMenu();
172 void addCustomDir(); 177 void addCustomDir();
173 void removeCustomDir(); 178 void removeCustomDir();
174 void gotoDirectory(const QString &); 179 void gotoDirectory(const QString &);
175 void navigateToSelected(); 180 void navigateToSelected();
176 void findFile(const QString &); 181 void findFile(const QString &);
177 182
178private slots: 183private slots:
179 void processEnded(OProcess *); 184 void processEnded(OProcess *);
180 void oprocessStderr(OProcess *, char *, int); 185 void oprocessStderr(OProcess *, char *, int);
181 void gotoCustomDir(const QString &); 186 void gotoCustomDir(const QString &);
182 void qcopReceive(const QCString&, const QByteArray&); 187 void qcopReceive(const QCString&, const QByteArray&);
183 void setDocument(const QString &); 188 void setDocument(const QString &);
184 189
185}; 190};
186 191
diff --git a/noncore/apps/advancedfm/advancedfm.pro b/noncore/apps/advancedfm/advancedfm.pro
index 590db6a..70db018 100644
--- a/noncore/apps/advancedfm/advancedfm.pro
+++ b/noncore/apps/advancedfm/advancedfm.pro
@@ -1,11 +1,35 @@
1TEMPLATE = app 1TEMPLATE = app
2CONFIG += qt warn_on release 2CONFIG += qt warn_on release quick-app
3# CONFIG += qt warn_on release
3HEADERS = advancedfm.h filePermissions.h output.h 4HEADERS = advancedfm.h filePermissions.h output.h
4SOURCES = advancedfm.cpp advancedfmData.cpp advancedfmMenu.cpp filePermissions.cpp output.cpp main.cpp 5SOURCES = advancedfm.cpp advancedfmData.cpp advancedfmMenu.cpp filePermissions.cpp output.cpp main.cpp
5TARGET = advancedfm 6TARGET = advancedfm
6INCLUDEPATH += $(OPIEDIR)/include 7INCLUDEPATH += $(OPIEDIR)/include
7DEPENDPATH += $(OPIEDIR)/include 8DEPENDPATH += $(OPIEDIR)/include
8DESTDIR = $(OPIEDIR)/bin
9LIBS += -lqpe -lopie 9LIBS += -lqpe -lopie
10 10
11TRANSLATIONS = ../../../i18n/de/advancedfm.ts \
12 ../../../i18n/nl/advancedfm.ts \
13 ../../../i18n/da/advancedfm.ts \
14 ../../../i18n/xx/advancedfm.ts \
15 ../../../i18n/en/advancedfm.ts \
16 ../../../i18n/es/advancedfm.ts \
17 ../../../i18n/fr/advancedfm.ts \
18 ../../../i18n/hu/advancedfm.ts \
19 ../../../i18n/ja/advancedfm.ts \
20 ../../../i18n/ko/advancedfm.ts \
21 ../../../i18n/no/advancedfm.ts \
22 ../../../i18n/pl/advancedfm.ts \
23 ../../../i18n/pt/advancedfm.ts \
24 ../../../i18n/pt_BR/advancedfm.ts \
25 ../../../i18n/sl/advancedfm.ts \
26 ../../../i18n/zh_CN/advancedfm.ts \
27 ../../../i18n/zh_TW/advancedfm.ts
28
29
30 !contains(CONFIG,quick-app) {
31 DESTDIR = $(OPIEDIR)/bin
32 DEFINES += NOQUICKLAUNCH
33}
34
11include ( $(OPIEDIR)/include.pro ) 35include ( $(OPIEDIR)/include.pro )
diff --git a/noncore/apps/advancedfm/main.cpp b/noncore/apps/advancedfm/main.cpp
index 8cacc4a..51e38dc 100644
--- a/noncore/apps/advancedfm/main.cpp
+++ b/noncore/apps/advancedfm/main.cpp
@@ -1,27 +1,33 @@
1 1
2/*************************************************************************** 2/***************************************************************************
3 main.cpp - description 3 main.cpp - description
4 ------------------- 4 -------------------
5 begin : March 10, 2002 5 begin : March 10, 2002
6 copyright : (C) 2002 by llornkcor 6 copyright : (C) 2002 by llornkcor
7 email : ljp@llornkcor.com 7 email : ljp@llornkcor.com
8 * This program is free software; you can redistribute it and/or modify * 8 * This program is free software; you can redistribute it and/or modify *
9 * it under the terms of the GNU General Public License as published by * 9 * it under the terms of the GNU General Public License as published by *
10 * the Free Software Foundation; either version 2 of the License, or * 10 * the Free Software Foundation; either version 2 of the License, or *
11 * (at your option) any later version. * 11 * (at your option) any later version. *
12 ***************************************************************************/ 12 ***************************************************************************/
13#include <qpe/qpeapplication.h> 13#include <qpe/qpeapplication.h>
14 14
15 15
16 16
17#include "advancedfm.h" 17#include "advancedfm.h"
18 18
19#ifdef NOQUICKLAUNCH
19int main(int argc, char *argv[]) 20int main(int argc, char *argv[])
20{ 21{
21 QPEApplication a(argc, argv); 22 QPEApplication a(argc, argv);
22 23
23 AdvancedFm advencedFm; 24 AdvancedFm advencedFm;
24 a.showMainWidget( &advencedFm); 25 a.showMainWidget( &advencedFm);
25 return a.exec(); 26 return a.exec();
26} 27}
28#else
29#include <opie/oapplicationfactory.h>
27 30
31OPIE_EXPORT_APP( OApplicationFactory<AdvancedFm> )
32
33#endif