summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/apps/advancedfm/advancedfm.cpp19
-rw-r--r--noncore/apps/advancedfm/advancedfm.h3
-rw-r--r--noncore/apps/advancedfm/advancedfmMenu.cpp5
3 files changed, 18 insertions, 9 deletions
diff --git a/noncore/apps/advancedfm/advancedfm.cpp b/noncore/apps/advancedfm/advancedfm.cpp
index d56e746..bb7f346 100644
--- a/noncore/apps/advancedfm/advancedfm.cpp
+++ b/noncore/apps/advancedfm/advancedfm.cpp
@@ -1,501 +1,510 @@
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 <opie/otabwidget.h> 15#include <opie/otabwidget.h>
16// #include <opie/ofileselector.h> 16// #include <opie/ofileselector.h>
17// #include <opie/ofiledialog.h> 17// #include <opie/ofiledialog.h>
18 18
19#include <qpe/config.h> 19#include <qpe/config.h>
20#include <qpe/filemanager.h> 20#include <qpe/filemanager.h>
21#include <qpe/qcopenvelope_qws.h> 21#include <qpe/qcopenvelope_qws.h>
22#include <qpe/qpemenubar.h> 22#include <qpe/qpemenubar.h>
23#include <qpe/qpetoolbar.h> 23#include <qpe/qpetoolbar.h>
24#include <qpe/qpeapplication.h> 24#include <qpe/qpeapplication.h>
25#include <qpe/qcopenvelope_qws.h> 25#include <qpe/qcopenvelope_qws.h>
26#include <qpe/config.h> 26#include <qpe/config.h>
27#include <qpe/mimetype.h> 27#include <qpe/mimetype.h>
28#include <qpe/applnk.h> 28#include <qpe/applnk.h>
29#include <qpe/ir.h> 29#include <qpe/ir.h>
30#include <qpe/resource.h> 30#include <qpe/resource.h>
31#include <qpe/menubutton.h> 31#include <qpe/menubutton.h>
32 32
33 33
34#include <qregexp.h> 34#include <qregexp.h>
35#include <qtabwidget.h> 35#include <qtabwidget.h>
36#include <qtextstream.h> 36#include <qtextstream.h>
37#include <qpushbutton.h> 37#include <qpushbutton.h>
38#include <qdatetime.h> 38#include <qdatetime.h>
39#include <qdir.h> 39#include <qdir.h>
40#include <qfile.h> 40#include <qfile.h>
41#include <qstring.h> 41#include <qstring.h>
42#include <qcombobox.h> 42#include <qcombobox.h>
43#include <qpopupmenu.h> 43#include <qpopupmenu.h>
44#include <qlistview.h> 44#include <qlistview.h>
45#include <qmainwindow.h> 45#include <qmainwindow.h>
46#include <qlabel.h> 46#include <qlabel.h>
47#include <qprogressbar.h> 47#include <qprogressbar.h>
48#include <qspinbox.h> 48#include <qspinbox.h>
49#include <qwidget.h> 49#include <qwidget.h>
50#include <qlayout.h> 50#include <qlayout.h>
51#include <qimage.h> 51#include <qimage.h>
52#include <qpixmap.h> 52#include <qpixmap.h>
53#include <qmessagebox.h> 53#include <qmessagebox.h>
54#include <qlineedit.h> 54#include <qlineedit.h>
55#include <qregexp.h> 55#include <qregexp.h>
56 56
57#include <unistd.h> 57#include <unistd.h>
58#include <stdlib.h> 58#include <stdlib.h>
59#include <sys/stat.h> 59#include <sys/stat.h>
60#include <dirent.h> 60#include <dirent.h>
61#include <stdio.h> 61#include <stdio.h>
62#include <time.h> 62#include <time.h>
63#include <fcntl.h> 63#include <fcntl.h>
64#include <mntent.h> 64#include <mntent.h>
65#include <string.h> 65#include <string.h>
66#include <errno.h> 66#include <errno.h>
67#include <sys/vfs.h> 67#include <sys/vfs.h>
68#include <mntent.h> 68#include <mntent.h>
69#include <sys/utsname.h> 69#include <sys/utsname.h>
70 70
71AdvancedFm::AdvancedFm( ) 71AdvancedFm::AdvancedFm( )
72 : QMainWindow( ) { 72 : QMainWindow( ) {
73 init(); 73 init();
74 renameBox = 0; 74 renameBox = 0;
75 75
76 initConnections(); 76 initConnections();
77 TabWidget->setCurrentTab(1); 77 whichTab=1;
78 populateView(); 78 rePopulate();
79 TabWidget->setCurrentTab(0);
80 populateView();
81 currentPathCombo->setFocus(); 79 currentPathCombo->setFocus();
82} 80}
83 81
84AdvancedFm::~AdvancedFm() { 82AdvancedFm::~AdvancedFm() {
85} 83}
86 84
87 85
88void AdvancedFm::cleanUp() 86void AdvancedFm::cleanUp()
89{ 87{
90 QString sfile=QDir::homeDirPath(); 88 QString sfile=QDir::homeDirPath();
91 if(sfile.right(1) != "/") 89 if(sfile.right(1) != "/")
92 sfile+="/._temp"; 90 sfile+="/._temp";
93 else 91 else
94 sfile+="._temp"; 92 sfile+="._temp";
95 QFile file( sfile); 93 QFile file( sfile);
96 if(file.exists()) 94 if(file.exists())
97 file.remove(); 95 file.remove();
98} 96}
99 97
100void AdvancedFm::tabChanged(QWidget *w) 98void AdvancedFm::tabChanged(QWidget *w)
101{ 99{
102 if( w == tab) 100 if( w == tab)
103 whichTab = 1; 101 whichTab = 1;
104 else 102 else
105 whichTab = 2; 103 whichTab = 2;
106 104
107 //qDebug("tab changed %d", whichTab ); 105 //qDebug("tab changed %d", whichTab );
108 106
109 QString path = CurrentDir()->canonicalPath(); 107 QString path = CurrentDir()->canonicalPath();
110 currentPathCombo->lineEdit()->setText( path ); 108 currentPathCombo->lineEdit()->setText( path );
111 109
112 viewMenu->setItemChecked(viewMenu->idAt(0),TRUE); 110 viewMenu->setItemChecked(viewMenu->idAt(0),TRUE);
113 viewMenu->setItemChecked(viewMenu->idAt(1),FALSE); 111 viewMenu->setItemChecked(viewMenu->idAt(1),FALSE);
114 112
115 QString fs= getFileSystemType( (const QString &) path); 113 QString fs= getFileSystemType( (const QString &) path);
116 114
117 setCaption("AdvancedFm :: "+fs+" :: " 115 setCaption("AdvancedFm :: "+fs+" :: "
118 +checkDiskSpace( (const QString &) path )+ " kB free" ); 116 +checkDiskSpace( (const QString &) path )+ " kB free" );
119 chdir( path.latin1()); 117 chdir( path.latin1());
120 //2populateView();
121} 118}
122 119
123 120
124void AdvancedFm::populateView() 121void AdvancedFm::populateView()
125{ 122{
126 QPixmap pm; 123 QPixmap pm;
127 QListView *thisView = CurrentView(); 124 QListView *thisView = CurrentView();
128 QDir *thisDir = CurrentDir(); 125 QDir *thisDir = CurrentDir();
129 QString path = thisDir->canonicalPath(); 126 QString path = thisDir->canonicalPath();
130 127
131 thisView->clear(); 128 thisView->clear();
132 thisDir->setSorting(/* QDir::Size*/ /*| QDir::Reversed | */QDir::DirsFirst); 129 thisDir->setSorting(/* QDir::Size*/ /*| QDir::Reversed | */QDir::DirsFirst);
133 thisDir->setMatchAllDirs(TRUE); 130 thisDir->setMatchAllDirs(TRUE);
134 thisDir->setNameFilter(filterStr); 131 thisDir->setNameFilter(filterStr);
135 QString fileL, fileS, fileDate; 132 QString fileL, fileS, fileDate;
136 QString fs= getFileSystemType((const QString &) path); 133 QString fs= getFileSystemType((const QString &) path);
137 setCaption("AdvancedFm :: "+fs+" :: " 134 setCaption("AdvancedFm :: "+fs+" :: "
138 +checkDiskSpace((const QString &) path)+" kB free" ); 135 +checkDiskSpace((const QString &) path)+" kB free" );
139 bool isDir=FALSE; 136 bool isDir=FALSE;
140 const QFileInfoList *list = thisDir->entryInfoList( /*QDir::All*/ /*, QDir::SortByMask*/); 137 const QFileInfoList *list = thisDir->entryInfoList( /*QDir::All*/ /*, QDir::SortByMask*/);
141 QFileInfoListIterator it(*list); 138 QFileInfoListIterator it(*list);
142 QFileInfo *fi; 139 QFileInfo *fi;
143 while ( (fi=it.current()) ) 140 while ( (fi=it.current()) )
144 { 141 {
145 if (fi->isSymLink() ) 142 if (fi->isSymLink() )
146 { 143 {
147 QString symLink=fi->readLink(); 144 QString symLink=fi->readLink();
148 QFileInfo sym( symLink); 145 QFileInfo sym( symLink);
149 fileS.sprintf( "%10i", sym.size() ); 146 fileS.sprintf( "%10i", sym.size() );
150 fileL.sprintf( "%s -> %s", fi->fileName().data(),sym.filePath().data() ); 147 fileL.sprintf( "%s -> %s", fi->fileName().data(),sym.filePath().data() );
151 fileDate = sym.lastModified().toString(); 148 fileDate = sym.lastModified().toString();
152 } 149 }
153 else 150 else
154 { 151 {
155 fileS.sprintf( "%10i", fi->size() ); 152 fileS.sprintf( "%10i", fi->size() );
156 fileL.sprintf( "%s",fi->fileName().data() ); 153 fileL.sprintf( "%s",fi->fileName().data() );
157 fileDate= fi->lastModified().toString(); 154 fileDate= fi->lastModified().toString();
158 if( QDir(QDir::cleanDirPath( path +"/"+fileL)).exists() ) 155 if( QDir(QDir::cleanDirPath( path +"/"+fileL)).exists() )
159 { 156 {
160 fileL+="/"; 157 fileL+="/";
161 isDir=TRUE; 158 isDir=TRUE;
162 } 159 }
163 } 160 }
164 161
165 QFileInfo fileInfo( path + "/" + fileL); 162 QFileInfo fileInfo( path + "/" + fileL);
166 163
167 if(fileL !="./" && fi->exists()) 164 if(fileL !="./" && fi->exists())
168 { 165 {
169 item= new QListViewItem( thisView, fileL, fileS , fileDate); 166 item= new QListViewItem( thisView, fileL, fileS , fileDate);
170 167
171 if(isDir || fileL.find("/",0,TRUE) != -1) 168 if(isDir || fileL.find("/",0,TRUE) != -1)
172 { 169 {
173 170
174 if( !QDir( fi->filePath() ).isReadable()) //is directory 171 if( !QDir( fi->filePath() ).isReadable()) //is directory
175 pm = Resource::loadPixmap( "lockedfolder" ); 172 pm = Resource::loadPixmap( "lockedfolder" );
176 else 173 else
177 pm= Resource::loadPixmap( "folder" ); 174 pm= Resource::loadPixmap( "folder" );
178 } 175 }
179 else if ( fs == "vfat" && fileInfo.filePath().contains("/bin") ) 176 else if ( fs == "vfat" && fileInfo.filePath().contains("/bin") )
180 { 177 {
181 pm = Resource::loadPixmap( "exec"); 178 pm = Resource::loadPixmap( "exec");
182 } 179 }
183 else if( (fileInfo.permission( QFileInfo::ExeUser) 180 else if( (fileInfo.permission( QFileInfo::ExeUser)
184 | fileInfo.permission( QFileInfo::ExeGroup) 181 | fileInfo.permission( QFileInfo::ExeGroup)
185 | fileInfo.permission( QFileInfo::ExeOther)) && fs != "vfat" ) 182 | fileInfo.permission( QFileInfo::ExeOther)) && fs != "vfat" )
186 { 183 {
187 pm = Resource::loadPixmap( "exec"); 184 pm = Resource::loadPixmap( "exec");
188 } 185 }
189 else if( !fi->isReadable() ) 186 else if( !fi->isReadable() )
190 { 187 {
191 pm = Resource::loadPixmap( "locked" ); 188 pm = Resource::loadPixmap( "locked" );
192 } 189 }
193 else { //everything else goes by mimetype 190 else { //everything else goes by mimetype
194 MimeType mt(fi->filePath()); 191 MimeType mt(fi->filePath());
195 pm=mt.pixmap(); //sets the correct pixmap for mimetype 192 pm=mt.pixmap(); //sets the correct pixmap for mimetype
196 if(pm.isNull()) 193 if(pm.isNull())
197 pm = Resource::loadPixmap( "UnknownDocument-14" ); 194 pm = Resource::loadPixmap( "UnknownDocument-14" );
198 } 195 }
199 item->setPixmap( 0,pm); 196 item->setPixmap( 0,pm);
200 if( fi->isSymLink() && fileL.find("->",0,TRUE) != -1) 197 if( fi->isSymLink() && fileL.find("->",0,TRUE) != -1)
201 { 198 {
202 // overlay link image 199 // overlay link image
203 pm= Resource::loadPixmap( "folder" ); 200 pm= Resource::loadPixmap( "folder" );
204 QPixmap lnk = Resource::loadPixmap( "opie/symlink" ); 201 QPixmap lnk = Resource::loadPixmap( "opie/symlink" );
205 QPainter painter( &pm ); 202 QPainter painter( &pm );
206 painter.drawPixmap( pm.width()-lnk.width(), pm.height()-lnk.height(), lnk ); 203 painter.drawPixmap( pm.width()-lnk.width(), pm.height()-lnk.height(), lnk );
207 pm.setMask( pm.createHeuristicMask( FALSE ) ); 204 pm.setMask( pm.createHeuristicMask( FALSE ) );
208 item->setPixmap( 0, pm); 205 item->setPixmap( 0, pm);
209 } 206 }
210 } 207 }
211 isDir=FALSE; 208 isDir=FALSE;
212 ++it; 209 ++it;
213 } 210 }
214 211
215 if( path.find("dev",0,TRUE) != -1) 212 if( path.find("dev",0,TRUE) != -1)
216 { 213 {
217 struct stat buf; 214 struct stat buf;
218 dev_t devT; 215 dev_t devT;
219 DIR *dir; 216 DIR *dir;
220 struct dirent *mydirent; 217 struct dirent *mydirent;
221 218
222 if((dir = opendir( path.latin1())) != NULL) 219 if((dir = opendir( path.latin1())) != NULL)
223 while ((mydirent = readdir(dir)) != NULL) 220 while ((mydirent = readdir(dir)) != NULL)
224 { 221 {
225 lstat( mydirent->d_name, &buf); 222 lstat( mydirent->d_name, &buf);
226// qDebug(mydirent->d_name); 223// qDebug(mydirent->d_name);
227 fileL.sprintf("%s", mydirent->d_name); 224 fileL.sprintf("%s", mydirent->d_name);
228 devT = buf.st_dev; 225 devT = buf.st_dev;
229 fileS.sprintf("%d, %d", (int) ( devT >>8) &0xFF, (int)devT &0xFF); 226 fileS.sprintf("%d, %d", (int) ( devT >>8) &0xFF, (int)devT &0xFF);
230 fileDate.sprintf("%s", ctime( &buf.st_mtime)); 227 fileDate.sprintf("%s", ctime( &buf.st_mtime));
231 if( fileL.find(".") == -1 ) 228 if( fileL.find(".") == -1 )
232 { 229 {
233 item= new QListViewItem( thisView, fileL, fileS, fileDate); 230 item= new QListViewItem( thisView, fileL, fileS, fileDate);
234 pm = Resource::loadPixmap( "UnknownDocument-14" ); 231 pm = Resource::loadPixmap( "UnknownDocument-14" );
235 item->setPixmap( 0,pm); 232 item->setPixmap( 0,pm);
236 } 233 }
237 } 234 }
238 235
239 closedir(dir); 236 closedir(dir);
240 } 237 }
241 238
242 thisView->setSorting( 3,FALSE); 239 thisView->setSorting( 3,FALSE);
243 fillCombo( (const QString &) path ); 240 fillCombo( (const QString &) path );
244} 241}
245 242
243void AdvancedFm::rePopulate()
244{
245 int tmpTab = whichTab;
246 qDebug("%d", tmpTab);
247
248 for(int i =1; i < 3; i++)
249 {
250 TabWidget->setCurrentTab(i - 1);
251 populateView();
252 }
253 TabWidget->setCurrentTab( tmpTab - 1);
254}
246 255
247void AdvancedFm::ListClicked(QListViewItem *selectedItem) 256void AdvancedFm::ListClicked(QListViewItem *selectedItem)
248{ 257{
249 if(selectedItem) 258 if(selectedItem)
250 { 259 {
251 QString strItem=selectedItem->text(0); 260 QString strItem=selectedItem->text(0);
252 QString strSize=selectedItem->text(1); 261 QString strSize=selectedItem->text(1);
253 strSize=strSize.stripWhiteSpace(); 262 strSize=strSize.stripWhiteSpace();
254 bool isDirectory = false; 263 bool isDirectory = false;
255 QString strItem2; 264 QString strItem2;
256 265
257 if(strItem.find("@",0,TRUE) !=-1 || strItem.find("->",0,TRUE) !=-1 )//if symlink 266 if(strItem.find("@",0,TRUE) !=-1 || strItem.find("->",0,TRUE) !=-1 )//if symlink
258 { 267 {
259 strItem2 = dealWithSymName((const QString&)strItem); 268 strItem2 = dealWithSymName((const QString&)strItem);
260 if(QDir(strItem2).exists() ) 269 if(QDir(strItem2).exists() )
261 strItem = strItem2; 270 strItem = strItem2;
262 } 271 }
263 272
264 if( strItem.find(". .",0,TRUE) && strItem.find("/",0,TRUE)!=-1 ) 273 if( strItem.find(". .",0,TRUE) && strItem.find("/",0,TRUE)!=-1 )
265 { 274 {
266 275
267 if(QDir(strItem).exists()) 276 if(QDir(strItem).exists())
268 isDirectory = true; 277 isDirectory = true;
269 } 278 }
270 279
271 if( isDirectory ) 280 if( isDirectory )
272 { 281 {
273 CurrentDir()->cd( strItem, TRUE); 282 CurrentDir()->cd( strItem, TRUE);
274 populateView(); 283 populateView();
275 CurrentView()->ensureItemVisible( CurrentView()->firstChild()); 284 CurrentView()->ensureItemVisible( CurrentView()->firstChild());
276 } 285 }
277 chdir( strItem.latin1()); 286 chdir( strItem.latin1());
278 } 287 }
279} 288}
280 289
281void AdvancedFm::ListPressed( int mouse, QListViewItem *, const QPoint& , int ) { 290void AdvancedFm::ListPressed( int mouse, QListViewItem *, const QPoint& , int ) {
282 switch (mouse) { 291 switch (mouse) {
283 case 1: 292 case 1:
284 { 293 {
285 if(renameBox != 0 ) 294 if(renameBox != 0 )
286 { 295 {
287 cancelRename(); 296 cancelRename();
288 } 297 }
289 } 298 }
290 break; 299 break;
291 case 2: 300 case 2:
292 menuTimer.start( 500, TRUE ); 301 menuTimer.start( 500, TRUE );
293 break; 302 break;
294 }; 303 };
295} 304}
296 305
297void AdvancedFm::switchToLocalTab() 306void AdvancedFm::switchToLocalTab()
298{ 307{
299 TabWidget->setCurrentTab(0); 308 TabWidget->setCurrentTab(0);
300 Local_View->setFocus(); 309 Local_View->setFocus();
301} 310}
302 311
303void AdvancedFm::switchToRemoteTab() 312void AdvancedFm::switchToRemoteTab()
304{ 313{
305 TabWidget->setCurrentTab(1); 314 TabWidget->setCurrentTab(1);
306 Remote_View->setFocus(); 315 Remote_View->setFocus();
307} 316}
308 317
309void AdvancedFm::readConfig() 318void AdvancedFm::readConfig()
310{ 319{
311 Config cfg("AdvancedFm"); 320 Config cfg("AdvancedFm");
312} 321}
313 322
314void AdvancedFm::writeConfig() 323void AdvancedFm::writeConfig()
315{ 324{
316 Config cfg("AdvancedFm"); 325 Config cfg("AdvancedFm");
317} 326}
318 327
319void AdvancedFm::currentPathComboChanged() 328void AdvancedFm::currentPathComboChanged()
320{ 329{
321 if(QDir( currentPathCombo->lineEdit()->text()).exists()) 330 if(QDir( currentPathCombo->lineEdit()->text()).exists())
322 { 331 {
323 CurrentDir()->setPath( currentPathCombo->lineEdit()->text() ); 332 CurrentDir()->setPath( currentPathCombo->lineEdit()->text() );
324 populateView(); 333 populateView();
325 } 334 }
326 else 335 else
327 { 336 {
328 QMessageBox::message(tr("Note"),tr("That directory does not exist")); 337 QMessageBox::message(tr("Note"),tr("That directory does not exist"));
329 } 338 }
330} 339}
331 340
332void AdvancedFm::fillCombo(const QString &currentPath) 341void AdvancedFm::fillCombo(const QString &currentPath)
333{ 342{
334// qDebug("%d",TabWidget->getCurrentTab()); 343// qDebug("%d",TabWidget->getCurrentTab());
335 if ( whichTab == 1) 344 if ( whichTab == 1)
336 { 345 {
337 currentPathCombo->lineEdit()->setText( currentPath); 346 currentPathCombo->lineEdit()->setText( currentPath);
338 if( localDirPathStringList.grep( currentPath,TRUE).isEmpty() ) 347 if( localDirPathStringList.grep( currentPath,TRUE).isEmpty() )
339 { 348 {
340 currentPathCombo->clear(); 349 currentPathCombo->clear();
341 localDirPathStringList.prepend( currentPath ); 350 localDirPathStringList.prepend( currentPath );
342 currentPathCombo->insertStringList( localDirPathStringList,-1); 351 currentPathCombo->insertStringList( localDirPathStringList,-1);
343 } 352 }
344 } 353 }
345 else 354 else
346 { 355 {
347 currentPathCombo->lineEdit()->setText( currentPath); 356 currentPathCombo->lineEdit()->setText( currentPath);
348 if( remoteDirPathStringList.grep( currentPath,TRUE).isEmpty() ) 357 if( remoteDirPathStringList.grep( currentPath,TRUE).isEmpty() )
349 { 358 {
350 currentPathCombo->clear(); 359 currentPathCombo->clear();
351 remoteDirPathStringList.prepend( currentPath ); 360 remoteDirPathStringList.prepend( currentPath );
352 currentPathCombo->insertStringList( remoteDirPathStringList,-1); 361 currentPathCombo->insertStringList( remoteDirPathStringList,-1);
353 } 362 }
354 } 363 }
355} 364}
356 365
357void AdvancedFm::currentPathComboActivated(const QString & currentPath) 366void AdvancedFm::currentPathComboActivated(const QString & currentPath)
358{ 367{
359 chdir( currentPath.latin1() ); 368 chdir( currentPath.latin1() );
360 CurrentDir()->cd( currentPath, TRUE); 369 CurrentDir()->cd( currentPath, TRUE);
361 populateView(); 370 populateView();
362 update(); 371 update();
363} 372}
364 373
365QStringList AdvancedFm::getPath() 374QStringList AdvancedFm::getPath()
366{ 375{
367 QStringList strList; 376 QStringList strList;
368 QListView *thisView=CurrentView(); 377 QListView *thisView=CurrentView();
369 QList<QListViewItem> * getSelectedItems( QListView * thisView ); 378 QList<QListViewItem> * getSelectedItems( QListView * thisView );
370 QListViewItemIterator it( thisView ); 379 QListViewItemIterator it( thisView );
371 for ( ; it.current(); ++it ) 380 for ( ; it.current(); ++it )
372 { 381 {
373 if ( it.current()->isSelected() ) 382 if ( it.current()->isSelected() )
374 { 383 {
375 strList << it.current()->text(0); 384 strList << it.current()->text(0);
376// qDebug(it.current()->text(0)); 385// qDebug(it.current()->text(0));
377 } 386 }
378 } 387 }
379 return strList; 388 return strList;
380} 389}
381 390
382void AdvancedFm::homeButtonPushed() 391void AdvancedFm::homeButtonPushed()
383{ 392{
384 QString current = QDir::homeDirPath(); 393 QString current = QDir::homeDirPath();
385 chdir( current.latin1() ); 394 chdir( current.latin1() );
386 CurrentDir()->cd( current, TRUE); 395 CurrentDir()->cd( current, TRUE);
387 populateView(); 396 populateView();
388 update(); 397 update();
389} 398}
390 399
391void AdvancedFm::docButtonPushed() 400void AdvancedFm::docButtonPushed()
392{ 401{
393 QString current = QPEApplication::documentDir(); 402 QString current = QPEApplication::documentDir();
394 chdir( current.latin1() ); 403 chdir( current.latin1() );
395 CurrentDir()->cd( current, TRUE); 404 CurrentDir()->cd( current, TRUE);
396 populateView(); 405 populateView();
397 update(); 406 update();
398} 407}
399 408
400void AdvancedFm::SDButtonPushed() 409void AdvancedFm::SDButtonPushed()
401{ 410{
402 QString current = "/mnt/card";// this can change so fix 411 QString current = "/mnt/card";// this can change so fix
403 chdir( current.latin1() ); 412 chdir( current.latin1() );
404 CurrentDir()->cd( current, TRUE); 413 CurrentDir()->cd( current, TRUE);
405 populateView(); 414 populateView();
406 update(); 415 update();
407} 416}
408 417
409void AdvancedFm::CFButtonPushed() 418void AdvancedFm::CFButtonPushed()
410{ 419{
411 QString current; 420 QString current;
412 if(zaurusDevice) 421 if(zaurusDevice)
413 current= "/mnt/cf"; //zaurus 422 current= "/mnt/cf"; //zaurus
414 else 423 else
415 current = "/mnt/hda"; //ipaq 424 current = "/mnt/hda"; //ipaq
416 chdir( current.latin1() ); 425 chdir( current.latin1() );
417 CurrentDir()->cd( current, TRUE); 426 CurrentDir()->cd( current, TRUE);
418 populateView(); 427 populateView();
419 update(); 428 update();
420} 429}
421 430
422 431
423void AdvancedFm::doAbout() 432void AdvancedFm::doAbout()
424{ 433{
425 QMessageBox::message("AdvancedFm",tr("Advanced FileManager\n" 434 QMessageBox::message("AdvancedFm",tr("Advanced FileManager\n"
426 "is copyright 2002-2003 by\n" 435 "is copyright 2002-2003 by\n"
427 "L.J.Potter<llornkcor@handhelds.org>\n" 436 "L.J.Potter<llornkcor@handhelds.org>\n"
428 "and is licensed by the GPL")); 437 "and is licensed by the GPL"));
429} 438}
430 439
431void AdvancedFm::keyPressEvent( QKeyEvent *e) 440void AdvancedFm::keyPressEvent( QKeyEvent *e)
432{ 441{
433// e->accept(); 442// e->accept();
434 if( CurrentView()->hasFocus() ) 443 if( CurrentView()->hasFocus() )
435 { 444 {
436 switch ( e->key() ) { 445 switch ( e->key() ) {
437 case Key_Delete: 446 case Key_Delete:
438 del(); 447 del();
439 break; 448 break;
440 case Key_A: 449 case Key_A:
441 copyAs(); 450 copyAs();
442 break; 451 break;
443 case Key_C: 452 case Key_C:
444 copy(); 453 copy();
445 break; 454 break;
446 case Key_E: 455 case Key_E:
447 runThis(); 456 runThis();
448 break; 457 break;
449 case Key_G: 458 case Key_G:
450 { 459 {
451 currentPathCombo->lineEdit()->setFocus(); 460 currentPathCombo->lineEdit()->setFocus();
452 } 461 }
453 break; 462 break;
454 463
455 case Key_H: 464 case Key_H:
456 showHidden(); 465 showHidden();
457 break; 466 break;
458 case Key_I: 467 case Key_I:
459 fileStatus(); 468 fileStatus();
460 break; 469 break;
461 case Key_M: 470 case Key_M:
462 move(); 471 move();
463 break; 472 break;
464 case Key_N: 473 case Key_N:
465 mkDir(); 474 mkDir();
466 break; 475 break;
467 case Key_P: 476 case Key_P:
468 filePerms(); 477 filePerms();
469 break; 478 break;
470 case Key_R: 479 case Key_R:
471 rn(); 480 rn();
472 break; 481 break;
473 case Key_U: 482 case Key_U:
474 upDir(); 483 upDir();
475 break; 484 break;
476 case Key_1: 485 case Key_1:
477 switchToLocalTab(); 486 switchToLocalTab();
478 break; 487 break;
479 case Key_2: 488 case Key_2:
480 switchToRemoteTab(); 489 switchToRemoteTab();
481 break; 490 break;
482 case Key_3: 491 case Key_3:
483 CFButtonPushed(); 492 CFButtonPushed();
484 break; 493 break;
485 case Key_4: 494 case Key_4:
486 SDButtonPushed(); 495 SDButtonPushed();
487 break; 496 break;
488 case Key_5: 497 case Key_5:
489 homeButtonPushed(); 498 homeButtonPushed();
490 break; 499 break;
491 case Key_6: 500 case Key_6:
492 docButtonPushed(); 501 docButtonPushed();
493 break; 502 break;
494 case Key_7: 503 case Key_7:
495 break; 504 break;
496 case Key_8: 505 case Key_8:
497 break; 506 break;
498 case Key_9: 507 case Key_9:
499 break; 508 break;
500 case Key_0: 509 case Key_0:
501 break; 510 break;
diff --git a/noncore/apps/advancedfm/advancedfm.h b/noncore/apps/advancedfm/advancedfm.h
index 024ab29..3250a66 100644
--- a/noncore/apps/advancedfm/advancedfm.h
+++ b/noncore/apps/advancedfm/advancedfm.h
@@ -1,169 +1,170 @@
1/*************************************************************************** 1/***************************************************************************
2 advancedfm.h 2 advancedfm.h
3 ------------------- 3 -------------------
4 ** Created: Sat Mar 9 23:33:09 2002 4 ** Created: Sat Mar 9 23:33:09 2002
5 copyright : (C) 2002 by ljp 5 copyright : (C) 2002 by ljp
6 email : ljp@llornkcor.com 6 email : ljp@llornkcor.com
7 * This program is free software; you can redistribute it and/or modify * 7 * This program is free software; you can redistribute it and/or modify *
8 * it under the terms of the GNU General Public License as published by * 8 * it under the terms of the GNU General Public License as published by *
9 * the Free Software Foundation; either version 2 of the License, or * 9 * the Free Software Foundation; either version 2 of the License, or *
10 * (at your option) any later version. * 10 * (at your option) any later version. *
11 ***************************************************************************/ 11 ***************************************************************************/
12#ifndef ADVANCEDFM_H 12#ifndef ADVANCEDFM_H
13#define ADVANCEDFM_H 13#define ADVANCEDFM_H
14#define QTOPIA_INTERNAL_FSLP // to get access to fileproperties 14#define QTOPIA_INTERNAL_FSLP // to get access to fileproperties
15#define QT_QWS_OPIE 15#define QT_QWS_OPIE
16 16
17//#include <opie/otabwidget.h> 17//#include <opie/otabwidget.h>
18#include <qpe/ir.h> 18#include <qpe/ir.h>
19 19
20#include <qvariant.h> 20#include <qvariant.h>
21#include <qdialog.h> 21#include <qdialog.h>
22#include <qmainwindow.h> 22#include <qmainwindow.h>
23#include <qstringlist.h> 23#include <qstringlist.h>
24#include <qdir.h> 24#include <qdir.h>
25#include <qstring.h> 25#include <qstring.h>
26#include <qpoint.h> 26#include <qpoint.h>
27#include <qtimer.h> 27#include <qtimer.h>
28 28
29class OTabWidget; 29class OTabWidget;
30class QVBoxLayout; 30class QVBoxLayout;
31class QHBoxLayout; 31class QHBoxLayout;
32class QGridLayout; 32class QGridLayout;
33class QComboBox; 33class QComboBox;
34class QListView; 34class QListView;
35class QListviewItem; 35class QListviewItem;
36class QLabel; 36class QLabel;
37class QProgressBar; 37class QProgressBar;
38class QSpinBox; 38class QSpinBox;
39class QTabWidget; 39class QTabWidget;
40class QWidget; 40class QWidget;
41class QPEToolBar; 41class QPEToolBar;
42class QPEMenuBar; 42class QPEMenuBar;
43class QPopupMenu; 43class QPopupMenu;
44class QFile; 44class QFile;
45class QListViewItem; 45class QListViewItem;
46class QLineEdit; 46class QLineEdit;
47class MenuButton; 47class MenuButton;
48 48
49//class QPushButton; 49//class QPushButton;
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 AdvancedFm(); 57 AdvancedFm();
58 ~AdvancedFm(); 58 ~AdvancedFm();
59protected slots: 59protected slots:
60 void selectAll(); 60 void selectAll();
61 void addToDocs(); 61 void addToDocs();
62 void doDirChange(); 62 void doDirChange();
63 void mkDir(); 63 void mkDir();
64 void del(); 64 void del();
65 void rn(); 65 void rn();
66 void populateView(); 66 void populateView();
67 void rePopulate();
67 void showHidden(); 68 void showHidden();
68 void showMenuHidden(); 69 void showMenuHidden();
69 void writeConfig(); 70 void writeConfig();
70 void readConfig(); 71 void readConfig();
71 void ListClicked(QListViewItem *); 72 void ListClicked(QListViewItem *);
72 void ListPressed( int, QListViewItem *, const QPoint&, int); 73 void ListPressed( int, QListViewItem *, const QPoint&, int);
73 void makeDir(); 74 void makeDir();
74 void doDelete(); 75 void doDelete();
75 void tabChanged(QWidget*); 76 void tabChanged(QWidget*);
76 void cleanUp(); 77 void cleanUp();
77 void renameIt(); 78 void renameIt();
78 void runThis(); 79 void runThis();
79 void runText(); 80 void runText();
80 void filePerms(); 81 void filePerms();
81 void doProperties(); 82 void doProperties();
82 void runCommand(); 83 void runCommand();
83 void runCommandStd(); 84 void runCommandStd();
84 QStringList getPath(); 85 QStringList getPath();
85 void mkSym(); 86 void mkSym();
86 void switchToLocalTab(); 87 void switchToLocalTab();
87 void switchToRemoteTab(); 88 void switchToRemoteTab();
88 89
89protected: 90protected:
90 91
91 OTabWidget *TabWidget; 92 OTabWidget *TabWidget;
92 int whichTab; 93 int whichTab;
93// QTabWidget *TabWidget; 94// QTabWidget *TabWidget;
94 QWidget *tab, *tab_2, *tab_3; 95 QWidget *tab, *tab_2, *tab_3;
95 QListView *Local_View, *Remote_View; 96 QListView *Local_View, *Remote_View;
96 97
97 QLineEdit *currentPathEdit; 98 QLineEdit *currentPathEdit;
98 QPopupMenu *fileMenu, *localMenu, *remoteMenu, *viewMenu /*, *customDirMenu*/; 99 QPopupMenu *fileMenu, *localMenu, *remoteMenu, *viewMenu /*, *customDirMenu*/;
99 QToolButton *homeButton, *docButton, *cdUpButton, *sdButton, *cfButton, *qpeDirButton; 100 QToolButton *homeButton, *docButton, *cdUpButton, *sdButton, *cfButton, *qpeDirButton;
100// QPushButton *homeButton, *docButton, *cdUpButton, *sdButton, *cfButton, *qpeDirButton; 101// QPushButton *homeButton, *docButton, *cdUpButton, *sdButton, *cfButton, *qpeDirButton;
101 QDir currentDir, currentRemoteDir; 102 QDir currentDir, currentRemoteDir;
102 QComboBox *currentPathCombo; 103 QComboBox *currentPathCombo;
103 QString filterStr, s_addBookmark, s_removeBookmark; 104 QString filterStr, s_addBookmark, s_removeBookmark;
104 QListViewItem * item; 105 QListViewItem * item;
105 bool b; 106 bool b;
106 QStringList fileSystemTypeList, fsList; 107 QStringList fileSystemTypeList, fsList;
107 int currentServerConfig; 108 int currentServerConfig;
108 bool zaurusDevice; 109 bool zaurusDevice;
109 QGridLayout *tabLayout, *tabLayout_2, *tabLayout_3; 110 QGridLayout *tabLayout, *tabLayout_2, *tabLayout_3;
110 QStringList remoteDirPathStringList, localDirPathStringList; 111 QStringList remoteDirPathStringList, localDirPathStringList;
111 QLineEdit *renameBox; 112 QLineEdit *renameBox;
112 113
113 void init(); 114 void init();
114 void initConnections(); 115 void initConnections();
115 void keyReleaseEvent( QKeyEvent *); 116 void keyReleaseEvent( QKeyEvent *);
116 void keyPressEvent( QKeyEvent *); 117 void keyPressEvent( QKeyEvent *);
117 QString getFileSystemType(const QString &); 118 QString getFileSystemType(const QString &);
118 QString getDiskSpace(const QString &); 119 QString getDiskSpace(const QString &);
119 void parsetab(const QString &fileName); 120 void parsetab(const QString &fileName);
120 QString checkDiskSpace(const QString &); 121 QString checkDiskSpace(const QString &);
121 QString dealWithSymName(const QString &); 122 QString dealWithSymName(const QString &);
122 QDir *CurrentDir(); 123 QDir *CurrentDir();
123 QDir *OtherDir(); 124 QDir *OtherDir();
124 QListView *CurrentView(); 125 QListView *CurrentView();
125 QListView *OtherView(); 126 QListView *OtherView();
126 void setOtherTabCurrent(); 127 void setOtherTabCurrent();
127 128
128protected slots: 129protected slots:
129 void dirMenuSelected(int); 130 void dirMenuSelected(int);
130 void showFileMenu(); 131 void showFileMenu();
131 void cancelMenuTimer(); 132 void cancelMenuTimer();
132 void homeButtonPushed(); 133 void homeButtonPushed();
133 void docButtonPushed(); 134 void docButtonPushed();
134 void SDButtonPushed(); 135 void SDButtonPushed();
135 void CFButtonPushed(); 136 void CFButtonPushed();
136 void QPEButtonPushed(); 137 void QPEButtonPushed();
137 void upDir(); 138 void upDir();
138 void currentPathComboChanged(); 139 void currentPathComboChanged();
139 void copy(); 140 void copy();
140 void copyAs(); 141 void copyAs();
141 void copySameDir(); 142 void copySameDir();
142 void currentPathComboActivated(const QString &); 143 void currentPathComboActivated(const QString &);
143 void fillCombo(const QString &); 144 void fillCombo(const QString &);
144 bool copyFile( const QString & , const QString & ); 145 bool copyFile( const QString & , const QString & );
145 void move(); 146 void move();
146 void fileStatus(); 147 void fileStatus();
147 void doAbout(); 148 void doAbout();
148 void doBeam(); 149 void doBeam();
149 void fileBeamFinished( Ir *); 150 void fileBeamFinished( Ir *);
150 151
151private: 152private:
152 MenuButton *menuButton; 153 MenuButton *menuButton;
153 QString oldName; 154 QString oldName;
154 QTimer menuTimer; 155 QTimer menuTimer;
155 void startProcess(const QString &); 156 void startProcess(const QString &);
156 bool eventFilter( QObject * , QEvent * ); 157 bool eventFilter( QObject * , QEvent * );
157 void cancelRename(); 158 void cancelRename();
158 void doRename(QListView *); 159 void doRename(QListView *);
159 void okRename(); 160 void okRename();
160 void customDirsToMenu(); 161 void customDirsToMenu();
161 void addCustomDir(); 162 void addCustomDir();
162 void removeCustomDir(); 163 void removeCustomDir();
163 164
164private slots: 165private slots:
165 void processEnded(); 166 void processEnded();
166 void gotoCustomDir(const QString &); 167 void gotoCustomDir(const QString &);
167}; 168};
168 169
169#endif // ADVANCEDFM_H 170#endif // ADVANCEDFM_H
diff --git a/noncore/apps/advancedfm/advancedfmMenu.cpp b/noncore/apps/advancedfm/advancedfmMenu.cpp
index f46503c..a82d69a 100644
--- a/noncore/apps/advancedfm/advancedfmMenu.cpp
+++ b/noncore/apps/advancedfm/advancedfmMenu.cpp
@@ -1,350 +1,349 @@
1/*************************************************************************** 1/***************************************************************************
2 AdvancedFm.cpp 2 AdvancedFm.cpp
3 ------------------- 3 -------------------
4 ** Created: Sat Mar 9 23:33:09 2002 4 ** Created: Sat Mar 9 23:33:09 2002
5 copyright : (C) 2002 by ljp 5 copyright : (C) 2002 by ljp
6 email : ljp@llornkcor.com 6 email : ljp@llornkcor.com
7 * This program is free software; you can redistribute it and/or modify * 7 * This program is free software; you can redistribute it and/or modify *
8 * it under the terms of the GNU General Public License as published by * 8 * it under the terms of the GNU General Public License as published by *
9 * the Free Software Foundation; either version 2 of the License, or * 9 * the Free Software Foundation; either version 2 of the License, or *
10 * (at your option) any later version. * 10 * (at your option) any later version. *
11 ***************************************************************************/ 11 ***************************************************************************/
12#include "advancedfm.h" 12#include "advancedfm.h"
13#include "output.h" 13#include "output.h"
14#include "filePermissions.h" 14#include "filePermissions.h"
15 15
16#include <opie/otabwidget.h> 16#include <opie/otabwidget.h>
17#include <opie/oprocess.h> 17#include <opie/oprocess.h>
18 18
19#include <qpe/lnkproperties.h> 19#include <qpe/lnkproperties.h>
20#include <qpe/qpeapplication.h> 20#include <qpe/qpeapplication.h>
21#include <qpe/qpemenubar.h> 21#include <qpe/qpemenubar.h>
22#include <qpe/qpetoolbar.h> 22#include <qpe/qpetoolbar.h>
23#include <qpe/resource.h> 23#include <qpe/resource.h>
24#include <qpe/qcopenvelope_qws.h> 24#include <qpe/qcopenvelope_qws.h>
25#include <qpe/applnk.h> 25#include <qpe/applnk.h>
26#include <qpe/ir.h> 26#include <qpe/ir.h>
27 27
28#include <qmessagebox.h> 28#include <qmessagebox.h>
29#include <qmultilineedit.h> 29#include <qmultilineedit.h>
30 30
31#include <qstring.h> 31#include <qstring.h>
32 32
33#include <qlayout.h> 33#include <qlayout.h>
34#include <qpixmap.h> 34#include <qpixmap.h>
35#include <qcombobox.h> 35#include <qcombobox.h>
36#include <qpopupmenu.h> 36#include <qpopupmenu.h>
37#include <qtabwidget.h> 37#include <qtabwidget.h>
38#include <qtoolbutton.h> 38#include <qtoolbutton.h>
39#include <qtabwidget.h> 39#include <qtabwidget.h>
40#include <qlineedit.h> 40#include <qlineedit.h>
41#include <qlistview.h> 41#include <qlistview.h>
42 42
43#include <stdlib.h> 43#include <stdlib.h>
44#include <unistd.h> 44#include <unistd.h>
45#include <sys/stat.h> 45#include <sys/stat.h>
46#include <dirent.h> 46#include <dirent.h>
47 47
48 48
49void AdvancedFm::doDirChange() 49void AdvancedFm::doDirChange()
50{ 50{
51 ListClicked( CurrentView()->currentItem()); 51 ListClicked( CurrentView()->currentItem());
52} 52}
53 53
54void AdvancedFm::showMenuHidden() 54void AdvancedFm::showMenuHidden()
55{ 55{
56 if (b) 56 if (b)
57 { 57 {
58 CurrentDir()->setFilter( QDir::Files | QDir::Dirs | QDir::Hidden | QDir::All); 58 CurrentDir()->setFilter( QDir::Files | QDir::Dirs | QDir::Hidden | QDir::All);
59 OtherDir()->setFilter( QDir::Files | QDir::Dirs | QDir::Hidden | QDir::All); 59 OtherDir()->setFilter( QDir::Files | QDir::Dirs | QDir::Hidden | QDir::All);
60 fileMenu->setItemChecked( fileMenu->idAt(0),TRUE); 60 fileMenu->setItemChecked( fileMenu->idAt(0),TRUE);
61// b=FALSE; 61// b=FALSE;
62 62
63 } 63 }
64 else 64 else
65 { 65 {
66 CurrentDir()->setFilter( QDir::Files | QDir::Dirs/* | QDir::Hidden*/ | QDir::All); 66 CurrentDir()->setFilter( QDir::Files | QDir::Dirs/* | QDir::Hidden*/ | QDir::All);
67 OtherDir()->setFilter( QDir::Files | QDir::Dirs/* | QDir::Hidden*/ | QDir::All); 67 OtherDir()->setFilter( QDir::Files | QDir::Dirs/* | QDir::Hidden*/ | QDir::All);
68 fileMenu->setItemChecked( fileMenu->idAt(0),FALSE); 68 fileMenu->setItemChecked( fileMenu->idAt(0),FALSE);
69// b=TRUE; 69// b=TRUE;
70 } 70 }
71 populateView(); 71 rePopulate();
72// populateRemoteView();
73// if(b) qDebug("<<<<<<<<<<<<<<<<<<<<<<<<<<<< true"); 72// if(b) qDebug("<<<<<<<<<<<<<<<<<<<<<<<<<<<< true");
74 if(b) b = false; else b = true; 73 if(b) b = false; else b = true;
75} 74}
76 75
77void AdvancedFm::showHidden() 76void AdvancedFm::showHidden()
78{ 77{
79 if (b) 78 if (b)
80 { 79 {
81 CurrentDir()->setFilter( QDir::Files | QDir::Dirs | QDir::Hidden | QDir::All); 80 CurrentDir()->setFilter( QDir::Files | QDir::Dirs | QDir::Hidden | QDir::All);
82 OtherDir()->setFilter( QDir::Files | QDir::Dirs | QDir::Hidden | QDir::All); 81 OtherDir()->setFilter( QDir::Files | QDir::Dirs | QDir::Hidden | QDir::All);
83// fileMenu->setItemChecked( fileMenu->idAt(0),TRUE); 82// fileMenu->setItemChecked( fileMenu->idAt(0),TRUE);
84// b=FALSE; 83// b=FALSE;
85 84
86 } 85 }
87 else 86 else
88 { 87 {
89 CurrentDir()->setFilter( QDir::Files | QDir::Dirs/* | QDir::Hidden*/ | QDir::All); 88 CurrentDir()->setFilter( QDir::Files | QDir::Dirs/* | QDir::Hidden*/ | QDir::All);
90 OtherDir()->setFilter( QDir::Files | QDir::Dirs/* | QDir::Hidden*/ | QDir::All); 89 OtherDir()->setFilter( QDir::Files | QDir::Dirs/* | QDir::Hidden*/ | QDir::All);
91// fileMenu->setItemChecked( fileMenu->idAt(0),FALSE); 90// fileMenu->setItemChecked( fileMenu->idAt(0),FALSE);
92// b=TRUE; 91// b=TRUE;
93 } 92 }
94 populateView(); 93 rePopulate();
95} 94}
96 95
97QString AdvancedFm::dealWithSymName(const QString &fileName) 96QString AdvancedFm::dealWithSymName(const QString &fileName)
98{ 97{
99 QString strItem = fileName; 98 QString strItem = fileName;
100 return strItem.right( (strItem.length() - strItem.find("->",0,TRUE)) - 4); 99 return strItem.right( (strItem.length() - strItem.find("->",0,TRUE)) - 4);
101} 100}
102 101
103void AdvancedFm::runThis() 102void AdvancedFm::runThis()
104{ 103{
105 QString fs; 104 QString fs;
106 QDir *thisDir = CurrentDir(); 105 QDir *thisDir = CurrentDir();
107 106
108 QString curFile = CurrentView()->currentItem()->text(0); 107 QString curFile = CurrentView()->currentItem()->text(0);
109 QString path = thisDir->canonicalPath(); 108 QString path = thisDir->canonicalPath();
110 109
111 if( curFile.find("@",0,TRUE) !=-1 || curFile.find("->",0,TRUE) !=-1 ) //if symlink 110 if( curFile.find("@",0,TRUE) !=-1 || curFile.find("->",0,TRUE) !=-1 ) //if symlink
112 111
113 curFile = dealWithSymName((const QString&)curFile); 112 curFile = dealWithSymName((const QString&)curFile);
114 113
115 if(curFile != "../") 114 if(curFile != "../")
116 { 115 {
117 116
118 fs = getFileSystemType((const QString &) path); 117 fs = getFileSystemType((const QString &) path);
119 QFileInfo fileInfo( path + "/" + curFile); 118 QFileInfo fileInfo( path + "/" + curFile);
120 qDebug( fileInfo.owner()); 119 qDebug( fileInfo.owner());
121 120
122 if( (fileInfo.permission( QFileInfo::ExeUser) 121 if( (fileInfo.permission( QFileInfo::ExeUser)
123 | fileInfo.permission( QFileInfo::ExeGroup) 122 | fileInfo.permission( QFileInfo::ExeGroup)
124 | fileInfo.permission( QFileInfo::ExeOther)) // & fs.find("vfat",0,TRUE) == -1) { 123 | fileInfo.permission( QFileInfo::ExeOther)) // & fs.find("vfat",0,TRUE) == -1) {
125 | fs == "vfat" && fileInfo.filePath().contains("/bin") ) { 124 | fs == "vfat" && fileInfo.filePath().contains("/bin") ) {
126 QCopEnvelope e("QPE/System", "execute(QString)" ); 125 QCopEnvelope e("QPE/System", "execute(QString)" );
127 e << curFile; 126 e << curFile;
128 } 127 }
129 else 128 else
130 { 129 {
131 curFile = path + "/" + curFile; 130 curFile = path + "/" + curFile;
132 DocLnk nf(curFile); 131 DocLnk nf(curFile);
133 QString execStr = nf.exec(); 132 QString execStr = nf.exec();
134 qDebug( execStr); 133 qDebug( execStr);
135 if( execStr.isEmpty() ) 134 if( execStr.isEmpty() )
136 { 135 {
137 } 136 }
138 else 137 else
139 { 138 {
140 nf.execute(); 139 nf.execute();
141 } 140 }
142 } 141 }
143 } 142 }
144} 143}
145 144
146void AdvancedFm::runText() 145void AdvancedFm::runText()
147{ 146{
148 QString curFile = CurrentView()->currentItem()->text(0); 147 QString curFile = CurrentView()->currentItem()->text(0);
149 if(curFile != "../") 148 if(curFile != "../")
150 { 149 {
151 if( curFile.find("@",0,TRUE) !=-1 || curFile.find("->",0,TRUE) !=-1 ) //if symlink 150 if( curFile.find("@",0,TRUE) !=-1 || curFile.find("->",0,TRUE) !=-1 ) //if symlink
152 curFile = dealWithSymName((const QString&)curFile); 151 curFile = dealWithSymName((const QString&)curFile);
153 curFile = CurrentDir()->canonicalPath()+"/"+curFile; 152 curFile = CurrentDir()->canonicalPath()+"/"+curFile;
154 QCopEnvelope e("QPE/Application/textedit", "setDocument(QString)" ); 153 QCopEnvelope e("QPE/Application/textedit", "setDocument(QString)" );
155 e << curFile; 154 e << curFile;
156 } 155 }
157} 156}
158 157
159void AdvancedFm::makeDir() 158void AdvancedFm::makeDir()
160{ 159{
161 InputDialog *fileDlg; 160 InputDialog *fileDlg;
162 fileDlg = new InputDialog(this,tr("Make Directory"),TRUE, 0); 161 fileDlg = new InputDialog(this,tr("Make Directory"),TRUE, 0);
163 fileDlg->exec(); 162 fileDlg->exec();
164 if( fileDlg->result() == 1 ) 163 if( fileDlg->result() == 1 )
165 { 164 {
166 QDir *thisDir = CurrentDir(); 165 QDir *thisDir = CurrentDir();
167 QString filename = fileDlg->LineEdit1->text(); 166 QString filename = fileDlg->LineEdit1->text();
168 thisDir->mkdir( thisDir->canonicalPath()+"/"+filename); 167 thisDir->mkdir( thisDir->canonicalPath()+"/"+filename);
169 } 168 }
170 populateView(); 169 populateView();
171} 170}
172 171
173void AdvancedFm::doDelete() 172void AdvancedFm::doDelete()
174{ 173{
175 174
176 QStringList curFileList = getPath(); 175 QStringList curFileList = getPath();
177 bool doMsg=true; 176 bool doMsg=true;
178 int count = curFileList.count(); 177 int count = curFileList.count();
179 if( count > 0) 178 if( count > 0)
180 { 179 {
181 if(count > 1 ) 180 if(count > 1 )
182 { 181 {
183 QString msg; 182 QString msg;
184 msg=tr("Really delete\n%1 files?").arg(count); 183 msg=tr("Really delete\n%1 files?").arg(count);
185 switch ( QMessageBox::warning(this,tr("Delete"),msg 184 switch ( QMessageBox::warning(this,tr("Delete"),msg
186 ,tr("Yes"),tr("No"),0,0,1) ) 185 ,tr("Yes"),tr("No"),0,0,1) )
187 { 186 {
188 case 0: 187 case 0:
189 doMsg=false; 188 doMsg=false;
190 break; 189 break;
191 case 1: 190 case 1:
192 return; 191 return;
193 break; 192 break;
194 }; 193 };
195 } 194 }
196 195
197 QString myFile; 196 QString myFile;
198 for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it ) 197 for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it )
199 { 198 {
200 myFile = (*it); 199 myFile = (*it);
201 if( myFile.find(" -> ",0,TRUE) != -1) 200 if( myFile.find(" -> ",0,TRUE) != -1)
202 myFile = myFile.left( myFile.find(" -> ",0,TRUE)); 201 myFile = myFile.left( myFile.find(" -> ",0,TRUE));
203 202
204 QString f = CurrentDir()->canonicalPath(); 203 QString f = CurrentDir()->canonicalPath();
205 if(f.right(1).find("/",0,TRUE) == -1) 204 if(f.right(1).find("/",0,TRUE) == -1)
206 f += "/"; 205 f += "/";
207 f += myFile; 206 f += myFile;
208 if(QDir(f).exists() && !QFileInfo(f).isSymLink() ) 207 if(QDir(f).exists() && !QFileInfo(f).isSymLink() )
209 { 208 {
210 switch ( QMessageBox::warning( this, tr("Delete Directory?"), tr("Really delete\n") + f + 209 switch ( QMessageBox::warning( this, tr("Delete Directory?"), tr("Really delete\n") + f +
211 "\nand all it's contents ?" 210 "\nand all it's contents ?"
212 ,tr("Yes"),tr("No"),0,0,1) ) 211 ,tr("Yes"),tr("No"),0,0,1) )
213 { 212 {
214 case 0: 213 case 0:
215 { 214 {
216 f=f.left(f.length()-1); 215 f=f.left(f.length()-1);
217 QString cmd="rm -rf "+f; 216 QString cmd="rm -rf "+f;
218 startProcess( (const QString)cmd.latin1() ); 217 startProcess( (const QString)cmd.latin1() );
219 populateView(); 218 populateView();
220 } 219 }
221 break; 220 break;
222 case 1: 221 case 1:
223 // exit 222 // exit
224 break; 223 break;
225 }; 224 };
226 225
227 } else { 226 } else {
228 if(doMsg) { 227 if(doMsg) {
229 switch ( QMessageBox::warning(this,tr("Delete"),tr("Really delete\n")+f 228 switch ( QMessageBox::warning(this,tr("Delete"),tr("Really delete\n")+f
230 +" ?",tr("Yes"),tr("No"),0,0,1) ) { 229 +" ?",tr("Yes"),tr("No"),0,0,1) ) {
231 case 1: 230 case 1:
232 return; 231 return;
233 break; 232 break;
234 }; 233 };
235 } 234 }
236 QString cmd="rm "+f; 235 QString cmd="rm "+f;
237 QFile file(f); 236 QFile file(f);
238 if(QFileInfo(myFile).fileName().find("../",0,TRUE)==-1) 237 if(QFileInfo(myFile).fileName().find("../",0,TRUE)==-1)
239 file.remove(); 238 file.remove();
240 } 239 }
241 } 240 }
242 } 241 }
243 populateView(); 242 populateView();
244} 243}
245 244
246void AdvancedFm::filePerms() 245void AdvancedFm::filePerms()
247{ 246{
248 QStringList curFileList = getPath(); 247 QStringList curFileList = getPath();
249 QString filePath; 248 QString filePath;
250 249
251 filePath = CurrentDir()->canonicalPath()+"/"; 250 filePath = CurrentDir()->canonicalPath()+"/";
252 251
253 for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it ) 252 for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it )
254 { 253 {
255 filePermissions *filePerm; 254 filePermissions *filePerm;
256 filePerm = new filePermissions(this, "Permissions",true,0,(const QString &)(filePath+*it)); 255 filePerm = new filePermissions(this, "Permissions",true,0,(const QString &)(filePath+*it));
257 filePerm->showMaximized(); 256 filePerm->showMaximized();
258 filePerm->exec(); 257 filePerm->exec();
259 if( filePerm) 258 if( filePerm)
260 delete filePerm; 259 delete filePerm;
261 } 260 }
262 populateView(); 261 populateView();
263} 262}
264 263
265void AdvancedFm::doProperties() 264void AdvancedFm::doProperties()
266{ 265{
267#if defined(QT_QWS_OPIE) 266#if defined(QT_QWS_OPIE)
268 267
269 QStringList curFileList = getPath(); 268 QStringList curFileList = getPath();
270 269
271 QString filePath; 270 QString filePath;
272 filePath = CurrentDir()->canonicalPath()+"/"; 271 filePath = CurrentDir()->canonicalPath()+"/";
273 272
274 qDebug("%d",curFileList.count()); 273 qDebug("%d",curFileList.count());
275 274
276 for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it ) 275 for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it )
277 { 276 {
278 qDebug((filePath+*it)); 277 qDebug((filePath+*it));
279 DocLnk lnk( (filePath+*it)); 278 DocLnk lnk( (filePath+*it));
280 LnkProperties prop( &lnk ); 279 LnkProperties prop( &lnk );
281 prop.showMaximized(); 280 prop.showMaximized();
282 prop.exec(); 281 prop.exec();
283 } 282 }
284#endif 283#endif
285 284
286} 285}
287 286
288void AdvancedFm::upDir() 287void AdvancedFm::upDir()
289{ 288{
290 QDir *thisDir = CurrentDir(); 289 QDir *thisDir = CurrentDir();
291 QString current = thisDir->canonicalPath(); 290 QString current = thisDir->canonicalPath();
292 QDir dir(current); 291 QDir dir(current);
293 dir.cdUp(); 292 dir.cdUp();
294 current = dir.canonicalPath(); 293 current = dir.canonicalPath();
295 chdir( current.latin1() ); 294 chdir( current.latin1() );
296 thisDir->cd( current, TRUE); 295 thisDir->cd( current, TRUE);
297 296
298 populateView(); 297 populateView();
299 update(); 298 update();
300} 299}
301 300
302void AdvancedFm::copy() 301void AdvancedFm::copy()
303{ 302{
304 qApp->processEvents(); 303 qApp->processEvents();
305 QStringList curFileList = getPath(); 304 QStringList curFileList = getPath();
306 305
307 QDir *thisDir = CurrentDir(); 306 QDir *thisDir = CurrentDir();
308 QDir *thatDir = OtherDir(); 307 QDir *thatDir = OtherDir();
309 308
310 bool doMsg=true; 309 bool doMsg=true;
311 int count=curFileList.count(); 310 int count=curFileList.count();
312 if( count > 0) { 311 if( count > 0) {
313 if(count > 1 ){ 312 if(count > 1 ){
314 QString msg; 313 QString msg;
315 msg=tr("Really copy\n%1 files?").arg(count); 314 msg=tr("Really copy\n%1 files?").arg(count);
316 switch ( QMessageBox::warning(this,tr("Delete"),msg 315 switch ( QMessageBox::warning(this,tr("Delete"),msg
317 ,tr("Yes"),tr("No"),0,0,1) ) 316 ,tr("Yes"),tr("No"),0,0,1) )
318 { 317 {
319 case 0: 318 case 0:
320 doMsg=false; 319 doMsg=false;
321 break; 320 break;
322 case 1: 321 case 1:
323 return; 322 return;
324 break; 323 break;
325 }; 324 };
326 } 325 }
327 326
328 QString curFile, item, destFile; 327 QString curFile, item, destFile;
329 for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it ) 328 for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it )
330 { 329 {
331 item=(*it); 330 item=(*it);
332 if(item.find("->",0,TRUE)) //symlink 331 if(item.find("->",0,TRUE)) //symlink
333 item = item.left(item.find("->",0,TRUE)); 332 item = item.left(item.find("->",0,TRUE));
334 333
335 curFile = thisDir->canonicalPath()+"/"+ item; 334 curFile = thisDir->canonicalPath()+"/"+ item;
336 destFile = thatDir->canonicalPath()+"/"+ item; 335 destFile = thatDir->canonicalPath()+"/"+ item;
337 336
338 qDebug("Destination file is "+destFile); 337 qDebug("Destination file is "+destFile);
339 qDebug("CurrentFile file is " + curFile); 338 qDebug("CurrentFile file is " + curFile);
340 339
341 QFile f(destFile); 340 QFile f(destFile);
342 if( f.exists()) 341 if( f.exists())
343 { 342 {
344 if(doMsg) 343 if(doMsg)
345 { 344 {
346 switch ( QMessageBox::warning(this,tr("File Exists!"), 345 switch ( QMessageBox::warning(this,tr("File Exists!"),
347 tr("%1 exists. Ok to overwrite?").arg( item ), 346 tr("%1 exists. Ok to overwrite?").arg( item ),
348 tr("Yes"),tr("No"),0,0,1) ) 347 tr("Yes"),tr("No"),0,0,1) )
349 { 348 {
350 case 1: 349 case 1: