summaryrefslogtreecommitdiff
authorllornkcor <llornkcor>2002-04-28 21:59:34 (UTC)
committer llornkcor <llornkcor>2002-04-28 21:59:34 (UTC)
commit726d985ddb6a5c7eb25a48efdadb189eb38b9a2a (patch) (unidiff)
treee92814b56ee706ccb1d95a0c2e86294aa79ab2c2
parentd9a38221ea876cae8ef8b015968e14af75e202bb (diff)
downloadopie-726d985ddb6a5c7eb25a48efdadb189eb38b9a2a.zip
opie-726d985ddb6a5c7eb25a48efdadb189eb38b9a2a.tar.gz
opie-726d985ddb6a5c7eb25a48efdadb189eb38b9a2a.tar.bz2
fixed multi symlink handling
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/apps/advancedfm/advancedfm.cpp149
1 files changed, 76 insertions, 73 deletions
diff --git a/noncore/apps/advancedfm/advancedfm.cpp b/noncore/apps/advancedfm/advancedfm.cpp
index bd513c0..b5fcccf 100644
--- a/noncore/apps/advancedfm/advancedfm.cpp
+++ b/noncore/apps/advancedfm/advancedfm.cpp
@@ -258,249 +258,249 @@ void AdvancedFm::tabChanged(QWidget *w)
258{ 258{
259 if (TabWidget->currentPageIndex() == 0) { 259 if (TabWidget->currentPageIndex() == 0) {
260 currentPathCombo->lineEdit()->setText( currentDir.canonicalPath()); 260 currentPathCombo->lineEdit()->setText( currentDir.canonicalPath());
261 viewMenu->setItemChecked(viewMenu->idAt(0),TRUE); 261 viewMenu->setItemChecked(viewMenu->idAt(0),TRUE);
262 viewMenu->setItemChecked(viewMenu->idAt(1),FALSE); 262 viewMenu->setItemChecked(viewMenu->idAt(1),FALSE);
263 } 263 }
264 if (TabWidget->currentPageIndex() == 1) { 264 if (TabWidget->currentPageIndex() == 1) {
265 currentPathCombo->lineEdit()->setText( currentRemoteDir.canonicalPath()); 265 currentPathCombo->lineEdit()->setText( currentRemoteDir.canonicalPath());
266 viewMenu->setItemChecked(viewMenu->idAt(1),TRUE); 266 viewMenu->setItemChecked(viewMenu->idAt(1),TRUE);
267 viewMenu->setItemChecked(viewMenu->idAt(0),FALSE); 267 viewMenu->setItemChecked(viewMenu->idAt(0),FALSE);
268 } 268 }
269} 269}
270 270
271 271
272void AdvancedFm::populateLocalView() 272void AdvancedFm::populateLocalView()
273{ 273{
274// QList<QListViewItem> * getSelectedItems( QListView * Local_View ); 274// QList<QListViewItem> * getSelectedItems( QListView * Local_View );
275// QListViewItemIterator it( Local_View ); 275// QListViewItemIterator it( Local_View );
276// for ( ; it.current(); ++it ) { 276// for ( ; it.current(); ++it ) {
277// if ( it.current()->isSelected() ) { 277// if ( it.current()->isSelected() ) {
278// QString strItem = it.current()->text(0); 278// QString strItem = it.current()->text(0);
279// QString localFile = currentDir.canonicalPath()+"/"+strItem; 279// QString localFile = currentDir.canonicalPath()+"/"+strItem;
280// QFileInfo fi(localFile); 280// QFileInfo fi(localFile);
281// } 281// }
282// } 282// }
283 QPixmap pm; 283 QPixmap pm;
284 Local_View->clear(); 284 Local_View->clear();
285 currentDir.setSorting(/* QDir::Size*/ /*| QDir::Reversed | */QDir::DirsFirst); 285 currentDir.setSorting(/* QDir::Size*/ /*| QDir::Reversed | */QDir::DirsFirst);
286 currentDir.setMatchAllDirs(TRUE); 286 currentDir.setMatchAllDirs(TRUE);
287 currentDir.setNameFilter(filterStr); 287 currentDir.setNameFilter(filterStr);
288 QString fileL, fileS, fileDate; 288 QString fileL, fileS, fileDate;
289// qDebug(currentDir.canonicalPath()); 289// qDebug(currentDir.canonicalPath());
290 290
291 bool isDir=FALSE; 291 bool isDir=FALSE;
292 const QFileInfoList *list = currentDir.entryInfoList( /*QDir::All*/ /*, QDir::SortByMask*/); 292 const QFileInfoList *list = currentDir.entryInfoList( /*QDir::All*/ /*, QDir::SortByMask*/);
293 QFileInfoListIterator it(*list); 293 QFileInfoListIterator it(*list);
294 QFileInfo *fi; 294 QFileInfo *fi;
295 while ( (fi=it.current()) ) { 295 while ( (fi=it.current()) ) {
296 if (fi->isSymLink() ) { 296 if (fi->isSymLink() ) {
297 QString symLink=fi->readLink(); 297 QString symLink=fi->readLink();
298// qDebug("Symlink detected "+symLink); 298// qDebug("Symlink detected "+symLink);
299 QFileInfo sym( symLink); 299 QFileInfo sym( symLink);
300 fileS.sprintf( "%10li", sym.size() ); 300 fileS.sprintf( "%10li", sym.size() );
301 fileL.sprintf( "%s -> %s", sym.fileName().data(),sym.absFilePath().data() ); 301 fileL.sprintf( "%s -> %s", sym.fileName().data(),sym.absFilePath().data() );
302 fileDate = sym.lastModified().toString(); 302 fileDate = sym.lastModified().toString();
303 } else { 303 } else {
304 fileS.sprintf( "%10li", fi->size() ); 304 fileS.sprintf( "%10li", fi->size() );
305 fileL.sprintf( "%s",fi->fileName().data() ); 305 fileL.sprintf( "%s",fi->fileName().data() );
306 fileDate= fi->lastModified().toString(); 306 fileDate= fi->lastModified().toString();
307 if( QDir(QDir::cleanDirPath(currentDir.canonicalPath()+"/"+fileL)).exists() ) { 307 if( QDir(QDir::cleanDirPath(currentDir.canonicalPath()+"/"+fileL)).exists() ) {
308 fileL+="/"; 308 fileL+="/";
309 isDir=TRUE; 309 isDir=TRUE;
310// qDebug( fileL); 310// qDebug( fileL);
311 } 311 }
312 } 312 }
313 if(fileL !="./" && fi->exists()) { 313 if(fileL !="./" && fi->exists()) {
314 item= new QListViewItem( Local_View, fileL, fileS , fileDate); 314 item= new QListViewItem( Local_View, fileL, fileS , fileDate);
315 if(isDir || fileL.find("/",0,TRUE) != -1) { 315 if(isDir || fileL.find("/",0,TRUE) != -1) {
316 if( !QDir( fi->filePath() ).isReadable()) 316 if( !QDir( fi->filePath() ).isReadable())
317 pm = Resource::loadPixmap( "lockedfolder" ); 317 pm = Resource::loadPixmap( "lockedfolder" );
318 else 318 else
319 pm= Resource::loadPixmap( "folder" ); 319 pm= Resource::loadPixmap( "folder" );
320 item->setPixmap( 0,pm ); 320 item->setPixmap( 0,pm );
321 } else { 321 } else {
322 if(fi->isExecutable()) { 322// if(fi->isExecutable()) {
323 pm = Resource::loadPixmap( "exec"); 323// pm = Resource::loadPixmap( "exec");
324 item->setPixmap( 0,pm); 324// item->setPixmap( 0,pm);
325 } 325// }
326 else if( !fi->isReadable() ) { 326 if( !fi->isReadable() ) {
327 pm = Resource::loadPixmap( "locked" ); 327 pm = Resource::loadPixmap( "locked" );
328 item->setPixmap( 0,pm); 328 item->setPixmap( 0,pm);
329 329
330 } 330 }
331 else { 331 else {
332 MimeType mt(fi->filePath()); 332 MimeType mt(fi->filePath());
333 pm=mt.pixmap(); //sets the correct pixmap for mimetype 333 pm=mt.pixmap(); //sets the correct pixmap for mimetype
334 if(pm.isNull()) 334 if(pm.isNull())
335 pm = Resource::loadPixmap( "UnknownDocument-14" ); 335 pm = Resource::loadPixmap( "UnknownDocument-14" );
336 item->setPixmap( 0,pm); 336 item->setPixmap( 0,pm);
337 } 337 }
338 } 338 }
339 if( fileL.find("->",0,TRUE) != -1) { 339 if( fileL.find("->",0,TRUE) != -1) {
340 // overlay link image 340 // overlay link image
341 pm= Resource::loadPixmap( "folder" ); 341 pm= Resource::loadPixmap( "folder" );
342 QPixmap lnk = Resource::loadPixmap( "opie/symlink" ); 342 QPixmap lnk = Resource::loadPixmap( "opie/symlink" );
343 QPainter painter( &pm ); 343 QPainter painter( &pm );
344 painter.drawPixmap( pm.width()-lnk.width(), pm.height()-lnk.height(), lnk ); 344 painter.drawPixmap( pm.width()-lnk.width(), pm.height()-lnk.height(), lnk );
345 pm.setMask( pm.createHeuristicMask( FALSE ) ); 345 pm.setMask( pm.createHeuristicMask( FALSE ) );
346 item->setPixmap( 0, pm); 346 item->setPixmap( 0, pm);
347 } 347 }
348 } isDir=FALSE; 348 } isDir=FALSE;
349 ++it; 349 ++it;
350 } 350 }
351 351
352 if(currentDir.canonicalPath().find("dev",0,TRUE) != -1) { 352 if(currentDir.canonicalPath().find("dev",0,TRUE) != -1) {
353 struct stat buf; 353 struct stat buf;
354 struct stat st; 354 struct stat st;
355 dev_t devT; 355 dev_t devT;
356 mode_t mode; 356 mode_t mode;
357 DIR *dir; 357 DIR *dir;
358 int fd = 0; 358 int fd = 0;
359 struct dirent *mydirent; 359 struct dirent *mydirent;
360 int i = 1; 360 int i = 1;
361 if((dir = opendir( currentDir.canonicalPath().latin1())) != NULL) 361 if((dir = opendir( currentDir.canonicalPath().latin1())) != NULL)
362 while ((mydirent = readdir(dir)) != NULL) { 362 while ((mydirent = readdir(dir)) != NULL) {
363 lstat( mydirent->d_name, &buf); 363 lstat( mydirent->d_name, &buf);
364 qDebug(mydirent->d_name); 364 qDebug(mydirent->d_name);
365// mode = buf.st_mode; 365// mode = buf.st_mode;
366 fileL.sprintf("%s", mydirent->d_name); 366 fileL.sprintf("%s", mydirent->d_name);
367// fileS.sprintf("%d, %d", ); //this isn't correct 367// fileS.sprintf("%d, %d", ); //this isn't correct
368 devT = buf.st_dev; 368 devT = buf.st_dev;
369 fileS.sprintf("%d, %d", (int) ( devT >>8) &0xFF, (int)devT &0xFF); 369 fileS.sprintf("%d, %d", (int) ( devT >>8) &0xFF, (int)devT &0xFF);
370// fileS.sprintf("%d,%d", devT, devT); 370// fileS.sprintf("%d,%d", devT, devT);
371 fileDate.sprintf("%s", ctime( &buf.st_mtime)); 371 fileDate.sprintf("%s", ctime( &buf.st_mtime));
372 if( fileL.find(".") == -1 ){ 372 if( fileL.find(".") == -1 ){
373 item= new QListViewItem( Local_View, fileL, fileS, fileDate); 373 item= new QListViewItem( Local_View, fileL, fileS, fileDate);
374 pm = Resource::loadPixmap( "UnknownDocument-14" ); 374 pm = Resource::loadPixmap( "UnknownDocument-14" );
375 item->setPixmap( 0,pm); 375 item->setPixmap( 0,pm);
376 } 376 }
377 } 377 }
378 378
379 closedir(dir); 379 closedir(dir);
380 } 380 }
381 381
382 Local_View->setSorting( 3,FALSE); 382 Local_View->setSorting( 3,FALSE);
383 fillCombo( (const QString &) currentDir.canonicalPath()); 383 fillCombo( (const QString &) currentDir.canonicalPath());
384} 384}
385 385
386 386
387void AdvancedFm::populateRemoteView() 387void AdvancedFm::populateRemoteView()
388{ 388{
389// QList<QListViewItem> * getSelectedItems( QListView * Local_View ); 389// QList<QListViewItem> * getSelectedItems( QListView * Local_View );
390// QListViewItemIterator it( Remote_View ); 390// QListViewItemIterator it( Remote_View );
391// for ( ; it.current(); ++it ) { 391// for ( ; it.current(); ++it ) {
392// if ( it.current()->isSelected() ) { 392// if ( it.current()->isSelected() ) {
393// QString strItem = it.current()->text(0); 393// QString strItem = it.current()->text(0);
394// QString localFile = currentRemoteDir.canonicalPath()+"/"+strItem; 394// QString localFile = currentRemoteDir.canonicalPath()+"/"+strItem;
395// QFileInfo fi(localFile); 395// QFileInfo fi(localFile);
396// } 396// }
397// } 397// }
398 QPixmap pm; 398 QPixmap pm;
399 Remote_View->clear(); 399 Remote_View->clear();
400 currentRemoteDir.setSorting(/* QDir::Size*/ /*| QDir::Reversed | */QDir::DirsFirst); 400 currentRemoteDir.setSorting(/* QDir::Size*/ /*| QDir::Reversed | */QDir::DirsFirst);
401 currentRemoteDir.setMatchAllDirs(TRUE); 401 currentRemoteDir.setMatchAllDirs(TRUE);
402 currentRemoteDir.setNameFilter(filterStr); 402 currentRemoteDir.setNameFilter(filterStr);
403 QString fileL, fileS, fileDate; 403 QString fileL, fileS, fileDate;
404 bool isDir=FALSE; 404 bool isDir=FALSE;
405 const QFileInfoList *list = currentRemoteDir.entryInfoList( /*QDir::All*/ /*, QDir::SortByMask*/); 405 const QFileInfoList *list = currentRemoteDir.entryInfoList( /*QDir::All*/ /*, QDir::SortByMask*/);
406 QFileInfoListIterator it(*list); 406 QFileInfoListIterator it(*list);
407 QFileInfo *fi; 407 QFileInfo *fi;
408 while ( (fi=it.current()) ) { 408 while ( (fi=it.current()) ) {
409 if (fi->isSymLink() ){ 409 if (fi->isSymLink() ){
410 QString symLink=fi->readLink(); 410 QString symLink=fi->readLink();
411// qDebug("Symlink detected "+symLink); 411// qDebug("Symlink detected "+symLink);
412 QFileInfo sym( symLink); 412 QFileInfo sym( symLink);
413 fileS.sprintf( "%10li", sym.size() ); 413 fileS.sprintf( "%10li", sym.size() );
414 fileL.sprintf( "%s -> %s", sym.fileName().data(),sym.absFilePath().data() ); 414 fileL.sprintf( "%s -> %s", sym.fileName().data(),sym.absFilePath().data() );
415 fileDate = sym.lastModified().toString(); 415 fileDate = sym.lastModified().toString();
416 } else { 416 } else {
417// qDebug("Not a dir: "+currentDir.canonicalPath()+fileL); 417// qDebug("Not a dir: "+currentDir.canonicalPath()+fileL);
418 fileS.sprintf( "%10li", fi->size() ); 418 fileS.sprintf( "%10li", fi->size() );
419 fileL.sprintf( "%s",fi->fileName().data() ); 419 fileL.sprintf( "%s",fi->fileName().data() );
420 fileDate= fi->lastModified().toString(); 420 fileDate= fi->lastModified().toString();
421 if( QDir(QDir::cleanDirPath( currentRemoteDir.canonicalPath()+"/"+fileL)).exists() ) { 421 if( QDir(QDir::cleanDirPath( currentRemoteDir.canonicalPath()+"/"+fileL)).exists() ) {
422 fileL+="/"; 422 fileL+="/";
423 isDir=TRUE; 423 isDir=TRUE;
424// qDebug( fileL); 424// qDebug( fileL);
425 } 425 }
426 } 426 }
427 if(fileL !="./" && fi->exists()) { 427 if(fileL !="./" && fi->exists()) {
428 item= new QListViewItem( Remote_View, fileL, fileS, fileDate); 428 item= new QListViewItem( Remote_View, fileL, fileS, fileDate);
429 QPixmap pm; 429 QPixmap pm;
430 430
431 if(isDir || fileL.find("/",0,TRUE) != -1) { 431 if(isDir || fileL.find("/",0,TRUE) != -1) {
432 if( !QDir( fi->filePath() ).isReadable()) 432 if( !QDir( fi->filePath() ).isReadable())
433 pm = Resource::loadPixmap( "lockedfolder" ); 433 pm = Resource::loadPixmap( "lockedfolder" );
434 else 434 else
435 pm= Resource::loadPixmap( "folder" ); 435 pm= Resource::loadPixmap( "folder" );
436 item->setPixmap( 0,pm ); 436 item->setPixmap( 0,pm );
437 } else { 437 } else {
438 if(fi->isExecutable()) { 438// if(fi->isExecutable()) {
439 pm = Resource::loadPixmap( "exec"); 439// pm = Resource::loadPixmap( "exec");
440 item->setPixmap( 0,pm); 440// item->setPixmap( 0,pm);
441 } 441// }
442 else if( !fi->isReadable() ) { 442 if( !fi->isReadable() ) {
443 pm = Resource::loadPixmap( "locked" ); 443 pm = Resource::loadPixmap( "locked" );
444 item->setPixmap( 0,pm); 444 item->setPixmap( 0,pm);
445 } else { 445 } else {
446 MimeType mt(fi->filePath()); 446 MimeType mt(fi->filePath());
447 pm=mt.pixmap(); //sets the correct pixmap for mimetype 447 pm=mt.pixmap(); //sets the correct pixmap for mimetype
448 if(pm.isNull()) 448 if(pm.isNull())
449 pm = Resource::loadPixmap( "UnknownDocument-14" ); 449 pm = Resource::loadPixmap( "UnknownDocument-14" );
450 item->setPixmap( 0,pm); 450 item->setPixmap( 0,pm);
451 } 451 }
452 } 452 }
453 if( fileL.find("->",0,TRUE) != -1) { 453 if( fileL.find("->",0,TRUE) != -1) {
454 // overlay link image 454 // overlay link image
455 pm= Resource::loadPixmap( "folder" ); 455 pm= Resource::loadPixmap( "folder" );
456 QPixmap lnk = Resource::loadPixmap( "opie/symlink" ); 456 QPixmap lnk = Resource::loadPixmap( "opie/symlink" );
457 QPainter painter( &pm ); 457 QPainter painter( &pm );
458 painter.drawPixmap( pm.width()-lnk.width(), pm.height()-lnk.height(), lnk ); 458 painter.drawPixmap( pm.width()-lnk.width(), pm.height()-lnk.height(), lnk );
459 pm.setMask( pm.createHeuristicMask( FALSE ) ); 459 pm.setMask( pm.createHeuristicMask( FALSE ) );
460 item->setPixmap( 0, pm); 460 item->setPixmap( 0, pm);
461 } 461 }
462 } isDir=FALSE; 462 } isDir=FALSE;
463 ++it; 463 ++it;
464 } 464 }
465 465
466 if(currentRemoteDir.canonicalPath().find("dev",0,TRUE) != -1) { 466 if(currentRemoteDir.canonicalPath().find("dev",0,TRUE) != -1) {
467 struct stat buf; 467 struct stat buf;
468 struct stat st; 468 struct stat st;
469 mode_t mode; 469 mode_t mode;
470 DIR *dir; 470 DIR *dir;
471 int fd = 0; 471 int fd = 0;
472 struct dirent *mydirent; 472 struct dirent *mydirent;
473 int i = 1; 473 int i = 1;
474 if((dir = opendir( currentRemoteDir.canonicalPath().latin1())) != NULL) 474 if((dir = opendir( currentRemoteDir.canonicalPath().latin1())) != NULL)
475 while ((mydirent = readdir(dir)) != NULL) { 475 while ((mydirent = readdir(dir)) != NULL) {
476 lstat( mydirent->d_name, &buf); 476 lstat( mydirent->d_name, &buf);
477 qDebug(mydirent->d_name); 477 qDebug(mydirent->d_name);
478// mode = buf.st_mode; 478// mode = buf.st_mode;
479 fileL.sprintf("%s", mydirent->d_name); 479 fileL.sprintf("%s", mydirent->d_name);
480// fileS.sprintf("%d, %d", ); //this isn't correct 480// fileS.sprintf("%d, %d", ); //this isn't correct
481 fileS.sprintf("%d,%d", (int) (buf.st_dev>>8)&0xFF, (int) buf.st_dev &0xFF); 481 fileS.sprintf("%d,%d", (int) (buf.st_dev>>8)&0xFF, (int) buf.st_dev &0xFF);
482 fileDate.sprintf("%s", ctime( &buf.st_mtime)); 482 fileDate.sprintf("%s", ctime( &buf.st_mtime));
483 if( fileL.find(".") == -1 ){ 483 if( fileL.find(".") == -1 ){
484 item= new QListViewItem( Remote_View, fileL, fileS, fileDate); 484 item= new QListViewItem( Remote_View, fileL, fileS, fileDate);
485 pm = Resource::loadPixmap( "UnknownDocument-14" ); 485 pm = Resource::loadPixmap( "UnknownDocument-14" );
486 item->setPixmap( 0,pm); 486 item->setPixmap( 0,pm);
487 } 487 }
488 } 488 }
489 489
490 closedir(dir); 490 closedir(dir);
491 } 491 }
492 492
493 Remote_View->setSorting( 3,FALSE); 493 Remote_View->setSorting( 3,FALSE);
494 fillCombo( (const QString &) currentRemoteDir.canonicalPath() ); 494 fillCombo( (const QString &) currentRemoteDir.canonicalPath() );
495} 495}
496 496
497void AdvancedFm::localListClicked(QListViewItem *selectedItem) 497void AdvancedFm::localListClicked(QListViewItem *selectedItem)
498{ 498{
499 if(selectedItem) { 499 if(selectedItem) {
500 QString strItem=selectedItem->text(0); 500 QString strItem=selectedItem->text(0);
501 QString strSize=selectedItem->text(1); 501 QString strSize=selectedItem->text(1);
502 strSize=strSize.stripWhiteSpace(); 502 strSize=strSize.stripWhiteSpace();
503 if(strItem.find("@",0,TRUE) !=-1 || strItem.find("->",0,TRUE) !=-1 ) { //if symlink 503 if(strItem.find("@",0,TRUE) !=-1 || strItem.find("->",0,TRUE) !=-1 ) { //if symlink
504 // is symlink 504 // is symlink
505 QString strItem2 = strItem.right( (strItem.length() - strItem.find("->",0,TRUE)) - 4); 505 QString strItem2 = strItem.right( (strItem.length() - strItem.find("->",0,TRUE)) - 4);
506 if(QDir(strItem2).exists() ) { 506 if(QDir(strItem2).exists() ) {
@@ -655,158 +655,158 @@ void AdvancedFm::showLocalMenu(QListViewItem * item)
655 m.insertItem( tr( "Make Directory" ), this, SLOT( localMakDir() )); 655 m.insertItem( tr( "Make Directory" ), this, SLOT( localMakDir() ));
656 m.insertItem( tr( "Make Symlink" ), this, SLOT( mkSym() )); 656 m.insertItem( tr( "Make Symlink" ), this, SLOT( mkSym() ));
657 m.insertSeparator(); 657 m.insertSeparator();
658 m.insertItem( tr( "Rename" ), this, SLOT( localRename() )); 658 m.insertItem( tr( "Rename" ), this, SLOT( localRename() ));
659 m.insertItem( tr( "Copy" ), this, SLOT( copy() )); 659 m.insertItem( tr( "Copy" ), this, SLOT( copy() ));
660 m.insertItem( tr( "Copy As" ), this, SLOT( copyAs() )); 660 m.insertItem( tr( "Copy As" ), this, SLOT( copyAs() ));
661 m.insertItem( tr( "Move" ), this, SLOT( move() )); 661 m.insertItem( tr( "Move" ), this, SLOT( move() ));
662 m.insertSeparator(); 662 m.insertSeparator();
663 m.insertItem( tr( "Run Command" ), this, SLOT( runCommand() )); 663 m.insertItem( tr( "Run Command" ), this, SLOT( runCommand() ));
664 m.insertItem( tr( "File Info" ), this, SLOT( fileStatus() )); 664 m.insertItem( tr( "File Info" ), this, SLOT( fileStatus() ));
665 m.insertSeparator(); 665 m.insertSeparator();
666 m.insertItem( tr( "Delete" ), this, SLOT( localDelete() )); 666 m.insertItem( tr( "Delete" ), this, SLOT( localDelete() ));
667 m.insertSeparator(); 667 m.insertSeparator();
668 m.insertItem( tr( "Set Permissions" ), this, SLOT( filePerms() )); 668 m.insertItem( tr( "Set Permissions" ), this, SLOT( filePerms() ));
669 m.insertItem( tr( "Properties" ), this, SLOT( doProperties() )); 669 m.insertItem( tr( "Properties" ), this, SLOT( doProperties() ));
670 m.setCheckable(TRUE); 670 m.setCheckable(TRUE);
671 if (!b) 671 if (!b)
672 m.setItemChecked(m.idAt(0),TRUE); 672 m.setItemChecked(m.idAt(0),TRUE);
673 else 673 else
674 m.setItemChecked(m.idAt(0),FALSE); 674 m.setItemChecked(m.idAt(0),FALSE);
675 m.exec( QCursor::pos() ); 675 m.exec( QCursor::pos() );
676 } 676 }
677} 677}
678 678
679void AdvancedFm::showRemoteMenu(QListViewItem * item) 679void AdvancedFm::showRemoteMenu(QListViewItem * item)
680{ 680{
681 if(item) { 681 if(item) {
682 QPopupMenu m; 682 QPopupMenu m;
683 m.insertItem( tr( "Show Hidden Files" ), this, SLOT( showRemoteHidden() )); 683 m.insertItem( tr( "Show Hidden Files" ), this, SLOT( showRemoteHidden() ));
684 m.insertSeparator(); 684 m.insertSeparator();
685 if( /*item->text(0).right(1) == "/" ||*/ item->text(0).find("/",0,TRUE) !=-1) 685 if( /*item->text(0).right(1) == "/" ||*/ item->text(0).find("/",0,TRUE) !=-1)
686 m.insertItem( tr( "Change Directory" ), this, SLOT( doRemoteCd() )); 686 m.insertItem( tr( "Change Directory" ), this, SLOT( doRemoteCd() ));
687 else 687 else
688 m.insertItem( tr( "Open" ), this, SLOT( runThis() )); 688 m.insertItem( tr( "Open" ), this, SLOT( runThis() ));
689 m.insertItem( tr( "Open as Text" ), this, SLOT( runText() )); 689 m.insertItem( tr( "Open as Text" ), this, SLOT( runText() ));
690 m.insertItem( tr( "Make Directory" ), this, SLOT( remoteMakDir() )); 690 m.insertItem( tr( "Make Directory" ), this, SLOT( remoteMakDir() ));
691 m.insertItem( tr( "Make Symlink" ), this, SLOT( mkSym() )); 691 m.insertItem( tr( "Make Symlink" ), this, SLOT( mkSym() ));
692 m.insertSeparator(); 692 m.insertSeparator();
693 m.insertItem( tr( "Rename" ), this, SLOT( remoteRename() )); 693 m.insertItem( tr( "Rename" ), this, SLOT( remoteRename() ));
694 m.insertItem( tr( "Copy" ), this, SLOT( copy() )); 694 m.insertItem( tr( "Copy" ), this, SLOT( copy() ));
695 m.insertItem( tr( "Copy As" ), this, SLOT( copyAs() )); 695 m.insertItem( tr( "Copy As" ), this, SLOT( copyAs() ));
696 m.insertItem( tr( "Move" ), this, SLOT( move() )); 696 m.insertItem( tr( "Move" ), this, SLOT( move() ));
697 m.insertSeparator(); 697 m.insertSeparator();
698 m.insertItem( tr( "Run Command" ), this, SLOT( runCommand() )); 698 m.insertItem( tr( "Run Command" ), this, SLOT( runCommand() ));
699 m.insertItem( tr( "File Info" ), this, SLOT( fileStatus() )); 699 m.insertItem( tr( "File Info" ), this, SLOT( fileStatus() ));
700 m.insertSeparator(); 700 m.insertSeparator();
701 m.insertItem( tr( "Delete" ), this, SLOT( remoteDelete() )); 701 m.insertItem( tr( "Delete" ), this, SLOT( remoteDelete() ));
702 m.insertSeparator(); 702 m.insertSeparator();
703 m.insertItem( tr( "Set Permissions" ), this, SLOT( filePerms() )); 703 m.insertItem( tr( "Set Permissions" ), this, SLOT( filePerms() ));
704 m.insertItem( tr( "Properties" ), this, SLOT( doProperties() )); 704 m.insertItem( tr( "Properties" ), this, SLOT( doProperties() ));
705 m.setCheckable(TRUE); 705 m.setCheckable(TRUE);
706 if (!b) 706 if (!b)
707 m.setItemChecked(m.idAt(0),TRUE); 707 m.setItemChecked(m.idAt(0),TRUE);
708 else 708 else
709 m.setItemChecked(m.idAt(0),FALSE); 709 m.setItemChecked(m.idAt(0),FALSE);
710 m.exec( QCursor::pos() ); 710 m.exec( QCursor::pos() );
711 } 711 }
712} 712}
713 713
714void AdvancedFm::runThis() { 714void AdvancedFm::runThis() {
715// QFileInfo *fi; 715// QFileInfo *fi;
716 if (TabWidget->currentPageIndex() == 0) { 716 if (TabWidget->currentPageIndex() == 0) {
717 QString curFile = Local_View->currentItem()->text(0); 717 QString curFile = Local_View->currentItem()->text(0);
718 QFileInfo fileInfo( currentDir.canonicalPath()+"/"+curFile); 718 QFileInfo fileInfo( currentDir.canonicalPath()+"/"+curFile);
719 if(fileInfo.isExecutable()) { 719// if(fileInfo.isExecutable()) {
720 QCopEnvelope e("QPE/System", "execute(QString)" ); 720// QCopEnvelope e("QPE/System", "execute(QString)" );
721 e << curFile; 721// e << curFile;
722 } else { 722// } else {
723 curFile = currentDir.canonicalPath()+"/"+curFile; 723 curFile = currentDir.canonicalPath()+"/"+curFile;
724 DocLnk nf(curFile); 724 DocLnk nf(curFile);
725 QString execStr = nf.exec(); 725 QString execStr = nf.exec();
726 qDebug( execStr); 726 qDebug( execStr);
727 if( execStr.isEmpty() ) { 727 if( execStr.isEmpty() ) {
728 } else { 728 } else {
729 nf.execute(); 729 nf.execute();
730 } 730 }
731 } 731// }
732// MimeType mt( curFile); 732// MimeType mt( curFile);
733 } else { 733 } else {
734 QString curFile = Remote_View->currentItem()->text(0); 734 QString curFile = Remote_View->currentItem()->text(0);
735 QFileInfo fileInfo( currentRemoteDir.canonicalPath()+"/"+curFile); 735 QFileInfo fileInfo( currentRemoteDir.canonicalPath()+"/"+curFile);
736 if(fileInfo.isExecutable()) { 736// if(fileInfo.isExecutable()) {
737 QCopEnvelope e("QPE/System", "execute(QString)" ); 737// QCopEnvelope e("QPE/System", "execute(QString)" );
738 e << curFile; 738// e << curFile;
739 } else { 739// } else {
740 curFile = currentRemoteDir.canonicalPath()+"/"+curFile; 740 curFile = currentRemoteDir.canonicalPath()+"/"+curFile;
741 DocLnk nf(curFile); 741 DocLnk nf(curFile);
742 QString execStr = nf.exec(); 742 QString execStr = nf.exec();
743 qDebug(execStr); 743 qDebug(execStr);
744 if( execStr.isEmpty() ) { 744 if( execStr.isEmpty() ) {
745 } else { 745 } else {
746 nf.execute(); 746 nf.execute();
747 } 747 }
748 } 748// }
749// MimeType mt( curFile); 749// MimeType mt( curFile);
750 } 750 }
751} 751}
752 752
753void AdvancedFm::runText() { 753void AdvancedFm::runText() {
754 if (TabWidget->currentPageIndex() == 0) { 754 if (TabWidget->currentPageIndex() == 0) {
755 QString curFile = Local_View->currentItem()->text(0); 755 QString curFile = Local_View->currentItem()->text(0);
756 curFile = currentDir.canonicalPath()+"/"+curFile; 756 curFile = currentDir.canonicalPath()+"/"+curFile;
757 QCopEnvelope e("QPE/Application/textedit", "setDocument(QString)" ); 757 QCopEnvelope e("QPE/Application/textedit", "setDocument(QString)" );
758 e << curFile; 758 e << curFile;
759 } else { 759 } else {
760 QString curFile = Remote_View->currentItem()->text(0); 760 QString curFile = Remote_View->currentItem()->text(0);
761 curFile = currentRemoteDir.canonicalPath()+"/"+curFile; 761 curFile = currentRemoteDir.canonicalPath()+"/"+curFile;
762 DocLnk nf(curFile); 762 DocLnk nf(curFile);
763 QCopEnvelope e("QPE/Application/textedit", "setDocument(QString)" ); 763 QCopEnvelope e("QPE/Application/textedit", "setDocument(QString)" );
764 e << curFile; 764 e << curFile;
765 } 765 }
766} 766}
767 767
768void AdvancedFm::localMakDir() 768void AdvancedFm::localMakDir()
769{ 769{
770 InputDialog *fileDlg; 770 InputDialog *fileDlg;
771 fileDlg = new InputDialog(this,tr("Make Directory"),TRUE, 0); 771 fileDlg = new InputDialog(this,tr("Make Directory"),TRUE, 0);
772 fileDlg->exec(); 772 fileDlg->exec();
773 if( fileDlg->result() == 1 ) { 773 if( fileDlg->result() == 1 ) {
774 QString filename = fileDlg->LineEdit1->text(); 774 QString filename = fileDlg->LineEdit1->text();
775 currentDir.mkdir( currentDir.canonicalPath()+"/"+filename); 775 currentDir.mkdir( currentDir.canonicalPath()+"/"+filename);
776 } 776 }
777 populateLocalView(); 777 populateLocalView();
778} 778}
779 779
780void AdvancedFm::remoteMakDir() 780void AdvancedFm::remoteMakDir()
781{ 781{
782 InputDialog *fileDlg; 782 InputDialog *fileDlg;
783 fileDlg = new InputDialog(this,tr("Make Directory"),TRUE, 0); 783 fileDlg = new InputDialog(this,tr("Make Directory"),TRUE, 0);
784 fileDlg->exec(); 784 fileDlg->exec();
785 if( fileDlg->result() == 1 ) { 785 if( fileDlg->result() == 1 ) {
786 QString filename = fileDlg->LineEdit1->text(); 786 QString filename = fileDlg->LineEdit1->text();
787 currentRemoteDir.mkdir( currentRemoteDir.canonicalPath()+"/"+filename); 787 currentRemoteDir.mkdir( currentRemoteDir.canonicalPath()+"/"+filename);
788 } 788 }
789 populateRemoteView(); 789 populateRemoteView();
790} 790}
791 791
792void AdvancedFm::localDelete() 792void AdvancedFm::localDelete()
793{ 793{
794 QStringList curFileList = getPath(); 794 QStringList curFileList = getPath();
795 QString myFile; 795 QString myFile;
796 for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it ) { 796 for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it ) {
797 myFile = (*it); 797 myFile = (*it);
798 if( myFile.find(" -> ",0,TRUE) != -1) 798 if( myFile.find(" -> ",0,TRUE) != -1)
799 myFile = myFile.left( myFile.find(" -> ",0,TRUE)); 799 myFile = myFile.left( myFile.find(" -> ",0,TRUE));
800 800
801 QString f = currentDir.canonicalPath(); 801 QString f = currentDir.canonicalPath();
802 if(f.right(1).find("/",0,TRUE) == -1) 802 if(f.right(1).find("/",0,TRUE) == -1)
803 f+="/"; 803 f+="/";
804 f+=myFile; 804 f+=myFile;
805 if(QDir(f).exists() && !QFileInfo(f).isSymLink() ) { 805 if(QDir(f).exists() && !QFileInfo(f).isSymLink() ) {
806 switch ( QMessageBox::warning(this,tr("Delete"),tr("Do you really want to delete\n")+f+ 806 switch ( QMessageBox::warning(this,tr("Delete"),tr("Do you really want to delete\n")+f+
807 "\nand all it's contents ?" 807 "\nand all it's contents ?"
808 ,tr("Yes"),tr("No"),0,0,1) ) { 808 ,tr("Yes"),tr("No"),0,0,1) ) {
809 case 0: { 809 case 0: {
810 f=f.left(f.length()-1); 810 f=f.left(f.length()-1);
811 QString cmd="rm -rf "+f; 811 QString cmd="rm -rf "+f;
812 system( cmd.latin1()); 812 system( cmd.latin1());
@@ -985,318 +985,312 @@ void AdvancedFm::currentPathComboActivated(const QString & currentPath) {
985 populateLocalView(); 985 populateLocalView();
986 update(); 986 update();
987 } else { 987 } else {
988 chdir( currentPath.latin1() ); 988 chdir( currentPath.latin1() );
989 currentRemoteDir.cd( currentPath, TRUE); 989 currentRemoteDir.cd( currentPath, TRUE);
990 populateRemoteView(); 990 populateRemoteView();
991 update(); 991 update();
992 } 992 }
993} 993}
994 994
995void AdvancedFm::filePerms() { 995void AdvancedFm::filePerms() {
996 996
997 QStringList curFileList = getPath(); 997 QStringList curFileList = getPath();
998 QString filePath; 998 QString filePath;
999 999
1000 if (TabWidget->currentPageIndex() == 0) { 1000 if (TabWidget->currentPageIndex() == 0) {
1001 filePath = currentDir.canonicalPath()+"/"; 1001 filePath = currentDir.canonicalPath()+"/";
1002 } else { 1002 } else {
1003 filePath= currentRemoteDir.canonicalPath()+"/"; 1003 filePath= currentRemoteDir.canonicalPath()+"/";
1004 } 1004 }
1005 1005
1006 for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it ) { 1006 for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it ) {
1007 filePermissions *filePerm; 1007 filePermissions *filePerm;
1008 filePerm = new filePermissions(this, "Permissions",true,0,(const QString &)(filePath+*it)); 1008 filePerm = new filePermissions(this, "Permissions",true,0,(const QString &)(filePath+*it));
1009 filePerm->showMaximized(); 1009 filePerm->showMaximized();
1010 filePerm->exec(); 1010 filePerm->exec();
1011 if( filePerm) 1011 if( filePerm)
1012 delete filePerm; 1012 delete filePerm;
1013 } 1013 }
1014} 1014}
1015 1015
1016void AdvancedFm::doProperties() { 1016void AdvancedFm::doProperties() {
1017 QStringList curFileList = getPath(); 1017 QStringList curFileList = getPath();
1018 QString filePath; 1018 QString filePath;
1019 if (TabWidget->currentPageIndex() == 0) { 1019 if (TabWidget->currentPageIndex() == 0) {
1020 filePath = currentDir.canonicalPath()+"/"; 1020 filePath = currentDir.canonicalPath()+"/";
1021 } else { 1021 } else {
1022 filePath= currentRemoteDir.canonicalPath()+"/"; 1022 filePath= currentRemoteDir.canonicalPath()+"/";
1023 } 1023 }
1024 for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it ) { 1024 for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it ) {
1025 DocLnk lnk( (filePath+*it)); 1025 DocLnk lnk( (filePath+*it));
1026 LnkProperties prop( &lnk ); 1026 LnkProperties prop( &lnk );
1027// connect(&prop, SIGNAL(select(const AppLnk *)), this, SLOT(externalSelected(const AppLnk *))); 1027// connect(&prop, SIGNAL(select(const AppLnk *)), this, SLOT(externalSelected(const AppLnk *)));
1028 prop.showMaximized(); 1028 prop.showMaximized();
1029 prop.exec(); 1029 prop.exec();
1030 } 1030 }
1031} 1031}
1032 1032
1033QStringList AdvancedFm::getPath() { 1033QStringList AdvancedFm::getPath() {
1034 QStringList strList; 1034 QStringList strList;
1035 if (TabWidget->currentPageIndex() == 0) { 1035 if (TabWidget->currentPageIndex() == 0) {
1036 QList<QListViewItem> * getSelectedItems( QListView * Local_View ); 1036 QList<QListViewItem> * getSelectedItems( QListView * Local_View );
1037 QListViewItemIterator it( Local_View ); 1037 QListViewItemIterator it( Local_View );
1038 for ( ; it.current(); ++it ) { 1038 for ( ; it.current(); ++it ) {
1039 if ( it.current()->isSelected() ) { 1039 if ( it.current()->isSelected() ) {
1040 strList << it.current()->text(0); 1040 strList << it.current()->text(0);
1041 } 1041 }
1042 } 1042 }
1043 return strList; 1043 return strList;
1044 } else { 1044 } else {
1045 QList<QListViewItem> * getSelectedItems( QListView * Remote_View ); 1045 QList<QListViewItem> * getSelectedItems( QListView * Remote_View );
1046 QListViewItemIterator it( Remote_View ); 1046 QListViewItemIterator it( Remote_View );
1047 for ( ; it.current(); ++it ) { 1047 for ( ; it.current(); ++it ) {
1048 if ( it.current()->isSelected() ) { 1048 if ( it.current()->isSelected() ) {
1049 strList << currentDir.canonicalPath()+"/"+ it.current()->text(0); 1049 strList << it.current()->text(0);
1050 } 1050 }
1051 } 1051 }
1052 return strList; 1052 return strList;
1053 } 1053 }
1054 return ""; 1054 return "";
1055} 1055}
1056 1056
1057void AdvancedFm::homeButtonPushed() { 1057void AdvancedFm::homeButtonPushed() {
1058 QString current = QDir::homeDirPath(); 1058 QString current = QDir::homeDirPath();
1059 chdir( current.latin1() ); 1059 chdir( current.latin1() );
1060 if (TabWidget->currentPageIndex() == 0) { 1060 if (TabWidget->currentPageIndex() == 0) {
1061 currentDir.cd( current, TRUE); 1061 currentDir.cd( current, TRUE);
1062 populateLocalView(); 1062 populateLocalView();
1063 } else { 1063 } else {
1064 currentRemoteDir.cd( current, TRUE); 1064 currentRemoteDir.cd( current, TRUE);
1065 populateRemoteView(); 1065 populateRemoteView();
1066 } 1066 }
1067 update(); 1067 update();
1068} 1068}
1069 1069
1070void AdvancedFm::docButtonPushed() { 1070void AdvancedFm::docButtonPushed() {
1071 QString current = QPEApplication::documentDir(); 1071 QString current = QPEApplication::documentDir();
1072 chdir( current.latin1() ); 1072 chdir( current.latin1() );
1073 if (TabWidget->currentPageIndex() == 0) { 1073 if (TabWidget->currentPageIndex() == 0) {
1074 currentDir.cd( current, TRUE); 1074 currentDir.cd( current, TRUE);
1075 populateLocalView(); 1075 populateLocalView();
1076 } else { 1076 } else {
1077 currentRemoteDir.cd( current, TRUE); 1077 currentRemoteDir.cd( current, TRUE);
1078 populateRemoteView(); 1078 populateRemoteView();
1079 } 1079 }
1080 update(); 1080 update();
1081} 1081}
1082 1082
1083void AdvancedFm::SDButtonPushed() { 1083void AdvancedFm::SDButtonPushed() {
1084 QString current = "/mnt/card"; 1084 QString current = "/mnt/card";
1085 chdir( current.latin1() ); 1085 chdir( current.latin1() );
1086 if (TabWidget->currentPageIndex() == 0) { 1086 if (TabWidget->currentPageIndex() == 0) {
1087 currentDir.cd( current, TRUE); 1087 currentDir.cd( current, TRUE);
1088 populateLocalView(); 1088 populateLocalView();
1089 } else { 1089 } else {
1090 currentRemoteDir.cd( current, TRUE); 1090 currentRemoteDir.cd( current, TRUE);
1091 populateRemoteView(); 1091 populateRemoteView();
1092 } 1092 }
1093 update(); 1093 update();
1094 1094
1095} 1095}
1096 1096
1097void AdvancedFm::CFButtonPushed() { 1097void AdvancedFm::CFButtonPushed() {
1098 QString current = "/mnt/cf"; 1098 QString current = "/mnt/cf";
1099 chdir( current.latin1() ); 1099 chdir( current.latin1() );
1100 if (TabWidget->currentPageIndex() == 0) { 1100 if (TabWidget->currentPageIndex() == 0) {
1101 currentDir.cd( current, TRUE); 1101 currentDir.cd( current, TRUE);
1102 populateLocalView(); 1102 populateLocalView();
1103 } else { 1103 } else {
1104 currentRemoteDir.cd( current, TRUE); 1104 currentRemoteDir.cd( current, TRUE);
1105 populateRemoteView(); 1105 populateRemoteView();
1106 } 1106 }
1107 update(); 1107 update();
1108 1108
1109} 1109}
1110 1110
1111 1111
1112void AdvancedFm::upDir() 1112void AdvancedFm::upDir()
1113{ 1113{
1114 if (TabWidget->currentPageIndex() == 0) { 1114 if (TabWidget->currentPageIndex() == 0) {
1115 QString current = currentDir.canonicalPath(); 1115 QString current = currentDir.canonicalPath();
1116 QDir dir(current); 1116 QDir dir(current);
1117 dir.cdUp(); 1117 dir.cdUp();
1118 current = dir.canonicalPath(); 1118 current = dir.canonicalPath();
1119 chdir( current.latin1() ); 1119 chdir( current.latin1() );
1120 currentDir.cd( current, TRUE); 1120 currentDir.cd( current, TRUE);
1121 populateLocalView(); 1121 populateLocalView();
1122 update(); 1122 update();
1123 } else { 1123 } else {
1124 QString current = currentRemoteDir.canonicalPath(); 1124 QString current = currentRemoteDir.canonicalPath();
1125 QDir dir(current); 1125 QDir dir(current);
1126 dir.cdUp(); 1126 dir.cdUp();
1127 current = dir.canonicalPath(); 1127 current = dir.canonicalPath();
1128 chdir( current.latin1() ); 1128 chdir( current.latin1() );
1129 currentRemoteDir.cd( current, TRUE); 1129 currentRemoteDir.cd( current, TRUE);
1130 populateRemoteView(); 1130 populateRemoteView();
1131 update(); 1131 update();
1132 } 1132 }
1133} 1133}
1134 1134
1135void AdvancedFm::copy() 1135void AdvancedFm::copy()
1136{ 1136{
1137 QStringList curFileList = getPath(); 1137 QStringList curFileList = getPath();
1138 QString curFile; 1138 QString curFile;
1139 if (TabWidget->currentPageIndex() == 0) { 1139 if (TabWidget->currentPageIndex() == 0) {
1140 for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it ) { 1140 for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it ) {
1141 1141
1142 QString destFile = currentRemoteDir.canonicalPath(); 1142 QString destFile = currentRemoteDir.canonicalPath()+"/"+(*it);
1143 if(destFile.right(1).find("/",0,TRUE) == -1) 1143// if(destFile.right(1).find("/",0,TRUE) == -1)
1144 destFile+="/"; 1144// destFile+="/";
1145 destFile +=(*it); 1145// destFile +=(*it);
1146 curFile = currentDir.canonicalPath(); 1146
1147 if(curFile.right(1).find("/",0,TRUE) == -1) 1147 curFile = currentDir.canonicalPath()+"/"+(*it);
1148 curFile +="/"; 1148// if(curFile.right(1).find("/",0,TRUE) == -1)
1149 curFile +=(*it); 1149// curFile +="/";
1150// curFile +=(*it);
1151
1150 QFile f(destFile); 1152 QFile f(destFile);
1151 if( f.exists()) 1153 if( f.exists())
1152 f.remove(); 1154 f.remove();
1153 if(!copyFile(destFile, curFile) ) 1155 if(!copyFile(destFile, curFile) ) {
1156 QMessageBox::message("AdvancedFm","Could not copy\n"+curFile +"to\n"+destFile);
1154 qWarning("nothin doing"); 1157 qWarning("nothin doing");
1158 }
1155 } 1159 }
1156 populateRemoteView(); 1160 populateRemoteView();
1157 TabWidget->setCurrentPage(1); 1161 TabWidget->setCurrentPage(1);
1158 1162
1159 } else { 1163 } else {
1160 for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it ) { 1164 for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it ) {
1161 1165
1162 QString destFile = currentDir.canonicalPath(); 1166 QString destFile = currentDir.canonicalPath()+"/"+(*it);
1163 if(destFile.right(1).find("/",0,TRUE) == -1) 1167 curFile = currentRemoteDir.canonicalPath()+"/"+(*it);
1164 destFile+="/"; 1168
1165 destFile +=(*it);
1166 curFile = currentRemoteDir.canonicalPath();
1167 if(curFile.right(1).find("/",0,TRUE) == -1)
1168 curFile +="/";
1169 curFile +=(*it);
1170 QFile f(destFile); 1169 QFile f(destFile);
1171 if( f.exists()) 1170 if( f.exists())
1172 f.remove(); 1171 f.remove();
1173 if(!copyFile(destFile, curFile) ) 1172 if(!copyFile(destFile, curFile) ) {
1174 qWarning("nothin doing"); 1173 QMessageBox::message("AdvancedFm","Could not copy\n"+curFile +"to\n"+destFile);
1174
1175 qWarning("nothin doing");
1176 }
1175 } 1177 }
1176 populateLocalView(); 1178 populateLocalView();
1177 TabWidget->setCurrentPage(0); 1179 TabWidget->setCurrentPage(0);
1178 } 1180 }
1179} 1181}
1180 1182
1181void AdvancedFm::copyAs() 1183void AdvancedFm::copyAs()
1182{ 1184{
1183 QStringList curFileList = getPath(); 1185 QStringList curFileList = getPath();
1184 QString curFile; 1186 QString curFile;
1185 InputDialog *fileDlg; 1187 InputDialog *fileDlg;
1186 fileDlg = new InputDialog(this,tr("Copy As"),TRUE, 0); 1188 fileDlg = new InputDialog(this,tr("Copy As"),TRUE, 0);
1187 1189
1188 if (TabWidget->currentPageIndex() == 0) { 1190 if (TabWidget->currentPageIndex() == 0) {
1189 for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it ) { 1191 for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it ) {
1190 QString destFile; 1192 QString destFile;
1191 curFile = currentDir.canonicalPath(); 1193 curFile = currentDir.canonicalPath()+"/"+(*it);
1192 if(curFile.right(1).find("/",0,TRUE) == -1)
1193 curFile +="/";
1194 curFile+=(*it);
1195// InputDialog *fileDlg; 1194// InputDialog *fileDlg;
1196// fileDlg = new InputDialog(this,tr("Copy As"),TRUE, 0); 1195// fileDlg = new InputDialog(this,tr("Copy As"),TRUE, 0);
1197 fileDlg->setInputText((const QString &) destFile ); 1196 fileDlg->setInputText((const QString &) destFile );
1198 fileDlg->exec(); 1197 fileDlg->exec();
1199 if( fileDlg->result() == 1 ) { 1198 if( fileDlg->result() == 1 ) {
1200 QString filename = fileDlg->LineEdit1->text(); 1199 QString filename = fileDlg->LineEdit1->text();
1201 destFile = currentRemoteDir.canonicalPath(); 1200 destFile = currentRemoteDir.canonicalPath()+"/"+(*it);
1202 if(destFile.right(1).find("/",0,TRUE) == -1)
1203 destFile+="/";
1204 destFile +=(*it);
1205 1201
1206 QFile f(destFile); 1202 QFile f(destFile);
1207 if( f.exists()) 1203 if( f.exists())
1208 f.remove(); 1204 f.remove();
1209 if(!copyFile(destFile, curFile) ) 1205 if(!copyFile(destFile, curFile) ) {
1206 QMessageBox::message("AdvancedFm","Could not copy\n"+curFile +"to\n"+destFile);
1210 qWarning("nothin doing"); 1207 qWarning("nothin doing");
1208 }
1211 } 1209 }
1212 } 1210 }
1213 1211
1214 populateRemoteView(); 1212 populateRemoteView();
1215 TabWidget->setCurrentPage(1); 1213 TabWidget->setCurrentPage(1);
1216 } else { 1214 } else {
1217 if (TabWidget->currentPageIndex() == 0) { 1215 if (TabWidget->currentPageIndex() == 0) {
1218 for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it ) { 1216 for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it ) {
1219 1217
1220 curFile = currentDir.canonicalPath(); 1218 curFile = currentDir.canonicalPath()+"/"+(*it);
1221 if(curFile.right(1).find("/",0,TRUE) == -1)
1222 curFile +="/";
1223 curFile+=(*it);
1224 QString destFile; 1219 QString destFile;
1225 fileDlg->setInputText((const QString &) destFile); 1220 fileDlg->setInputText((const QString &) destFile);
1226 fileDlg->exec(); 1221 fileDlg->exec();
1227 if( fileDlg->result() == 1 ) { 1222 if( fileDlg->result() == 1 ) {
1228 QString filename = fileDlg->LineEdit1->text(); 1223 QString filename = fileDlg->LineEdit1->text();
1229 destFile = currentDir.canonicalPath(); 1224 destFile = currentDir.canonicalPath()+"/"+(*it);
1230 if(destFile.right(1).find("/",0,TRUE) == -1)
1231 destFile+="/";
1232 destFile +=(*it);
1233 1225
1234 QFile f(destFile); 1226 QFile f(destFile);
1235 if( f.exists()) 1227 if( f.exists())
1236 f.remove(); 1228 f.remove();
1237 if(!copyFile(destFile, curFile) ) 1229 if(!copyFile(destFile, curFile) ) {
1238 qWarning("nothin doing"); 1230 QMessageBox::message("AdvancedFm","Could not copy\n"+curFile +"to\n"+destFile);
1231 qWarning("nothin doing");
1232 }
1239 } 1233 }
1240 } 1234 }
1241 populateLocalView(); 1235 populateLocalView();
1242 TabWidget->setCurrentPage(0); 1236 TabWidget->setCurrentPage(0);
1243 } 1237 }
1244 } 1238 }
1245} 1239}
1246 1240
1247void AdvancedFm::move() { 1241void AdvancedFm::move() {
1248 1242
1249 QStringList curFileList = getPath(); 1243 QStringList curFileList = getPath();
1250 QString curFile; 1244 QString curFile;
1251// qDebug(curFile); 1245// qDebug(curFile);
1252 QString destFile; 1246 QString destFile;
1253 1247
1254 if (TabWidget->currentPageIndex() == 0) { 1248 if (TabWidget->currentPageIndex() == 0) {
1255 for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it ) { 1249 for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it ) {
1256 QString destFile = currentRemoteDir.canonicalPath(); 1250 QString destFile = currentRemoteDir.canonicalPath();
1257 if(destFile.right(1).find("/",0,TRUE) == -1) 1251 if(destFile.right(1).find("/",0,TRUE) == -1)
1258 destFile+="/"; 1252 destFile+="/";
1259 destFile +=(*it); 1253 destFile +=(*it);
1260 curFile = currentDir.canonicalPath(); 1254 curFile = currentDir.canonicalPath();
1261 qDebug("Destination file is "+destFile); 1255 qDebug("Destination file is "+destFile);
1262 if(curFile.right(1).find("/",0,TRUE) == -1) 1256 if(curFile.right(1).find("/",0,TRUE) == -1)
1263 curFile +="/"; 1257 curFile +="/";
1264 curFile+=(*it); 1258 curFile+=(*it);
1265 1259
1266 QFile f(destFile); 1260 QFile f(destFile);
1267 if( f.exists()) 1261 if( f.exists())
1268 f.remove(); 1262 f.remove();
1269 if(!copyFile( destFile, curFile) ) { 1263 if(!copyFile( destFile, curFile) ) {
1270 QMessageBox::message(tr("Note"),tr("Could not move\n"+curFile)); 1264 QMessageBox::message(tr("Note"),tr("Could not move\n"+curFile));
1271 return; 1265 return;
1272 } 1266 }
1273 QFile::remove(curFile); 1267 QFile::remove(curFile);
1274 } 1268 }
1275 TabWidget->setCurrentPage(1); 1269 TabWidget->setCurrentPage(1);
1276 } else { 1270 } else {
1277 for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it ) { 1271 for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it ) {
1278 QString destFile = currentRemoteDir.canonicalPath(); 1272 QString destFile = currentRemoteDir.canonicalPath();
1279 if(destFile.right(1).find("/",0,TRUE) == -1) 1273 if(destFile.right(1).find("/",0,TRUE) == -1)
1280 destFile+="/"; 1274 destFile+="/";
1281 destFile +=(*it); 1275 destFile +=(*it);
1282 qDebug("Destination file is "+destFile); 1276 qDebug("Destination file is "+destFile);
1283 curFile = currentDir.canonicalPath(); 1277 curFile = currentDir.canonicalPath();
1284 if(curFile.right(1).find("/",0,TRUE) == -1) 1278 if(curFile.right(1).find("/",0,TRUE) == -1)
1285 curFile +="/"; 1279 curFile +="/";
1286 curFile+=(*it); 1280 curFile+=(*it);
1287 1281
1288 QFile f(destFile); 1282 QFile f(destFile);
1289 if( f.exists()) 1283 if( f.exists())
1290 f.remove(); 1284 f.remove();
1291 if(!copyFile(destFile, curFile) ) { 1285 if(!copyFile(destFile, curFile) ) {
1292 QMessageBox::message(tr("Note"),tr("Could not move\n"+curFile)); 1286 QMessageBox::message(tr("Note"),tr("Could not move\n"+curFile));
1293 return; 1287 return;
1294 } 1288 }
1295 QFile::remove(curFile); 1289 QFile::remove(curFile);
1296 TabWidget->setCurrentPage(0); 1290 TabWidget->setCurrentPage(0);
1297 } 1291 }
1298 } 1292 }
1299 populateRemoteView(); 1293 populateRemoteView();
1300 populateLocalView(); 1294 populateLocalView();
1301 } 1295 }
1302 1296
@@ -1473,96 +1467,105 @@ void AdvancedFm::keyReleaseEvent( QKeyEvent *e)
1473 showHidden(); 1467 showHidden();
1474 break; 1468 break;
1475 case Key_E: 1469 case Key_E:
1476 runThis(); 1470 runThis();
1477 break; 1471 break;
1478 case Key_C: 1472 case Key_C:
1479 copy(); 1473 copy();
1480 break; 1474 break;
1481 case Key_A: 1475 case Key_A:
1482 copyAs(); 1476 copyAs();
1483 break; 1477 break;
1484 case Key_M: 1478 case Key_M:
1485 move(); 1479 move();
1486 break; 1480 break;
1487 case Key_R: 1481 case Key_R:
1488 rn(); 1482 rn();
1489 break; 1483 break;
1490 case Key_I: 1484 case Key_I:
1491 fileStatus(); 1485 fileStatus();
1492 break; 1486 break;
1493 case Key_U: 1487 case Key_U:
1494 upDir(); 1488 upDir();
1495 break; 1489 break;
1496 case Key_P: 1490 case Key_P:
1497 filePerms(); 1491 filePerms();
1498 break; 1492 break;
1499 case Key_N: 1493 case Key_N:
1500 mkDir(); 1494 mkDir();
1501 break; 1495 break;
1502 case Key_1: 1496 case Key_1:
1503 switchToLocalTab(); 1497 switchToLocalTab();
1504 break; 1498 break;
1505 case Key_2: 1499 case Key_2:
1506 switchToRemoteTab(); 1500 switchToRemoteTab();
1507 break; 1501 break;
1508 case Key_3: 1502 case Key_3:
1509 CFButtonPushed(); 1503 CFButtonPushed();
1510 break; 1504 break;
1511 case Key_4: 1505 case Key_4:
1512 SDButtonPushed(); 1506 SDButtonPushed();
1513 break; 1507 break;
1514 case Key_5: 1508 case Key_5:
1515 homeButtonPushed(); 1509 homeButtonPushed();
1516 break; 1510 break;
1517 case Key_6: 1511 case Key_6:
1518 docButtonPushed(); 1512 docButtonPushed();
1519 break; 1513 break;
1520 case Key_7: 1514 case Key_7:
1521 break; 1515 break;
1522 case Key_8: 1516 case Key_8:
1523 break; 1517 break;
1524 case Key_9: 1518 case Key_9:
1525 break; 1519 break;
1526 case Key_0: 1520 case Key_0:
1527 break; 1521 break;
1528 1522
1529 1523
1530 1524
1531 } 1525 }
1532 1526
1533} 1527}
1534 1528
1535void AdvancedFm::mkSym() { 1529void AdvancedFm::mkSym() {
1536 QString cmd; 1530 QString cmd;
1531 QStringList curFileList = getPath();
1532
1537 if (TabWidget->currentPageIndex() == 0) { 1533 if (TabWidget->currentPageIndex() == 0) {
1538 QString curFile = Local_View->currentItem()->text(0); 1534 for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it ) {
1539 if(curFile.right(1) == "/") curFile = curFile.left(curFile.length() - 1); 1535
1540 QString destName = currentRemoteDir.canonicalPath()+"/"+curFile; 1536 QString destName = currentRemoteDir.canonicalPath()+"/"+(*it);
1541 curFile = currentDir.canonicalPath()+"/"+curFile; 1537 QString curFile = currentDir.canonicalPath()+"/"+(*it);
1542 cmd = "ln -s "+curFile+" "+destName; 1538 cmd = "ln -s "+curFile+" "+destName;
1543 system(cmd.latin1() ); 1539 qDebug(cmd);
1544 populateRemoteView(); 1540 system(cmd.latin1() );
1541 }
1542 populateRemoteView();
1543 TabWidget->setCurrentPage(1);
1545 } else { 1544 } else {
1546 QString curFile = Remote_View->currentItem()->text(0); 1545 for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it ) {
1547 if(curFile.right(1) == "/") curFile = curFile.left(curFile.length() - 1); 1546
1548 QString destName = currentDir.canonicalPath()+"/"+curFile; 1547 QString destName = currentDir.canonicalPath()+"/"+(*it);
1549 curFile = currentRemoteDir.canonicalPath()+"/"+curFile; 1548 QString curFile = currentRemoteDir.canonicalPath()+"/"+(*it);
1550 cmd = "ln -s "+curFile+" "+destName; 1549
1551 system(cmd.latin1() ); 1550 cmd = "ln -s "+curFile+" "+destName;
1552 populateLocalView(); 1551 qDebug(cmd);
1552 system(cmd.latin1() );
1553 }
1554 populateLocalView();
1555 TabWidget->setCurrentPage(0);
1553 } 1556 }
1554} 1557}
1555 1558
1556void AdvancedFm::QPEButtonPushed() { 1559void AdvancedFm::QPEButtonPushed() {
1557 QString current = QPEApplication::qpeDir(); 1560 QString current = QPEApplication::qpeDir();
1558 chdir( current.latin1() ); 1561 chdir( current.latin1() );
1559 if (TabWidget->currentPageIndex() == 0) { 1562 if (TabWidget->currentPageIndex() == 0) {
1560 currentDir.cd( current, TRUE); 1563 currentDir.cd( current, TRUE);
1561 populateLocalView(); 1564 populateLocalView();
1562 } else { 1565 } else {
1563 currentRemoteDir.cd( current, TRUE); 1566 currentRemoteDir.cd( current, TRUE);
1564 populateRemoteView(); 1567 populateRemoteView();
1565 } 1568 }
1566 update(); 1569 update();
1567 1570
1568} 1571}