summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/apps/advancedfm/advancedfm.cpp66
-rw-r--r--noncore/apps/advancedfm/advancedfm.h3
2 files changed, 19 insertions, 50 deletions
diff --git a/noncore/apps/advancedfm/advancedfm.cpp b/noncore/apps/advancedfm/advancedfm.cpp
index 02898de..fec320d 100644
--- a/noncore/apps/advancedfm/advancedfm.cpp
+++ b/noncore/apps/advancedfm/advancedfm.cpp
@@ -1,154 +1,145 @@
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#include <opie2/odebug.h> 15#include <opie2/odebug.h>
16#include <qpe/qpeapplication.h> 16#include <qpe/qpeapplication.h>
17#include <qpe/config.h> 17#include <qpe/config.h>
18#include <qpe/mimetype.h> 18#include <qpe/mimetype.h>
19#include <qpe/applnk.h> 19#include <qpe/applnk.h>
20#include <qpe/resource.h> 20#include <qpe/resource.h>
21#include <qpe/menubutton.h> 21#include <qpe/menubutton.h>
22 22
23#include <qcombobox.h> 23#include <qcombobox.h>
24#include <qpopupmenu.h> 24#include <qpopupmenu.h>
25#include <qlistview.h> 25#include <qlistview.h>
26#include <qmessagebox.h> 26#include <qmessagebox.h>
27#include <qlineedit.h> 27#include <qlineedit.h>
28 28
29 29
30#include <sys/stat.h> 30#include <sys/stat.h>
31#include <time.h> 31#include <time.h>
32#include <dirent.h> 32#include <dirent.h>
33#include <fcntl.h> 33#include <fcntl.h>
34#include <sys/vfs.h> 34#include <sys/vfs.h>
35#include <mntent.h> 35#include <mntent.h>
36 36
37using namespace Opie::Ui; 37using namespace Opie::Ui;
38 38
39AdvancedFm::AdvancedFm(QWidget *,const char*, WFlags ) 39AdvancedFm::AdvancedFm(QWidget *,const char*, WFlags )
40 : QMainWindow( ) { 40 : QMainWindow( ) {
41 init(); 41 init();
42 renameBox = 0; 42 renameBox = 0;
43 43
44 unknownXpm = Resource::loadImage("UnknownDocument").smoothScale(AppLnk::smallIconSize(),AppLnk::smallIconSize() ); 44 unknownXpm = Resource::loadImage("UnknownDocument").smoothScale(AppLnk::smallIconSize(),AppLnk::smallIconSize() );
45 45
46 initConnections(); 46 initConnections();
47 47 populateView();
48 whichTab = 1;
49 populateView();
50 // rePopulate();
51 // currentPathCombo->setFocus();
52 channel = new QCopChannel( "QPE/Application/advancedfm", this ); 48 channel = new QCopChannel( "QPE/Application/advancedfm", this );
53 connect(channel,SIGNAL(received(const QCString&,const QByteArray&)),this,SLOT(qcopReceive(const QCString&,const QByteArray&))); 49 connect(channel,SIGNAL(received(const QCString&,const QByteArray&)),this,SLOT(qcopReceive(const QCString&,const QByteArray&)));
54
55 // if( CurrentView() == Local_View)
56 // qDebug("LOCAL VIEW");
57 // else
58 // qDebug("REMOTE VIEW");
59 switchToLocalTab(); 50 switchToLocalTab();
60} 51}
61 52
62AdvancedFm::~AdvancedFm() { 53AdvancedFm::~AdvancedFm() {
63} 54}
64 55
65 56
66void AdvancedFm::cleanUp() { 57void AdvancedFm::cleanUp() {
67 QString sfile=QDir::homeDirPath(); 58 QString sfile=QDir::homeDirPath();
68 if(sfile.right(1) != "/") 59 if(sfile.right(1) != "/")
69 sfile+="/._temp"; 60 sfile+="/._temp";
70 else 61 else
71 sfile+="._temp"; 62 sfile+="._temp";
72 QFile file( sfile); 63 QFile file( sfile);
73 if(file.exists()) 64 if(file.exists())
74 file.remove(); 65 file.remove();
75} 66}
76 67
77void AdvancedFm::tabChanged(QWidget *wd) { 68void AdvancedFm::tabChanged(QWidget *wd) {
78 // qDebug("tabChanged"); 69 // qDebug("tabChanged");
79 if(wd == tab) { 70 if(wd == tab) {
80 whichTab = 1; 71 whichTab = 1;
81 // qDebug("tabchanged: LOCAL VIEW SHOWN"); 72 // qDebug("tabchanged: LOCAL VIEW SHOWN");
82 } 73 }
83 else if(wd == tab_2) { 74 else if(wd == tab_2) {
84 whichTab = 2; 75 whichTab = 2;
85 // qDebug("tabchanged: REMOTE VIEW SHOWN"); 76 // qDebug("tabchanged: REMOTE VIEW SHOWN");
86 } 77 }
87 qApp->processEvents(); 78 qApp->processEvents();
88 QString path = CurrentDir()->canonicalPath(); 79 QString path = CurrentDir()->canonicalPath();
89 // qDebug(path); 80 // qDebug(path);
90 if ( TabWidget->currentWidget() == tab) { 81 if ( TabWidget->currentWidget() == tab) {
91 viewMenu->setItemChecked(viewMenu->idAt(0), true); 82 viewMenu->setItemChecked(viewMenu->idAt(0), true);
92 viewMenu->setItemChecked(viewMenu->idAt(1), false); 83 viewMenu->setItemChecked(viewMenu->idAt(1), false);
93 } else { 84 } else {
94 viewMenu->setItemChecked(viewMenu->idAt(0), false); 85 viewMenu->setItemChecked(viewMenu->idAt(0), false);
95 viewMenu->setItemChecked(viewMenu->idAt(1), true); 86 viewMenu->setItemChecked(viewMenu->idAt(1), true);
96 } 87 }
97 88
98 QString fs= getFileSystemType( (const QString &) path); 89 QString fs= getFileSystemType( (const QString &) path);
99 90
100 setCaption(tr("AdvancedFm :: ")+fs+" :: " 91 setCaption(tr("AdvancedFm :: ")+fs+" :: "
101 +checkDiskSpace( (const QString &) path )+ tr(" kB free") ); 92 +checkDiskSpace( (const QString &) path )+ tr(" kB free") );
102 chdir( path.latin1()); 93 chdir( path.latin1());
103 currentPathCombo->lineEdit()->setText(path); 94 currentPathCombo->lineEdit()->setText(path);
104} 95}
105 96
106 97
107void AdvancedFm::populateView() { 98void AdvancedFm::populateView() {
108 99
109 QPixmap pm; 100 QPixmap pm;
110 QListView *thisView = CurrentView(); 101 QListView *thisView = CurrentView();
111 QDir *thisDir = CurrentDir(); 102 QDir *thisDir = CurrentDir();
112 QString path = thisDir->canonicalPath(); 103 QString path = thisDir->canonicalPath();
113 104
114 thisView->clear(); 105 thisView->clear();
115 thisDir->setSorting(/* QDir::Size*/ /*| QDir::Reversed | */QDir::DirsFirst); 106 thisDir->setSorting(/* QDir::Size*/ /*| QDir::Reversed | */QDir::DirsFirst);
116 thisDir->setMatchAllDirs(TRUE); 107 thisDir->setMatchAllDirs(TRUE);
117 thisDir->setNameFilter(filterStr); 108 thisDir->setNameFilter(filterStr);
118 QString fileL, fileS, fileDate; 109 QString fileL, fileS, fileDate;
119 QString fs= getFileSystemType((const QString &) path); 110 QString fs= getFileSystemType((const QString &) path);
120 setCaption(tr("AdvancedFm :: ")+fs+" :: " 111 setCaption(tr("AdvancedFm :: ")+fs+" :: "
121 +checkDiskSpace((const QString &) path)+ tr(" kB free") ); 112 +checkDiskSpace((const QString &) path)+ tr(" kB free") );
122 bool isDir=FALSE; 113 bool isDir=FALSE;
123 const QFileInfoList *list = thisDir->entryInfoList( /*QDir::All*/ /*, QDir::SortByMask*/); 114 const QFileInfoList *list = thisDir->entryInfoList( /*QDir::All*/ /*, QDir::SortByMask*/);
124 QFileInfoListIterator it(*list); 115 QFileInfoListIterator it(*list);
125 QFileInfo *fi; 116 QFileInfo *fi;
126 while ( (fi=it.current()) ) { 117 while ( (fi=it.current()) ) {
127 if (fi->isSymLink() ) { 118 if (fi->isSymLink() ) {
128 QString symLink=fi->readLink(); 119 QString symLink=fi->readLink();
129 QFileInfo sym( symLink); 120 QFileInfo sym( symLink);
130 fileS.sprintf( "%10i", sym.size() ); 121 fileS.sprintf( "%10i", sym.size() );
131 fileL = fi->fileName() +" -> " + sym.filePath().data(); 122 fileL = fi->fileName() +" -> " + sym.filePath().data();
132 fileDate = sym.lastModified().toString(); 123 fileDate = sym.lastModified().toString();
133 } else { 124 } else {
134 fileS.sprintf( "%10i", fi->size() ); 125 fileS.sprintf( "%10i", fi->size() );
135 fileL = fi->fileName(); 126 fileL = fi->fileName();
136 fileDate= fi->lastModified().toString(); 127 fileDate= fi->lastModified().toString();
137 if( QDir(QDir::cleanDirPath( path +"/"+fileL)).exists() ) { 128 if( QDir(QDir::cleanDirPath( path +"/"+fileL)).exists() ) {
138// if(fileL == "..") 129// if(fileL == "..")
139 fileL += "/"; 130 fileL += "/";
140 isDir=TRUE; 131 isDir=TRUE;
141 } 132 }
142 } 133 }
143 QFileInfo fileInfo( path + "/" + fileL); 134 QFileInfo fileInfo( path + "/" + fileL);
144 135
145 if(fileL !="./" && fi->exists()) { 136 if(fileL !="./" && fi->exists()) {
146 item = new QListViewItem( thisView, fileL, fileS , fileDate); 137 item = new QListViewItem( thisView, fileL, fileS , fileDate);
147 138
148 if(isDir || fileL.find("/",0,TRUE) != -1) { 139 if(isDir || fileL.find("/",0,TRUE) != -1) {
149 140
150 if( !QDir( fi->filePath() ).isReadable()) //is directory 141 if( !QDir( fi->filePath() ).isReadable()) //is directory
151 pm = Resource::loadPixmap( "lockedfolder" ); 142 pm = Resource::loadPixmap( "lockedfolder" );
152 else 143 else
153 pm= Resource::loadPixmap( "folder" ); 144 pm= Resource::loadPixmap( "folder" );
154 } 145 }
@@ -197,298 +188,277 @@ void AdvancedFm::populateView() {
197 lstat( mydirent->d_name, &buf); 188 lstat( mydirent->d_name, &buf);
198// odebug << mydirent->d_name << oendl; 189// odebug << mydirent->d_name << oendl;
199 fileL.sprintf("%s", mydirent->d_name); 190 fileL.sprintf("%s", mydirent->d_name);
200 devT = buf.st_dev; 191 devT = buf.st_dev;
201 fileS.sprintf("%d, %d", (int) ( devT >>8) &0xFF, (int)devT &0xFF); 192 fileS.sprintf("%d, %d", (int) ( devT >>8) &0xFF, (int)devT &0xFF);
202 fileDate.sprintf("%s", ctime( &buf.st_mtime)); 193 fileDate.sprintf("%s", ctime( &buf.st_mtime));
203 if( fileL.find(".") == -1 ) { 194 if( fileL.find(".") == -1 ) {
204 item= new QListViewItem( thisView, fileL, fileS, fileDate); 195 item= new QListViewItem( thisView, fileL, fileS, fileDate);
205 pm = unknownXpm; 196 pm = unknownXpm;
206 item->setPixmap( 0,pm); 197 item->setPixmap( 0,pm);
207 } 198 }
208 } 199 }
209 200
210 closedir(dir); 201 closedir(dir);
211 } 202 }
212 203
213 thisView->setSorting( 3,FALSE); 204 thisView->setSorting( 3,FALSE);
214 fillCombo( (const QString &) path ); 205 fillCombo( (const QString &) path );
215} 206}
216 207
217void AdvancedFm::rePopulate() { 208void AdvancedFm::rePopulate() {
218 // qDebug("repopulate views"); 209 // qDebug("repopulate views");
219 populateView(); 210 populateView();
220 setOtherTabCurrent(); 211 setOtherTabCurrent();
221 populateView(); 212 populateView();
222 213
223// int tmpTab = whichTab; 214// int tmpTab = whichTab;
224// // odebug << "" << tmpTab << "" << oendl; 215// // odebug << "" << tmpTab << "" << oendl;
225 216
226// for(int i =1; i < 3; i++) { 217// for(int i =1; i < 3; i++) {
227// TabWidget->setCurrentWidget(i - 1); 218// TabWidget->setCurrentWidget(i - 1);
228// populateView(); 219// populateView();
229// } 220// }
230// TabWidget->setCurrentWidget( tmpTab - 1); 221// TabWidget->setCurrentWidget( tmpTab - 1);
231} 222}
232 223
233void AdvancedFm::ListClicked(QListViewItem *selectedItem) { 224void AdvancedFm::ListClicked(QListViewItem *selectedItem) {
234 // if ( TabWidget->currentWidget() == tab) 225 // if ( TabWidget->currentWidget() == tab)
235 // qDebug("XXXXXXXXXXXXXXXXXXXXXXXX ListClicked local"); 226 // qDebug("XXXXXXXXXXXXXXXXXXXXXXXX ListClicked local");
236 // else 227 // else
237 // qDebug("XXXXXXXXXXXXXXXXXXXXXXXX ListClicked remote"); 228 // qDebug("XXXXXXXXXXXXXXXXXXXXXXXX ListClicked remote");
238 229
239 230
240 if(selectedItem) { 231 if(selectedItem) {
241 QString strItem=selectedItem->text(0); 232 QString strItem=selectedItem->text(0);
242// owarn << strItem << oendl; 233// owarn << strItem << oendl;
243 QString strSize=selectedItem->text(1); 234 QString strSize=selectedItem->text(1);
244 strSize=strSize.stripWhiteSpace(); 235 strSize=strSize.stripWhiteSpace();
245 bool isDirectory = false; 236 bool isDirectory = false;
246 QString strItem2; 237 QString strItem2;
247 238
248 if(strItem.find("@",0,TRUE) !=-1 || strItem.find("->",0,TRUE) !=-1 ) {//if symlink 239 if(strItem.find("@",0,TRUE) !=-1 || strItem.find("->",0,TRUE) !=-1 ) {//if symlink
249 strItem2 = dealWithSymName((const QString&)strItem); 240 strItem2 = dealWithSymName((const QString&)strItem);
250 if(QDir(strItem2).exists() ) 241 if(QDir(strItem2).exists() )
251 strItem = strItem2; 242 strItem = strItem2;
252 } 243 }
253 244
254 if( strItem.find(". .",0,TRUE) && strItem.find("/",0,TRUE)!=-1 ) { 245 if( strItem.find(". .",0,TRUE) && strItem.find("/",0,TRUE)!=-1 ) {
255 246
256 if(QDir(strItem).exists()) 247 if(QDir(strItem).exists())
257 isDirectory = true; 248 isDirectory = true;
258 } 249 }
259 250
260 if( isDirectory ) { 251 if( isDirectory ) {
261 CurrentDir()->cd( strItem, TRUE); 252 CurrentDir()->cd( strItem, TRUE);
262 populateView(); 253 populateView();
263 CurrentView()->ensureItemVisible( CurrentView()->firstChild()); 254 CurrentView()->ensureItemVisible( CurrentView()->firstChild());
264 } 255 }
265 chdir( strItem.latin1()); 256 chdir( strItem.latin1());
266 } 257 }
267} 258}
268 259
269void AdvancedFm::ListPressed( int mouse, QListViewItem *item, const QPoint& , int ) { 260void AdvancedFm::ListPressed( int mouse, QListViewItem *item, const QPoint& , int ) {
270 Q_UNUSED(item); 261 Q_UNUSED(item);
271 switch (mouse) { 262 switch (mouse) {
272 case 1: 263 case 1:
273 { 264 {
274 if(renameBox != 0 ) { 265 if(renameBox != 0 ) {
275 cancelRename(); 266 cancelRename();
276 } 267 }
277 } 268 }
278 break; 269 break;
279// case 2: 270// case 2:
280// menuTimer.start( 50, TRUE ); 271// menuTimer.start( 50, TRUE );
281// break; 272// break;
282 }; 273 };
283} 274}
284 275
285 276
286void AdvancedFm::refreshCurrentTab() { 277void AdvancedFm::refreshCurrentTab() {
287 populateView(); 278 populateView();
288 // if ( TabWidget->currentWidget() == tab) { 279 // if ( TabWidget->currentWidget() == tab) {
289 280
290} 281}
291 282
292void AdvancedFm::switchToLocalTab() { 283void AdvancedFm::switchToLocalTab() {
293 qDebug("switchToLocal "); 284 TabWidget->setCurrentWidget(0);
294 TabWidget->setCurrentWidget(0); 285 Local_View->setFocus();
295 Local_View->setFocus(); 286 whichTab = 1;
296 whichTab = 1;
297
298} 287}
299 288
300void AdvancedFm::switchToRemoteTab() { 289void AdvancedFm::switchToRemoteTab() {
301 qDebug("switchToRemoteTab() "); 290 TabWidget->setCurrentWidget(1);
302 TabWidget->setCurrentWidget(1); 291 Remote_View->setFocus();
303 Remote_View->setFocus(); 292 whichTab = 2;
304 whichTab = 2;
305}
306
307void AdvancedFm::readConfig() {
308 Config cfg("AdvancedFm");
309}
310
311void AdvancedFm::writeConfig() {
312 Config cfg("AdvancedFm");
313} 293}
314 294
315void AdvancedFm::currentPathComboChanged() { 295void AdvancedFm::currentPathComboChanged() {
316 if(QDir( currentPathCombo->lineEdit()->text()).exists()) { 296 if(QDir( currentPathCombo->lineEdit()->text()).exists()) {
317 CurrentDir()->setPath( currentPathCombo->lineEdit()->text() ); 297 CurrentDir()->setPath( currentPathCombo->lineEdit()->text() );
318 populateView(); 298 populateView();
319 } else { 299 } else {
320 QMessageBox::message(tr("Note"),tr("That directory does not exist")); 300 QMessageBox::message(tr("Note"),tr("That directory does not exist"));
321 } 301 }
322} 302}
323 303
324void AdvancedFm::fillCombo(const QString &currentPath) { 304void AdvancedFm::fillCombo(const QString &currentPath) {
325 305
326 if ( TabWidget->currentWidget() == tab) { 306 if ( TabWidget->currentWidget() == tab) {
327// if ( whichTab == 1) { 307// if ( whichTab == 1) {
328 currentPathCombo->lineEdit()->setText( currentPath); 308 currentPathCombo->lineEdit()->setText( currentPath);
329 if( localDirPathStringList.grep( currentPath,TRUE).isEmpty() ) { 309 if( localDirPathStringList.grep( currentPath,TRUE).isEmpty() ) {
330 currentPathCombo->clear(); 310 currentPathCombo->clear();
331 localDirPathStringList.prepend( currentPath ); 311 localDirPathStringList.prepend( currentPath );
332 currentPathCombo->insertStringList( localDirPathStringList,-1); 312 currentPathCombo->insertStringList( localDirPathStringList,-1);
333 } 313 }
334 } else { 314 } else {
335 currentPathCombo->lineEdit()->setText( currentPath); 315 currentPathCombo->lineEdit()->setText( currentPath);
336 if( remoteDirPathStringList.grep( currentPath,TRUE).isEmpty() ) { 316 if( remoteDirPathStringList.grep( currentPath,TRUE).isEmpty() ) {
337 currentPathCombo->clear(); 317 currentPathCombo->clear();
338 remoteDirPathStringList.prepend( currentPath ); 318 remoteDirPathStringList.prepend( currentPath );
339 currentPathCombo->insertStringList( remoteDirPathStringList,-1); 319 currentPathCombo->insertStringList( remoteDirPathStringList,-1);
340 } 320 }
341 } 321 }
342} 322}
343 323
344void AdvancedFm::currentPathComboActivated(const QString & currentPath) { 324void AdvancedFm::currentPathComboActivated(const QString & currentPath) {
345 chdir( currentPath.latin1() ); 325 chdir( currentPath.latin1() );
346 CurrentDir()->cd( currentPath, TRUE); 326 CurrentDir()->cd( currentPath, TRUE);
347 populateView(); 327 populateView();
348 update(); 328 update();
349} 329}
350 330
351QStringList AdvancedFm::getPath() { 331QStringList AdvancedFm::getPath() {
352 QStringList strList; 332 QStringList strList;
353 QListView *thisView=CurrentView(); 333 QListView *thisView=CurrentView();
354 QList<QListViewItem> * getSelectedItems( QListView * thisView ); 334 QList<QListViewItem> * getSelectedItems( QListView * thisView );
355 QListViewItemIterator it( thisView ); 335 QListViewItemIterator it( thisView );
356 for ( ; it.current(); ++it ) { 336 for ( ; it.current(); ++it ) {
357 if ( it.current()->isSelected() ) { 337 if ( it.current()->isSelected() ) {
358 strList << it.current()->text(0); 338 strList << it.current()->text(0);
359// odebug << it.current()->text(0) << oendl; 339// odebug << it.current()->text(0) << oendl;
360 } 340 }
361 } 341 }
362 return strList; 342 return strList;
363} 343}
364 344
365void AdvancedFm::homeButtonPushed() { 345void AdvancedFm::changeTo(QString dir) {
366 QString current = QDir::homeDirPath(); 346 chdir( dir.latin1());
367 chdir( current.latin1() ); 347 CurrentDir()->cd(dir, TRUE);
368 CurrentDir()->cd( current, TRUE);
369 populateView(); 348 populateView();
370 update(); 349 update();
371} 350}
372 351
352void AdvancedFm::homeButtonPushed() {
353 changeTo(QDir::homeDirPath());
354}
355
373void AdvancedFm::docButtonPushed() { 356void AdvancedFm::docButtonPushed() {
374 QString current = QPEApplication::documentDir(); 357 changeTo(QPEApplication::documentDir());
375 chdir( current.latin1() );
376 CurrentDir()->cd( current, TRUE);
377 populateView();
378 update();
379} 358}
380 359
381void AdvancedFm::SDButtonPushed() { 360void AdvancedFm::SDButtonPushed() {
382 QString current = "/mnt/card";// this can change so fix 361 changeTo("/mnt/card");// this can change so fix
383 chdir( current.latin1() );
384 CurrentDir()->cd( current, TRUE);
385 populateView();
386 update();
387} 362}
388 363
389void AdvancedFm::CFButtonPushed() { 364void AdvancedFm::CFButtonPushed() {
390 QString current;
391 if(zaurusDevice) 365 if(zaurusDevice)
392 current= "/mnt/cf"; //zaurus 366 changeTo("/mnt/cf"); //zaurus
393 else 367 else
394 current = "/mnt/hda"; //ipaq 368 changeTo("/mnt/hda"); //ipaq
395 chdir( current.latin1() );
396 CurrentDir()->cd( current, TRUE);
397 populateView();
398 update();
399} 369}
400 370
401 371
402void AdvancedFm::doAbout() { 372void AdvancedFm::doAbout() {
403 QMessageBox::message("AdvancedFm",tr("<P>Advanced FileManager is copyright 2002-2003 by L.J.Potter<llornkcor@handhelds.org> and is licensed by the GPL</P>")); 373 QMessageBox::message("AdvancedFm",tr("<P>Advanced FileManager is copyright 2002-2003 by L.J.Potter<llornkcor@handhelds.org> and is licensed by the GPL</P>"));
404} 374}
405 375
406void AdvancedFm::keyPressEvent( QKeyEvent *e) { 376void AdvancedFm::keyPressEvent( QKeyEvent *e) {
407// owarn << "key " << e->key() << "" << oendl; 377// owarn << "key " << e->key() << "" << oendl;
408// if( CurrentView()->hasFocus() ) 378// if( CurrentView()->hasFocus() )
409 { 379 {
410 switch ( e->key() ) { 380 switch ( e->key() ) {
411 case Key_Left: 381 case Key_Left:
412 upDir(); 382 upDir();
413 break; 383 break;
414 case Key_Next: 384 case Key_Next:
415 break; 385 break;
416 case Key_Return: 386 case Key_Return:
417 case Key_Enter: 387 case Key_Enter:
418 navigateToSelected(); 388 navigateToSelected();
419 break; 389 break;
420 case Key_Tab: { 390 case Key_Tab: {
421 setOtherTabCurrent(); 391 setOtherTabCurrent();
422 } 392 }
423 break; 393 break;
424 case Key_Delete: 394 case Key_Delete:
425 del(); 395 del();
426 break; 396 break;
427 case Key_A: 397 case Key_A:
428 copyAs(); 398 copyAs();
429 break; 399 break;
430 case Key_C: 400 case Key_C:
431 copy(); 401 copy();
432 break; 402 break;
433 case Key_E: 403 case Key_E:
434 runThis(); 404 runThis();
435 break; 405 break;
436 case Key_G: 406 case Key_G:
437 { 407 {
438 currentPathCombo->lineEdit()->setFocus(); 408 currentPathCombo->lineEdit()->setFocus();
439 } 409 }
440 break; 410 break;
441 411
442 case Key_H: 412 case Key_H:
443 showHidden(); 413 showHidden();
444 break; 414 break;
445 case Key_I: 415 case Key_I:
446 fileStatus(); 416 fileStatus();
447 break; 417 break;
448 case Key_M: 418 case Key_M:
449 move(); 419 move();
450 break; 420 break;
451 case Key_N: 421 case Key_N:
452 mkDir(); 422 mkDir();
453 break; 423 break;
454 case Key_P: 424 case Key_P:
455 filePerms(); 425 filePerms();
456 break; 426 break;
457 case Key_R: 427 case Key_R:
458 rn(); 428 rn();
459 break; 429 break;
460 case Key_U: 430 case Key_U:
461 upDir(); 431 upDir();
462 break; 432 break;
463 case Key_1: 433 case Key_1:
464 switchToLocalTab(); 434 switchToLocalTab();
465 break; 435 break;
466 case Key_2: 436 case Key_2:
467 switchToRemoteTab(); 437 switchToRemoteTab();
468 break; 438 break;
469 case Key_3: 439 case Key_3:
470 CFButtonPushed(); 440 CFButtonPushed();
471 break; 441 break;
472 case Key_4: 442 case Key_4:
473 SDButtonPushed(); 443 SDButtonPushed();
474 break; 444 break;
475 case Key_5: 445 case Key_5:
476 homeButtonPushed(); 446 homeButtonPushed();
477 break; 447 break;
478 case Key_6: 448 case Key_6:
479 docButtonPushed(); 449 docButtonPushed();
480 break; 450 break;
481 case Key_7: 451 case Key_7:
482 break; 452 break;
483 case Key_8: 453 case Key_8:
484 break; 454 break;
485 case Key_9: 455 case Key_9:
486 break; 456 break;
487 case Key_0: 457 case Key_0:
488 break; 458 break;
489 }; 459 };
490 e->accept(); 460 e->accept();
491 } 461 }
492} 462}
493 463
494void AdvancedFm::keyReleaseEvent( QKeyEvent *e) { 464void AdvancedFm::keyReleaseEvent( QKeyEvent *e) {
diff --git a/noncore/apps/advancedfm/advancedfm.h b/noncore/apps/advancedfm/advancedfm.h
index 2234b3c..c52b853 100644
--- a/noncore/apps/advancedfm/advancedfm.h
+++ b/noncore/apps/advancedfm/advancedfm.h
@@ -4,192 +4,191 @@
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 <opie2/oprocess.h> 17#include <opie2/oprocess.h>
18#include <opie2/osplitter.h> 18#include <opie2/osplitter.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
33 33
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 QWidget; 43class QWidget;
44class QPopupMenu; 44class QPopupMenu;
45class QFile; 45class QFile;
46class QListViewItem; 46class QListViewItem;
47class QLineEdit; 47class QLineEdit;
48class MenuButton; 48class MenuButton;
49 49
50class QToolButton; 50class QToolButton;
51class Ir; 51class Ir;
52 52
53class AdvancedFm : public QMainWindow 53class AdvancedFm : public QMainWindow
54{ 54{
55 Q_OBJECT 55 Q_OBJECT
56public: 56public:
57 static QString appName() { return QString::fromLatin1("advancedfm"); } 57 static QString appName() { return QString::fromLatin1("advancedfm"); }
58 AdvancedFm(QWidget *p = 0, const char* name = 0, WFlags fl = 0); 58 AdvancedFm(QWidget *p = 0, const char* name = 0, WFlags fl = 0);
59 ~AdvancedFm(); 59 ~AdvancedFm();
60protected: 60protected:
61 61
62 Opie::Ui::OSplitter *TabWidget; 62 Opie::Ui::OSplitter *TabWidget;
63 QCopChannel * channel; 63 QCopChannel * channel;
64 QPixmap unknownXpm; 64 QPixmap unknownXpm;
65 int whichTab; 65 int whichTab;
66// QTabWidget *TabWidget; 66// QTabWidget *TabWidget;
67 QWidget *tab, *tab_2, *tab_3; 67 QWidget *tab, *tab_2, *tab_3;
68 QListView *Local_View, *Remote_View; 68 QListView *Local_View, *Remote_View;
69 69
70 QLineEdit *currentPathEdit; 70 QLineEdit *currentPathEdit;
71 QPopupMenu *fileMenu, *localMenu, *remoteMenu, *viewMenu /*, *customDirMenu*/; 71 QPopupMenu *fileMenu, *localMenu, *remoteMenu, *viewMenu /*, *customDirMenu*/;
72 QToolButton *homeButton, *docButton, *cdUpButton, *sdButton, *cfButton, *qpeDirButton; 72 QToolButton *homeButton, *docButton, *cdUpButton, *sdButton, *cfButton, *qpeDirButton;
73// QPushButton *homeButton, *docButton, *cdUpButton, *sdButton, *cfButton, *qpeDirButton; 73// QPushButton *homeButton, *docButton, *cdUpButton, *sdButton, *cfButton, *qpeDirButton;
74 QDir currentDir, currentRemoteDir; 74 QDir currentDir, currentRemoteDir;
75 QComboBox *currentPathCombo; 75 QComboBox *currentPathCombo;
76 QString filterStr, s_addBookmark, s_removeBookmark; 76 QString filterStr, s_addBookmark, s_removeBookmark;
77 QListViewItem * item; 77 QListViewItem * item;
78 bool b; 78 bool b;
79 QStringList fileSystemTypeList, fsList; 79 QStringList fileSystemTypeList, fsList;
80 int currentServerConfig; 80 int currentServerConfig;
81 bool zaurusDevice; 81 bool zaurusDevice;
82 QGridLayout *tabLayout, *tabLayout_2, *tabLayout_3; 82 QGridLayout *tabLayout, *tabLayout_2, *tabLayout_3;
83 QStringList remoteDirPathStringList, localDirPathStringList; 83 QStringList remoteDirPathStringList, localDirPathStringList;
84 QLineEdit *renameBox; 84 QLineEdit *renameBox;
85 85
86 void init(); 86 void init();
87 void initConnections(); 87 void initConnections();
88 void keyReleaseEvent( QKeyEvent *); 88 void keyReleaseEvent( QKeyEvent *);
89 void keyPressEvent( QKeyEvent *); 89 void keyPressEvent( QKeyEvent *);
90 QString getFileSystemType(const QString &); 90 QString getFileSystemType(const QString &);
91 QString getDiskSpace(const QString &); 91 QString getDiskSpace(const QString &);
92 void parsetab(const QString &fileName); 92 void parsetab(const QString &fileName);
93 QString checkDiskSpace(const QString &); 93 QString checkDiskSpace(const QString &);
94 QString dealWithSymName(const QString &); 94 QString dealWithSymName(const QString &);
95 QDir *CurrentDir(); 95 QDir *CurrentDir();
96 QDir *OtherDir(); 96 QDir *OtherDir();
97 QListView *CurrentView(); 97 QListView *CurrentView();
98 QListView *OtherView(); 98 QListView *OtherView();
99 void setOtherTabCurrent(); 99 void setOtherTabCurrent();
100 void changeTo(QString & dir);
100 101
101//protected signals: 102//protected signals:
102 // void newPath(QString); 103 // void newPath(QString);
103 104
104protected slots: 105protected slots:
105 void slotSwitchMenu(int); 106 void slotSwitchMenu(int);
106 void selectAll(); 107 void selectAll();
107 void addToDocs(); 108 void addToDocs();
108 void doDirChange(); 109 void doDirChange();
109 void mkDir(); 110 void mkDir();
110 void del(); 111 void del();
111 void rn(); 112 void rn();
112 void populateView(); 113 void populateView();
113 void rePopulate(); 114 void rePopulate();
114 void showHidden(); 115 void showHidden();
115 void showMenuHidden(); 116 void showMenuHidden();
116 void writeConfig();
117 void readConfig();
118 void ListClicked(QListViewItem *); 117 void ListClicked(QListViewItem *);
119 void ListPressed( int, QListViewItem *, const QPoint&, int); 118 void ListPressed( int, QListViewItem *, const QPoint&, int);
120 void makeDir(); 119 void makeDir();
121 void doDelete(); 120 void doDelete();
122 void tabChanged(QWidget*); 121 void tabChanged(QWidget*);
123 void cleanUp(); 122 void cleanUp();
124 void renameIt(); 123 void renameIt();
125 void runThis(); 124 void runThis();
126 void runText(); 125 void runText();
127 void filePerms(); 126 void filePerms();
128 void doProperties(); 127 void doProperties();
129 void runCommand(); 128 void runCommand();
130 void runCommandStd(); 129 void runCommandStd();
131 QStringList getPath(); 130 QStringList getPath();
132 void mkSym(); 131 void mkSym();
133 void switchToLocalTab(); 132 void switchToLocalTab();
134 void switchToRemoteTab(); 133 void switchToRemoteTab();
135 void refreshCurrentTab(); 134 void refreshCurrentTab();
136 135
137 void openSearch(); 136 void openSearch();
138 void dirMenuSelected(int); 137 void dirMenuSelected(int);
139 void showFileMenu(); 138 void showFileMenu();
140 void homeButtonPushed(); 139 void homeButtonPushed();
141 void docButtonPushed(); 140 void docButtonPushed();
142 void SDButtonPushed(); 141 void SDButtonPushed();
143 void CFButtonPushed(); 142 void CFButtonPushed();
144 void QPEButtonPushed(); 143 void QPEButtonPushed();
145 void upDir(); 144 void upDir();
146 void currentPathComboChanged(); 145 void currentPathComboChanged();
147 146
148 void copy(); 147 void copy();
149 void copyTimer(); 148 void copyTimer();
150 void copyAs(); 149 void copyAs();
151 void copyAsTimer(); 150 void copyAsTimer();
152 void copySameDir(); 151 void copySameDir();
153 void copySameDirTimer(); 152 void copySameDirTimer();
154 void move(); 153 void move();
155 void moveTimer(); 154 void moveTimer();
156 155
157 void currentPathComboActivated(const QString &); 156 void currentPathComboActivated(const QString &);
158 void fillCombo(const QString &); 157 void fillCombo(const QString &);
159 bool copyFile( const QString & , const QString & ); 158 bool copyFile( const QString & , const QString & );
160 void fileStatus(); 159 void fileStatus();
161 void doAbout(); 160 void doAbout();
162 void doBeam(); 161 void doBeam();
163 void fileBeamFinished( Ir *); 162 void fileBeamFinished( Ir *);
164 bool copyDirectory( const QString & , const QString & ); 163 bool copyDirectory( const QString & , const QString & );
165// void navigateToSelected(); 164// void navigateToSelected();
166 bool moveDirectory( const QString & , const QString & ); 165 bool moveDirectory( const QString & , const QString & );
167 166
168// void slotSwitchtoLocal(int); 167// void slotSwitchtoLocal(int);
169 168
170private: 169private:
171 MenuButton *menuButton; 170 MenuButton *menuButton;
172 QString oldName, localViewDir, remoteViewDir; 171 QString oldName, localViewDir, remoteViewDir;
173 void startProcess(const QString &); 172 void startProcess(const QString &);
174 bool eventFilter( QObject * , QEvent * ); 173 bool eventFilter( QObject * , QEvent * );
175 void cancelRename(); 174 void cancelRename();
176 void doRename(QListView *); 175 void doRename(QListView *);
177 void okRename(); 176 void okRename();
178 void customDirsToMenu(); 177 void customDirsToMenu();
179 void addCustomDir(); 178 void addCustomDir();
180 void removeCustomDir(); 179 void removeCustomDir();
181 void gotoDirectory(const QString &); 180 void gotoDirectory(const QString &);
182 void navigateToSelected(); 181 void navigateToSelected();
183 void findFile(const QString &); 182 void findFile(const QString &);
184 183
185private slots: 184private slots:
186 void processEnded(Opie::Core::OProcess *); 185 void processEnded(Opie::Core::OProcess *);
187 void oprocessStderr(Opie::Core::OProcess *, char *, int); 186 void oprocessStderr(Opie::Core::OProcess *, char *, int);
188 void gotoCustomDir(const QString &); 187 void gotoCustomDir(const QString &);
189 void qcopReceive(const QCString&, const QByteArray&); 188 void qcopReceive(const QCString&, const QByteArray&);
190 void setDocument(const QString &); 189 void setDocument(const QString &);
191 // void doMenu(int 190 // void doMenu(int
192 191
193}; 192};
194 193
195#endif // ADVANCEDFM_H 194#endif // ADVANCEDFM_H