summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/apps/advancedfm/advancedfm.cpp27
-rw-r--r--noncore/apps/advancedfm/advancedfmData.cpp29
2 files changed, 26 insertions, 30 deletions
diff --git a/noncore/apps/advancedfm/advancedfm.cpp b/noncore/apps/advancedfm/advancedfm.cpp
index 979549d..828f5a1 100644
--- a/noncore/apps/advancedfm/advancedfm.cpp
+++ b/noncore/apps/advancedfm/advancedfm.cpp
@@ -1,216 +1,210 @@
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 16#include <opie2/oresource.h>
17#include <opie2/ostorageinfo.h> 17#include <opie2/ostorageinfo.h>
18 18
19#include <qpe/qpeapplication.h> 19#include <qpe/qpeapplication.h>
20#include <qpe/config.h> 20#include <qpe/config.h>
21#include <qpe/mimetype.h> 21#include <qpe/mimetype.h>
22#include <qpe/applnk.h> 22#include <qpe/applnk.h>
23#include <qpe/resource.h>
24#include <qpe/menubutton.h> 23#include <qpe/menubutton.h>
25 24
26#include <qcombobox.h> 25#include <qcombobox.h>
27#include <qpopupmenu.h> 26#include <qpopupmenu.h>
28#include <qlistview.h> 27#include <qlistview.h>
29#include <qmessagebox.h> 28#include <qmessagebox.h>
30#include <qlineedit.h> 29#include <qlineedit.h>
31 30
32 31
33#include <sys/stat.h> 32#include <sys/stat.h>
34#include <time.h> 33#include <time.h>
35#include <dirent.h> 34#include <dirent.h>
36#include <fcntl.h> 35#include <fcntl.h>
37#include <sys/vfs.h> 36#include <sys/vfs.h>
38#include <mntent.h> 37#include <mntent.h>
39 38
40using namespace Opie::Ui; 39using namespace Opie::Ui;
41 40
42AdvancedFm::AdvancedFm(QWidget *,const char*, WFlags ) 41AdvancedFm::AdvancedFm(QWidget *,const char*, WFlags )
43 : QMainWindow( ) { 42 : QMainWindow( ) {
44 init(); 43 init();
45 renameBox = 0; 44 renameBox = 0;
46 whichTab = 1; 45 whichTab = 1;
47 unknownXpm = Resource::loadImage("UnknownDocument").smoothScale(AppLnk::smallIconSize(),AppLnk::smallIconSize() ); 46 unknownXpm = Opie::Core::OResource::loadImage("UnknownDocument", Opie::Core::OResource::SmallIcon);
48 47
49 initConnections(); 48 initConnections();
50 rePopulate(); 49 rePopulate();
51 channel = new QCopChannel( "QPE/Application/advancedfm", this ); 50 channel = new QCopChannel( "QPE/Application/advancedfm", this );
52 connect(channel,SIGNAL(received(const QCString&,const QByteArray&)),this,SLOT(qcopReceive(const QCString&,const QByteArray&))); 51 connect(channel,SIGNAL(received(const QCString&,const QByteArray&)),this,SLOT(qcopReceive(const QCString&,const QByteArray&)));
53 switchToLocalTab(); 52 switchToLocalTab();
54} 53}
55 54
56AdvancedFm::~AdvancedFm() { 55AdvancedFm::~AdvancedFm() {
57} 56}
58 57
59 58
60void AdvancedFm::cleanUp() { 59void AdvancedFm::cleanUp() {
61 QString sfile=QDir::homeDirPath(); 60 QString sfile=QDir::homeDirPath();
62 if(sfile.right(1) != "/") 61 if(sfile.right(1) != "/")
63 sfile+="/._temp"; 62 sfile+="/._temp";
64 else 63 else
65 sfile+="._temp"; 64 sfile+="._temp";
66 QFile file( sfile); 65 QFile file( sfile);
67 if(file.exists()) 66 if(file.exists())
68 file.remove(); 67 file.remove();
69} 68}
70 69
71void AdvancedFm::tabChanged(QWidget *wd) { 70void AdvancedFm::tabChanged(QWidget *wd) {
72 if(wd == tab) { 71 if(wd == tab) {
73 whichTab = 1; 72 whichTab = 1;
74 viewMenu->setItemChecked(viewMenu->idAt(0), true); 73 viewMenu->setItemChecked(viewMenu->idAt(0), true);
75 viewMenu->setItemChecked(viewMenu->idAt(1), false); 74 viewMenu->setItemChecked(viewMenu->idAt(1), false);
76 // qDebug("tabchanged: LOCAL VIEW SHOWN"); 75 // qDebug("tabchanged: LOCAL VIEW SHOWN");
77 } 76 }
78 77
79 else if(wd == tab_2) { 78 else if(wd == tab_2) {
80 whichTab = 2; 79 whichTab = 2;
81 viewMenu->setItemChecked(viewMenu->idAt(0), false); 80 viewMenu->setItemChecked(viewMenu->idAt(0), false);
82 viewMenu->setItemChecked(viewMenu->idAt(1), true); 81 viewMenu->setItemChecked(viewMenu->idAt(1), true);
83 // qDebug("tabchanged: REMOTE VIEW SHOWN"); 82 // qDebug("tabchanged: REMOTE VIEW SHOWN");
84 } 83 }
85 qApp->processEvents(); 84 qApp->processEvents();
86 QString path = CurrentDir()->canonicalPath(); 85 QString path = CurrentDir()->canonicalPath();
87 86
88 chdir( path.latin1()); 87 chdir( path.latin1());
89 currentPathCombo->lineEdit()->setText(path); 88 currentPathCombo->lineEdit()->setText(path);
90} 89}
91 90
92 91
93void AdvancedFm::populateView() { 92void AdvancedFm::populateView() {
94 93
95 QPixmap pm; 94 QPixmap pm;
96 QListView *thisView = CurrentView(); 95 QListView *thisView = CurrentView();
97 QDir *thisDir = CurrentDir(); 96 QDir *thisDir = CurrentDir();
98 QString path = thisDir->canonicalPath(); 97 QString path = thisDir->canonicalPath();
99 98
100 thisView->clear(); 99 thisView->clear();
101 thisDir->setSorting(/* QDir::Size*/ /*| QDir::Reversed | */QDir::DirsFirst); 100 thisDir->setSorting(/* QDir::Size*/ /*| QDir::Reversed | */QDir::DirsFirst);
102 thisDir->setMatchAllDirs(TRUE); 101 thisDir->setMatchAllDirs(TRUE);
103 thisDir->setNameFilter(filterStr); 102 thisDir->setNameFilter(filterStr);
104 QString fileL, fileS, fileDate; 103 QString fileL, fileS, fileDate;
105 104
106 QString fs = getFileSystemType((const QString &) path); 105 QString fs = getFileSystemType((const QString &) path);
107 setCaption(tr("AdvancedFm :: ")+fs+" :: " 106 setCaption(tr("AdvancedFm :: ")+fs+" :: "
108 +checkDiskSpace((const QString &) path)+ tr(" kB free") ); 107 +checkDiskSpace((const QString &) path)+ tr(" kB free") );
109 bool isDir = FALSE; 108 bool isDir = FALSE;
110 109
111 const QFileInfoList *list = thisDir->entryInfoList( /*QDir::All*/ /*, QDir::SortByMask*/); 110 const QFileInfoList *list = thisDir->entryInfoList( /*QDir::All*/ /*, QDir::SortByMask*/);
112 QFileInfoListIterator it(*list); 111 QFileInfoListIterator it(*list);
113 QFileInfo *fi; 112 QFileInfo *fi;
114 while ( (fi=it.current()) ) { 113 while ( (fi=it.current()) ) {
115 if (fi->isSymLink() ) { 114 if (fi->isSymLink() ) {
116 QString symLink = fi->readLink(); 115 QString symLink = fi->readLink();
117 QFileInfo sym( symLink); 116 QFileInfo sym( symLink);
118 fileS.sprintf( "%10i", sym.size() ); 117 fileS.sprintf( "%10i", sym.size() );
119 fileL = fi->fileName() +" -> " + sym.filePath().data(); 118 fileL = fi->fileName() +" -> " + sym.filePath().data();
120 fileDate = sym.lastModified().toString(); 119 fileDate = sym.lastModified().toString();
121 } else { 120 } else {
122 fileS.sprintf( "%10i", fi->size() ); 121 fileS.sprintf( "%10i", fi->size() );
123 fileL = fi->fileName(); 122 fileL = fi->fileName();
124 fileDate= fi->lastModified().toString(); 123 fileDate= fi->lastModified().toString();
125 if( QDir(QDir::cleanDirPath( path +"/"+fileL)).exists() ) { 124 if( QDir(QDir::cleanDirPath( path +"/"+fileL)).exists() ) {
126// if(fileL == "..") 125// if(fileL == "..")
127 fileL += "/"; 126 fileL += "/";
128 isDir=TRUE; 127 isDir=TRUE;
129 } 128 }
130 } 129 }
131 QFileInfo fileInfo( path + "/" + fileL); 130 QFileInfo fileInfo( path + "/" + fileL);
132 131
133 if(fileL !="./" && fi->exists()) { 132 if(fileL !="./" && fi->exists()) {
134 item = new QListViewItem( thisView, fileL, fileS , fileDate); 133 item = new QListViewItem( thisView, fileL, fileS , fileDate);
135 134
136 if(isDir || fileL.find("/",0,TRUE) != -1) { 135 if(isDir || fileL.find("/",0,TRUE) != -1) {
137 136
138 if( !QDir( fi->filePath() ).isReadable()) //is directory 137 if( !QDir( fi->filePath() ).isReadable()) //is directory
139 pm.convertFromImage( Resource::loadImage( "lockedfolder" ).smoothScale( AppLnk::smallIconSize(), AppLnk::smallIconSize() ) ); 138 pm = Opie::Core::OResource::loadPixmap( "lockedfolder", Opie::Core::OResource::SmallIcon );
140 else 139 else
141 pm.convertFromImage( Resource::loadImage( "folder" ).smoothScale( AppLnk::smallIconSize(), AppLnk::smallIconSize() ) ); 140 pm = Opie::Core::OResource::loadPixmap( "folder", Opie::Core::OResource::SmallIcon );
142 } 141 }
143 else if ( fs == "vfat" && fileInfo.filePath().contains("/bin") ) { 142 else if ( fs == "vfat" && fileInfo.filePath().contains("/bin") ) {
144 pm.convertFromImage( Resource::loadImage( "exec" ).smoothScale( AppLnk::smallIconSize(), AppLnk::smallIconSize() ) ); 143 pm = Opie::Core::OResource::loadPixmap( "exec", Opie::Core::OResource::SmallIcon );
145 } 144 }
146 else if( (fileInfo.permission( QFileInfo::ExeUser) 145 else if( (fileInfo.permission( QFileInfo::ExeUser)
147 | fileInfo.permission( QFileInfo::ExeGroup) 146 | fileInfo.permission( QFileInfo::ExeGroup)
148 | fileInfo.permission( QFileInfo::ExeOther)) && fs != "vfat" ) { 147 | fileInfo.permission( QFileInfo::ExeOther)) && fs != "vfat" ) {
149 pm.convertFromImage( Resource::loadImage( "exec" ).smoothScale( AppLnk::smallIconSize(), AppLnk::smallIconSize() ) ); 148 pm = Opie::Core::OResource::loadPixmap( "exec", Opie::Core::OResource::SmallIcon );
150 } 149 }
151 else if( !fi->isReadable() ) { 150 else if( !fi->isReadable() ) {
152 pm.convertFromImage( Resource::loadImage( "locked" ).smoothScale( AppLnk::smallIconSize(), AppLnk::smallIconSize() ) ); 151 pm = Opie::Core::OResource::loadPixmap( "locked", Opie::Core::OResource::SmallIcon );
153 } 152 }
154 else { //everything else goes by mimetype 153 else { //everything else goes by mimetype
155 MimeType mt(fi->filePath()); 154 MimeType mt(fi->filePath());
156 pm=mt.pixmap(); //sets the correct pixmap for mimetype 155 pm=mt.pixmap(); //sets the correct pixmap for mimetype
157 if(pm.isNull()) { 156 if(pm.isNull()) {
158 pm = unknownXpm; 157 pm = unknownXpm;
159 } 158 }
160 } 159 }
161 if( fi->isSymLink() || fileL.find("->",0,TRUE) != -1) { 160 if( fi->isSymLink() || fileL.find("->",0,TRUE) != -1) {
162 // odebug << " overlay link image" << oendl; 161 // odebug << " overlay link image" << oendl;
163 pm.convertFromImage( Resource::loadImage( "advancedfm/symlink" ).smoothScale( AppLnk::smallIconSize(), AppLnk::smallIconSize() ) ); 162 pm = Opie::Core::OResource::loadPixmap( "advancedfm/symlink", Opie::Core::OResource::SmallIcon );
164 // pm= Resource::loadPixmap( "folder" );
165// QPixmap lnk = Resource::loadPixmap( "opie/symlink" );
166// QPainter painter( &pm );
167// painter.drawPixmap( pm.width()-lnk.width(), pm.height()-lnk.height(), lnk );
168// pm.setMask( pm.createHeuristicMask( FALSE ) );
169 } 163 }
170 item->setPixmap( 0, pm ); 164 item->setPixmap( 0, pm );
171 165
172 } 166 }
173 isDir=FALSE; 167 isDir=FALSE;
174 ++it; 168 ++it;
175 } 169 }
176 170
177 if( path.find("dev",0,TRUE) != -1) { 171 if( path.find("dev",0,TRUE) != -1) {
178 struct stat buf; 172 struct stat buf;
179 dev_t devT; 173 dev_t devT;
180 DIR *dir; 174 DIR *dir;
181 struct dirent *mydirent; 175 struct dirent *mydirent;
182 176
183 if((dir = opendir( path.latin1())) != NULL) 177 if((dir = opendir( path.latin1())) != NULL)
184 while ((mydirent = readdir(dir)) != NULL) { 178 while ((mydirent = readdir(dir)) != NULL) {
185 lstat( mydirent->d_name, &buf); 179 lstat( mydirent->d_name, &buf);
186// odebug << mydirent->d_name << oendl; 180// odebug << mydirent->d_name << oendl;
187 fileL.sprintf("%s", mydirent->d_name); 181 fileL.sprintf("%s", mydirent->d_name);
188 devT = buf.st_dev; 182 devT = buf.st_dev;
189 fileS.sprintf("%d, %d", (int) ( devT >>8) &0xFF, (int)devT &0xFF); 183 fileS.sprintf("%d, %d", (int) ( devT >>8) &0xFF, (int)devT &0xFF);
190 fileDate.sprintf("%s", ctime( &buf.st_mtime)); 184 fileDate.sprintf("%s", ctime( &buf.st_mtime));
191 if( fileL.find(".") == -1 ) { 185 if( fileL.find(".") == -1 ) {
192 item= new QListViewItem( thisView, fileL, fileS, fileDate); 186 item= new QListViewItem( thisView, fileL, fileS, fileDate);
193 pm = unknownXpm; 187 pm = unknownXpm;
194 item->setPixmap( 0,pm); 188 item->setPixmap( 0,pm);
195 } 189 }
196 } 190 }
197 191
198 closedir(dir); 192 closedir(dir);
199 } 193 }
200 194
201 thisView->setSorting( 3,FALSE); 195 thisView->setSorting( 3,FALSE);
202 fillCombo( (const QString &) path ); 196 fillCombo( (const QString &) path );
203} 197}
204 198
205void AdvancedFm::rePopulate() { 199void AdvancedFm::rePopulate() {
206 // qDebug("repopulate views"); 200 // qDebug("repopulate views");
207 populateView(); 201 populateView();
208 setOtherTabCurrent(); 202 setOtherTabCurrent();
209 populateView(); 203 populateView();
210} 204}
211 205
212void AdvancedFm::ListClicked(QListViewItem *selectedItem) { 206void AdvancedFm::ListClicked(QListViewItem *selectedItem) {
213 if(selectedItem) { 207 if(selectedItem) {
214 QString strItem=selectedItem->text(0); 208 QString strItem=selectedItem->text(0);
215// owarn << strItem << oendl; 209// owarn << strItem << oendl;
216 QString strSize=selectedItem->text(1); 210 QString strSize=selectedItem->text(1);
@@ -415,97 +409,98 @@ QString AdvancedFm::getFileSystemType(const QString &currentText) {
415 path = path.right( path.length()-1); 409 path = path.right( path.length()-1);
416 if(path.isEmpty()) baseFs = temp.right( temp.length() - temp.find("::",0,TRUE) - 2); 410 if(path.isEmpty()) baseFs = temp.right( temp.length() - temp.find("::",0,TRUE) - 2);
417 if( current.find( path,0,TRUE) != -1 && !path.isEmpty()) { 411 if( current.find( path,0,TRUE) != -1 && !path.isEmpty()) {
418 return temp.right( temp.length() - temp.find("::",0,TRUE) - 2); 412 return temp.right( temp.length() - temp.find("::",0,TRUE) - 2);
419 } 413 }
420 } 414 }
421 return baseFs; 415 return baseFs;
422} 416}
423 417
424QString AdvancedFm::getDiskSpace( const QString &path) { 418QString AdvancedFm::getDiskSpace( const QString &path) {
425 struct statfs fss; 419 struct statfs fss;
426 if ( !statfs( path.latin1(), &fss ) ) { 420 if ( !statfs( path.latin1(), &fss ) ) {
427 int blkSize = fss.f_bsize; 421 int blkSize = fss.f_bsize;
428 // int totalBlks = fs.f_blocks; 422 // int totalBlks = fs.f_blocks;
429 int availBlks = fss.f_bavail; 423 int availBlks = fss.f_bavail;
430 424
431 long mult = blkSize / 1024; 425 long mult = blkSize / 1024;
432 long div = 1024 / blkSize; 426 long div = 1024 / blkSize;
433 if ( !mult ) mult = 1; 427 if ( !mult ) mult = 1;
434 if ( !div ) div = 1; 428 if ( !div ) div = 1;
435 429
436 return QString::number(availBlks * mult / div); 430 return QString::number(availBlks * mult / div);
437 } 431 }
438 return ""; 432 return "";
439} 433}
440 434
441 435
442void AdvancedFm::showFileMenu() { 436void AdvancedFm::showFileMenu() {
443 QString curApp; 437 QString curApp;
444 curApp = CurrentView()->currentItem()->text(0); 438 curApp = CurrentView()->currentItem()->text(0);
445 439
446 MimeType mt(curApp); 440 MimeType mt(curApp);
447 const AppLnk* app = mt.application(); 441 const AppLnk* app = mt.application();
448 QFile fi(curApp); 442 QFile fi(curApp);
449 QPopupMenu *m = new QPopupMenu(0); 443 QPopupMenu *m = new QPopupMenu(0);
450 QPopupMenu *n = new QPopupMenu(0); 444 QPopupMenu *n = new QPopupMenu(0);
451 // QPopupMenu *o = new QPopupMenu(0); 445 // QPopupMenu *o = new QPopupMenu(0);
452 m->insertItem(tr("Show Hidden Files"),this,SLOT(showHidden())); 446 m->insertItem(tr("Show Hidden Files"),this,SLOT(showHidden()));
453 447
454 if ( QFileInfo(fi).isDir()) { 448 if ( QFileInfo(fi).isDir()) {
455 m->insertSeparator(); 449 m->insertSeparator();
456 m->insertItem(tr("Change Directory"),this,SLOT(doDirChange())); 450 m->insertItem(tr("Change Directory"),this,SLOT(doDirChange()));
457 } else { 451 } else {
458 452
459 if (app) 453 if (app)
460 m->insertItem(app->pixmap(),tr("Open in " + app->name()),this,SLOT(runThis())); 454 m->insertItem(app->pixmap(),tr("Open in " + app->name()),this,SLOT(runThis()));
461 else if(QFileInfo(fi).isExecutable() ) //damn opie doesnt like this 455 else if(QFileInfo(fi).isExecutable() ) //damn opie doesnt like this
462 m->insertItem(tr("Execute"),this,SLOT(runThis())); 456 m->insertItem(tr("Execute"),this,SLOT(runThis()));
463 m->insertItem(Resource::loadPixmap("txt"),tr("Open as text"),this,SLOT(runText())); 457 m->insertItem( Opie::Core::OResource::loadPixmap( "txt", Opie::Core::OResource::SmallIcon ),
458 tr("Open as text"),this,SLOT(runText()));
464 } 459 }
465 460
466 m->insertItem(tr("Actions"),n); 461 m->insertItem(tr("Actions"),n);
467 n->insertItem(tr("Make Directory"),this,SLOT(makeDir())); 462 n->insertItem(tr("Make Directory"),this,SLOT(makeDir()));
468 463
469 n->insertItem(tr("Make Symlink"),this,SLOT(mkSym())); 464 n->insertItem(tr("Make Symlink"),this,SLOT(mkSym()));
470 465
471 n->insertSeparator(); 466 n->insertSeparator();
472 n->insertItem(tr("Rename"),this,SLOT(renameIt())); 467 n->insertItem(tr("Rename"),this,SLOT(renameIt()));
473 468
474 n->insertItem(tr("Copy"),this,SLOT(copyTimer())); 469 n->insertItem(tr("Copy"),this,SLOT(copyTimer()));
475 n->insertItem(tr("Copy As"),this,SLOT(copyAsTimer())); 470 n->insertItem(tr("Copy As"),this,SLOT(copyAsTimer()));
476 n->insertItem(tr("Copy Same Dir"),this,SLOT(copySameDirTimer())); 471 n->insertItem(tr("Copy Same Dir"),this,SLOT(copySameDirTimer()));
477 n->insertItem(tr("Move"),this,SLOT(moveTimer())); 472 n->insertItem(tr("Move"),this,SLOT(moveTimer()));
478 473
479 n->insertSeparator(); 474 n->insertSeparator();
480 n->insertItem(tr("Delete"),this,SLOT(doDelete())); 475 n->insertItem(tr("Delete"),this,SLOT(doDelete()));
481 m->insertItem(tr("Add To Documents"),this,SLOT(addToDocs())); 476 m->insertItem(tr("Add To Documents"),this,SLOT(addToDocs()));
482 477
483 m->insertItem(tr("Run Command"),this,SLOT(runCommand())); 478 m->insertItem(tr("Run Command"),this,SLOT(runCommand()));
484 m->insertItem(tr("File Info"),this,SLOT(fileStatus())); 479 m->insertItem(tr("File Info"),this,SLOT(fileStatus()));
485 480
486 m->insertSeparator(); 481 m->insertSeparator();
487 m->insertItem(tr("Set Permissions"),this,SLOT(filePerms())); 482 m->insertItem(tr("Set Permissions"),this,SLOT(filePerms()));
488 483
489#if defined(QT_QWS_OPIE) 484#if defined(QT_QWS_OPIE)
490 m->insertItem(tr("Properties"),this,SLOT(doProperties())); 485 m->insertItem(tr("Properties"),this,SLOT(doProperties()));
491#endif 486#endif
492 m->setCheckable(TRUE); 487 m->setCheckable(TRUE);
493 if (!b) 488 if (!b)
494 m->setItemChecked(m->idAt(0),TRUE); 489 m->setItemChecked(m->idAt(0),TRUE);
495 else 490 else
496 m->setItemChecked(m->idAt(0),FALSE); 491 m->setItemChecked(m->idAt(0),FALSE);
497 492
498 if(Ir::supported()) 493 if(Ir::supported())
499 m->insertItem(tr("Beam File"),this,SLOT(doBeam())); 494 m->insertItem(tr("Beam File"),this,SLOT(doBeam()));
500 m->setFocus(); 495 m->setFocus();
501 496
502 m->exec(QPoint(QCursor::pos().x(),QCursor::pos().y())); 497 m->exec(QPoint(QCursor::pos().x(),QCursor::pos().y()));
503 498
504 if(m) delete m; 499 if(m) delete m;
505} 500}
506 501
507 502
508QString AdvancedFm::checkDiskSpace(const QString &path) { 503QString AdvancedFm::checkDiskSpace(const QString &path) {
509 struct statfs fss; 504 struct statfs fss;
510 if ( !statfs( path.latin1(), &fss ) ) { 505 if ( !statfs( path.latin1(), &fss ) ) {
511 int blkSize = fss.f_bsize; 506 int blkSize = fss.f_bsize;
diff --git a/noncore/apps/advancedfm/advancedfmData.cpp b/noncore/apps/advancedfm/advancedfmData.cpp
index b43d2ba..aa9db52 100644
--- a/noncore/apps/advancedfm/advancedfmData.cpp
+++ b/noncore/apps/advancedfm/advancedfmData.cpp
@@ -1,136 +1,137 @@
1/*************************************************************************** 1/***************************************************************************
2 advancedfmData.cpp 2 advancedfmData.cpp
3 ------------------- 3 -------------------
4** Created: Mon 09-23-2002 13:24:11 4** Created: Mon 09-23-2002 13:24:11
5 copyright : (C) 2002 by ljp 5 copyright : (C) 2002 by ljp
6 email : ljp@llornkcor.com 6 email : ljp@llornkcor.com
7 * This program is free software; you can redistribute it and/or modify * 7 * This program is free software; you can redistribute it and/or modify *
8 * it under the terms of the GNU General Public License as published by * 8 * it under the terms of the GNU General Public License as published by *
9 * the Free Software Foundation; either version 2 of the License, or * 9 * the Free Software Foundation; either version 2 of the License, or *
10 * (at your option) any later version. * 10 * (at your option) any later version. *
11 ***************************************************************************/ 11 ***************************************************************************/
12#include "advancedfm.h" 12#include "advancedfm.h"
13 13
14/* OPIE */ 14/* OPIE */
15#include <opie2/odebug.h> 15#include <opie2/odebug.h>
16#include <opie2/oresource.h>
16#include <qpe/applnk.h> 17#include <qpe/applnk.h>
17#include <qpe/storage.h> 18#include <qpe/storage.h>
18#include <qpe/qpeapplication.h> 19#include <qpe/qpeapplication.h>
19#include <qpe/resource.h>
20#include <qpe/menubutton.h> 20#include <qpe/menubutton.h>
21using namespace Opie::Core; 21using namespace Opie::Core;
22using namespace Opie::Ui; 22using namespace Opie::Ui;
23 23
24/* QT */ 24/* QT */
25#include <qlayout.h> 25#include <qlayout.h>
26#include <qhbox.h> 26#include <qhbox.h>
27#include <qmenubar.h> 27#include <qmenubar.h>
28#include <qcombobox.h> 28#include <qcombobox.h>
29#include <qtoolbutton.h> 29#include <qtoolbutton.h>
30#include <qlineedit.h> 30#include <qlineedit.h>
31#include <qlistview.h> 31#include <qlistview.h>
32 32
33/* STD */ 33/* STD */
34#include <sys/utsname.h> 34#include <sys/utsname.h>
35 35
36void AdvancedFm::init() { 36void AdvancedFm::init() {
37 b = false; 37 b = false;
38 setCaption( tr( "AdvancedFm" ) ); 38 setCaption( tr( "AdvancedFm" ) );
39 39
40 QVBoxLayout *layout = new QVBoxLayout( this ); 40 QVBoxLayout *layout = new QVBoxLayout( this );
41 layout->setSpacing( 2); 41 layout->setSpacing( 2);
42 layout->setMargin( 0); // squeeze 42 layout->setMargin( 0); // squeeze
43 43
44 QMenuBar *menuBar = new QMenuBar(this); 44 QMenuBar *menuBar = new QMenuBar(this);
45 menuBar->setMargin( 0 ); // squeeze 45 menuBar->setMargin( 0 ); // squeeze
46 fileMenu = new QPopupMenu( this ); 46 fileMenu = new QPopupMenu( this );
47 viewMenu = new QPopupMenu( this ); 47 viewMenu = new QPopupMenu( this );
48// customDirMenu = new QPopupMenu( this ); 48// customDirMenu = new QPopupMenu( this );
49 49
50 layout->addWidget( menuBar ); 50 layout->addWidget( menuBar );
51 51
52 menuBar->insertItem( tr( "File" ), fileMenu); 52 menuBar->insertItem( tr( "File" ), fileMenu);
53 menuBar->insertItem( tr( "View" ), viewMenu); 53 menuBar->insertItem( tr( "View" ), viewMenu);
54 54
55 QPixmap pm; 55 bool useBigIcon = qApp->desktop()->size().width() > 330;
56
56 cdUpButton = new QToolButton( 0,"cdUpButton"); 57 cdUpButton = new QToolButton( 0,"cdUpButton");
57 pm.convertFromImage( Resource::loadImage( "up" ).smoothScale( AppLnk::smallIconSize(), AppLnk::smallIconSize() ) ); 58 cdUpButton->setUsesBigPixmap( useBigIcon );
58 cdUpButton->setPixmap( pm ); 59 cdUpButton->setPixmap( Opie::Core::OResource::loadPixmap( "up", Opie::Core::OResource::SmallIcon ) );
59 cdUpButton->setAutoRaise( true ); 60 cdUpButton->setAutoRaise( true );
60 menuBar->insertItem( cdUpButton ); 61 menuBar->insertItem( cdUpButton );
61 62
62 qpeDirButton= new QToolButton( 0,"QPEButton"); 63 qpeDirButton= new QToolButton( 0,"QPEButton");
63 pm.convertFromImage( Resource::loadImage( "logo/opielogo" ).smoothScale( AppLnk::smallIconSize(), AppLnk::smallIconSize() ) ); 64 qpeDirButton->setUsesBigPixmap( useBigIcon );
64 qpeDirButton->setPixmap( pm );//,"",this,"QPEButton"); 65 qpeDirButton->setPixmap( Opie::Core::OResource::loadPixmap( "logo/opielogo", Opie::Core::OResource::SmallIcon ) );
65 qpeDirButton->setAutoRaise( true ); 66 qpeDirButton->setAutoRaise( true );
66 menuBar->insertItem( qpeDirButton ); 67 menuBar->insertItem( qpeDirButton );
67 68
68 cfButton = new QToolButton( 0, "CFButton"); 69 cfButton = new QToolButton( 0, "CFButton");
69 pm.convertFromImage( Resource::loadImage( "cardmon/pcmcia" ).smoothScale( AppLnk::smallIconSize(), AppLnk::smallIconSize() ) ); 70 cfButton->setUsesBigPixmap( useBigIcon );
70 cfButton->setPixmap( pm ); 71 cfButton->setPixmap( Opie::Core::OResource::loadPixmap( "cardmon/pcmcia", Opie::Core::OResource::SmallIcon ) );
71 cfButton->setAutoRaise( true ); 72 cfButton->setAutoRaise( true );
72 menuBar->insertItem( cfButton ); 73 menuBar->insertItem( cfButton );
73 74
74 sdButton = new QToolButton( 0, "SDButton"); 75 sdButton = new QToolButton( 0, "SDButton");
75 pm.convertFromImage( Resource::loadImage( "advancedfm/sdcard" ).smoothScale( AppLnk::smallIconSize(), AppLnk::smallIconSize() ) ); 76 sdButton->setUsesBigPixmap( useBigIcon );
76 sdButton->setPixmap( pm ); 77 sdButton->setPixmap( Opie::Core::OResource::loadPixmap( "advancedfm/sdcard", Opie::Core::OResource::SmallIcon ) );
77 sdButton->setAutoRaise( true ); 78 sdButton->setAutoRaise( true );
78 menuBar->insertItem( sdButton ); 79 menuBar->insertItem( sdButton );
79 80
80 docButton = new QToolButton( 0,"docsButton"); 81 docButton = new QToolButton( 0,"docsButton");
81 pm.convertFromImage( Resource::loadImage( "DocsIcon" ).smoothScale( AppLnk::smallIconSize(), AppLnk::smallIconSize() ) ); 82 docButton->setUsesBigPixmap( useBigIcon );
82 docButton->setPixmap( pm ); 83 docButton->setPixmap( Opie::Core::OResource::loadPixmap( "DocsIcon", Opie::Core::OResource::SmallIcon ) );
83 docButton->setAutoRaise( true ); 84 docButton->setAutoRaise( true );
84 menuBar->insertItem( docButton ); 85 menuBar->insertItem( docButton );
85 86
86 homeButton = new QToolButton( 0, "homeButton"); 87 homeButton = new QToolButton( 0, "homeButton");
87 pm.convertFromImage( Resource::loadImage( "home" ).smoothScale( AppLnk::smallIconSize(), AppLnk::smallIconSize() ) ); 88 homeButton->setUsesBigPixmap( useBigIcon );
88 homeButton->setPixmap( pm ); 89 homeButton->setPixmap( Opie::Core::OResource::loadPixmap( "home", Opie::Core::OResource::SmallIcon ) );
89 homeButton->setAutoRaise( true ); 90 homeButton->setAutoRaise( true );
90 menuBar->insertItem( homeButton ); 91 menuBar->insertItem( homeButton );
91 92
92 fileMenu->insertItem( tr( "Show Hidden Files" ), this, SLOT( showMenuHidden() )); 93 fileMenu->insertItem( tr( "Show Hidden Files" ), this, SLOT( showMenuHidden() ));
93 fileMenu->setItemChecked( fileMenu->idAt(0),TRUE); 94 fileMenu->setItemChecked( fileMenu->idAt(0),TRUE);
94 fileMenu->insertSeparator(); 95 fileMenu->insertSeparator();
95 fileMenu->insertItem( tr( "File Search" ), this, SLOT( openSearch() )); 96 fileMenu->insertItem( tr( "File Search" ), this, SLOT( openSearch() ));
96 fileMenu->insertSeparator(); 97 fileMenu->insertSeparator();
97 fileMenu->insertItem( tr( "Make Directory" ), this, SLOT( mkDir() )); 98 fileMenu->insertItem( tr( "Make Directory" ), this, SLOT( mkDir() ));
98 fileMenu->insertItem( tr( "Rename" ), this, SLOT( rn() )); 99 fileMenu->insertItem( tr( "Rename" ), this, SLOT( rn() ));
99 fileMenu->insertItem( tr( "Run Command" ), this, SLOT( runCommandStd() )); 100 fileMenu->insertItem( tr( "Run Command" ), this, SLOT( runCommandStd() ));
100 fileMenu->insertItem( tr( "Run Command with Output" ), this, SLOT( runCommand() )); 101 fileMenu->insertItem( tr( "Run Command with Output" ), this, SLOT( runCommand() ));
101 fileMenu->insertSeparator(); 102 fileMenu->insertSeparator();
102 fileMenu->insertItem( tr( "Make Symlink" ), this, SLOT( mkSym() )); 103 fileMenu->insertItem( tr( "Make Symlink" ), this, SLOT( mkSym() ));
103 fileMenu->insertItem( tr( "Select All" ), this, SLOT( selectAll() )); 104 fileMenu->insertItem( tr( "Select All" ), this, SLOT( selectAll() ));
104 fileMenu->insertItem( tr( "Add To Documents" ), this, SLOT( addToDocs() )); 105 fileMenu->insertItem( tr( "Add To Documents" ), this, SLOT( addToDocs() ));
105 fileMenu->insertItem( tr( "Delete" ), this, SLOT( del() )); 106 fileMenu->insertItem( tr( "Delete" ), this, SLOT( del() ));
106 fileMenu->setCheckable(TRUE); 107 fileMenu->setCheckable(TRUE);
107 108
108 viewMenu->insertItem( tr( "Switch to View 1" ), this, SLOT( switchToLocalTab())); 109 viewMenu->insertItem( tr( "Switch to View 1" ), this, SLOT( switchToLocalTab()));
109 viewMenu->insertItem( tr( "Switch to View 2" ), this, SLOT( switchToRemoteTab())); 110 viewMenu->insertItem( tr( "Switch to View 2" ), this, SLOT( switchToRemoteTab()));
110 viewMenu->insertItem( tr( "Refresh" ), this, SLOT( refreshCurrentTab())); 111 viewMenu->insertItem( tr( "Refresh" ), this, SLOT( refreshCurrentTab()));
111// viewMenu->insertSeparator(); 112// viewMenu->insertSeparator();
112// viewMenu->insertItem( tr( "About" ), this, SLOT( doAbout() )); 113// viewMenu->insertItem( tr( "About" ), this, SLOT( doAbout() ));
113 viewMenu->setCheckable(true); 114 viewMenu->setCheckable(true);
114 viewMenu->setItemChecked( viewMenu->idAt(0), true); 115 viewMenu->setItemChecked( viewMenu->idAt(0), true);
115 viewMenu->setItemChecked( viewMenu->idAt(1), false); 116 viewMenu->setItemChecked( viewMenu->idAt(1), false);
116 117
117 s_addBookmark = tr("Bookmark Directory"); 118 s_addBookmark = tr("Bookmark Directory");
118 s_removeBookmark = tr("Remove Current Directory from Bookmarks"); 119 s_removeBookmark = tr("Remove Current Directory from Bookmarks");
119 120
120// menuButton->insertItem(""); 121// menuButton->insertItem("");
121 122
122// customDirMenu->insertItem(tr("Add This Directory")); 123// customDirMenu->insertItem(tr("Add This Directory"));
123// customDirMenu->insertItem(tr("Remove This Directory")); 124// customDirMenu->insertItem(tr("Remove This Directory"));
124// customDirMenu->insertSeparator(); 125// customDirMenu->insertSeparator();
125 126
126 QHBoxLayout *CBHB = new QHBoxLayout(); // parent layout will be set later 127 QHBoxLayout *CBHB = new QHBoxLayout(); // parent layout will be set later
127 CBHB->setMargin( 0 ); 128 CBHB->setMargin( 0 );
128 CBHB->setSpacing( 1 ); 129 CBHB->setSpacing( 1 );
129 130
130 menuButton = new MenuButton( this ); 131 menuButton = new MenuButton( this );
131 132
132 menuButton->setUseLabel(false); 133 menuButton->setUseLabel(false);
133 menuButton->setMaximumWidth( 20 ); 134 menuButton->setMaximumWidth( 20 );
134 menuButton->insertItem( s_addBookmark); 135 menuButton->insertItem( s_addBookmark);
135 menuButton->insertItem( s_removeBookmark); 136 menuButton->insertItem( s_removeBookmark);
136 menuButton->insertSeparator(); 137 menuButton->insertSeparator();