summaryrefslogtreecommitdiff
path: root/noncore/apps/advancedfm/advancedfm.cpp
authorllornkcor <llornkcor>2002-09-23 13:38:57 (UTC)
committer llornkcor <llornkcor>2002-09-23 13:38:57 (UTC)
commit7c3194a651beca5ba43bc29d87cc96b55761b7bc (patch) (unidiff)
treec2860d2c826b62ce6737681ac43c78197448931b /noncore/apps/advancedfm/advancedfm.cpp
parentcfeb1373faa2b46011ecdb294d0ce4e557ea988f (diff)
downloadopie-7c3194a651beca5ba43bc29d87cc96b55761b7bc.zip
opie-7c3194a651beca5ba43bc29d87cc96b55761b7bc.tar.gz
opie-7c3194a651beca5ba43bc29d87cc96b55761b7bc.tar.bz2
start changing things around
Diffstat (limited to 'noncore/apps/advancedfm/advancedfm.cpp') (more/less context) (show whitespace changes)
-rw-r--r--noncore/apps/advancedfm/advancedfm.cpp285
1 files changed, 31 insertions, 254 deletions
diff --git a/noncore/apps/advancedfm/advancedfm.cpp b/noncore/apps/advancedfm/advancedfm.cpp
index c054465..8f49a53 100644
--- a/noncore/apps/advancedfm/advancedfm.cpp
+++ b/noncore/apps/advancedfm/advancedfm.cpp
@@ -11,321 +11,119 @@
11 ***************************************************************************/ 11 ***************************************************************************/
12#define DEVELOPERS_VERSION 12#define DEVELOPERS_VERSION
13#define QTOPIA_INTERNAL_FSLP // to get access to fileproperties 13#define QTOPIA_INTERNAL_FSLP // to get access to fileproperties
14 14
15#include "advancedfm.h" 15#include "advancedfm.h"
16#include "inputDialog.h" 16#include "inputDialog.h"
17#include "filePermissions.h" 17#include "filePermissions.h"
18#include "output.h" 18#include "output.h"
19 19
20// #include <opie/ofileselector.h> 20// #include <opie/ofileselector.h>
21// #include <opie/ofiledialog.h> 21// #include <opie/ofiledialog.h>
22 22
23
24#include <qpe/lnkproperties.h> 23#include <qpe/lnkproperties.h>
25#include <qpe/filemanager.h> 24#include <qpe/filemanager.h>
26#include <qpe/qcopenvelope_qws.h> 25#include <qpe/qcopenvelope_qws.h>
27#include <qpe/qpemenubar.h> 26#include <qpe/qpemenubar.h>
28#include <qpe/qpetoolbar.h> 27#include <qpe/qpetoolbar.h>
29#include <qpe/qpeapplication.h> 28#include <qpe/qpeapplication.h>
30#include <qpe/resource.h>
31#include <qpe/qcopenvelope_qws.h> 29#include <qpe/qcopenvelope_qws.h>
32#include <qpe/config.h> 30#include <qpe/config.h>
33#include <qpe/mimetype.h> 31#include <qpe/mimetype.h>
34#include <qpe/applnk.h> 32#include <qpe/applnk.h>
35#include <qpe/ir.h> 33#include <qpe/ir.h>
34#include <qpe/resource.h>
36 35
37//#include <opie/ofileselector.h> 36//#include <opie/ofileselector.h>
38#include <qmultilineedit.h> 37#include <qmultilineedit.h>
39 38
39#include <qtabwidget.h>
40#include <qtextstream.h> 40#include <qtextstream.h>
41#include <qpushbutton.h> 41#include <qpushbutton.h>
42#include <qtoolbutton.h>
43#include <qdatetime.h> 42#include <qdatetime.h>
44#include <qdir.h> 43#include <qdir.h>
45#include <qfile.h> 44#include <qfile.h>
46#include <qstring.h> 45#include <qstring.h>
47#include <qcombobox.h> 46#include <qcombobox.h>
48#include <qpopupmenu.h> 47#include <qpopupmenu.h>
49#include <qlistview.h> 48#include <qlistview.h>
50#include <qmainwindow.h> 49#include <qmainwindow.h>
51#include <qlabel.h> 50#include <qlabel.h>
52#include <qprogressbar.h> 51#include <qprogressbar.h>
53#include <qspinbox.h> 52#include <qspinbox.h>
54#include <qtabwidget.h>
55#include <qwidget.h> 53#include <qwidget.h>
56#include <qlayout.h> 54#include <qlayout.h>
57#include <qimage.h> 55#include <qimage.h>
58#include <qpixmap.h> 56#include <qpixmap.h>
59#include <qmessagebox.h> 57#include <qmessagebox.h>
60#include <qlineedit.h> 58#include <qlineedit.h>
61#include <qregexp.h> 59#include <qregexp.h>
62 60
63#include <unistd.h> 61#include <unistd.h>
64#include <stdlib.h> 62#include <stdlib.h>
65#include <sys/stat.h> 63#include <sys/stat.h>
66#include <dirent.h> 64#include <dirent.h>
67#include <stdio.h> 65#include <stdio.h>
68#include <time.h> 66#include <time.h>
69#include <fcntl.h> 67#include <fcntl.h>
70#include <mntent.h> 68#include <mntent.h>
71#include <string.h> 69#include <string.h>
72#include <errno.h> 70#include <errno.h>
73#include <sys/vfs.h> 71#include <sys/vfs.h>
74#include <mntent.h> 72#include <mntent.h>
75#include <sys/utsname.h> 73#include <sys/utsname.h>
76 74
77AdvancedFm::AdvancedFm( ) 75AdvancedFm::AdvancedFm( )
78 : QMainWindow( ) 76 : QMainWindow( ) {
79{ 77 init();
80 setCaption( tr( "AdvancedFm" ) );
81
82 QGridLayout *layout = new QGridLayout( this );
83 layout->setSpacing( 2);
84 layout->setMargin( 2);
85
86 connect( qApp,SIGNAL( aboutToQuit()),SLOT( cleanUp()) );
87
88 QPEMenuBar *menuBar = new QPEMenuBar(this);
89 fileMenu = new QPopupMenu( this );
90 viewMenu = new QPopupMenu( this );
91
92 layout->addMultiCellWidget( menuBar, 0, 0, 0, 1 );
93
94 menuBar->insertItem( tr( "File" ), fileMenu);
95 menuBar->insertItem( tr( "View" ), viewMenu);
96
97 qpeDirButton= new QToolButton(this,"QPEButton");
98 qpeDirButton->setPixmap( Resource::loadPixmap("launcher/opielogo16x16"));//,"",this,"QPEButton");
99 qpeDirButton ->setFixedSize( QSize( 20, 20 ) );
100 connect( qpeDirButton ,SIGNAL(released()),this,SLOT( QPEButtonPushed()) );
101 layout->addMultiCellWidget( qpeDirButton , 0, 0, 2, 2);
102
103 cfButton = new QToolButton( this,"CFButton");
104 cfButton->setPixmap(Resource::loadPixmap("cardmon/pcmcia"));
105 cfButton ->setFixedSize( QSize( 20, 20 ) );
106 connect( cfButton ,SIGNAL(released()),this,SLOT( CFButtonPushed()) );
107 layout->addMultiCellWidget( cfButton , 0, 0, 3, 3);
108
109 sdButton = new QToolButton( this,"SDButton");
110 sdButton->setPixmap(Resource::loadPixmap("sdmon/sdcard"));
111 sdButton->setFixedSize( QSize( 20, 20 ) );
112 connect( sdButton ,SIGNAL(released()),this,SLOT( SDButtonPushed()) );
113 layout->addMultiCellWidget( sdButton , 0, 0, 4, 4);
114
115 cdUpButton = new QToolButton( this,"cdUpButton");
116 cdUpButton->setPixmap(Resource::loadPixmap("up"));
117 cdUpButton ->setFixedSize( QSize( 20, 20 ) );
118 connect( cdUpButton ,SIGNAL(released()),this,SLOT( upDir()) );
119 layout->addMultiCellWidget( cdUpButton , 0, 0, 5, 5);
120
121 docButton = new QToolButton( this,"docsButton");
122 docButton->setPixmap(Resource::loadPixmap("DocsIcon"));
123 docButton->setFixedSize( QSize( 20, 20 ) );
124 connect( docButton,SIGNAL(released()),this,SLOT( docButtonPushed()) );
125 layout->addMultiCellWidget( docButton, 0, 0, 6, 6);
126
127 homeButton = new QToolButton( this,"homeButton");
128 homeButton->setPixmap(Resource::loadPixmap("home"));
129 homeButton->setFixedSize( QSize( 20, 20 ) );
130 connect(homeButton,SIGNAL(released()),this,SLOT(homeButtonPushed()) );
131 layout->addMultiCellWidget( homeButton, 0, 0, 7, 7);
132
133 fileMenu->insertItem( tr( "Show Hidden Files" ), this, SLOT( showHidden() ));
134 fileMenu->setItemChecked( fileMenu->idAt(0),TRUE);
135 fileMenu->insertSeparator();
136 fileMenu->insertItem( tr( "Make Directory" ), this, SLOT( mkDir() ));
137 fileMenu->insertItem( tr( "Rename" ), this, SLOT( rn() ));
138 fileMenu->insertItem( tr( "Run Command" ), this, SLOT( runCommandStd() ));
139 fileMenu->insertItem( tr( "Run Command with Output" ), this, SLOT( runCommand() ));
140 fileMenu->insertSeparator();
141 fileMenu->insertItem( tr( "Add To Documents" ), this, SLOT( addToDocs() ));
142 fileMenu->insertItem( tr( "Delete" ), this, SLOT( del() ));
143 fileMenu->setCheckable(TRUE);
144
145 viewMenu->insertItem( tr( "Switch to Local" ), this, SLOT( switchToLocalTab() ));
146 viewMenu->insertItem( tr( "Switch to Remote" ), this, SLOT( switchToRemoteTab() ));
147 viewMenu->insertSeparator();
148 viewMenu->insertItem( tr( "About" ), this, SLOT( doAbout() ));
149 viewMenu->setCheckable(TRUE);
150
151
152 currentPathCombo = new QComboBox( FALSE, this, "currentPathCombo" );
153 currentPathCombo->setEditable(TRUE);
154 layout->addMultiCellWidget( currentPathCombo, 1, 1, 0, 7);
155 currentPathCombo->lineEdit()->setText( currentDir.canonicalPath());
156
157 connect( currentPathCombo, SIGNAL( activated( const QString & ) ),
158 this, SLOT( currentPathComboActivated( const QString & ) ) );
159
160 connect( currentPathCombo->lineEdit(),SIGNAL(returnPressed()),
161 this,SLOT(currentPathComboChanged()));
162
163 currentPathCombo->lineEdit()->setText( currentDir.canonicalPath());
164
165 layout->addMultiCellWidget( currentPathCombo, 1, 1, 0, 7);
166
167
168 TabWidget = new QTabWidget( this, "TabWidget" );
169 layout->addMultiCellWidget( TabWidget, 2, 2, 0, 7);
170
171 tab = new QWidget( TabWidget, "tab" );
172 tabLayout = new QGridLayout( tab );
173 tabLayout->setSpacing( 2);
174 tabLayout->setMargin( 2);
175
176 Local_View = new QListView( tab, "Local_View" );
177 Local_View->addColumn( tr("File"),130);
178 Local_View->addColumn( tr("Size"),-1);
179 Local_View->setColumnAlignment(1,QListView::AlignRight);
180 Local_View->addColumn( tr("Date"),-1);
181 Local_View->setColumnAlignment(2,QListView::AlignRight);
182 Local_View->setAllColumnsShowFocus(TRUE);
183 Local_View->setMultiSelection( TRUE );
184 Local_View->setSelectionMode(QListView::Extended);
185
186 QPEApplication::setStylusOperation( Local_View->viewport(),QPEApplication::RightOnHold);
187
188 tabLayout->addWidget( Local_View, 0, 0 );
189
190 connect( Local_View, SIGNAL( clicked( QListViewItem*)),
191 this,SLOT( localListClicked(QListViewItem *)) );
192 connect( Local_View, SIGNAL( mouseButtonPressed( int, QListViewItem *, const QPoint&, int)),
193 this,SLOT( localListPressed(int, QListViewItem *, const QPoint&, int)) );
194
195 connect( Local_View, SIGNAL( selectionChanged() ), SLOT( cancelMenuTimer() ) );
196
197 TabWidget->insertTab( tab, tr("1"));
198
199 tab_2 = new QWidget( TabWidget, "tab_2" );
200 tabLayout_2 = new QGridLayout( tab_2 );
201 tabLayout_2->setSpacing( 2);
202 tabLayout_2->setMargin( 2);
203
204 Remote_View = new QListView( tab_2, "Remote_View" );
205 Remote_View->addColumn( tr("File"),130);
206 Remote_View->addColumn( tr("Size"),-1);
207 Remote_View->setColumnAlignment(1,QListView::AlignRight);
208 Remote_View->addColumn( tr("Date"),-1);
209 Remote_View->setColumnAlignment(2,QListView::AlignRight);
210 Remote_View->setAllColumnsShowFocus(TRUE);
211 Remote_View->setMultiSelection( TRUE );
212 Remote_View->setSelectionMode(QListView::Extended);
213
214
215 QPEApplication::setStylusOperation( Remote_View->viewport(),QPEApplication::RightOnHold);
216
217 connect( Remote_View, SIGNAL( clicked( QListViewItem*)),
218 this,SLOT( remoteListClicked(QListViewItem *)) );
219 connect( Remote_View, SIGNAL( mouseButtonPressed( int, QListViewItem *, const QPoint&, int)),
220 this,SLOT( remoteListPressed(int, QListViewItem *, const QPoint&, int)) );
221
222 tabLayout_2->addWidget( Remote_View, 0, 0 );
223
224
225 TabWidget->insertTab( tab_2, tr( "2"));
226
227 connect(TabWidget,SIGNAL(currentChanged(QWidget *)),
228 this,SLOT(tabChanged(QWidget*)));
229
230 /* tab_3 = new QWidget( TabWidget, "tab_3" );
231 tabLayout_3 = new QGridLayout( tab_3 );
232 tabLayout_3->setSpacing( 2);
233 tabLayout_3->setMargin( 2);
234
235
236 // OFileDialog fileDialog;
237 // fileDialog;
238 // fileSelector = new FileSelector( "*",tab_3, "fileselector" , FALSE, FALSE); //buggy
239 // fileDialog = new OFileDialog("bangalow", tab_3, 4, 2, "Bungalow");
240 // OFileSelector fileDialog = new OFileSelector( tab_3, 4, 2,"/");
241
242 QListView *fileTree;
243 fileTree = new QListView( tab_3, "tree" );
244
245
246 tabLayout_3->addMultiCellWidget( fileTree, 0, 0, 0, 3 );
247
248 TabWidget->insertTab( tab_3, tr( "Remote" ) );
249 */
250
251 ///////////////
252
253 struct utsname name; /* check for embedix kernel running on the zaurus*/
254 if (uname(&name) != -1) {
255 QString release=name.release;
256 if(release.find("embedix",0,TRUE) !=-1) {
257 zaurusDevice=TRUE;
258 } else {
259 zaurusDevice=FALSE;
260 sdButton->hide();
261 }
262 }
263
264 currentDir.setFilter( QDir::Files | QDir::Dirs | QDir::Hidden | QDir::All);
265 currentDir.setPath( QDir::currentDirPath());
266
267 currentRemoteDir.setFilter( QDir::Files | QDir::Dirs | QDir::Hidden | QDir::All);
268 currentRemoteDir.setPath( QDir::currentDirPath());
269
270 b = TRUE;
271
272 filterStr="*";
273 b=FALSE;
274
275 connect( &menuTimer, SIGNAL( timeout() ), SLOT( showFileMenu() ) );
276 78
277 populateLocalView(); 79 populateLocalView();
278 populateRemoteView(); 80 populateRemoteView();
279 currentPathCombo->setFocus(); 81 currentPathCombo->setFocus();
280} 82}
281 83
282AdvancedFm::~AdvancedFm() 84AdvancedFm::~AdvancedFm() {
283{
284} 85}
285 86
286void AdvancedFm::cleanUp() 87void AdvancedFm::cleanUp() {
287{
288 QString sfile=QDir::homeDirPath(); 88 QString sfile=QDir::homeDirPath();
289 if(sfile.right(1) != "/") 89 if(sfile.right(1) != "/")
290 sfile+="/._temp"; 90 sfile+="/._temp";
291 else 91 else
292 sfile+="._temp"; 92 sfile+="._temp";
293 QFile file( sfile); 93 QFile file( sfile);
294 if(file.exists()) 94 if(file.exists())
295 file.remove(); 95 file.remove();
296} 96}
297 97
298void AdvancedFm::tabChanged(QWidget *) 98void AdvancedFm::tabChanged(QWidget *) {
299{
300 if (TabWidget->currentPageIndex() == 0) { 99 if (TabWidget->currentPageIndex() == 0) {
301 currentPathCombo->lineEdit()->setText( currentDir.canonicalPath()); 100 currentPathCombo->lineEdit()->setText( currentDir.canonicalPath());
302 viewMenu->setItemChecked(viewMenu->idAt(0),TRUE); 101 viewMenu->setItemChecked(viewMenu->idAt(0),TRUE);
303 viewMenu->setItemChecked(viewMenu->idAt(1),FALSE); 102 viewMenu->setItemChecked(viewMenu->idAt(1),FALSE);
304 QString fs= getFileSystemType((const QString &) currentDir.canonicalPath()); 103 QString fs= getFileSystemType((const QString &) currentDir.canonicalPath());
305 setCaption("AdvancedFm :: "+fs+" :: "+checkDiskSpace((const QString &) currentDir.canonicalPath())+" kB free" ); 104 setCaption("AdvancedFm :: "+fs+" :: "+checkDiskSpace((const QString &) currentDir.canonicalPath())+" kB free" );
306 105
307 } 106 }
308 if (TabWidget->currentPageIndex() == 1) { 107 if (TabWidget->currentPageIndex() == 1) {
309 currentPathCombo->lineEdit()->setText( currentRemoteDir.canonicalPath()); 108 currentPathCombo->lineEdit()->setText( currentRemoteDir.canonicalPath());
310 viewMenu->setItemChecked(viewMenu->idAt(1),TRUE); 109 viewMenu->setItemChecked(viewMenu->idAt(1),TRUE);
311 viewMenu->setItemChecked(viewMenu->idAt(0),FALSE); 110 viewMenu->setItemChecked(viewMenu->idAt(0),FALSE);
312 QString fs= getFileSystemType((const QString &) currentRemoteDir.canonicalPath()); 111 QString fs= getFileSystemType((const QString &) currentRemoteDir.canonicalPath());
313 setCaption("AdvancedFm :: "+fs+" :: "+checkDiskSpace((const QString &) currentRemoteDir.canonicalPath())+" kB free" ); 112 setCaption("AdvancedFm :: "+fs+" :: "+checkDiskSpace((const QString &) currentRemoteDir.canonicalPath())+" kB free" );
314 } 113 }
315} 114}
316 115
317 116
318void AdvancedFm::populateLocalView() 117void AdvancedFm::populateLocalView() {
319{
320 QPixmap pm; 118 QPixmap pm;
321 Local_View->clear(); 119 Local_View->clear();
322 currentDir.setSorting(/* QDir::Size*/ /*| QDir::Reversed | */QDir::DirsFirst); 120 currentDir.setSorting(/* QDir::Size*/ /*| QDir::Reversed | */QDir::DirsFirst);
323 currentDir.setMatchAllDirs(TRUE); 121 currentDir.setMatchAllDirs(TRUE);
324 currentDir.setNameFilter(filterStr); 122 currentDir.setNameFilter(filterStr);
325 QString fileL, fileS, fileDate; 123 QString fileL, fileS, fileDate;
326 QString fs= getFileSystemType((const QString &) currentDir.canonicalPath()); 124 QString fs= getFileSystemType((const QString &) currentDir.canonicalPath());
327 setCaption("AdvancedFm :: "+fs+" :: "+checkDiskSpace((const QString &) currentDir.canonicalPath())+" kB free" ); 125 setCaption("AdvancedFm :: "+fs+" :: "+checkDiskSpace((const QString &) currentDir.canonicalPath())+" kB free" );
328 bool isDir=FALSE; 126 bool isDir=FALSE;
329 const QFileInfoList *list = currentDir.entryInfoList( /*QDir::All*/ /*, QDir::SortByMask*/); 127 const QFileInfoList *list = currentDir.entryInfoList( /*QDir::All*/ /*, QDir::SortByMask*/);
330 QFileInfoListIterator it(*list); 128 QFileInfoListIterator it(*list);
331 QFileInfo *fi; 129 QFileInfo *fi;
@@ -403,26 +201,25 @@ void AdvancedFm::populateLocalView()
403 item->setPixmap( 0,pm); 201 item->setPixmap( 0,pm);
404 } 202 }
405 } 203 }
406 204
407 closedir(dir); 205 closedir(dir);
408 } 206 }
409 207
410 Local_View->setSorting( 3,FALSE); 208 Local_View->setSorting( 3,FALSE);
411 fillCombo( (const QString &) currentDir.canonicalPath()); 209 fillCombo( (const QString &) currentDir.canonicalPath());
412} 210}
413 211
414 212
415void AdvancedFm::populateRemoteView() 213void AdvancedFm::populateRemoteView() {
416{
417 QPixmap pm; 214 QPixmap pm;
418 Remote_View->clear(); 215 Remote_View->clear();
419 currentRemoteDir.setSorting(/* QDir::Size*/ /*| QDir::Reversed | */QDir::DirsFirst); 216 currentRemoteDir.setSorting(/* QDir::Size*/ /*| QDir::Reversed | */QDir::DirsFirst);
420 currentRemoteDir.setMatchAllDirs(TRUE); 217 currentRemoteDir.setMatchAllDirs(TRUE);
421 currentRemoteDir.setNameFilter(filterStr); 218 currentRemoteDir.setNameFilter(filterStr);
422 QString fileL, fileS, fileDate; 219 QString fileL, fileS, fileDate;
423 220
424 QString fs= getFileSystemType((const QString &) currentRemoteDir.canonicalPath()); 221 QString fs= getFileSystemType((const QString &) currentRemoteDir.canonicalPath());
425 setCaption("AdvancedFm :: "+fs+" :: "+checkDiskSpace((const QString &) currentRemoteDir.canonicalPath())+" kB free" ); 222 setCaption("AdvancedFm :: "+fs+" :: "+checkDiskSpace((const QString &) currentRemoteDir.canonicalPath())+" kB free" );
426 bool isDir=FALSE; 223 bool isDir=FALSE;
427 const QFileInfoList *list = currentRemoteDir.entryInfoList( /*QDir::All*/ /*, QDir::SortByMask*/); 224 const QFileInfoList *list = currentRemoteDir.entryInfoList( /*QDir::All*/ /*, QDir::SortByMask*/);
428 QFileInfoListIterator it(*list); 225 QFileInfoListIterator it(*list);
@@ -500,26 +297,25 @@ void AdvancedFm::populateRemoteView()
500 pm = Resource::loadPixmap( "UnknownDocument-14" ); 297 pm = Resource::loadPixmap( "UnknownDocument-14" );
501 item->setPixmap( 0,pm); 298 item->setPixmap( 0,pm);
502 } 299 }
503 } 300 }
504 301
505 closedir(dir); 302 closedir(dir);
506 } 303 }
507 304
508 Remote_View->setSorting( 3,FALSE); 305 Remote_View->setSorting( 3,FALSE);
509 fillCombo( (const QString &) currentRemoteDir.canonicalPath() ); 306 fillCombo( (const QString &) currentRemoteDir.canonicalPath() );
510} 307}
511 308
512void AdvancedFm::localListClicked(QListViewItem *selectedItem) 309void AdvancedFm::localListClicked(QListViewItem *selectedItem) {
513{
514 if(selectedItem) { 310 if(selectedItem) {
515 QString strItem=selectedItem->text(0); 311 QString strItem=selectedItem->text(0);
516 QString strSize=selectedItem->text(1); 312 QString strSize=selectedItem->text(1);
517 strSize=strSize.stripWhiteSpace(); 313 strSize=strSize.stripWhiteSpace();
518 if(strItem.find("@",0,TRUE) !=-1 || strItem.find("->",0,TRUE) !=-1 ) { //if symlink 314 if(strItem.find("@",0,TRUE) !=-1 || strItem.find("->",0,TRUE) !=-1 ) { //if symlink
519 // is symlink 315 // is symlink
520 QString strItem2 = strItem.right( (strItem.length() - strItem.find("->",0,TRUE)) - 4); 316 QString strItem2 = strItem.right( (strItem.length() - strItem.find("->",0,TRUE)) - 4);
521 if(QDir(strItem2).exists() ) { 317 if(QDir(strItem2).exists() ) {
522 currentDir.cd(strItem2, TRUE); 318 currentDir.cd(strItem2, TRUE);
523 populateLocalView(); 319 populateLocalView();
524 } 320 }
525 } else { // not a symlink 321 } else { // not a symlink
@@ -541,26 +337,26 @@ void AdvancedFm::localListClicked(QListViewItem *selectedItem)
541 if( QFile::exists(strItem ) ) { 337 if( QFile::exists(strItem ) ) {
542 // qDebug("clicked item "+strItem); 338 // qDebug("clicked item "+strItem);
543 // DocLnk doc( strItem, FALSE ); 339 // DocLnk doc( strItem, FALSE );
544 // doc.execute(); 340 // doc.execute();
545 // Local_View->clearSelection(); 341 // Local_View->clearSelection();
546 } 342 }
547 } //end not symlink 343 } //end not symlink
548 chdir(strItem.latin1()); 344 chdir(strItem.latin1());
549 } 345 }
550 } 346 }
551} 347}
552 348
553void AdvancedFm::remoteListClicked(QListViewItem *selectedItem) 349void AdvancedFm::remoteListClicked(QListViewItem *selectedItem) {
554{ 350
555 if(selectedItem) { 351 if(selectedItem) {
556 QString strItem=selectedItem->text(0); 352 QString strItem=selectedItem->text(0);
557 QString strSize=selectedItem->text(1); 353 QString strSize=selectedItem->text(1);
558 strSize=strSize.stripWhiteSpace(); 354 strSize=strSize.stripWhiteSpace();
559 if(strItem.find("@",0,TRUE) !=-1 || strItem.find("->",0,TRUE) !=-1 ) { //if symlink 355 if(strItem.find("@",0,TRUE) !=-1 || strItem.find("->",0,TRUE) !=-1 ) { //if symlink
560 // is symlink 356 // is symlink
561 QString strItem2 = strItem.right( (strItem.length() - strItem.find("->",0,TRUE)) - 4); 357 QString strItem2 = strItem.right( (strItem.length() - strItem.find("->",0,TRUE)) - 4);
562 if(QDir(strItem2).exists() ) { 358 if(QDir(strItem2).exists() ) {
563 currentRemoteDir.cd(strItem2, TRUE); 359 currentRemoteDir.cd(strItem2, TRUE);
564 populateRemoteView(); 360 populateRemoteView();
565 } 361 }
566 } else { // not a symlink 362 } else { // not a symlink
@@ -582,78 +378,72 @@ void AdvancedFm::remoteListClicked(QListViewItem *selectedItem)
582 if( QFile::exists(strItem ) ) { 378 if( QFile::exists(strItem ) ) {
583 // qDebug("clicked item "+strItem); 379 // qDebug("clicked item "+strItem);
584 // DocLnk doc( strItem, FALSE ); 380 // DocLnk doc( strItem, FALSE );
585 // doc.execute(); 381 // doc.execute();
586 // Remote_View->clearSelection(); 382 // Remote_View->clearSelection();
587 } 383 }
588 } //end not symlink 384 } //end not symlink
589 chdir(strItem.latin1()); 385 chdir(strItem.latin1());
590 } 386 }
591 } 387 }
592} 388}
593 389
594void AdvancedFm::doLocalCd() 390void AdvancedFm::doLocalCd() {
595{
596 localListClicked( Local_View->currentItem()); 391 localListClicked( Local_View->currentItem());
597} 392}
598 393
599void AdvancedFm::doRemoteCd() 394void AdvancedFm::doRemoteCd() {
600{
601 localListClicked( Remote_View->currentItem()); 395 localListClicked( Remote_View->currentItem());
602} 396}
603 397
604void AdvancedFm::showHidden() 398void AdvancedFm::showHidden() {
605{
606 if (b) { 399 if (b) {
607 currentDir.setFilter( QDir::Files | QDir::Dirs | QDir::Hidden | QDir::All); 400 currentDir.setFilter( QDir::Files | QDir::Dirs | QDir::Hidden | QDir::All);
608 fileMenu->setItemChecked( fileMenu->idAt(0),TRUE); 401 fileMenu->setItemChecked( fileMenu->idAt(0),TRUE);
609 b=FALSE; 402 b=FALSE;
610 403
611 } else { 404 } else {
612 currentDir.setFilter( QDir::Files | QDir::Dirs/* | QDir::Hidden*/ | QDir::All); 405 currentDir.setFilter( QDir::Files | QDir::Dirs/* | QDir::Hidden*/ | QDir::All);
613 fileMenu->setItemChecked( fileMenu->idAt(0),FALSE); 406 fileMenu->setItemChecked( fileMenu->idAt(0),FALSE);
614 b=TRUE; 407 b=TRUE;
615 } 408 }
616 populateLocalView(); 409 populateLocalView();
617 410
618} 411}
619 412
620void AdvancedFm::showRemoteHidden() 413void AdvancedFm::showRemoteHidden() {
621{
622 if (b) { 414 if (b) {
623 currentRemoteDir.setFilter( QDir::Files | QDir::Dirs | QDir::Hidden | QDir::All); 415 currentRemoteDir.setFilter( QDir::Files | QDir::Dirs | QDir::Hidden | QDir::All);
624 b=TRUE; 416 b=TRUE;
625 417
626 } else { 418 } else {
627 currentRemoteDir.setFilter( QDir::Files | QDir::Dirs/* | QDir::Hidden*/ | QDir::All); 419 currentRemoteDir.setFilter( QDir::Files | QDir::Dirs/* | QDir::Hidden*/ | QDir::All);
628 b=FALSE; 420 b=FALSE;
629 } 421 }
630 populateRemoteView(); 422 populateRemoteView();
631} 423}
632 424
633void AdvancedFm::localListPressed( int mouse, QListViewItem *, const QPoint& , int ) 425void AdvancedFm::localListPressed( int mouse, QListViewItem *, const QPoint& , int ) {
634{
635 qDebug("list pressed"); 426 qDebug("list pressed");
636 switch (mouse) { 427 switch (mouse) {
637 case 1: 428 case 1:
638 break; 429 break;
639 case 2: 430 case 2:
640 menuTimer.start( 750, TRUE ); 431 menuTimer.start( 750, TRUE );
641 qDebug("Start menu timer\n"); 432 qDebug("Start menu timer\n");
642 break; 433 break;
643 }; 434 };
644} 435}
645 436
646void AdvancedFm::remoteListPressed( int mouse, QListViewItem*, const QPoint&, int ) 437void AdvancedFm::remoteListPressed( int mouse, QListViewItem*, const QPoint&, int ) {
647{
648 438
649 switch (mouse) { 439 switch (mouse) {
650 case 1: 440 case 1:
651 break; 441 break;
652 case 2: 442 case 2:
653 menuTimer.start( 750, TRUE ); 443 menuTimer.start( 750, TRUE );
654 qDebug("Start menu timer"); 444 qDebug("Start menu timer");
655 break; 445 break;
656 }; 446 };
657} 447}
658 448
659void AdvancedFm::runThis() { 449void AdvancedFm::runThis() {
@@ -719,50 +509,47 @@ void AdvancedFm::runText() {
719 } 509 }
720 } else { 510 } else {
721 QString curFile = Remote_View->currentItem()->text(0); 511 QString curFile = Remote_View->currentItem()->text(0);
722 if(curFile != "../") { 512 if(curFile != "../") {
723 curFile = currentRemoteDir.canonicalPath()+"/"+curFile; 513 curFile = currentRemoteDir.canonicalPath()+"/"+curFile;
724 DocLnk nf(curFile); 514 DocLnk nf(curFile);
725 QCopEnvelope e("QPE/Application/textedit", "setDocument(QString)" ); 515 QCopEnvelope e("QPE/Application/textedit", "setDocument(QString)" );
726 e << curFile; 516 e << curFile;
727 } 517 }
728 } 518 }
729} 519}
730 520
731void AdvancedFm::localMakDir() 521void AdvancedFm::localMakDir() {
732{
733 InputDialog *fileDlg; 522 InputDialog *fileDlg;
734 fileDlg = new InputDialog(this,tr("Make Directory"),TRUE, 0); 523 fileDlg = new InputDialog(this,tr("Make Directory"),TRUE, 0);
735 fileDlg->exec(); 524 fileDlg->exec();
736 if( fileDlg->result() == 1 ) { 525 if( fileDlg->result() == 1 ) {
737 QString filename = fileDlg->LineEdit1->text(); 526 QString filename = fileDlg->LineEdit1->text();
738 currentDir.mkdir( currentDir.canonicalPath()+"/"+filename); 527 currentDir.mkdir( currentDir.canonicalPath()+"/"+filename);
739 } 528 }
740 populateLocalView(); 529 populateLocalView();
741} 530}
742 531
743void AdvancedFm::remoteMakDir() 532void AdvancedFm::remoteMakDir() {
744{
745 InputDialog *fileDlg; 533 InputDialog *fileDlg;
746 fileDlg = new InputDialog(this,tr("Make Directory"),TRUE, 0); 534 fileDlg = new InputDialog(this,tr("Make Directory"),TRUE, 0);
747 fileDlg->exec(); 535 fileDlg->exec();
748 if( fileDlg->result() == 1 ) { 536 if( fileDlg->result() == 1 ) {
749 QString filename = fileDlg->LineEdit1->text(); 537 QString filename = fileDlg->LineEdit1->text();
750 currentRemoteDir.mkdir( currentRemoteDir.canonicalPath()+"/"+filename); 538 currentRemoteDir.mkdir( currentRemoteDir.canonicalPath()+"/"+filename);
751 } 539 }
752 populateRemoteView(); 540 populateRemoteView();
753} 541}
754 542
755void AdvancedFm::localDelete() 543void AdvancedFm::localDelete() {
756{
757 QStringList curFileList = getPath(); 544 QStringList curFileList = getPath();
758 if(curFileList.count() > 0) { 545 if(curFileList.count() > 0) {
759 QString myFile; 546 QString myFile;
760 for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it ) { 547 for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it ) {
761 myFile = (*it); 548 myFile = (*it);
762 if( myFile.find(" -> ",0,TRUE) != -1) 549 if( myFile.find(" -> ",0,TRUE) != -1)
763 myFile = myFile.left( myFile.find(" -> ",0,TRUE)); 550 myFile = myFile.left( myFile.find(" -> ",0,TRUE));
764 551
765 QString f = currentDir.canonicalPath(); 552 QString f = currentDir.canonicalPath();
766 if(f.right(1).find("/",0,TRUE) == -1) 553 if(f.right(1).find("/",0,TRUE) == -1)
767 f+="/"; 554 f+="/";
768 f+=myFile; 555 f+=myFile;
@@ -793,26 +580,25 @@ void AdvancedFm::localDelete()
793 populateLocalView(); 580 populateLocalView();
794 } 581 }
795 break; 582 break;
796 case 1: 583 case 1:
797 // exit 584 // exit
798 break; 585 break;
799 }; 586 };
800 } 587 }
801 } 588 }
802 } 589 }
803} 590}
804 591
805void AdvancedFm::remoteDelete() 592void AdvancedFm::remoteDelete() {
806{
807 QStringList curFileList = getPath(); 593 QStringList curFileList = getPath();
808 if( curFileList.count() > 0) { 594 if( curFileList.count() > 0) {
809 QString myFile; 595 QString myFile;
810 596
811 for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it ) { 597 for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it ) {
812 myFile = (*it); 598 myFile = (*it);
813 if(myFile.find(" -> ",0,TRUE) != -1) 599 if(myFile.find(" -> ",0,TRUE) != -1)
814 myFile = myFile.left(myFile.find(" -> ",0,TRUE)); 600 myFile = myFile.left(myFile.find(" -> ",0,TRUE));
815 QString f = currentRemoteDir.canonicalPath(); 601 QString f = currentRemoteDir.canonicalPath();
816 if(f.right(1).find("/",0,TRUE) == -1) 602 if(f.right(1).find("/",0,TRUE) == -1)
817 f+="/"; 603 f+="/";
818 f+=myFile; 604 f+=myFile;
@@ -843,26 +629,25 @@ void AdvancedFm::remoteDelete()
843 populateRemoteView(); 629 populateRemoteView();
844 } 630 }
845 break; 631 break;
846 case 1: 632 case 1:
847 // exit 633 // exit
848 break; 634 break;
849 }; 635 };
850 } 636 }
851 } 637 }
852 } 638 }
853} 639}
854 640
855void AdvancedFm::localRename() 641void AdvancedFm::localRename() {
856{
857 QString curFile = Local_View->currentItem()->text(0); 642 QString curFile = Local_View->currentItem()->text(0);
858 qDebug("currentItem "+curFile); 643 qDebug("currentItem "+curFile);
859 if( curFile !="../") { 644 if( curFile !="../") {
860 InputDialog *fileDlg; 645 InputDialog *fileDlg;
861 fileDlg = new InputDialog(this,tr("Rename"),TRUE, 0); 646 fileDlg = new InputDialog(this,tr("Rename"),TRUE, 0);
862 fileDlg->setInputText((const QString &)curFile); 647 fileDlg->setInputText((const QString &)curFile);
863 fileDlg->exec(); 648 fileDlg->exec();
864 if( fileDlg->result() == 1 ) { 649 if( fileDlg->result() == 1 ) {
865 QString oldname = currentDir.canonicalPath() + "/" + curFile; 650 QString oldname = currentDir.canonicalPath() + "/" + curFile;
866 QString newName = currentDir.canonicalPath() + "/" + fileDlg->LineEdit1->text();//+".playlist"; 651 QString newName = currentDir.canonicalPath() + "/" + fileDlg->LineEdit1->text();//+".playlist";
867 if( rename(oldname.latin1(), newName.latin1())== -1) 652 if( rename(oldname.latin1(), newName.latin1())== -1)
868 QMessageBox::message(tr("Note"),tr("Could not rename")); 653 QMessageBox::message(tr("Note"),tr("Could not rename"));
@@ -880,48 +665,43 @@ void AdvancedFm::remoteRename()
880 fileDlg->setInputText((const QString &)curFile); 665 fileDlg->setInputText((const QString &)curFile);
881 fileDlg->exec(); 666 fileDlg->exec();
882 if( fileDlg->result() == 1 ) { 667 if( fileDlg->result() == 1 ) {
883 QString oldname = currentRemoteDir.canonicalPath() + "/" + curFile; 668 QString oldname = currentRemoteDir.canonicalPath() + "/" + curFile;
884 QString newName = currentRemoteDir.canonicalPath() + "/" + fileDlg->LineEdit1->text();//+".playlist"; 669 QString newName = currentRemoteDir.canonicalPath() + "/" + fileDlg->LineEdit1->text();//+".playlist";
885 if( rename(oldname.latin1(), newName.latin1())== -1) 670 if( rename(oldname.latin1(), newName.latin1())== -1)
886 QMessageBox::message(tr("Note"),tr("Could not rename")); 671 QMessageBox::message(tr("Note"),tr("Could not rename"));
887 } 672 }
888 populateRemoteView(); 673 populateRemoteView();
889 } 674 }
890} 675}
891 676
892void AdvancedFm::switchToLocalTab() 677void AdvancedFm::switchToLocalTab() {
893{
894 TabWidget->setCurrentPage(0); 678 TabWidget->setCurrentPage(0);
895 Local_View->setFocus(); 679 Local_View->setFocus();
896} 680}
897 681
898void AdvancedFm::switchToRemoteTab() 682void AdvancedFm::switchToRemoteTab() {
899{
900 TabWidget->setCurrentPage(1); 683 TabWidget->setCurrentPage(1);
901 Remote_View->setFocus(); 684 Remote_View->setFocus();
902} 685}
903 686
904void AdvancedFm::readConfig() 687void AdvancedFm::readConfig() {
905{
906 Config cfg("AdvancedFm"); 688 Config cfg("AdvancedFm");
907} 689}
908 690
909void AdvancedFm::writeConfig() 691void AdvancedFm::writeConfig() {
910{
911 Config cfg("AdvancedFm"); 692 Config cfg("AdvancedFm");
912} 693}
913 694
914void AdvancedFm::currentPathComboChanged() 695void AdvancedFm::currentPathComboChanged() {
915{
916 if (TabWidget->currentPageIndex() == 0) { 696 if (TabWidget->currentPageIndex() == 0) {
917 if(QDir( currentPathCombo->lineEdit()->text()).exists()) { 697 if(QDir( currentPathCombo->lineEdit()->text()).exists()) {
918 currentDir.setPath( currentPathCombo->lineEdit()->text() ); 698 currentDir.setPath( currentPathCombo->lineEdit()->text() );
919 populateLocalView(); 699 populateLocalView();
920 } else { 700 } else {
921 QMessageBox::message(tr("Note"),tr("That directory does not exist")); 701 QMessageBox::message(tr("Note"),tr("That directory does not exist"));
922 } 702 }
923 } 703 }
924 if (TabWidget->currentPageIndex() == 0) { 704 if (TabWidget->currentPageIndex() == 0) {
925 if(QDir( currentPathCombo->lineEdit()->text()).exists()) { 705 if(QDir( currentPathCombo->lineEdit()->text()).exists()) {
926 currentRemoteDir.setPath( currentPathCombo->lineEdit()->text() ); 706 currentRemoteDir.setPath( currentPathCombo->lineEdit()->text() );
927 populateRemoteView(); 707 populateRemoteView();
@@ -1085,49 +865,47 @@ void AdvancedFm::CFButtonPushed() {
1085 if (TabWidget->currentPageIndex() == 0) { 865 if (TabWidget->currentPageIndex() == 0) {
1086 currentDir.cd( current, TRUE); 866 currentDir.cd( current, TRUE);
1087 populateLocalView(); 867 populateLocalView();
1088 } else { 868 } else {
1089 currentRemoteDir.cd( current, TRUE); 869 currentRemoteDir.cd( current, TRUE);
1090 populateRemoteView(); 870 populateRemoteView();
1091 } 871 }
1092 update(); 872 update();
1093 873
1094} 874}
1095 875
1096 876
1097void AdvancedFm::upDir() 877void AdvancedFm::upDir() {
1098{
1099 if (TabWidget->currentPageIndex() == 0) { 878 if (TabWidget->currentPageIndex() == 0) {
1100 QString current = currentDir.canonicalPath(); 879 QString current = currentDir.canonicalPath();
1101 QDir dir(current); 880 QDir dir(current);
1102 dir.cdUp(); 881 dir.cdUp();
1103 current = dir.canonicalPath(); 882 current = dir.canonicalPath();
1104 chdir( current.latin1() ); 883 chdir( current.latin1() );
1105 currentDir.cd( current, TRUE); 884 currentDir.cd( current, TRUE);
1106 populateLocalView(); 885 populateLocalView();
1107 update(); 886 update();
1108 } else { 887 } else {
1109 QString current = currentRemoteDir.canonicalPath(); 888 QString current = currentRemoteDir.canonicalPath();
1110 QDir dir(current); 889 QDir dir(current);
1111 dir.cdUp(); 890 dir.cdUp();
1112 current = dir.canonicalPath(); 891 current = dir.canonicalPath();
1113 chdir( current.latin1() ); 892 chdir( current.latin1() );
1114 currentRemoteDir.cd( current, TRUE); 893 currentRemoteDir.cd( current, TRUE);
1115 populateRemoteView(); 894 populateRemoteView();
1116 update(); 895 update();
1117 } 896 }
1118} 897}
1119 898
1120void AdvancedFm::copy() 899void AdvancedFm::copy() {
1121{
1122 qApp->processEvents(); 900 qApp->processEvents();
1123 QStringList curFileList = getPath(); 901 QStringList curFileList = getPath();
1124 if( curFileList.count() > 0) { 902 if( curFileList.count() > 0) {
1125 QString curFile; 903 QString curFile;
1126 if (TabWidget->currentPageIndex() == 0) { 904 if (TabWidget->currentPageIndex() == 0) {
1127 for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it ) { 905 for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it ) {
1128 906
1129 QString destFile = currentRemoteDir.canonicalPath()+"/"+(*it); 907 QString destFile = currentRemoteDir.canonicalPath()+"/"+(*it);
1130 qDebug("Destination file is "+destFile); 908 qDebug("Destination file is "+destFile);
1131 909
1132 curFile = currentDir.canonicalPath()+"/"+(*it); 910 curFile = currentDir.canonicalPath()+"/"+(*it);
1133 qDebug("CurrentFile file is " + curFile); 911 qDebug("CurrentFile file is " + curFile);
@@ -1586,26 +1364,25 @@ void AdvancedFm::del() {
1586 localDelete(); 1364 localDelete();
1587 else 1365 else
1588 remoteDelete(); 1366 remoteDelete();
1589} 1367}
1590 1368
1591void AdvancedFm::doAbout() { 1369void AdvancedFm::doAbout() {
1592 QMessageBox::message("AdvancedFm",tr("Advanced FileManager\n" 1370 QMessageBox::message("AdvancedFm",tr("Advanced FileManager\n"
1593 "is copyright 2002 by\n" 1371 "is copyright 2002 by\n"
1594 "L.J.Potter<llornkcor@handhelds.org>\n" 1372 "L.J.Potter<llornkcor@handhelds.org>\n"
1595 "and is licensed by the GPL")); 1373 "and is licensed by the GPL"));
1596} 1374}
1597 1375
1598void AdvancedFm::keyReleaseEvent( QKeyEvent *e) 1376void AdvancedFm::keyReleaseEvent( QKeyEvent *e) {
1599{
1600 if( TabWidget->hasFocus()) 1377 if( TabWidget->hasFocus())
1601 switch ( e->key() ) { 1378 switch ( e->key() ) {
1602 case Key_Delete: 1379 case Key_Delete:
1603 del(); 1380 del();
1604 break; 1381 break;
1605 case Key_H: 1382 case Key_H:
1606 showHidden(); 1383 showHidden();
1607 break; 1384 break;
1608 case Key_E: 1385 case Key_E:
1609 runThis(); 1386 runThis();
1610 break; 1387 break;
1611 case Key_C: 1388 case Key_C: