summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/apps/advancedfm/advancedfm.cpp38
-rw-r--r--noncore/apps/advancedfm/advancedfmMenu.cpp3
2 files changed, 5 insertions, 36 deletions
diff --git a/noncore/apps/advancedfm/advancedfm.cpp b/noncore/apps/advancedfm/advancedfm.cpp
index 8cc5d7b..56e3282 100644
--- a/noncore/apps/advancedfm/advancedfm.cpp
+++ b/noncore/apps/advancedfm/advancedfm.cpp
@@ -104,560 +104,528 @@ void AdvancedFm::populateView() {
104 QString fileL, fileS, fileDate; 104 QString fileL, fileS, fileDate;
105 105
106 QString fs = getFileSystemType((const QString &) path); 106 QString fs = getFileSystemType((const QString &) path);
107 setCaption(tr("AdvancedFm :: ")+fs+" :: " 107 setCaption(tr("AdvancedFm :: ")+fs+" :: "
108 +checkDiskSpace((const QString &) path)+ tr(" kB free") ); 108 +checkDiskSpace((const QString &) path)+ tr(" kB free") );
109 bool isDir = FALSE; 109 bool isDir = FALSE;
110 110
111 const QFileInfoList *list = thisDir->entryInfoList( /*QDir::All*/ /*, QDir::SortByMask*/); 111 const QFileInfoList *list = thisDir->entryInfoList( /*QDir::All*/ /*, QDir::SortByMask*/);
112 QFileInfoListIterator it(*list); 112 QFileInfoListIterator it(*list);
113 QFileInfo *fi; 113 QFileInfo *fi;
114 while ( (fi=it.current()) ) { 114 while ( (fi=it.current()) ) {
115 if (fi->isSymLink() ) { 115 if (fi->isSymLink() ) {
116 QString symLink = fi->readLink(); 116 QString symLink = fi->readLink();
117 QFileInfo sym( symLink); 117 QFileInfo sym( symLink);
118 fileS.sprintf( "%10i", sym.size() ); 118 fileS.sprintf( "%10i", sym.size() );
119 fileL = fi->fileName() +" -> " + sym.filePath().data(); 119 fileL = fi->fileName() +" -> " + sym.filePath().data();
120 fileDate = sym.lastModified().toString(); 120 fileDate = sym.lastModified().toString();
121 } else { 121 } else {
122 fileS.sprintf( "%10i", fi->size() ); 122 fileS.sprintf( "%10i", fi->size() );
123 fileL = fi->fileName(); 123 fileL = fi->fileName();
124 fileDate= fi->lastModified().toString(); 124 fileDate= fi->lastModified().toString();
125 if( QDir(QDir::cleanDirPath( path +"/"+fileL)).exists() ) { 125 if( QDir(QDir::cleanDirPath( path +"/"+fileL)).exists() ) {
126// if(fileL == "..") 126// if(fileL == "..")
127 fileL += "/"; 127 fileL += "/";
128 isDir=TRUE; 128 isDir=TRUE;
129 } 129 }
130 } 130 }
131 QFileInfo fileInfo( path + "/" + fileL); 131 QFileInfo fileInfo( path + "/" + fileL);
132 132
133 if(fileL !="./" && fi->exists()) { 133 if(fileL !="./" && fi->exists()) {
134 item = new QListViewItem( thisView, fileL, fileS , fileDate); 134 item = new QListViewItem( thisView, fileL, fileS , fileDate);
135 135
136 if(isDir || fileL.find("/",0,TRUE) != -1) { 136 if(isDir || fileL.find("/",0,TRUE) != -1) {
137 137
138 if( !QDir( fi->filePath() ).isReadable()) //is directory 138 if( !QDir( fi->filePath() ).isReadable()) //is directory
139 pm = Resource::loadPixmap( "lockedfolder" ); 139 pm = Resource::loadPixmap( "lockedfolder" );
140 else 140 else
141 pm= Resource::loadPixmap( "folder" ); 141 pm= Resource::loadPixmap( "folder" );
142 } 142 }
143 else if ( fs == "vfat" && fileInfo.filePath().contains("/bin") ) { 143 else if ( fs == "vfat" && fileInfo.filePath().contains("/bin") ) {
144 pm = Resource::loadPixmap( "exec"); 144 pm = Resource::loadPixmap( "exec");
145 } 145 }
146 else if( (fileInfo.permission( QFileInfo::ExeUser) 146 else if( (fileInfo.permission( QFileInfo::ExeUser)
147 | fileInfo.permission( QFileInfo::ExeGroup) 147 | fileInfo.permission( QFileInfo::ExeGroup)
148 | fileInfo.permission( QFileInfo::ExeOther)) && fs != "vfat" ) { 148 | fileInfo.permission( QFileInfo::ExeOther)) && fs != "vfat" ) {
149 pm = Resource::loadPixmap( "exec"); 149 pm = Resource::loadPixmap( "exec");
150 } 150 }
151 else if( !fi->isReadable() ) { 151 else if( !fi->isReadable() ) {
152 pm = Resource::loadPixmap( "locked" ); 152 pm = Resource::loadPixmap( "locked" );
153 } 153 }
154 else { //everything else goes by mimetype 154 else { //everything else goes by mimetype
155 MimeType mt(fi->filePath()); 155 MimeType mt(fi->filePath());
156 pm=mt.pixmap(); //sets the correct pixmap for mimetype 156 pm=mt.pixmap(); //sets the correct pixmap for mimetype
157 if(pm.isNull()) { 157 if(pm.isNull()) {
158 pm = unknownXpm; 158 pm = unknownXpm;
159 } 159 }
160 } 160 }
161 if( fi->isSymLink() || fileL.find("->",0,TRUE) != -1) { 161 if( fi->isSymLink() || fileL.find("->",0,TRUE) != -1) {
162 // odebug << " overlay link image" << oendl; 162 // odebug << " overlay link image" << oendl;
163 pm= Resource::loadPixmap( "advancedfm/symlink" ); 163 pm= Resource::loadPixmap( "advancedfm/symlink" );
164 // pm= Resource::loadPixmap( "folder" ); 164 // pm= Resource::loadPixmap( "folder" );
165// QPixmap lnk = Resource::loadPixmap( "opie/symlink" ); 165// QPixmap lnk = Resource::loadPixmap( "opie/symlink" );
166// QPainter painter( &pm ); 166// QPainter painter( &pm );
167// painter.drawPixmap( pm.width()-lnk.width(), pm.height()-lnk.height(), lnk ); 167// painter.drawPixmap( pm.width()-lnk.width(), pm.height()-lnk.height(), lnk );
168// pm.setMask( pm.createHeuristicMask( FALSE ) ); 168// pm.setMask( pm.createHeuristicMask( FALSE ) );
169 } 169 }
170 item->setPixmap( 0,pm); 170 item->setPixmap( 0,pm);
171 171
172 } 172 }
173 isDir=FALSE; 173 isDir=FALSE;
174 ++it; 174 ++it;
175 } 175 }
176 176
177 if( path.find("dev",0,TRUE) != -1) { 177 if( path.find("dev",0,TRUE) != -1) {
178 struct stat buf; 178 struct stat buf;
179 dev_t devT; 179 dev_t devT;
180 DIR *dir; 180 DIR *dir;
181 struct dirent *mydirent; 181 struct dirent *mydirent;
182 182
183 if((dir = opendir( path.latin1())) != NULL) 183 if((dir = opendir( path.latin1())) != NULL)
184 while ((mydirent = readdir(dir)) != NULL) { 184 while ((mydirent = readdir(dir)) != NULL) {
185 lstat( mydirent->d_name, &buf); 185 lstat( mydirent->d_name, &buf);
186// odebug << mydirent->d_name << oendl; 186// odebug << mydirent->d_name << oendl;
187 fileL.sprintf("%s", mydirent->d_name); 187 fileL.sprintf("%s", mydirent->d_name);
188 devT = buf.st_dev; 188 devT = buf.st_dev;
189 fileS.sprintf("%d, %d", (int) ( devT >>8) &0xFF, (int)devT &0xFF); 189 fileS.sprintf("%d, %d", (int) ( devT >>8) &0xFF, (int)devT &0xFF);
190 fileDate.sprintf("%s", ctime( &buf.st_mtime)); 190 fileDate.sprintf("%s", ctime( &buf.st_mtime));
191 if( fileL.find(".") == -1 ) { 191 if( fileL.find(".") == -1 ) {
192 item= new QListViewItem( thisView, fileL, fileS, fileDate); 192 item= new QListViewItem( thisView, fileL, fileS, fileDate);
193 pm = unknownXpm; 193 pm = unknownXpm;
194 item->setPixmap( 0,pm); 194 item->setPixmap( 0,pm);
195 } 195 }
196 } 196 }
197 197
198 closedir(dir); 198 closedir(dir);
199 } 199 }
200 200
201 thisView->setSorting( 3,FALSE); 201 thisView->setSorting( 3,FALSE);
202 fillCombo( (const QString &) path ); 202 fillCombo( (const QString &) path );
203} 203}
204 204
205void AdvancedFm::rePopulate() { 205void AdvancedFm::rePopulate() {
206 // qDebug("repopulate views"); 206 // qDebug("repopulate views");
207 populateView(); 207 populateView();
208 setOtherTabCurrent(); 208 setOtherTabCurrent();
209 populateView(); 209 populateView();
210} 210}
211 211
212void AdvancedFm::ListClicked(QListViewItem *selectedItem) { 212void AdvancedFm::ListClicked(QListViewItem *selectedItem) {
213 if(selectedItem) { 213 if(selectedItem) {
214 QString strItem=selectedItem->text(0); 214 QString strItem=selectedItem->text(0);
215// owarn << strItem << oendl; 215// owarn << strItem << oendl;
216 QString strSize=selectedItem->text(1); 216 QString strSize=selectedItem->text(1);
217 strSize=strSize.stripWhiteSpace(); 217 strSize=strSize.stripWhiteSpace();
218 bool isDirectory = false; 218 bool isDirectory = false;
219 QString strItem2; 219 QString strItem2;
220 220
221 if(strItem.find("@",0,TRUE) !=-1 || strItem.find("->",0,TRUE) !=-1 ) {//if symlink 221 if(strItem.find("@",0,TRUE) !=-1 || strItem.find("->",0,TRUE) !=-1 ) {//if symlink
222 strItem2 = dealWithSymName((const QString&)strItem); 222 strItem2 = dealWithSymName((const QString&)strItem);
223 if(QDir(strItem2).exists() ) 223 if(QDir(strItem2).exists() )
224 strItem = strItem2; 224 strItem = strItem2;
225 } 225 }
226 226
227 if( strItem.find(". .",0,TRUE) && strItem.find("/",0,TRUE)!=-1 ) { 227 if( strItem.find(". .",0,TRUE) && strItem.find("/",0,TRUE)!=-1 ) {
228 228
229 if(QDir(strItem).exists()) 229 if(QDir(strItem).exists())
230 isDirectory = true; 230 isDirectory = true;
231 } 231 }
232 232
233 if( isDirectory ) { 233 if( isDirectory ) {
234 CurrentDir()->cd( strItem, TRUE); 234 CurrentDir()->cd( strItem, TRUE);
235 populateView(); 235 populateView();
236 CurrentView()->ensureItemVisible( CurrentView()->firstChild()); 236 CurrentView()->ensureItemVisible( CurrentView()->firstChild());
237 } 237 }
238 chdir( strItem.latin1()); 238 chdir( strItem.latin1());
239 } 239 }
240} 240}
241 241
242void AdvancedFm::ListPressed( int mouse, QListViewItem *item, const QPoint& , int ) { 242void AdvancedFm::ListPressed( int mouse, QListViewItem *item, const QPoint& , int ) {
243 Q_UNUSED(item); 243 Q_UNUSED(item);
244 switch (mouse) { 244 switch (mouse) {
245 case 1: 245 case 1:
246 { 246 {
247 if(renameBox != 0 ) { 247 if(renameBox != 0 ) {
248 cancelRename(); 248 cancelRename();
249 } 249 }
250 } 250 }
251 break; 251 break;
252// case 2: 252// case 2:
253// menuTimer.start( 50, TRUE ); 253// menuTimer.start( 50, TRUE );
254// break; 254// break;
255 }; 255 };
256} 256}
257 257
258 258
259void AdvancedFm::refreshCurrentTab() { 259void AdvancedFm::refreshCurrentTab() {
260 populateView(); 260 populateView();
261 // if ( TabWidget->currentWidget() == tab) { 261 // if ( TabWidget->currentWidget() == tab) {
262} 262}
263 263
264void AdvancedFm::switchToLocalTab() { 264void AdvancedFm::switchToLocalTab() {
265 TabWidget->setCurrentWidget(tab); 265 TabWidget->setCurrentWidget(tab);
266 Local_View->setFocus(); 266 Local_View->setFocus();
267 // whichTab = 1; 267 // whichTab = 1;
268} 268}
269 269
270void AdvancedFm::switchToRemoteTab() { 270void AdvancedFm::switchToRemoteTab() {
271 TabWidget->setCurrentWidget(tab_2); 271 TabWidget->setCurrentWidget(tab_2);
272 Remote_View->setFocus(); 272 Remote_View->setFocus();
273 // whichTab = 2; 273 // whichTab = 2;
274} 274}
275 275
276void AdvancedFm::currentPathComboChanged() { 276void AdvancedFm::currentPathComboChanged() {
277 QString pDir = currentPathCombo->lineEdit()->text(); 277 QString pDir = currentPathCombo->lineEdit()->text();
278 if(QDir(pDir).exists()) { 278 if(QDir(pDir).exists()) {
279 CurrentDir()->setPath(pDir ); 279 CurrentDir()->setPath(pDir );
280 populateView(); 280 populateView();
281 } else { 281 } else {
282 QMessageBox::message(tr("Note"),tr("<p>%1 does not exist</p>").arg(pDir)); 282 QMessageBox::message(tr("Note"),tr("<p>%1 does not exist</p>").arg(pDir));
283 } 283 }
284} 284}
285 285
286void AdvancedFm::fillCombo(const QString &currentPath) { 286void AdvancedFm::fillCombo(const QString &currentPath) {
287 287
288 if ( TabWidget->currentWidget() == tab) { 288 if ( TabWidget->currentWidget() == tab) {
289// if ( whichTab == 1) { 289// if ( whichTab == 1) {
290 currentPathCombo->lineEdit()->setText( currentPath); 290 currentPathCombo->lineEdit()->setText( currentPath);
291 if( localDirPathStringList.grep( currentPath,TRUE).isEmpty() ) { 291 if( localDirPathStringList.grep( currentPath,TRUE).isEmpty() ) {
292 currentPathCombo->clear(); 292 currentPathCombo->clear();
293 localDirPathStringList.prepend( currentPath ); 293 localDirPathStringList.prepend( currentPath );
294 currentPathCombo->insertStringList( localDirPathStringList,-1); 294 currentPathCombo->insertStringList( localDirPathStringList,-1);
295 } 295 }
296 } else { 296 } else {
297 currentPathCombo->lineEdit()->setText( currentPath); 297 currentPathCombo->lineEdit()->setText( currentPath);
298 if( remoteDirPathStringList.grep( currentPath,TRUE).isEmpty() ) { 298 if( remoteDirPathStringList.grep( currentPath,TRUE).isEmpty() ) {
299 currentPathCombo->clear(); 299 currentPathCombo->clear();
300 remoteDirPathStringList.prepend( currentPath ); 300 remoteDirPathStringList.prepend( currentPath );
301 currentPathCombo->insertStringList( remoteDirPathStringList,-1); 301 currentPathCombo->insertStringList( remoteDirPathStringList,-1);
302 } 302 }
303 } 303 }
304} 304}
305 305
306QStringList AdvancedFm::getPath() { 306QStringList AdvancedFm::getPath() {
307 QStringList strList; 307 QStringList strList;
308 QListView *thisView=CurrentView(); 308 QListView *thisView=CurrentView();
309 QList<QListViewItem> * getSelectedItems( QListView * thisView ); 309 QList<QListViewItem> * getSelectedItems( QListView * thisView );
310 QListViewItemIterator it( thisView ); 310 QListViewItemIterator it( thisView );
311 for ( ; it.current(); ++it ) { 311 for ( ; it.current(); ++it ) {
312 if ( it.current()->isSelected() ) { 312 if ( it.current()->isSelected() ) {
313 strList << it.current()->text(0); 313 strList << it.current()->text(0);
314// odebug << it.current()->text(0) << oendl; 314// odebug << it.current()->text(0) << oendl;
315 } 315 }
316 } 316 }
317 return strList; 317 return strList;
318} 318}
319 319
320void AdvancedFm::changeTo(const QString &dir) { 320void AdvancedFm::changeTo(const QString &dir) {
321 chdir( dir.latin1()); 321 chdir( dir.latin1());
322 CurrentDir()->cd(dir, TRUE); 322 CurrentDir()->cd(dir, TRUE);
323 populateView(); 323 populateView();
324 update(); 324 update();
325} 325}
326 326
327void AdvancedFm::homeButtonPushed() { 327void AdvancedFm::homeButtonPushed() {
328 changeTo(QDir::homeDirPath()); 328 changeTo(QDir::homeDirPath());
329} 329}
330 330
331void AdvancedFm::docButtonPushed() { 331void AdvancedFm::docButtonPushed() {
332 changeTo(QPEApplication::documentDir()); 332 changeTo(QPEApplication::documentDir());
333} 333}
334 334
335void AdvancedFm::SDButtonPushed() { 335void AdvancedFm::SDButtonPushed() {
336 Opie::Core::OStorageInfo info; 336 Opie::Core::OStorageInfo info;
337 changeTo(info.sdPath()); 337 changeTo(info.sdPath());
338} 338}
339 339
340void AdvancedFm::CFButtonPushed() { 340void AdvancedFm::CFButtonPushed() {
341 Opie::Core::OStorageInfo info; 341 Opie::Core::OStorageInfo info;
342 changeTo(info.cfPath()); 342 changeTo(info.cfPath());
343} 343}
344 344
345void AdvancedFm::QPEButtonPushed() { 345void AdvancedFm::QPEButtonPushed() {
346 changeTo(QPEApplication::qpeDir()); 346 changeTo(QPEApplication::qpeDir());
347} 347}
348 348
349void AdvancedFm::doAbout() { 349void AdvancedFm::doAbout() {
350 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>")); 350 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>"));
351} 351}
352 352
353void AdvancedFm::keyPressEvent( QKeyEvent *e) { 353void AdvancedFm::keyPressEvent( QKeyEvent *e) {
354 Q_UNUSED(e); 354 Q_UNUSED(e);
355} 355}
356 356
357void AdvancedFm::keyReleaseEvent( QKeyEvent *e) { 357void AdvancedFm::keyReleaseEvent( QKeyEvent *e) {
358// if( CurrentView()->hasFocus() ) 358// if( CurrentView()->hasFocus() )
359// e->ignore(); 359// e->ignore();
360 if( currentPathCombo->lineEdit()->hasFocus()) { 360
361 if( currentPathCombo->lineEdit()->hasFocus()) {
361 // qDebug("shout!"); 362 // qDebug("shout!");
362 } 363 }
363 364
364 else if( e->key() == Key_Left ) 365 else if( e->key() == Key_Left )
365 upDir(); 366 upDir();
366 else if( e->key() == Key_Return || e->key() == Key_Enter) 367 else if( e->key() == Key_Return || e->key() == Key_Enter)
367 navigateToSelected(); 368 navigateToSelected();
368 else if( e->key() == Key_Tab) 369 else if( e->key() == Key_Tab)
369 setOtherTabCurrent(); 370 setOtherTabCurrent();
370 else if( e->key() == Key_Delete ) 371 else if( e->key() == Key_Delete )
371 del(); 372 del();
372 else if( e->key() == Key_A)
373 copyAs();
374 else if( e->key() == Key_C)
375 copy();
376 else if( e->key() == Key_E)
377 runThis();
378 else if( e->key() == Key_G)
379 currentPathCombo->lineEdit()->setFocus();
380 else if( e->key() == Key_H )
381 showHidden();
382 else if( e->key() == Key_I)
383 fileStatus();
384 else if( e->key() == Key_M)
385 move();
386 else if( e->key() == Key_N )
387 mkDir();
388 else if( e->key() == Key_P)
389 filePerms();
390 else if( e->key() == Key_R )
391 rn();
392 else if( e->key() == Key_U )
393 upDir();
394 else if( e->key() == Key_1)
395 switchToLocalTab();
396 else if( e->key() == Key_2)
397 switchToRemoteTab();
398 else if( e->key() == Key_3)
399 CFButtonPushed();
400 else if( e->key() == Key_4)
401 SDButtonPushed();
402 else if( e->key() == Key_5 )
403 homeButtonPushed();
404 else if( e->key() == Key_6 )
405 docButtonPushed();
406 else 373 else
407 e->accept(); 374 e->accept();
375
408} 376}
409 377
410 378
411void AdvancedFm::parsetab(const QString &fileName) { 379void AdvancedFm::parsetab(const QString &fileName) {
412 380
413 fileSystemTypeList.clear(); 381 fileSystemTypeList.clear();
414 fsList.clear(); 382 fsList.clear();
415 struct mntent *me; 383 struct mntent *me;
416 FILE *mntfp = setmntent( fileName.latin1(), "r" ); 384 FILE *mntfp = setmntent( fileName.latin1(), "r" );
417 if ( mntfp ) { 385 if ( mntfp ) {
418 while ( (me = getmntent( mntfp )) != 0 ) { 386 while ( (me = getmntent( mntfp )) != 0 ) {
419 QString deviceName = me->mnt_fsname; 387 QString deviceName = me->mnt_fsname;
420 QString filesystemType = me->mnt_type; 388 QString filesystemType = me->mnt_type;
421 QString mountDir = me->mnt_dir; 389 QString mountDir = me->mnt_dir;
422 if(deviceName != "none") { 390 if(deviceName != "none") {
423 if( fsList.contains(filesystemType) == 0 391 if( fsList.contains(filesystemType) == 0
424 & filesystemType.find("proc",0,TRUE) == -1 392 & filesystemType.find("proc",0,TRUE) == -1
425 & filesystemType.find("cramfs",0,TRUE) == -1 393 & filesystemType.find("cramfs",0,TRUE) == -1
426 & filesystemType.find("auto",0,TRUE) == -1) 394 & filesystemType.find("auto",0,TRUE) == -1)
427 fsList << filesystemType; 395 fsList << filesystemType;
428 fileSystemTypeList << mountDir+"::"+filesystemType; 396 fileSystemTypeList << mountDir+"::"+filesystemType;
429 } 397 }
430 } 398 }
431 } 399 }
432 endmntent( mntfp ); 400 endmntent( mntfp );
433} 401}
434 402
435QString AdvancedFm::getFileSystemType(const QString &currentText) { 403QString AdvancedFm::getFileSystemType(const QString &currentText) {
436 parsetab("/etc/mtab"); //why did TT forget filesystem type? 404 parsetab("/etc/mtab"); //why did TT forget filesystem type?
437 QString current = currentText;//.right( currentText.length()-1); 405 QString current = currentText;//.right( currentText.length()-1);
438 QString baseFs; 406 QString baseFs;
439 for ( QStringList::Iterator it = fileSystemTypeList.begin(); it != fileSystemTypeList.end(); ++it ) { 407 for ( QStringList::Iterator it = fileSystemTypeList.begin(); it != fileSystemTypeList.end(); ++it ) {
440 QString temp = (*it); 408 QString temp = (*it);
441 QString path = temp.left(temp.find("::",0,TRUE) ); 409 QString path = temp.left(temp.find("::",0,TRUE) );
442 path = path.right( path.length()-1); 410 path = path.right( path.length()-1);
443 if(path.isEmpty()) baseFs = temp.right( temp.length() - temp.find("::",0,TRUE) - 2); 411 if(path.isEmpty()) baseFs = temp.right( temp.length() - temp.find("::",0,TRUE) - 2);
444 if( current.find( path,0,TRUE) != -1 && !path.isEmpty()) { 412 if( current.find( path,0,TRUE) != -1 && !path.isEmpty()) {
445 return temp.right( temp.length() - temp.find("::",0,TRUE) - 2); 413 return temp.right( temp.length() - temp.find("::",0,TRUE) - 2);
446 } 414 }
447 } 415 }
448 return baseFs; 416 return baseFs;
449} 417}
450 418
451QString AdvancedFm::getDiskSpace( const QString &path) { 419QString AdvancedFm::getDiskSpace( const QString &path) {
452 struct statfs fss; 420 struct statfs fss;
453 if ( !statfs( path.latin1(), &fss ) ) { 421 if ( !statfs( path.latin1(), &fss ) ) {
454 int blkSize = fss.f_bsize; 422 int blkSize = fss.f_bsize;
455 // int totalBlks = fs.f_blocks; 423 // int totalBlks = fs.f_blocks;
456 int availBlks = fss.f_bavail; 424 int availBlks = fss.f_bavail;
457 425
458 long mult = blkSize / 1024; 426 long mult = blkSize / 1024;
459 long div = 1024 / blkSize; 427 long div = 1024 / blkSize;
460 if ( !mult ) mult = 1; 428 if ( !mult ) mult = 1;
461 if ( !div ) div = 1; 429 if ( !div ) div = 1;
462 430
463 return QString::number(availBlks * mult / div); 431 return QString::number(availBlks * mult / div);
464 } 432 }
465 return ""; 433 return "";
466} 434}
467 435
468 436
469void AdvancedFm::showFileMenu() { 437void AdvancedFm::showFileMenu() {
470 QString curApp; 438 QString curApp;
471 curApp = CurrentView()->currentItem()->text(0); 439 curApp = CurrentView()->currentItem()->text(0);
472 440
473 MimeType mt(curApp); 441 MimeType mt(curApp);
474 const AppLnk* app = mt.application(); 442 const AppLnk* app = mt.application();
475 QFile fi(curApp); 443 QFile fi(curApp);
476 QPopupMenu *m = new QPopupMenu(0); 444 QPopupMenu *m = new QPopupMenu(0);
477 QPopupMenu *n = new QPopupMenu(0); 445 QPopupMenu *n = new QPopupMenu(0);
478 // QPopupMenu *o = new QPopupMenu(0); 446 // QPopupMenu *o = new QPopupMenu(0);
479 m->insertItem(tr("Show Hidden Files"),this,SLOT(showHidden())); 447 m->insertItem(tr("Show Hidden Files"),this,SLOT(showHidden()));
480 448
481 if ( QFileInfo(fi).isDir()) { 449 if ( QFileInfo(fi).isDir()) {
482 m->insertSeparator(); 450 m->insertSeparator();
483 m->insertItem(tr("Change Directory"),this,SLOT(doDirChange())); 451 m->insertItem(tr("Change Directory"),this,SLOT(doDirChange()));
484 } else { 452 } else {
485 453
486 if (app) 454 if (app)
487 m->insertItem(app->pixmap(),tr("Open in " + app->name()),this,SLOT(runThis())); 455 m->insertItem(app->pixmap(),tr("Open in " + app->name()),this,SLOT(runThis()));
488 else if(QFileInfo(fi).isExecutable() ) //damn opie doesnt like this 456 else if(QFileInfo(fi).isExecutable() ) //damn opie doesnt like this
489 m->insertItem(tr("Execute"),this,SLOT(runThis())); 457 m->insertItem(tr("Execute"),this,SLOT(runThis()));
490 m->insertItem(Resource::loadPixmap("txt"),tr("Open as text"),this,SLOT(runText())); 458 m->insertItem(Resource::loadPixmap("txt"),tr("Open as text"),this,SLOT(runText()));
491 } 459 }
492 460
493 m->insertItem(tr("Actions"),n); 461 m->insertItem(tr("Actions"),n);
494 n->insertItem(tr("Make Directory"),this,SLOT(makeDir())); 462 n->insertItem(tr("Make Directory"),this,SLOT(makeDir()));
495 463
496 n->insertItem(tr("Make Symlink"),this,SLOT(mkSym())); 464 n->insertItem(tr("Make Symlink"),this,SLOT(mkSym()));
497 465
498 n->insertSeparator(); 466 n->insertSeparator();
499 n->insertItem(tr("Rename"),this,SLOT(renameIt())); 467 n->insertItem(tr("Rename"),this,SLOT(renameIt()));
500 468
501 n->insertItem(tr("Copy"),this,SLOT(copyTimer())); 469 n->insertItem(tr("Copy"),this,SLOT(copyTimer()));
502 n->insertItem(tr("Copy As"),this,SLOT(copyAsTimer())); 470 n->insertItem(tr("Copy As"),this,SLOT(copyAsTimer()));
503 n->insertItem(tr("Copy Same Dir"),this,SLOT(copySameDirTimer())); 471 n->insertItem(tr("Copy Same Dir"),this,SLOT(copySameDirTimer()));
504 n->insertItem(tr("Move"),this,SLOT(moveTimer())); 472 n->insertItem(tr("Move"),this,SLOT(moveTimer()));
505 473
506 n->insertSeparator(); 474 n->insertSeparator();
507 n->insertItem(tr("Delete"),this,SLOT(doDelete())); 475 n->insertItem(tr("Delete"),this,SLOT(doDelete()));
508 m->insertItem(tr("Add To Documents"),this,SLOT(addToDocs())); 476 m->insertItem(tr("Add To Documents"),this,SLOT(addToDocs()));
509 477
510 m->insertItem(tr("Run Command"),this,SLOT(runCommand())); 478 m->insertItem(tr("Run Command"),this,SLOT(runCommand()));
511 m->insertItem(tr("File Info"),this,SLOT(fileStatus())); 479 m->insertItem(tr("File Info"),this,SLOT(fileStatus()));
512 480
513 m->insertSeparator(); 481 m->insertSeparator();
514 m->insertItem(tr("Set Permissions"),this,SLOT(filePerms())); 482 m->insertItem(tr("Set Permissions"),this,SLOT(filePerms()));
515 483
516#if defined(QT_QWS_OPIE) 484#if defined(QT_QWS_OPIE)
517 m->insertItem(tr("Properties"),this,SLOT(doProperties())); 485 m->insertItem(tr("Properties"),this,SLOT(doProperties()));
518#endif 486#endif
519 m->setCheckable(TRUE); 487 m->setCheckable(TRUE);
520 if (!b) 488 if (!b)
521 m->setItemChecked(m->idAt(0),TRUE); 489 m->setItemChecked(m->idAt(0),TRUE);
522 else 490 else
523 m->setItemChecked(m->idAt(0),FALSE); 491 m->setItemChecked(m->idAt(0),FALSE);
524 492
525 if(Ir::supported()) 493 if(Ir::supported())
526 m->insertItem(tr("Beam File"),this,SLOT(doBeam())); 494 m->insertItem(tr("Beam File"),this,SLOT(doBeam()));
527 m->setFocus(); 495 m->setFocus();
528 496
529 m->exec(QPoint(QCursor::pos().x(),QCursor::pos().y())); 497 m->exec(QPoint(QCursor::pos().x(),QCursor::pos().y()));
530 498
531 if(m) delete m; 499 if(m) delete m;
532} 500}
533 501
534 502
535QString AdvancedFm::checkDiskSpace(const QString &path) { 503QString AdvancedFm::checkDiskSpace(const QString &path) {
536 struct statfs fss; 504 struct statfs fss;
537 if ( !statfs( path.latin1(), &fss ) ) { 505 if ( !statfs( path.latin1(), &fss ) ) {
538 int blkSize = fss.f_bsize; 506 int blkSize = fss.f_bsize;
539// int totalBlks = fs.f_blocks; 507// int totalBlks = fs.f_blocks;
540 int availBlks = fss.f_bavail; 508 int availBlks = fss.f_bavail;
541 509
542 long mult = blkSize / 1024; 510 long mult = blkSize / 1024;
543 long div = 1024 / blkSize; 511 long div = 1024 / blkSize;
544 if ( !mult ) mult = 1; 512 if ( !mult ) mult = 1;
545 if ( !div ) div = 1; 513 if ( !div ) div = 1;
546 514
547 515
548 return QString::number(availBlks * mult / div); 516 return QString::number(availBlks * mult / div);
549 } 517 }
550 return ""; 518 return "";
551} 519}
552 520
553void AdvancedFm::addToDocs() { 521void AdvancedFm::addToDocs() {
554 QStringList strListPaths = getPath(); 522 QStringList strListPaths = getPath();
555 QDir *thisDir = CurrentDir(); 523 QDir *thisDir = CurrentDir();
556 524
557 if( strListPaths.count() > 0) { 525 if( strListPaths.count() > 0) {
558 QString curFile; 526 QString curFile;
559 for ( QStringList::Iterator it = strListPaths.begin(); it != strListPaths.end(); ++it ) { 527 for ( QStringList::Iterator it = strListPaths.begin(); it != strListPaths.end(); ++it ) {
560 curFile = thisDir->canonicalPath()+"/"+(*it); 528 curFile = thisDir->canonicalPath()+"/"+(*it);
561// odebug << curFile << oendl; 529// odebug << curFile << oendl;
562 QFileInfo fi(curFile); 530 QFileInfo fi(curFile);
563 DocLnk f; 531 DocLnk f;
564// curFile.replace(QRegExp("\\..*"),""); 532// curFile.replace(QRegExp("\\..*"),"");
565 f.setName(fi.baseName() ); 533 f.setName(fi.baseName() );
566 f.setFile( curFile); 534 f.setFile( curFile);
567 f.writeLink(); 535 f.writeLink();
568 } 536 }
569 } 537 }
570} 538}
571 539
572 540
573void AdvancedFm::customDirsToMenu() { 541void AdvancedFm::customDirsToMenu() {
574 542
575 Config cfg("AdvancedFm"); 543 Config cfg("AdvancedFm");
576 cfg.setGroup("Menu"); 544 cfg.setGroup("Menu");
577 545
578 QStringList list = cfg.readListEntry( "CustomDir", ','); 546 QStringList list = cfg.readListEntry( "CustomDir", ',');
579 menuButton->insertItems(list ); 547 menuButton->insertItems(list );
580 548
581// for ( QStringList::Iterator it = list.begin(); it != list.end(); ++it ) 549// for ( QStringList::Iterator it = list.begin(); it != list.end(); ++it )
582// { 550// {
583// customDirMenu->insertItem(*it ); 551// customDirMenu->insertItem(*it );
584// } 552// }
585} 553}
586 554
587void AdvancedFm::dirMenuSelected(int item) { 555void AdvancedFm::dirMenuSelected(int item) {
588 switch(item) 556 switch(item)
589 { 557 {
590 558
591 case -21: 559 case -21:
592 case 0: 560 case 0:
593 addCustomDir(); 561 addCustomDir();
594 break; 562 break;
595 case -22: 563 case -22:
596 case 1: 564 case 1:
597 removeCustomDir(); 565 removeCustomDir();
598 break; 566 break;
599 default: 567 default:
600 { 568 {
601// gotoCustomDir( menuButton->text(item)); 569// gotoCustomDir( menuButton->text(item));
602// gotoCustomDir( customDirMenu->text(item)); 570// gotoCustomDir( customDirMenu->text(item));
603 } 571 }
604 break; 572 break;
605 573
606 }; 574 };
607} 575}
608 576
609void AdvancedFm::addCustomDir() { 577void AdvancedFm::addCustomDir() {
610 Config cfg("AdvancedFm"); 578 Config cfg("AdvancedFm");
611 cfg.setGroup("Menu"); 579 cfg.setGroup("Menu");
612 QString dir; 580 QString dir;
613 QStringList list = cfg.readListEntry( (const QString &)"CustomDir", (const QChar)','); 581 QStringList list = cfg.readListEntry( (const QString &)"CustomDir", (const QChar)',');
614 582
615 dir = CurrentDir()->canonicalPath(); 583 dir = CurrentDir()->canonicalPath();
616 584
617 bool addIt=true; 585 bool addIt=true;
618 for ( QStringList::Iterator it = list.begin(); it != list.end(); ++it ) { 586 for ( QStringList::Iterator it = list.begin(); it != list.end(); ++it ) {
619 if( dir == (*it)) { 587 if( dir == (*it)) {
620 addIt=false; 588 addIt=false;
621 } 589 }
622 } 590 }
623 if(addIt) { 591 if(addIt) {
624 menuButton->insertItem(dir); 592 menuButton->insertItem(dir);
625// customDirMenu->insertItem(dir); 593// customDirMenu->insertItem(dir);
626 list << dir; 594 list << dir;
627 } 595 }
628 596
629 cfg.writeEntry("CustomDir", list, ','); 597 cfg.writeEntry("CustomDir", list, ',');
630 cfg.write(); 598 cfg.write();
631} 599}
632 600
633void AdvancedFm::removeCustomDir() { 601void AdvancedFm::removeCustomDir() {
634// odebug << "remove custom dir" << oendl; 602// odebug << "remove custom dir" << oendl;
635 Config cfg("AdvancedFm"); 603 Config cfg("AdvancedFm");
636 cfg.setGroup("Menu"); 604 cfg.setGroup("Menu");
637 QString dir; 605 QString dir;
638 QStringList list = cfg.readListEntry( (const QString &)"CustomDir", (const QChar)','); 606 QStringList list = cfg.readListEntry( (const QString &)"CustomDir", (const QChar)',');
639 QStringList list2; 607 QStringList list2;
640 dir = CurrentDir()->canonicalPath(); 608 dir = CurrentDir()->canonicalPath();
641 int ramble=2; 609 int ramble=2;
642// int ramble=-24; 610// int ramble=-24;
643//first remove list 611//first remove list
644 if(list.grep(dir,true).isEmpty()) { 612 if(list.grep(dir,true).isEmpty()) {
645 QMessageBox::message(tr( "AdvancedFm" ), 613 QMessageBox::message(tr( "AdvancedFm" ),
646 tr("<p>Cannot remove current directory from bookmarks. It is not bookmarked!</p>")); 614 tr("<p>Cannot remove current directory from bookmarks. It is not bookmarked!</p>"));
647 } else { 615 } else {
648 for ( QStringList::Iterator it = list.begin(); it != list.end(); ++it ) { 616 for ( QStringList::Iterator it = list.begin(); it != list.end(); ++it ) {
649 if((*it) != dir) { 617 if((*it) != dir) {
650//current item is not our current dir, so add it to temp list 618//current item is not our current dir, so add it to temp list
651 list2 <<(*it); 619 list2 <<(*it);
652 } else { 620 } else {
653// customDirMenu->removeItem( ramble); 621// customDirMenu->removeItem( ramble);
654 menuButton->remove( ramble); 622 menuButton->remove( ramble);
655 623
656 } 624 }
657 ramble++; 625 ramble++;
658// ramble--; 626// ramble--;
659 } 627 }
660 628
661 cfg.writeEntry("CustomDir", list2, ','); 629 cfg.writeEntry("CustomDir", list2, ',');
662 cfg.write(); 630 cfg.write();
663 } 631 }
diff --git a/noncore/apps/advancedfm/advancedfmMenu.cpp b/noncore/apps/advancedfm/advancedfmMenu.cpp
index 6abdc85..80324eb 100644
--- a/noncore/apps/advancedfm/advancedfmMenu.cpp
+++ b/noncore/apps/advancedfm/advancedfmMenu.cpp
@@ -612,262 +612,263 @@ void AdvancedFm::runCommand() {
612 QString curFile; 612 QString curFile;
613 curFile = thisDir->canonicalPath() +"/"+ CurrentView()->currentItem()->text(0); 613 curFile = thisDir->canonicalPath() +"/"+ CurrentView()->currentItem()->text(0);
614 614
615 InputDialog *fileDlg; 615 InputDialog *fileDlg;
616 fileDlg = new InputDialog(this,tr("Run Command"),TRUE, 0); 616 fileDlg = new InputDialog(this,tr("Run Command"),TRUE, 0);
617 fileDlg->setInputText(curFile); 617 fileDlg->setInputText(curFile);
618 fileDlg->exec(); 618 fileDlg->exec();
619 //QString command; 619 //QString command;
620 620
621 if( fileDlg->result() == 1 ) { 621 if( fileDlg->result() == 1 ) {
622// odebug << fileDlg->LineEdit1->text() << oendl; 622// odebug << fileDlg->LineEdit1->text() << oendl;
623 QStringList command; 623 QStringList command;
624 624
625 command << "/bin/sh"; 625 command << "/bin/sh";
626 command << "-c"; 626 command << "-c";
627 command << fileDlg->LineEdit1->text(); 627 command << fileDlg->LineEdit1->text();
628 Output *outDlg; 628 Output *outDlg;
629 outDlg = new Output( command, this, tr("AdvancedFm Output"), true); 629 outDlg = new Output( command, this, tr("AdvancedFm Output"), true);
630 QPEApplication::execDialog( outDlg ); 630 QPEApplication::execDialog( outDlg );
631 qApp->processEvents(); 631 qApp->processEvents();
632 632
633 } 633 }
634} 634}
635 635
636void AdvancedFm::runCommandStd() { 636void AdvancedFm::runCommandStd() {
637 if( !CurrentView()->currentItem()) return; 637 if( !CurrentView()->currentItem()) return;
638 QString curFile; 638 QString curFile;
639 QDir *thisDir = CurrentDir(); 639 QDir *thisDir = CurrentDir();
640 QListView *thisView = CurrentView(); 640 QListView *thisView = CurrentView();
641 if( thisView->currentItem()) 641 if( thisView->currentItem())
642 curFile = thisDir->canonicalPath() +"/"+ thisView->currentItem()->text(0); 642 curFile = thisDir->canonicalPath() +"/"+ thisView->currentItem()->text(0);
643 643
644 InputDialog *fileDlg; 644 InputDialog *fileDlg;
645 fileDlg = new InputDialog(this,tr("Run Command"),TRUE, 0); 645 fileDlg = new InputDialog(this,tr("Run Command"),TRUE, 0);
646 fileDlg->setInputText(curFile); 646 fileDlg->setInputText(curFile);
647 fileDlg->exec(); 647 fileDlg->exec();
648 648
649 if( fileDlg->result() == 1 ) { 649 if( fileDlg->result() == 1 ) {
650 qApp->processEvents(); 650 qApp->processEvents();
651 startProcess( (const QString)fileDlg->LineEdit1->text().latin1()); 651 startProcess( (const QString)fileDlg->LineEdit1->text().latin1());
652 } 652 }
653} 653}
654 654
655void AdvancedFm::fileStatus() { 655void AdvancedFm::fileStatus() {
656 if( !CurrentView()->currentItem()) return; 656 if( !CurrentView()->currentItem()) return;
657 QString curFile; 657 QString curFile;
658 curFile = CurrentView()->currentItem()->text(0); 658 curFile = CurrentView()->currentItem()->text(0);
659 659
660 QStringList command; 660 QStringList command;
661 command << "/bin/sh"; 661 command << "/bin/sh";
662 command << "-c"; 662 command << "-c";
663 command << "stat -l "+ curFile; 663 command << "stat -l "+ curFile;
664 664
665 Output *outDlg; 665 Output *outDlg;
666 outDlg = new Output( command, this, tr("AdvancedFm Output"), true); 666 outDlg = new Output( command, this, tr("AdvancedFm Output"), true);
667 QPEApplication::execDialog( outDlg ); 667 QPEApplication::execDialog( outDlg );
668 qApp->processEvents(); 668 qApp->processEvents();
669} 669}
670 670
671 671
672void AdvancedFm::mkDir() { 672void AdvancedFm::mkDir() {
673 makeDir(); 673 makeDir();
674} 674}
675 675
676void AdvancedFm::rn() { 676void AdvancedFm::rn() {
677 renameIt(); 677 renameIt();
678} 678}
679 679
680void AdvancedFm::del() { 680void AdvancedFm::del() {
681 doDelete(); 681 doDelete();
682} 682}
683 683
684void AdvancedFm::mkSym() { 684void AdvancedFm::mkSym() {
685 QString cmd; 685 QString cmd;
686 QStringList curFileList = getPath(); 686 QStringList curFileList = getPath();
687 if( curFileList.count() > 0) { 687 if( curFileList.count() > 0) {
688 QDir *thisDir = CurrentDir(); 688 QDir *thisDir = CurrentDir();
689 QDir * thatDir = OtherDir(); 689 QDir * thatDir = OtherDir();
690 690
691 for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it ) { 691 for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it ) {
692 692
693 QString destName = thatDir->canonicalPath()+"/"+(*it); 693 QString destName = thatDir->canonicalPath()+"/"+(*it);
694 if(destName.right(1) == "/") { 694 if(destName.right(1) == "/") {
695 destName = destName.left( destName.length() -1); 695 destName = destName.left( destName.length() -1);
696 } 696 }
697 697
698 QString curFile = thisDir->canonicalPath()+"/"+(*it); 698 QString curFile = thisDir->canonicalPath()+"/"+(*it);
699 699
700 if( curFile.right(1) == "/") { 700 if( curFile.right(1) == "/") {
701 curFile = curFile.left( curFile.length() -1); 701 curFile = curFile.left( curFile.length() -1);
702 } 702 }
703 703
704 cmd = "ln -s "+curFile+" "+destName; 704 cmd = "ln -s "+curFile+" "+destName;
705// odebug << cmd << oendl; 705// odebug << cmd << oendl;
706 startProcess( (const QString)cmd ); 706 startProcess( (const QString)cmd );
707 } 707 }
708 rePopulate(); 708 rePopulate();
709 setOtherTabCurrent(); 709 setOtherTabCurrent();
710 } 710 }
711} 711}
712 712
713void AdvancedFm::doBeam() { 713void AdvancedFm::doBeam() {
714 Ir ir; 714 Ir ir;
715 if(!ir.supported()) { 715 if(!ir.supported()) {
716 } else { 716 } else {
717 QStringList curFileList = getPath(); 717 QStringList curFileList = getPath();
718 if( curFileList.count() > 0) { 718 if( curFileList.count() > 0) {
719 for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it ) { 719 for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it ) {
720 QString curFile = (*it); 720 QString curFile = (*it);
721 QString curFilePath = CurrentDir()->canonicalPath()+"/"+curFile; 721 QString curFilePath = CurrentDir()->canonicalPath()+"/"+curFile;
722 if( curFilePath.right(1) == "/") { 722 if( curFilePath.right(1) == "/") {
723 curFilePath = curFilePath.left( curFilePath.length() -1); 723 curFilePath = curFilePath.left( curFilePath.length() -1);
724 } 724 }
725 Ir *file = new Ir(this, "IR"); 725 Ir *file = new Ir(this, "IR");
726 connect(file, SIGNAL(done(Ir*)), this, SLOT( fileBeamFinished(Ir*))); 726 connect(file, SIGNAL(done(Ir*)), this, SLOT( fileBeamFinished(Ir*)));
727 file->send( curFilePath, curFile ); 727 file->send( curFilePath, curFile );
728 } 728 }
729 } 729 }
730 } 730 }
731} 731}
732 732
733void AdvancedFm::fileBeamFinished( Ir *) { 733void AdvancedFm::fileBeamFinished( Ir *) {
734 QMessageBox::message( tr("Advancedfm Beam out"), tr("Ir sent.") ,tr("Ok") ); 734 QMessageBox::message( tr("Advancedfm Beam out"), tr("Ir sent.") ,tr("Ok") );
735} 735}
736 736
737void AdvancedFm::selectAll() { 737void AdvancedFm::selectAll() {
738 QListView *thisView = CurrentView(); 738 QListView *thisView = CurrentView();
739 thisView->selectAll(true); 739 thisView->selectAll(true);
740 thisView->setSelected( thisView->firstChild(),false); 740 thisView->setSelected( thisView->firstChild(),false);
741} 741}
742 742
743void AdvancedFm::startProcess(const QString & cmd) { 743void AdvancedFm::startProcess(const QString & cmd) {
744 QStringList command; 744 QStringList command;
745 OProcess *process; 745 OProcess *process;
746 process = new OProcess(); 746 process = new OProcess();
747 connect(process,SIGNAL(processExited(Opie::Core::OProcess*)),this,SLOT(processEnded(Opie::Core::OProcess*))); 747 connect(process,SIGNAL(processExited(Opie::Core::OProcess*)),this,SLOT(processEnded(Opie::Core::OProcess*)));
748 connect(process,SIGNAL(receivedStderr(Opie::Core::OProcess*,char*,int)),this,SLOT(oprocessStderr(Opie::Core::OProcess*,char*,int))); 748 connect(process,SIGNAL(receivedStderr(Opie::Core::OProcess*,char*,int)),this,SLOT(oprocessStderr(Opie::Core::OProcess*,char*,int)));
749 749
750 command << "/bin/sh"; 750 command << "/bin/sh";
751 command << "-c"; 751 command << "-c";
752 command << cmd.latin1(); 752 command << cmd.latin1();
753 *process << command; 753 *process << command;
754 if(!process->start(OProcess::NotifyOnExit, OProcess::All) ) 754 if(!process->start(OProcess::NotifyOnExit, OProcess::All) )
755 odebug << "could not start process" << oendl; 755 odebug << "could not start process" << oendl;
756} 756}
757 757
758void AdvancedFm::processEnded(OProcess *) { 758void AdvancedFm::processEnded(OProcess *) {
759 rePopulate(); 759 rePopulate();
760} 760}
761 761
762void AdvancedFm::oprocessStderr(OProcess*, char *buffer, int ) { 762void AdvancedFm::oprocessStderr(OProcess*, char *buffer, int ) {
763// owarn << "received stderrt " << buflen << " bytes" << oendl; 763// owarn << "received stderrt " << buflen << " bytes" << oendl;
764 764
765 QString lineStr = buffer; 765 QString lineStr = buffer;
766 QMessageBox::warning( this, tr("Error"), lineStr ,tr("Ok") ); 766 QMessageBox::warning( this, tr("Error"), lineStr ,tr("Ok") );
767} 767}
768 768
769bool AdvancedFm::eventFilter( QObject * o, QEvent * e ) { 769bool AdvancedFm::eventFilter( QObject * o, QEvent * e ) {
770 if ( o->inherits( "QLineEdit" ) ) { 770 if ( o->inherits( "QLineEdit" ) ) {
771 if ( e->type() == QEvent::KeyPress ) { 771 if ( e->type() == QEvent::KeyPress ) {
772 QKeyEvent *ke = (QKeyEvent*)e; 772 QKeyEvent *ke = (QKeyEvent*)e;
773 if ( ke->key() == Key_Return || 773 if ( ke->key() == Key_Return ||
774 ke->key() == Key_Enter ) { 774 ke->key() == Key_Enter ) {
775 okRename(); 775 okRename();
776 return true; 776 return true;
777 } 777 }
778 else if ( ke->key() == Key_Escape ) { 778 else if ( ke->key() == Key_Escape ) {
779 cancelRename(); 779 cancelRename();
780 return true; 780 return true;
781 } 781 }
782 } 782 }
783 else if ( e->type() == QEvent::FocusOut ) { 783 else if ( e->type() == QEvent::FocusOut ) {
784 cancelRename(); 784 cancelRename();
785 return true; 785 return true;
786 } 786 }
787 } 787 }
788 if ( o->inherits( "QListView" ) ) { 788 if ( o->inherits( "QListView" ) ) {
789 if ( e->type() == QEvent::FocusIn ) { 789 if ( e->type() == QEvent::FocusIn ) {
790 if( o == Local_View) { //keep track of which view 790 if( o == Local_View) { //keep track of which view
791 whichTab = 1; 791 whichTab = 1;
792 viewMenu->setItemChecked(viewMenu->idAt(0), true); 792 viewMenu->setItemChecked(viewMenu->idAt(0), true);
793 viewMenu->setItemChecked(viewMenu->idAt(1), false); 793 viewMenu->setItemChecked(viewMenu->idAt(1), false);
794 } else { 794 } else {
795 whichTab = 2; 795 whichTab = 2;
796 viewMenu->setItemChecked(viewMenu->idAt(0), false); 796 viewMenu->setItemChecked(viewMenu->idAt(0), false);
797 viewMenu->setItemChecked(viewMenu->idAt(1), true); 797 viewMenu->setItemChecked(viewMenu->idAt(1), true);
798 } 798 }
799 } 799 }
800 OtherView()->setSelected( OtherView()->currentItem(), FALSE );//make sure there's correct selection 800 OtherView()->setSelected( OtherView()->currentItem(), FALSE );//make sure there's correct selection
801 } 801 }
802 802
803 return QWidget::eventFilter( o, e ); 803 return QWidget::eventFilter( o, e );
804} 804}
805 805
806 806
807void AdvancedFm::cancelRename() { 807void AdvancedFm::cancelRename() {
808// odebug << "cancel rename" << oendl; 808// odebug << "cancel rename" << oendl;
809 QListView * view; 809 QListView * view;
810 view = CurrentView(); 810 view = CurrentView();
811 811
812 bool resetFocus = view->viewport()->focusProxy() == renameBox; 812 bool resetFocus = view->viewport()->focusProxy() == renameBox;
813 delete renameBox; 813 delete renameBox;
814 renameBox = 0; 814 renameBox = 0;
815 if ( resetFocus ) { 815 if ( resetFocus ) {
816 view->viewport()->setFocusProxy( view); 816 view->viewport()->setFocusProxy( view);
817 view->setFocus(); 817 view->setFocus();
818 } 818 }
819} 819}
820 820
821void AdvancedFm::doRename(QListView * view) { 821void AdvancedFm::doRename(QListView * view) {
822 if( !CurrentView()->currentItem()) return; 822 if( !CurrentView()->currentItem()) return;
823 823
824 QRect r = view->itemRect( view->currentItem( )); 824 QRect r = view->itemRect( view->currentItem( ));
825 r = QRect( view->viewportToContents( r.topLeft() ), r.size() ); 825 r = QRect( view->viewportToContents( r.topLeft() ), r.size() );
826 r.setX( view->contentsX() ); 826 r.setX( view->contentsX() );
827 if ( r.width() > view->visibleWidth() ) 827 if ( r.width() > view->visibleWidth() )
828 r.setWidth( view->visibleWidth() ); 828 r.setWidth( view->visibleWidth() );
829 829
830 renameBox = new QLineEdit( view->viewport(), "qt_renamebox" ); 830 renameBox = new QLineEdit( view->viewport(), "qt_renamebox" );
831 renameBox->setFrame(true); 831 renameBox->setFrame(true);
832 renameBox->setText( view->currentItem()->text(0) ); 832 renameBox->setText( view->currentItem()->text(0) );
833 renameBox->selectAll(); 833 renameBox->selectAll();
834 renameBox->installEventFilter( this ); 834 renameBox->installEventFilter( this );
835 view->addChild( renameBox, r.x(), r.y() ); 835 view->addChild( renameBox, r.x(), r.y() );
836 renameBox->resize( r.size() ); 836 renameBox->resize( r.size() );
837 view->viewport()->setFocusProxy( renameBox ); 837 view->viewport()->setFocusProxy( renameBox );
838 renameBox->setFocus(); 838 renameBox->setFocus();
839 renameBox->show(); 839 renameBox->show();
840} 840}
841 841
842 842
843void AdvancedFm::renameIt() { 843void AdvancedFm::renameIt() {
844 if( !CurrentView()->currentItem()) return; 844 if( !CurrentView()->currentItem()) return;
845 845
846 QListView *thisView = CurrentView(); 846 QListView *thisView = CurrentView();
847 oldName = thisView->currentItem()->text(0); 847 oldName = thisView->currentItem()->text(0);
848 doRename( thisView ); 848 doRename( thisView );
849} 849}
850 850
851void AdvancedFm::okRename() { 851void AdvancedFm::okRename() {
852 qDebug("okrename"); 852 qDebug("okrename");
853 if( !renameBox) return; 853 if( !renameBox) return;
854 854
855 QString newName = renameBox->text(); 855 QString newName = renameBox->text();
856 cancelRename(); 856 cancelRename();
857 QListView * view = CurrentView(); 857 QListView * view = CurrentView();
858 QString path = CurrentDir()->canonicalPath() + "/"; 858 QString path = CurrentDir()->canonicalPath() + "/";
859 oldName = path + oldName; 859 oldName = path + oldName;
860 newName = path + newName; 860 newName = path + newName;
861 if( rename( oldName.latin1(), newName.latin1())== -1) 861 if( rename( oldName.latin1(), newName.latin1())== -1)
862 QMessageBox::message(tr("Note"),tr("Could not rename")); 862 QMessageBox::message(tr("Note"),tr("Could not rename"));
863 else 863 else
864 oldName = ""; 864 oldName = "";
865 QListViewItem *item = view->currentItem(); 865 QListViewItem *item = view->currentItem();
866 view->takeItem( item ); 866 view->takeItem( item );
867 delete item; 867 delete item;
868 rePopulate(); 868 populateView();
869
869} 870}
870 871
871void AdvancedFm::openSearch() { 872void AdvancedFm::openSearch() {
872 QMessageBox::message(tr("Note"),tr("Not Yet Implemented")); 873 QMessageBox::message(tr("Note"),tr("Not Yet Implemented"));
873} 874}