summaryrefslogtreecommitdiff
authorllornkcor <llornkcor>2002-12-16 04:14:46 (UTC)
committer llornkcor <llornkcor>2002-12-16 04:14:46 (UTC)
commitcc6c77e7014a3056debd6963946265671d41517d (patch) (unidiff)
tree1b8f929dd83a8d64915b91ecb3052c19ff5ac0b5
parentb1880703eea8601e06cf3d3e8593b649cd1a485e (diff)
downloadopie-cc6c77e7014a3056debd6963946265671d41517d.zip
opie-cc6c77e7014a3056debd6963946265671d41517d.tar.gz
opie-cc6c77e7014a3056debd6963946265671d41517d.tar.bz2
send as text the real filename is symlink
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/apps/advancedfm/advancedfm.cpp8
-rw-r--r--noncore/apps/advancedfm/advancedfm.h1
-rw-r--r--noncore/apps/advancedfm/advancedfmMenu.cpp34
3 files changed, 30 insertions, 13 deletions
diff --git a/noncore/apps/advancedfm/advancedfm.cpp b/noncore/apps/advancedfm/advancedfm.cpp
index 92804b2..c653b90 100644
--- a/noncore/apps/advancedfm/advancedfm.cpp
+++ b/noncore/apps/advancedfm/advancedfm.cpp
@@ -254,275 +254,277 @@ void AdvancedFm::populateRemoteView() {
254 if(isDir || fileL.find("/",0,TRUE) != -1) { 254 if(isDir || fileL.find("/",0,TRUE) != -1) {
255 if( !QDir( fi->filePath() ).isReadable()) 255 if( !QDir( fi->filePath() ).isReadable())
256 pm = Resource::loadPixmap( "lockedfolder" ); 256 pm = Resource::loadPixmap( "lockedfolder" );
257 else 257 else
258 pm= Resource::loadPixmap( "folder" ); 258 pm= Resource::loadPixmap( "folder" );
259 } else if ( fs == "vfat" && fileInfo.filePath().contains("/bin") ) { 259 } else if ( fs == "vfat" && fileInfo.filePath().contains("/bin") ) {
260 pm = Resource::loadPixmap( "exec"); 260 pm = Resource::loadPixmap( "exec");
261 } else if( (fileInfo.permission( QFileInfo::ExeUser) 261 } else if( (fileInfo.permission( QFileInfo::ExeUser)
262 | fileInfo.permission( QFileInfo::ExeGroup) 262 | fileInfo.permission( QFileInfo::ExeGroup)
263 | fileInfo.permission( QFileInfo::ExeOther)) && fs != "vfat" ) { 263 | fileInfo.permission( QFileInfo::ExeOther)) && fs != "vfat" ) {
264 pm = Resource::loadPixmap( "exec"); 264 pm = Resource::loadPixmap( "exec");
265 } else if( !fi->isReadable() ) { 265 } else if( !fi->isReadable() ) {
266 pm = Resource::loadPixmap( "locked" ); 266 pm = Resource::loadPixmap( "locked" );
267 } else { 267 } else {
268 MimeType mt(fi->filePath()); 268 MimeType mt(fi->filePath());
269 pm=mt.pixmap(); //sets the correct pixmap for mimetype 269 pm=mt.pixmap(); //sets the correct pixmap for mimetype
270 if(pm.isNull()) 270 if(pm.isNull())
271 pm = Resource::loadPixmap( "UnknownDocument-14" ); 271 pm = Resource::loadPixmap( "UnknownDocument-14" );
272 } 272 }
273 if( fi->isSymLink() && fileL.find("->",0,TRUE) != -1) { 273 if( fi->isSymLink() && fileL.find("->",0,TRUE) != -1) {
274 // overlay link image 274 // overlay link image
275 pm= Resource::loadPixmap( "folder" ); 275 pm= Resource::loadPixmap( "folder" );
276 QPixmap lnk = Resource::loadPixmap( "opie/symlink" ); 276 QPixmap lnk = Resource::loadPixmap( "opie/symlink" );
277 QPainter painter( &pm ); 277 QPainter painter( &pm );
278 painter.drawPixmap( pm.width()-lnk.width(), pm.height()-lnk.height(), lnk ); 278 painter.drawPixmap( pm.width()-lnk.width(), pm.height()-lnk.height(), lnk );
279 pm.setMask( pm.createHeuristicMask( FALSE ) ); 279 pm.setMask( pm.createHeuristicMask( FALSE ) );
280 } 280 }
281 item->setPixmap( 0, pm); 281 item->setPixmap( 0, pm);
282 } 282 }
283 isDir=FALSE; 283 isDir=FALSE;
284 ++it; 284 ++it;
285 } 285 }
286 286
287 if(currentRemoteDir.canonicalPath().find("dev",0,TRUE) != -1) { 287 if(currentRemoteDir.canonicalPath().find("dev",0,TRUE) != -1) {
288 struct stat buf; 288 struct stat buf;
289 DIR *dir; 289 DIR *dir;
290 struct dirent *mydirent; 290 struct dirent *mydirent;
291 if((dir = opendir( currentRemoteDir.canonicalPath().latin1())) != NULL) 291 if((dir = opendir( currentRemoteDir.canonicalPath().latin1())) != NULL)
292 while ((mydirent = readdir(dir)) != NULL) { 292 while ((mydirent = readdir(dir)) != NULL) {
293 lstat( mydirent->d_name, &buf); 293 lstat( mydirent->d_name, &buf);
294 qDebug(mydirent->d_name); 294 qDebug(mydirent->d_name);
295 fileL.sprintf("%s", mydirent->d_name); 295 fileL.sprintf("%s", mydirent->d_name);
296 fileS.sprintf("%d,%d", (int) (buf.st_dev>>8)&0xFF, (int) buf.st_dev &0xFF); 296 fileS.sprintf("%d,%d", (int) (buf.st_dev>>8)&0xFF, (int) buf.st_dev &0xFF);
297 fileDate.sprintf("%s", ctime( &buf.st_mtime)); 297 fileDate.sprintf("%s", ctime( &buf.st_mtime));
298 if( fileL.find(".") == -1 ){ 298 if( fileL.find(".") == -1 ){
299 item= new QListViewItem( Remote_View, fileL, fileS, fileDate); 299 item= new QListViewItem( Remote_View, fileL, fileS, fileDate);
300 pm = Resource::loadPixmap( "UnknownDocument-14" ); 300 pm = Resource::loadPixmap( "UnknownDocument-14" );
301 item->setPixmap( 0,pm); 301 item->setPixmap( 0,pm);
302 } 302 }
303 } 303 }
304 304
305 closedir(dir); 305 closedir(dir);
306 } 306 }
307 307
308 Remote_View->setSorting( 3,FALSE); 308 Remote_View->setSorting( 3,FALSE);
309 fillCombo( (const QString &) currentRemoteDir.canonicalPath() ); 309 fillCombo( (const QString &) currentRemoteDir.canonicalPath() );
310} 310}
311 311
312void AdvancedFm::localListClicked(QListViewItem *selectedItem) { 312void AdvancedFm::localListClicked(QListViewItem *selectedItem) {
313 if(selectedItem) { 313 if(selectedItem) {
314 QString strItem=selectedItem->text(0); 314 QString strItem=selectedItem->text(0);
315 QString strSize=selectedItem->text(1); 315 QString strSize=selectedItem->text(1);
316 strSize=strSize.stripWhiteSpace(); 316 strSize=strSize.stripWhiteSpace();
317 if(strItem.find("@",0,TRUE) !=-1 || strItem.find("->",0,TRUE) !=-1 ) { //if symlink 317 if(strItem.find("@",0,TRUE) !=-1 || strItem.find("->",0,TRUE) !=-1 ) { //if symlink
318 QString strItem2 = strItem.right( (strItem.length() - strItem.find("->",0,TRUE)) - 4); 318 QString strItem2 = dealWithSymName((const QString&)strItem);
319// QString strItem2 = strItem.right( (strItem.length() - strItem.find("->",0,TRUE)) - 4);
319 if(QDir(strItem2).exists() ) { 320 if(QDir(strItem2).exists() ) {
320 currentDir.cd(strItem2, TRUE); 321 currentDir.cd(strItem2, TRUE);
321 populateLocalView(); 322 populateLocalView();
322 323
323 } 324 }
324 } else { // not a symlink 325 } else { // not a symlink
325 if(strItem.find(". .",0,TRUE) && strItem.find("/",0,TRUE)!=-1 ) { 326 if(strItem.find(". .",0,TRUE) && strItem.find("/",0,TRUE)!=-1 ) {
326 if(QDir(QDir::cleanDirPath(currentDir.canonicalPath()+"/"+strItem)).exists() ) { 327 if(QDir(QDir::cleanDirPath(currentDir.canonicalPath()+"/"+strItem)).exists() ) {
327 strItem=QDir::cleanDirPath(currentDir.canonicalPath()+"/"+strItem); 328 strItem=QDir::cleanDirPath(currentDir.canonicalPath()+"/"+strItem);
328 currentDir.cd(strItem,FALSE); 329 currentDir.cd(strItem,FALSE);
329 populateLocalView(); 330 populateLocalView();
330 Local_View->ensureItemVisible(Local_View->firstChild()); 331 Local_View->ensureItemVisible(Local_View->firstChild());
331 332
332 } else { 333 } else {
333 currentDir.cdUp(); 334 currentDir.cdUp();
334 populateLocalView(); 335 populateLocalView();
335 Local_View->ensureItemVisible(Local_View->firstChild()); 336 Local_View->ensureItemVisible(Local_View->firstChild());
336 } 337 }
337 if(QDir(strItem).exists()){ 338 if(QDir(strItem).exists()){
338 currentDir.cd(strItem, TRUE); 339 currentDir.cd(strItem, TRUE);
339 Local_View->ensureItemVisible(Local_View->firstChild()); 340 Local_View->ensureItemVisible(Local_View->firstChild());
340 populateLocalView(); 341 populateLocalView();
341 } 342 }
342 } else { 343 } else {
343 strItem=QDir::cleanDirPath(currentDir.canonicalPath()+"/"+strItem); 344 strItem=QDir::cleanDirPath(currentDir.canonicalPath()+"/"+strItem);
344 if( QFile::exists(strItem ) ) { 345 if( QFile::exists(strItem ) ) {
345 // qDebug("clicked item "+strItem); 346 // qDebug("clicked item "+strItem);
346 // DocLnk doc( strItem, FALSE ); 347 // DocLnk doc( strItem, FALSE );
347 // doc.execute(); 348 // doc.execute();
348 // Local_View->clearSelection(); 349 // Local_View->clearSelection();
349 } 350 }
350 } //end not symlink 351 } //end not symlink
351 chdir(strItem.latin1()); 352 chdir(strItem.latin1());
352 } 353 }
353 354
354 } 355 }
355} 356}
356 357
357void AdvancedFm::remoteListClicked(QListViewItem *selectedItem) { 358void AdvancedFm::remoteListClicked(QListViewItem *selectedItem) {
358 359
359 if(selectedItem) { 360 if(selectedItem) {
360 QString strItem=selectedItem->text(0); 361 QString strItem=selectedItem->text(0);
361 QString strSize=selectedItem->text(1); 362 QString strSize=selectedItem->text(1);
362 strSize=strSize.stripWhiteSpace(); 363 strSize=strSize.stripWhiteSpace();
363 if(strItem.find("@",0,TRUE) !=-1 || strItem.find("->",0,TRUE) !=-1 ) { //if symlink 364 if(strItem.find("@",0,TRUE) !=-1 || strItem.find("->",0,TRUE) !=-1 ) { //if symlink
364 QString strItem2 = strItem.right( (strItem.length() - strItem.find("->",0,TRUE)) - 4); 365 QString strItem2 = dealWithSymName((const QString&)strItem);
366// QString strItem2 = strItem.right( (strItem.length() - strItem.find("->",0,TRUE)) - 4);
365 currentRemoteDir.cd(strItem2, TRUE); 367 currentRemoteDir.cd(strItem2, TRUE);
366 populateRemoteView(); 368 populateRemoteView();
367 } else { // not a symlink 369 } else { // not a symlink
368 if(strItem.find(". .",0,TRUE) && strItem.find("/",0,TRUE)!=-1 ) { 370 if(strItem.find(". .",0,TRUE) && strItem.find("/",0,TRUE)!=-1 ) {
369 if(QDir(QDir::cleanDirPath( currentRemoteDir.canonicalPath()+"/"+strItem)).exists() ) { 371 if(QDir(QDir::cleanDirPath( currentRemoteDir.canonicalPath()+"/"+strItem)).exists() ) {
370 strItem=QDir::cleanDirPath( currentRemoteDir.canonicalPath()+"/"+strItem); 372 strItem=QDir::cleanDirPath( currentRemoteDir.canonicalPath()+"/"+strItem);
371 currentRemoteDir.cd(strItem,FALSE); 373 currentRemoteDir.cd(strItem,FALSE);
372 populateRemoteView(); 374 populateRemoteView();
373 Remote_View->ensureItemVisible(Remote_View->firstChild()); 375 Remote_View->ensureItemVisible(Remote_View->firstChild());
374 } else { 376 } else {
375 currentRemoteDir.cdUp(); 377 currentRemoteDir.cdUp();
376 populateRemoteView(); 378 populateRemoteView();
377 Remote_View->ensureItemVisible(Remote_View->firstChild()); 379 Remote_View->ensureItemVisible(Remote_View->firstChild());
378 } 380 }
379 if(QDir(strItem).exists()){ 381 if(QDir(strItem).exists()){
380 currentRemoteDir.cd(strItem, TRUE); 382 currentRemoteDir.cd(strItem, TRUE);
381 populateRemoteView(); 383 populateRemoteView();
382 Remote_View->ensureItemVisible(Remote_View->firstChild()); 384 Remote_View->ensureItemVisible(Remote_View->firstChild());
383 } 385 }
384 } else { 386 } else {
385 strItem=QDir::cleanDirPath( currentRemoteDir.canonicalPath()+"/"+strItem); 387 strItem=QDir::cleanDirPath( currentRemoteDir.canonicalPath()+"/"+strItem);
386 if( QFile::exists(strItem ) ) { 388 if( QFile::exists(strItem ) ) {
387 // qDebug("clicked item "+strItem); 389 // qDebug("clicked item "+strItem);
388 // DocLnk doc( strItem, FALSE ); 390 // DocLnk doc( strItem, FALSE );
389 // doc.execute(); 391 // doc.execute();
390 // Remote_View->clearSelection(); 392 // Remote_View->clearSelection();
391 } 393 }
392 } //end not symlink 394 } //end not symlink
393 chdir(strItem.latin1()); 395 chdir(strItem.latin1());
394 } 396 }
395 } 397 }
396} 398}
397 399
398 400
399void AdvancedFm::localListPressed( int mouse, QListViewItem *, const QPoint& , int ) { 401void AdvancedFm::localListPressed( int mouse, QListViewItem *, const QPoint& , int ) {
400// qDebug("list pressed"); 402// qDebug("list pressed");
401 switch (mouse) { 403 switch (mouse) {
402 case 1: 404 case 1:
403 break; 405 break;
404 case 2: 406 case 2:
405 menuTimer.start( 500, TRUE ); 407 menuTimer.start( 500, TRUE );
406 qDebug("Start menu timer\n"); 408 qDebug("Start menu timer\n");
407 break; 409 break;
408 }; 410 };
409} 411}
410 412
411void AdvancedFm::remoteListPressed( int mouse, QListViewItem*, const QPoint&, int ) { 413void AdvancedFm::remoteListPressed( int mouse, QListViewItem*, const QPoint&, int ) {
412 414
413 switch (mouse) { 415 switch (mouse) {
414 case 1: 416 case 1:
415 break; 417 break;
416 case 2: 418 case 2:
417 menuTimer.start( 500, TRUE ); 419 menuTimer.start( 500, TRUE );
418 qDebug("Start menu timer"); 420 qDebug("Start menu timer");
419 break; 421 break;
420 }; 422 };
421} 423}
422 424
423 425
424void AdvancedFm::switchToLocalTab() { 426void AdvancedFm::switchToLocalTab() {
425 TabWidget->setCurrentTab(0); 427 TabWidget->setCurrentTab(0);
426 Local_View->setFocus(); 428 Local_View->setFocus();
427} 429}
428 430
429void AdvancedFm::switchToRemoteTab() { 431void AdvancedFm::switchToRemoteTab() {
430 TabWidget->setCurrentTab(1); 432 TabWidget->setCurrentTab(1);
431 Remote_View->setFocus(); 433 Remote_View->setFocus();
432} 434}
433 435
434void AdvancedFm::readConfig() { 436void AdvancedFm::readConfig() {
435 Config cfg("AdvancedFm"); 437 Config cfg("AdvancedFm");
436} 438}
437 439
438void AdvancedFm::writeConfig() { 440void AdvancedFm::writeConfig() {
439 Config cfg("AdvancedFm"); 441 Config cfg("AdvancedFm");
440} 442}
441 443
442void AdvancedFm::currentPathComboChanged() { 444void AdvancedFm::currentPathComboChanged() {
443 if (TabWidget->getCurrentTab() == 0) { 445 if (TabWidget->getCurrentTab() == 0) {
444// if (TabWidget->currentPageIndex() == 0) { 446// if (TabWidget->currentPageIndex() == 0) {
445 if(QDir( currentPathCombo->lineEdit()->text()).exists()) { 447 if(QDir( currentPathCombo->lineEdit()->text()).exists()) {
446 currentDir.setPath( currentPathCombo->lineEdit()->text() ); 448 currentDir.setPath( currentPathCombo->lineEdit()->text() );
447 populateLocalView(); 449 populateLocalView();
448 } else { 450 } else {
449 QMessageBox::message(tr("Note"),tr("That directory does not exist")); 451 QMessageBox::message(tr("Note"),tr("That directory does not exist"));
450 } 452 }
451 } 453 }
452 if (TabWidget->getCurrentTab() == 0) { 454 if (TabWidget->getCurrentTab() == 0) {
453// if (TabWidget->currentPageIndex() == 0) { 455// if (TabWidget->currentPageIndex() == 0) {
454 if(QDir( currentPathCombo->lineEdit()->text()).exists()) { 456 if(QDir( currentPathCombo->lineEdit()->text()).exists()) {
455 currentRemoteDir.setPath( currentPathCombo->lineEdit()->text() ); 457 currentRemoteDir.setPath( currentPathCombo->lineEdit()->text() );
456 populateRemoteView(); 458 populateRemoteView();
457 } else { 459 } else {
458 QMessageBox::message(tr("Note"),tr("That directory does not exist")); 460 QMessageBox::message(tr("Note"),tr("That directory does not exist"));
459 } 461 }
460 } 462 }
461} 463}
462 464
463void AdvancedFm::fillCombo(const QString &currentPath) { 465void AdvancedFm::fillCombo(const QString &currentPath) {
464 466 qDebug("%d",TabWidget->getCurrentTab());
465 if (TabWidget->getCurrentTab() == 0) { 467 if (TabWidget->getCurrentTab() == 0) {
466// if (TabWidget->currentPageIndex() == 0) { 468// if (TabWidget->currentPageIndex() == 0) {
467 currentPathCombo->lineEdit()->setText( currentPath); 469 currentPathCombo->lineEdit()->setText( currentPath);
468 if( localDirPathStringList.grep(currentPath,TRUE).isEmpty() ) { 470 if( localDirPathStringList.grep(currentPath,TRUE).isEmpty() ) {
469 currentPathCombo->clear(); 471 currentPathCombo->clear();
470 localDirPathStringList.prepend( currentPath ); 472 localDirPathStringList.prepend( currentPath );
471 currentPathCombo->insertStringList( localDirPathStringList,-1); 473 currentPathCombo->insertStringList( localDirPathStringList,-1);
472 } 474 }
473 } else { 475 } else {
474 currentPathCombo->lineEdit()->setText( currentPath); 476 currentPathCombo->lineEdit()->setText( currentPath);
475 if( remoteDirPathStringList.grep( currentPath,TRUE).isEmpty() ) { 477 if( remoteDirPathStringList.grep( currentPath,TRUE).isEmpty() ) {
476 currentPathCombo->clear(); 478 currentPathCombo->clear();
477 remoteDirPathStringList.prepend( currentPath ); 479 remoteDirPathStringList.prepend( currentPath );
478 currentPathCombo->insertStringList( remoteDirPathStringList,-1); 480 currentPathCombo->insertStringList( remoteDirPathStringList,-1);
479 } 481 }
480 } 482 }
481} 483}
482 484
483void AdvancedFm::currentPathComboActivated(const QString & currentPath) { 485void AdvancedFm::currentPathComboActivated(const QString & currentPath) {
484 if (TabWidget->getCurrentTab() == 0) { 486 if (TabWidget->getCurrentTab() == 0) {
485// if (TabWidget->currentPageIndex() == 0) { 487// if (TabWidget->currentPageIndex() == 0) {
486 chdir( currentPath.latin1() ); 488 chdir( currentPath.latin1() );
487 currentDir.cd( currentPath, TRUE); 489 currentDir.cd( currentPath, TRUE);
488 populateLocalView(); 490 populateLocalView();
489 update(); 491 update();
490 } else { 492 } else {
491 chdir( currentPath.latin1() ); 493 chdir( currentPath.latin1() );
492 currentRemoteDir.cd( currentPath, TRUE); 494 currentRemoteDir.cd( currentPath, TRUE);
493 populateRemoteView(); 495 populateRemoteView();
494 update(); 496 update();
495 } 497 }
496} 498}
497 499
498QStringList AdvancedFm::getPath() { 500QStringList AdvancedFm::getPath() {
499 QStringList strList; 501 QStringList strList;
500 if (TabWidget->getCurrentTab() == 0) { 502 if (TabWidget->getCurrentTab() == 0) {
501// if (TabWidget->currentPageIndex() == 0) { 503// if (TabWidget->currentPageIndex() == 0) {
502 QList<QListViewItem> * getSelectedItems( QListView * Local_View ); 504 QList<QListViewItem> * getSelectedItems( QListView * Local_View );
503 QListViewItemIterator it( Local_View ); 505 QListViewItemIterator it( Local_View );
504 for ( ; it.current(); ++it ) { 506 for ( ; it.current(); ++it ) {
505 if ( it.current()->isSelected() ) { 507 if ( it.current()->isSelected() ) {
506 strList << it.current()->text(0); 508 strList << it.current()->text(0);
507 qDebug(it.current()->text(0)); 509 qDebug(it.current()->text(0));
508 } 510 }
509 } 511 }
510 return strList; 512 return strList;
511 } else { 513 } else {
512 QList<QListViewItem> * getSelectedItems( QListView * Remote_View ); 514 QList<QListViewItem> * getSelectedItems( QListView * Remote_View );
513 QListViewItemIterator it( Remote_View ); 515 QListViewItemIterator it( Remote_View );
514 for ( ; it.current(); ++it ) { 516 for ( ; it.current(); ++it ) {
515 if ( it.current()->isSelected() ) { 517 if ( it.current()->isSelected() ) {
516 strList << it.current()->text(0); 518 strList << it.current()->text(0);
517 qDebug(it.current()->text(0)); 519 qDebug(it.current()->text(0));
518 } 520 }
519 } 521 }
520 return strList; 522 return strList;
521 } 523 }
522 return ""; 524 return "";
523} 525}
524 526
525void AdvancedFm::homeButtonPushed() { 527void AdvancedFm::homeButtonPushed() {
526 QString current = QDir::homeDirPath(); 528 QString current = QDir::homeDirPath();
527 chdir( current.latin1() ); 529 chdir( current.latin1() );
528 if (TabWidget->getCurrentTab() == 0) { 530 if (TabWidget->getCurrentTab() == 0) {
diff --git a/noncore/apps/advancedfm/advancedfm.h b/noncore/apps/advancedfm/advancedfm.h
index 9948255..7ced056 100644
--- a/noncore/apps/advancedfm/advancedfm.h
+++ b/noncore/apps/advancedfm/advancedfm.h
@@ -63,95 +63,96 @@ public:
63 QLineEdit *currentPathEdit; 63 QLineEdit *currentPathEdit;
64 QPopupMenu *fileMenu, *localMenu, *remoteMenu, *viewMenu; 64 QPopupMenu *fileMenu, *localMenu, *remoteMenu, *viewMenu;
65 QToolButton *homeButton, *docButton, *cdUpButton, *sdButton, *cfButton, *qpeDirButton; 65 QToolButton *homeButton, *docButton, *cdUpButton, *sdButton, *cfButton, *qpeDirButton;
66// QPushButton *homeButton, *docButton, *cdUpButton, *sdButton, *cfButton, *qpeDirButton; 66// QPushButton *homeButton, *docButton, *cdUpButton, *sdButton, *cfButton, *qpeDirButton;
67 QDir currentDir, currentRemoteDir; 67 QDir currentDir, currentRemoteDir;
68 QComboBox *currentPathCombo; 68 QComboBox *currentPathCombo;
69 QString filterStr; 69 QString filterStr;
70 QListViewItem * item; 70 QListViewItem * item;
71 bool b; 71 bool b;
72 QStringList fileSystemTypeList, fsList; 72 QStringList fileSystemTypeList, fsList;
73 int currentServerConfig; 73 int currentServerConfig;
74protected slots: 74protected slots:
75 void selectAll(); 75 void selectAll();
76 void addToDocs(); 76 void addToDocs();
77 void doLocalCd(); 77 void doLocalCd();
78 void doRemoteCd(); 78 void doRemoteCd();
79// void copy(); 79// void copy();
80 void mkDir(); 80 void mkDir();
81 void del(); 81 void del();
82 void rn(); 82 void rn();
83 void populateLocalView(); 83 void populateLocalView();
84 void populateRemoteView(); 84 void populateRemoteView();
85 void showHidden(); 85 void showHidden();
86 void showMenuHidden(); 86 void showMenuHidden();
87 void showRemoteHidden(); 87 void showRemoteHidden();
88 void writeConfig(); 88 void writeConfig();
89 void readConfig(); 89 void readConfig();
90 void localListClicked(QListViewItem *); 90 void localListClicked(QListViewItem *);
91 void remoteListClicked(QListViewItem *); 91 void remoteListClicked(QListViewItem *);
92 void localListPressed( int, QListViewItem *, const QPoint&, int); 92 void localListPressed( int, QListViewItem *, const QPoint&, int);
93 void remoteListPressed( int, QListViewItem *, const QPoint&, int); 93 void remoteListPressed( int, QListViewItem *, const QPoint&, int);
94 void localMakDir(); 94 void localMakDir();
95 void localDelete(); 95 void localDelete();
96 void remoteMakDir(); 96 void remoteMakDir();
97 void remoteDelete(); 97 void remoteDelete();
98/* bool remoteDirList(const QString &); */ 98/* bool remoteDirList(const QString &); */
99/* bool remoteChDir(const QString &); */ 99/* bool remoteChDir(const QString &); */
100 void tabChanged(QWidget*); 100 void tabChanged(QWidget*);
101 void cleanUp(); 101 void cleanUp();
102 void remoteRename(); 102 void remoteRename();
103 void localRename(); 103 void localRename();
104 void runThis(); 104 void runThis();
105 void runText(); 105 void runText();
106 void filePerms(); 106 void filePerms();
107 void doProperties(); 107 void doProperties();
108 void runCommand(); 108 void runCommand();
109 void runCommandStd(); 109 void runCommandStd();
110 QStringList getPath(); 110 QStringList getPath();
111 void mkSym(); 111 void mkSym();
112 void switchToLocalTab(); 112 void switchToLocalTab();
113 void switchToRemoteTab(); 113 void switchToRemoteTab();
114 114
115protected: 115protected:
116 bool zaurusDevice; 116 bool zaurusDevice;
117 QGridLayout *tabLayout, *tabLayout_2, *tabLayout_3; 117 QGridLayout *tabLayout, *tabLayout_2, *tabLayout_3;
118 QStringList remoteDirPathStringList, localDirPathStringList; 118 QStringList remoteDirPathStringList, localDirPathStringList;
119 119
120 void init(); 120 void init();
121 void initConnections(); 121 void initConnections();
122 void keyReleaseEvent( QKeyEvent *); 122 void keyReleaseEvent( QKeyEvent *);
123 QString getFileSystemType(const QString &); 123 QString getFileSystemType(const QString &);
124 QString getDiskSpace(const QString &); 124 QString getDiskSpace(const QString &);
125 void parsetab(const QString &fileName); 125 void parsetab(const QString &fileName);
126 QString checkDiskSpace(const QString &); 126 QString checkDiskSpace(const QString &);
127 QString dealWithSymName(const QString &);
127 128
128protected slots: 129protected slots:
129 void showFileMenu(); 130 void showFileMenu();
130 void cancelMenuTimer(); 131 void cancelMenuTimer();
131 void homeButtonPushed(); 132 void homeButtonPushed();
132 void docButtonPushed(); 133 void docButtonPushed();
133 void SDButtonPushed(); 134 void SDButtonPushed();
134 void CFButtonPushed(); 135 void CFButtonPushed();
135 void QPEButtonPushed(); 136 void QPEButtonPushed();
136 void upDir(); 137 void upDir();
137 void currentPathComboChanged(); 138 void currentPathComboChanged();
138 void copy(); 139 void copy();
139 void copyAs(); 140 void copyAs();
140 void copySameDir(); 141 void copySameDir();
141 void currentPathComboActivated(const QString &); 142 void currentPathComboActivated(const QString &);
142 void fillCombo(const QString &); 143 void fillCombo(const QString &);
143 bool copyFile( const QString & , const QString & ); 144 bool copyFile( const QString & , const QString & );
144 void move(); 145 void move();
145 void fileStatus(); 146 void fileStatus();
146 void doAbout(); 147 void doAbout();
147 void doBeam(); 148 void doBeam();
148 void fileBeamFinished( Ir *); 149 void fileBeamFinished( Ir *);
149 150
150private: 151private:
151 QTimer menuTimer; 152 QTimer menuTimer;
152 void startProcess(const QString &); 153 void startProcess(const QString &);
153private slots: 154private slots:
154 void processEnded(); 155 void processEnded();
155}; 156};
156 157
157#endif // ADVANCEDFM_H 158#endif // ADVANCEDFM_H
diff --git a/noncore/apps/advancedfm/advancedfmMenu.cpp b/noncore/apps/advancedfm/advancedfmMenu.cpp
index 0a9f921..f77554a 100644
--- a/noncore/apps/advancedfm/advancedfmMenu.cpp
+++ b/noncore/apps/advancedfm/advancedfmMenu.cpp
@@ -42,193 +42,207 @@
42 42
43#include <stdlib.h> 43#include <stdlib.h>
44#include <unistd.h> 44#include <unistd.h>
45#include <sys/stat.h> 45#include <sys/stat.h>
46#include <dirent.h> 46#include <dirent.h>
47 47
48 48
49void AdvancedFm::doLocalCd() { 49void AdvancedFm::doLocalCd() {
50 localListClicked( Local_View->currentItem()); 50 localListClicked( Local_View->currentItem());
51} 51}
52 52
53void AdvancedFm::doRemoteCd() { 53void AdvancedFm::doRemoteCd() {
54 localListClicked( Remote_View->currentItem()); 54 localListClicked( Remote_View->currentItem());
55} 55}
56 56
57void AdvancedFm::showMenuHidden() { 57void AdvancedFm::showMenuHidden() {
58 if (b) { 58 if (b) {
59 currentDir.setFilter( QDir::Files | QDir::Dirs | QDir::Hidden | QDir::All); 59 currentDir.setFilter( QDir::Files | QDir::Dirs | QDir::Hidden | QDir::All);
60 currentRemoteDir.setFilter( QDir::Files | QDir::Dirs | QDir::Hidden | QDir::All); 60 currentRemoteDir.setFilter( QDir::Files | QDir::Dirs | QDir::Hidden | QDir::All);
61 fileMenu->setItemChecked( fileMenu->idAt(0),TRUE); 61 fileMenu->setItemChecked( fileMenu->idAt(0),TRUE);
62// b=FALSE; 62// b=FALSE;
63 63
64 } else { 64 } else {
65 currentDir.setFilter( QDir::Files | QDir::Dirs/* | QDir::Hidden*/ | QDir::All); 65 currentDir.setFilter( QDir::Files | QDir::Dirs/* | QDir::Hidden*/ | QDir::All);
66 currentRemoteDir.setFilter( QDir::Files | QDir::Dirs/* | QDir::Hidden*/ | QDir::All); 66 currentRemoteDir.setFilter( QDir::Files | QDir::Dirs/* | QDir::Hidden*/ | QDir::All);
67 fileMenu->setItemChecked( fileMenu->idAt(0),FALSE); 67 fileMenu->setItemChecked( fileMenu->idAt(0),FALSE);
68// b=TRUE; 68// b=TRUE;
69 } 69 }
70 populateLocalView(); 70 populateLocalView();
71 populateRemoteView(); 71 populateRemoteView();
72// if(TabWidget->getCurrentTab() == 0) 72// if(TabWidget->getCurrentTab() == 0)
73// showHidden(); 73// showHidden();
74// else 74// else
75// showRemoteHidden(); 75// showRemoteHidden();
76// if(b) qDebug("<<<<<<<<<<<<<<<<<<<<<<<<<<<< true"); 76// if(b) qDebug("<<<<<<<<<<<<<<<<<<<<<<<<<<<< true");
77 if(b) b = false; else b = true; 77 if(b) b = false; else b = true;
78} 78}
79 79
80void AdvancedFm::showHidden() { 80void AdvancedFm::showHidden() {
81 if (b) { 81 if (b) {
82 currentDir.setFilter( QDir::Files | QDir::Dirs | QDir::Hidden | QDir::All); 82 currentDir.setFilter( QDir::Files | QDir::Dirs | QDir::Hidden | QDir::All);
83// fileMenu->setItemChecked( fileMenu->idAt(0),TRUE); 83// fileMenu->setItemChecked( fileMenu->idAt(0),TRUE);
84// b=FALSE; 84// b=FALSE;
85 85
86 } else { 86 } else {
87 currentDir.setFilter( QDir::Files | QDir::Dirs/* | QDir::Hidden*/ | QDir::All); 87 currentDir.setFilter( QDir::Files | QDir::Dirs/* | QDir::Hidden*/ | QDir::All);
88// fileMenu->setItemChecked( fileMenu->idAt(0),FALSE); 88// fileMenu->setItemChecked( fileMenu->idAt(0),FALSE);
89// b=TRUE; 89// b=TRUE;
90 } 90 }
91 populateLocalView(); 91 populateLocalView();
92} 92}
93 93
94void AdvancedFm::showRemoteHidden() { 94void AdvancedFm::showRemoteHidden() {
95 if (b) { 95 if (b) {
96 currentRemoteDir.setFilter( QDir::Files | QDir::Dirs | QDir::Hidden | QDir::All); 96 currentRemoteDir.setFilter( QDir::Files | QDir::Dirs | QDir::Hidden | QDir::All);
97// b=TRUE; 97// b=TRUE;
98 98
99 } else { 99 } else {
100 currentRemoteDir.setFilter( QDir::Files | QDir::Dirs/* | QDir::Hidden*/ | QDir::All); 100 currentRemoteDir.setFilter( QDir::Files | QDir::Dirs/* | QDir::Hidden*/ | QDir::All);
101// b=FALSE; 101// b=FALSE;
102 } 102 }
103 populateRemoteView(); 103 populateRemoteView();
104} 104}
105 105
106QString AdvancedFm::dealWithSymName(const QString &fileName) {
107 QString strItem = fileName;
108 return strItem.right( (strItem.length() - strItem.find("->",0,TRUE)) - 4);
109}
110
106void AdvancedFm::runThis() { 111void AdvancedFm::runThis() {
107 QString fs; 112 QString fs;
108 if (TabWidget->getCurrentTab() == 0) { 113 if (TabWidget->getCurrentTab() == 0) {
109 QString curFile = Local_View->currentItem()->text(0); 114 QString curFile = Local_View->currentItem()->text(0);
115 if( curFile.find("@",0,TRUE) !=-1 || curFile.find("->",0,TRUE) !=-1 ) //if symlink
116 curFile = dealWithSymName((const QString&)curFile);
117
110 if(curFile != "../") { 118 if(curFile != "../") {
111 119
112 fs= getFileSystemType((const QString &) currentDir.canonicalPath()); 120 fs = getFileSystemType((const QString &) currentDir.canonicalPath());
113 QFileInfo fileInfo( currentDir.canonicalPath()+"/"+curFile); 121 QFileInfo fileInfo( currentDir.canonicalPath()+"/"+curFile);
114 qDebug( fileInfo.owner()); 122 qDebug( fileInfo.owner());
115 if( (fileInfo.permission( QFileInfo::ExeUser) 123 if( (fileInfo.permission( QFileInfo::ExeUser)
116 | fileInfo.permission( QFileInfo::ExeGroup) 124 | fileInfo.permission( QFileInfo::ExeGroup)
117 | fileInfo.permission( QFileInfo::ExeOther)) // & fs.find("vfat",0,TRUE) == -1) { 125 | fileInfo.permission( QFileInfo::ExeOther)) // & fs.find("vfat",0,TRUE) == -1) {
118 | fs == "vfat" && fileInfo.filePath().contains("/bin") ) { 126 | fs == "vfat" && fileInfo.filePath().contains("/bin") ) {
119 QCopEnvelope e("QPE/System", "execute(QString)" ); 127 QCopEnvelope e("QPE/System", "execute(QString)" );
120 e << curFile; 128 e << curFile;
121 } else { 129 } else {
122 curFile = currentDir.canonicalPath()+"/"+curFile; 130 curFile = currentDir.canonicalPath()+"/"+curFile;
123 DocLnk nf(curFile); 131 DocLnk nf(curFile);
124 QString execStr = nf.exec(); 132 QString execStr = nf.exec();
125 qDebug( execStr); 133 qDebug( execStr);
126 if( execStr.isEmpty() ) { 134 if( execStr.isEmpty() ) {
127 } else { 135 } else {
128 nf.execute(); 136 nf.execute();
129 } 137 }
130 } 138 }
131 } 139 }
132 } else { 140 } else {
133 QString curFile = Remote_View->currentItem()->text(0); 141 QString curFile = Remote_View->currentItem()->text(0);
134 if(curFile != "../") { 142 if(curFile != "../") {
143 if( curFile.find("@",0,TRUE) !=-1 || curFile.find("->",0,TRUE) !=-1 ) //if symlink
144 curFile = dealWithSymName((const QString&)curFile);
135 145
136 fs= getFileSystemType((const QString &) currentRemoteDir.canonicalPath()); 146 fs= getFileSystemType((const QString &) currentRemoteDir.canonicalPath());
137 qDebug("Filesystemtype is "+fs); 147 qDebug("Filesystemtype is "+fs);
138 QFileInfo fileInfo( currentRemoteDir.canonicalPath()+"/"+curFile); 148 QFileInfo fileInfo( currentRemoteDir.canonicalPath()+"/"+curFile);
139 if( (fileInfo.permission( QFileInfo::ExeUser) 149 if( (fileInfo.permission( QFileInfo::ExeUser)
140 | fileInfo.permission( QFileInfo::ExeGroup) 150 | fileInfo.permission( QFileInfo::ExeGroup)
141 | fileInfo.permission( QFileInfo::ExeOther)) // & fs.find("vfat",0,TRUE) == -1) { 151 | fileInfo.permission( QFileInfo::ExeOther)) // & fs.find("vfat",0,TRUE) == -1) {
142 | fs == "vfat" && fileInfo.filePath().contains("/bin") ) { 152 | fs == "vfat" && fileInfo.filePath().contains("/bin") ) {
143 QCopEnvelope e("QPE/System", "execute(QString)" ); 153 QCopEnvelope e("QPE/System", "execute(QString)" );
144 e << curFile; 154 e << curFile;
145 } else { 155 } else {
146 curFile = currentRemoteDir.canonicalPath()+"/"+curFile; 156 curFile = currentRemoteDir.canonicalPath()+"/"+curFile;
147 DocLnk nf(curFile); 157 DocLnk nf(curFile);
148 QString execStr = nf.exec(); 158 QString execStr = nf.exec();
149 qDebug(execStr); 159 qDebug(execStr);
150 if( execStr.isEmpty() ) { 160 if( execStr.isEmpty() ) {
151 } else { 161 } else {
152 nf.execute(); 162 nf.execute();
153 } 163 }
154 } 164 }
155 } 165 }
156 } 166 }
157} 167}
158 168
159void AdvancedFm::runText() { 169void AdvancedFm::runText() {
160 if (TabWidget->getCurrentTab() == 0) { 170 if (TabWidget->getCurrentTab() == 0) {
161 QString curFile = Local_View->currentItem()->text(0); 171 QString curFile = Local_View->currentItem()->text(0);
162 if(curFile != "../") { 172 if(curFile != "../") {
173 if( curFile.find("@",0,TRUE) !=-1 || curFile.find("->",0,TRUE) !=-1 ) //if symlink
174 curFile = dealWithSymName((const QString&)curFile);
163 curFile = currentDir.canonicalPath()+"/"+curFile; 175 curFile = currentDir.canonicalPath()+"/"+curFile;
164 QCopEnvelope e("QPE/Application/textedit", "setDocument(QString)" ); 176 QCopEnvelope e("QPE/Application/textedit", "setDocument(QString)" );
165 e << curFile; 177 e << curFile;
166 } 178 }
167 } else { 179 } else {
168 QString curFile = Remote_View->currentItem()->text(0); 180 QString curFile = Remote_View->currentItem()->text(0);
169 if(curFile != "../") { 181 if(curFile != "../") {
170 curFile = currentRemoteDir.canonicalPath()+"/"+curFile; 182 curFile = currentRemoteDir.canonicalPath()+"/"+curFile;
183 if( curFile.find("@",0,TRUE) !=-1 || curFile.find("->",0,TRUE) !=-1 ) //if symlink
184 curFile = dealWithSymName((const QString&)curFile);
171 DocLnk nf(curFile); 185 DocLnk nf(curFile);
172 QCopEnvelope e("QPE/Application/textedit", "setDocument(QString)" ); 186 QCopEnvelope e("QPE/Application/textedit", "setDocument(QString)" );
173 e << curFile; 187 e << curFile;
174 } 188 }
175 } 189 }
176} 190}
177 191
178void AdvancedFm::localMakDir() { 192void AdvancedFm::localMakDir() {
179 InputDialog *fileDlg; 193 InputDialog *fileDlg;
180 fileDlg = new InputDialog(this,tr("Make Directory"),TRUE, 0); 194 fileDlg = new InputDialog(this,tr("Make Directory"),TRUE, 0);
181 fileDlg->exec(); 195 fileDlg->exec();
182 if( fileDlg->result() == 1 ) { 196 if( fileDlg->result() == 1 ) {
183 QString filename = fileDlg->LineEdit1->text(); 197 QString filename = fileDlg->LineEdit1->text();
184 currentDir.mkdir( currentDir.canonicalPath()+"/"+filename); 198 currentDir.mkdir( currentDir.canonicalPath()+"/"+filename);
185 } 199 }
186 populateLocalView(); 200 populateLocalView();
187} 201}
188 202
189void AdvancedFm::remoteMakDir() { 203void AdvancedFm::remoteMakDir() {
190 InputDialog *fileDlg; 204 InputDialog *fileDlg;
191 fileDlg = new InputDialog(this,tr("Make Directory"),TRUE, 0); 205 fileDlg = new InputDialog(this,tr("Make Directory"),TRUE, 0);
192 fileDlg->exec(); 206 fileDlg->exec();
193 if( fileDlg->result() == 1 ) { 207 if( fileDlg->result() == 1 ) {
194 QString filename = fileDlg->LineEdit1->text(); 208 QString filename = fileDlg->LineEdit1->text();
195 currentRemoteDir.mkdir( currentRemoteDir.canonicalPath()+"/"+filename); 209 currentRemoteDir.mkdir( currentRemoteDir.canonicalPath()+"/"+filename);
196 } 210 }
197 populateRemoteView(); 211 populateRemoteView();
198} 212}
199 213
200void AdvancedFm::localDelete() { 214void AdvancedFm::localDelete() {
201 QStringList curFileList = getPath(); 215 QStringList curFileList = getPath();
202 bool doMsg=true; 216 bool doMsg=true;
203 int count=curFileList.count(); 217 int count=curFileList.count();
204 if( count > 0) { 218 if( count > 0) {
205 if(count > 1 ){ 219 if(count > 1 ){
206 QString msg; 220 QString msg;
207 msg=tr("Really delete\n%1 files?").arg(count); 221 msg=tr("Really delete\n%1 files?").arg(count);
208 switch ( QMessageBox::warning(this,tr("Delete"),msg 222 switch ( QMessageBox::warning(this,tr("Delete"),msg
209 ,tr("Yes"),tr("No"),0,0,1) ) { 223 ,tr("Yes"),tr("No"),0,0,1) ) {
210 case 0: 224 case 0:
211 doMsg=false; 225 doMsg=false;
212 break; 226 break;
213 case 1: 227 case 1:
214 return; 228 return;
215 break; 229 break;
216 }; 230 };
217 } 231 }
218 232
219 QString myFile; 233 QString myFile;
220 for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it ) { 234 for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it ) {
221 myFile = (*it); 235 myFile = (*it);
222 if( myFile.find(" -> ",0,TRUE) != -1) 236 if( myFile.find(" -> ",0,TRUE) != -1)
223 myFile = myFile.left( myFile.find(" -> ",0,TRUE)); 237 myFile = myFile.left( myFile.find(" -> ",0,TRUE));
224 238
225 QString f = currentDir.canonicalPath(); 239 QString f = currentDir.canonicalPath();
226 if(f.right(1).find("/",0,TRUE) == -1) 240 if(f.right(1).find("/",0,TRUE) == -1)
227 f+="/"; 241 f+="/";
228 f+=myFile; 242 f+=myFile;
229 if(QDir(f).exists() && !QFileInfo(f).isSymLink() ) { 243 if(QDir(f).exists() && !QFileInfo(f).isSymLink() ) {
230 switch ( QMessageBox::warning(this,tr("Delete Directory?"),tr("Really delete\n")+f+ 244 switch ( QMessageBox::warning(this,tr("Delete Directory?"),tr("Really delete\n")+f+
231 "\nand all it's contents ?" 245 "\nand all it's contents ?"
232 ,tr("Yes"),tr("No"),0,0,1) ) { 246 ,tr("Yes"),tr("No"),0,0,1) ) {
233 case 0: { 247 case 0: {
234 f=f.left(f.length()-1); 248 f=f.left(f.length()-1);
@@ -421,423 +435,423 @@ void AdvancedFm::upDir() {
421 dir.cdUp(); 435 dir.cdUp();
422 current = dir.canonicalPath(); 436 current = dir.canonicalPath();
423 chdir( current.latin1() ); 437 chdir( current.latin1() );
424 currentDir.cd( current, TRUE); 438 currentDir.cd( current, TRUE);
425 populateLocalView(); 439 populateLocalView();
426 update(); 440 update();
427 } else { 441 } else {
428 QString current = currentRemoteDir.canonicalPath(); 442 QString current = currentRemoteDir.canonicalPath();
429 QDir dir(current); 443 QDir dir(current);
430 dir.cdUp(); 444 dir.cdUp();
431 current = dir.canonicalPath(); 445 current = dir.canonicalPath();
432 chdir( current.latin1() ); 446 chdir( current.latin1() );
433 currentRemoteDir.cd( current, TRUE); 447 currentRemoteDir.cd( current, TRUE);
434 populateRemoteView(); 448 populateRemoteView();
435 update(); 449 update();
436 } 450 }
437} 451}
438 452
439void AdvancedFm::copy() { 453void AdvancedFm::copy() {
440 qApp->processEvents(); 454 qApp->processEvents();
441 QStringList curFileList = getPath(); 455 QStringList curFileList = getPath();
442 bool doMsg=true; 456 bool doMsg=true;
443 int count=curFileList.count(); 457 int count=curFileList.count();
444 if( count > 0) { 458 if( count > 0) {
445 if(count > 1 ){ 459 if(count > 1 ){
446 QString msg; 460 QString msg;
447 msg=tr("Really copy\n%1 files?").arg(count); 461 msg=tr("Really copy\n%1 files?").arg(count);
448 switch ( QMessageBox::warning(this,tr("Delete"),msg 462 switch ( QMessageBox::warning(this,tr("Delete"),msg
449 ,tr("Yes"),tr("No"),0,0,1) ) { 463 ,tr("Yes"),tr("No"),0,0,1) ) {
450 case 0: 464 case 0:
451 doMsg=false; 465 doMsg=false;
452 break; 466 break;
453 case 1: 467 case 1:
454 return; 468 return;
455 break; 469 break;
456 }; 470 };
457 } 471 }
458 472
459 QString curFile, item, destFile; 473 QString curFile, item, destFile;
460 if (TabWidget->getCurrentTab() == 0) { 474 if (TabWidget->getCurrentTab() == 0) {
461 for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it ) { 475 for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it ) {
462 item=(*it); 476 item=(*it);
463 if(item.find("->",0,TRUE)) //symlink 477 if(item.find("->",0,TRUE)) //symlink
464 item = item.left(item.find("->",0,TRUE)); 478 item = item.left(item.find("->",0,TRUE));
465 479
466 destFile = currentRemoteDir.canonicalPath()+"/"+ item; 480 destFile = currentRemoteDir.canonicalPath()+"/"+ item;
467 qDebug("Destination file is "+destFile); 481 qDebug("Destination file is "+destFile);
468 482
469 curFile = currentDir.canonicalPath()+"/"+ item; 483 curFile = currentDir.canonicalPath()+"/"+ item;
470 qDebug("CurrentFile file is " + curFile); 484 qDebug("CurrentFile file is " + curFile);
471 485
472 QFile f(destFile); 486 QFile f(destFile);
473 if( f.exists()) { 487 if( f.exists()) {
474 if(doMsg) { 488 if(doMsg) {
475 switch ( QMessageBox::warning(this,tr("File Exists!"), 489 switch ( QMessageBox::warning(this,tr("File Exists!"),
476 item+tr("\nexists. Ok to overwrite?"), 490 item+tr("\nexists. Ok to overwrite?"),
477 tr("Yes"),tr("No"),0,0,1) ) { 491 tr("Yes"),tr("No"),0,0,1) ) {
478 case 1: 492 case 1:
479 return; 493 return;
480 break; 494 break;
481 }; 495 };
482 } 496 }
483 f.remove(); 497 f.remove();
484 } 498 }
485 if(!copyFile(destFile, curFile) ) { 499 if(!copyFile( curFile, destFile) ) {
486 QMessageBox::message("AdvancedFm","Could not copy\n"+curFile +"to\n"+destFile); 500 QMessageBox::message("AdvancedFm","Could not copy\n"+curFile +"to\n"+destFile);
487 return; 501 return;
488 } 502 }
489 } 503 }
490 populateRemoteView(); 504 populateRemoteView();
491 TabWidget->setCurrentTab(1); 505 TabWidget->setCurrentTab(1);
492 506
493 } else { 507 } else {
494 for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it ) { 508 for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it ) {
495 item= (*it); 509 item= (*it);
496 if(item.find("->",0,TRUE)) //symlink 510 if(item.find("->",0,TRUE)) //symlink
497 item = item.left(item.find("->",0,TRUE)); 511 item = item.left(item.find("->",0,TRUE));
498 512
499 destFile = currentDir.canonicalPath()+"/"+ item; 513 destFile = currentDir.canonicalPath()+"/"+ item;
500 qDebug("Destination file is "+destFile); 514 qDebug("Destination file is "+destFile);
501 515
502 curFile = currentRemoteDir.canonicalPath()+"/"+ item;; 516 curFile = currentRemoteDir.canonicalPath()+"/"+ item;;
503 qDebug("CurrentFile file is " + curFile); 517 qDebug("CurrentFile file is " + curFile);
504 518
505 QFile f(destFile); 519 QFile f(destFile);
506 if( f.exists()) { 520 if( f.exists()) {
507 switch ( QMessageBox::warning(this,tr("File Exists!"), 521 switch ( QMessageBox::warning(this,tr("File Exists!"),
508 item+tr("\nexists. Ok to overwrite?"), 522 item+tr("\nexists. Ok to overwrite?"),
509 tr("Yes"),tr("No"),0,0,1) ) { 523 tr("Yes"),tr("No"),0,0,1) ) {
510 case 1: 524 case 1:
511 return; 525 return;
512 break; 526 break;
513 }; 527 };
514 f.remove(); 528 f.remove();
515 } 529 }
516 if(!copyFile(destFile, curFile) ) { 530 if(!copyFile( curFile, destFile) ) {
517 QMessageBox::message("AdvancedFm",tr("Could not copy\n") 531 QMessageBox::message("AdvancedFm",tr("Could not copy\n")
518 +curFile +tr("to\n")+destFile); 532 +curFile +tr("to\n")+destFile);
519 return; 533 return;
520 534
521 } 535 }
522 } 536 }
523 populateLocalView(); 537 populateLocalView();
524 TabWidget->setCurrentTab(0); 538 TabWidget->setCurrentTab(0);
525 } 539 }
526 540
527 } 541 }
528} 542}
529 543
530void AdvancedFm::copyAs() { 544void AdvancedFm::copyAs() {
531 qApp->processEvents(); 545 qApp->processEvents();
532 546
533 QStringList curFileList = getPath(); 547 QStringList curFileList = getPath();
534 QString curFile, item; 548 QString curFile, item;
535 InputDialog *fileDlg; 549 InputDialog *fileDlg;
536 if (TabWidget->getCurrentTab() == 0) { 550 if (TabWidget->getCurrentTab() == 0) {
537 qDebug("tab 1"); 551 qDebug("tab 1");
538 for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it ) { 552 for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it ) {
539 QString destFile; 553 QString destFile;
540 item=(*it); 554 item=(*it);
541 curFile = currentDir.canonicalPath()+"/"+(*it); 555 curFile = currentDir.canonicalPath()+"/"+(*it);
542 fileDlg = new InputDialog( this,tr("Copy "+curFile+" As"), TRUE, 0); 556 fileDlg = new InputDialog( this,tr("Copy "+curFile+" As"), TRUE, 0);
543 557
544 fileDlg->setInputText((const QString &) destFile ); 558 fileDlg->setInputText((const QString &) destFile );
545 fileDlg->exec(); 559 fileDlg->exec();
546 560
547 if( fileDlg->result() == 1 ) { 561 if( fileDlg->result() == 1 ) {
548 QString filename = fileDlg->LineEdit1->text(); 562 QString filename = fileDlg->LineEdit1->text();
549 destFile = currentRemoteDir.canonicalPath()+"/"+filename; 563 destFile = currentRemoteDir.canonicalPath()+"/"+filename;
550 564
551 QFile f(destFile); 565 QFile f(destFile);
552 if( f.exists()) { 566 if( f.exists()) {
553 switch (QMessageBox::warning(this,tr("File Exists!"), 567 switch (QMessageBox::warning(this,tr("File Exists!"),
554 item+tr("\nexists. Ok to overwrite?"), 568 item+tr("\nexists. Ok to overwrite?"),
555 tr("Yes"),tr("No"),0,0,1) ) { 569 tr("Yes"),tr("No"),0,0,1) ) {
556 case 0: 570 case 0:
557 f.remove(); 571 f.remove();
558 break; 572 break;
559 case 1: 573 case 1:
560 return; 574 return;
561 break; 575 break;
562 }; 576 };
563 } 577 }
564 if(!copyFile(destFile, curFile) ) { 578 if(!copyFile( curFile,destFile) ) {
565 QMessageBox::message("AdvancedFm",tr("Could not copy\n") 579 QMessageBox::message("AdvancedFm",tr("Could not copy\n")
566 +curFile +tr("to\n")+destFile); 580 +curFile +tr("to\n")+destFile);
567 return; 581 return;
568 } 582 }
569 } 583 }
570 delete fileDlg; 584 delete fileDlg;
571 585
572 } 586 }
573 populateRemoteView(); 587 populateRemoteView();
574 TabWidget->setCurrentTab(1); 588 TabWidget->setCurrentTab(1);
575 589
576 } else { 590 } else {
577 for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it ) { 591 for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it ) {
578 592
579 item=(*it); 593 item=(*it);
580 curFile = currentRemoteDir.canonicalPath()+"/"+(*it); 594 curFile = currentRemoteDir.canonicalPath()+"/"+(*it);
581 fileDlg = new InputDialog( this,tr("Copy "+curFile+" As"), TRUE, 0); 595 fileDlg = new InputDialog( this,tr("Copy "+curFile+" As"), TRUE, 0);
582 596
583 QString destFile; 597 QString destFile;
584 fileDlg->setInputText((const QString &) destFile); 598 fileDlg->setInputText((const QString &) destFile);
585 fileDlg->exec(); 599 fileDlg->exec();
586 600
587 if( fileDlg->result() == 1 ) { 601 if( fileDlg->result() == 1 ) {
588 QString filename = fileDlg->LineEdit1->text(); 602 QString filename = fileDlg->LineEdit1->text();
589 destFile = currentDir.canonicalPath()+"/"+filename; 603 destFile = currentDir.canonicalPath()+"/"+filename;
590 604
591 QFile f( destFile); 605 QFile f( destFile);
592 if( f.exists()) { 606 if( f.exists()) {
593 switch ( QMessageBox::warning(this,tr("File Exists!"), 607 switch ( QMessageBox::warning(this,tr("File Exists!"),
594 item+tr("\nexists. Ok to overwrite?"), 608 item+tr("\nexists. Ok to overwrite?"),
595 tr("Yes"),tr("No"),0,0,1) ) { 609 tr("Yes"),tr("No"),0,0,1) ) {
596 case 0: 610 case 0:
597 f.remove(); 611 f.remove();
598 break; 612 break;
599 case 1: 613 case 1:
600 return; 614 return;
601 break; 615 break;
602 }; 616 };
603 } 617 }
604 if(!copyFile(destFile, curFile) ) { 618 if(!copyFile( curFile,destFile) ) {
605 QMessageBox::message("AdvancedFm",tr("Could not copy\n") 619 QMessageBox::message("AdvancedFm",tr("Could not copy\n")
606 +curFile +tr("to\n")+destFile); 620 +curFile +tr("to\n")+destFile);
607 return; 621 return;
608 } 622 }
609 623
610 } 624 }
611 delete fileDlg; 625 delete fileDlg;
612 626
613 } 627 }
614 populateLocalView(); 628 populateLocalView();
615 TabWidget->setCurrentTab(0); 629 TabWidget->setCurrentTab(0);
616 } 630 }
617} 631}
618 632
619void AdvancedFm::copySameDir() { 633void AdvancedFm::copySameDir() {
620 qApp->processEvents(); 634 qApp->processEvents();
621 QStringList curFileList = getPath(); 635 QStringList curFileList = getPath();
622 QString curFile, item, destFile; 636 QString curFile, item, destFile;
623 InputDialog *fileDlg; 637 InputDialog *fileDlg;
624 638
625 if (TabWidget->getCurrentTab() == 0) { 639 if (TabWidget->getCurrentTab() == 0) {
626 640
627 for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it ) { 641 for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it ) {
628 item=(*it); 642 item=(*it);
629 curFile = currentDir.canonicalPath()+"/"+ item; 643 curFile = currentDir.canonicalPath()+"/"+ item;
630 644
631 fileDlg = new InputDialog(this,tr("Copy ")+curFile+tr(" As"),TRUE, 0); 645 fileDlg = new InputDialog(this,tr("Copy ")+curFile+tr(" As"),TRUE, 0);
632 fileDlg->setInputText((const QString &) destFile ); 646 fileDlg->setInputText((const QString &) destFile );
633 fileDlg->exec(); 647 fileDlg->exec();
634 648
635 if( fileDlg->result() == 1 ) { 649 if( fileDlg->result() == 1 ) {
636 650
637 QString filename = fileDlg->LineEdit1->text(); 651 QString filename = fileDlg->LineEdit1->text();
638 destFile = currentDir.canonicalPath()+"/"+filename; 652 destFile = currentDir.canonicalPath()+"/"+filename;
639 653
640 QFile f(destFile); 654 QFile f(destFile);
641 if( f.exists()) { 655 if( f.exists()) {
642 switch (QMessageBox::warning(this,tr("Delete"), 656 switch (QMessageBox::warning(this,tr("Delete"),
643 destFile+tr(" already exists\nDo you really want to delete it?"), 657 destFile+tr(" already exists\nDo you really want to delete it?"),
644 tr("Yes"),tr("No"),0,0,1) ) { 658 tr("Yes"),tr("No"),0,0,1) ) {
645 case 0: 659 case 0:
646 660
647 f.remove(); 661 f.remove();
648 break; 662 break;
649 case 1: 663 case 1:
650 return; 664 return;
651 break; 665 break;
652 }; 666 };
653 } 667 }
654 if(!copyFile(destFile, curFile) ) { 668 if(!copyFile( curFile,destFile) ) {
655 QMessageBox::message("AdvancedFm",tr("Could not copy\n") 669 QMessageBox::message("AdvancedFm",tr("Could not copy\n")
656 +curFile +tr("to\n")+destFile); 670 +curFile +tr("to\n")+destFile);
657 return; 671 return;
658 } 672 }
659 673
660 qDebug("copy "+curFile+" as "+destFile); 674 qDebug("copy "+curFile+" as "+destFile);
661 } 675 }
662 delete fileDlg; 676 delete fileDlg;
663 } 677 }
664 populateLocalView(); 678 populateLocalView();
665 679
666 } else { 680 } else {
667 for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it ) { 681 for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it ) {
668 item=(*it); 682 item=(*it);
669 curFile = currentRemoteDir.canonicalPath()+"/"+ item; 683 curFile = currentRemoteDir.canonicalPath()+"/"+ item;
670 684
671 fileDlg = new InputDialog(this,tr("Copy ")+curFile+tr(" As"),TRUE, 0); 685 fileDlg = new InputDialog(this,tr("Copy ")+curFile+tr(" As"),TRUE, 0);
672 fileDlg->setInputText((const QString &) destFile); 686 fileDlg->setInputText((const QString &) destFile);
673 fileDlg->exec(); 687 fileDlg->exec();
674 if( fileDlg->result() == 1 ) { 688 if( fileDlg->result() == 1 ) {
675 QString filename = fileDlg->LineEdit1->text(); 689 QString filename = fileDlg->LineEdit1->text();
676 690
677 destFile = currentRemoteDir.canonicalPath()+"/"+filename; 691 destFile = currentRemoteDir.canonicalPath()+"/"+filename;
678 692
679 QFile f(destFile); 693 QFile f(destFile);
680 if( f.exists()) { 694 if( f.exists()) {
681 switch ( QMessageBox::warning(this,tr("Delete"), 695 switch ( QMessageBox::warning(this,tr("Delete"),
682 destFile+tr(" already exists\nDo you really want to delete it?"), 696 destFile+tr(" already exists\nDo you really want to delete it?"),
683 tr("Yes"),tr("No"),0,0,1) ) { 697 tr("Yes"),tr("No"),0,0,1) ) {
684 case 0: 698 case 0:
685 f.remove(); 699 f.remove();
686 break; 700 break;
687 case 1: 701 case 1:
688 return; 702 return;
689 break; 703 break;
690 }; 704 };
691 } 705 }
692 if(!copyFile(destFile, curFile) ) { 706 if(!copyFile( curFile,destFile) ) {
693 QMessageBox::message("AdvancedFm",tr("Could not copy\n") 707 QMessageBox::message("AdvancedFm",tr("Could not copy\n")
694 +curFile +tr("to\n")+destFile); 708 +curFile +tr("to\n")+destFile);
695 return; 709 return;
696 } 710 }
697 qDebug("copy "+curFile+" as "+destFile); 711 qDebug("copy "+curFile+" as "+destFile);
698 } 712 }
699 delete fileDlg; 713 delete fileDlg;
700 } 714 }
701 populateRemoteView(); 715 populateRemoteView();
702 } 716 }
703} 717}
704 718
705void AdvancedFm::move() { 719void AdvancedFm::move() {
706 qApp->processEvents(); 720 qApp->processEvents();
707 721
708 QStringList curFileList = getPath(); 722 QStringList curFileList = getPath();
709 if( curFileList.count() > 0) { 723 if( curFileList.count() > 0) {
710 QString curFile, destFile, item; 724 QString curFile, destFile, item;
711 725
712 if (TabWidget->getCurrentTab() == 0) { 726 if (TabWidget->getCurrentTab() == 0) {
713 727
714 for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it ) { 728 for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it ) {
715 item=(*it); 729 item=(*it);
716 QString destFile = currentRemoteDir.canonicalPath(); 730 QString destFile = currentRemoteDir.canonicalPath();
717 731
718 if(destFile.right(1).find("/",0,TRUE) == -1) 732 if(destFile.right(1).find("/",0,TRUE) == -1)
719 destFile+="/"; 733 destFile+="/";
720 destFile += item; 734 destFile += item;
721 curFile = currentDir.canonicalPath(); 735 curFile = currentDir.canonicalPath();
722 736
723 qDebug("Destination file is "+destFile); 737 qDebug("Destination file is "+destFile);
724 738
725 if(curFile.right(1).find("/",0,TRUE) == -1) 739 if(curFile.right(1).find("/",0,TRUE) == -1)
726 curFile +="/"; 740 curFile +="/";
727 741
728 curFile+= item; 742 curFile+= item;
729 qDebug("CurrentFile file is " + curFile); 743 qDebug("CurrentFile file is " + curFile);
730 744
731 QFile f( curFile); 745 QFile f( curFile);
732 if( f.exists()) { 746 if( f.exists()) {
733 if(!copyFile( destFile, curFile) ) { 747 if(!copyFile( curFile,destFile) ) {
734 QMessageBox::message(tr("Note"),tr("Could not move\n")+curFile); 748 QMessageBox::message(tr("Note"),tr("Could not move\n")+curFile);
735 return; 749 return;
736 } else 750 } else
737 QFile::remove(curFile); 751 QFile::remove(curFile);
738 } 752 }
739 } 753 }
740 754
741 TabWidget->setCurrentTab(1); 755 TabWidget->setCurrentTab(1);
742 756
743 } else { //view 2 757 } else { //view 2
744 758
745 for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it ) { 759 for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it ) {
746 item = (*it); 760 item = (*it);
747 QString destFile = currentDir.canonicalPath(); 761 QString destFile = currentDir.canonicalPath();
748 762
749 if(destFile.right(1).find("/",0,TRUE) == -1) 763 if(destFile.right(1).find("/",0,TRUE) == -1)
750 destFile+="/"; 764 destFile+="/";
751 765
752 destFile += item; 766 destFile += item;
753 767
754 qDebug("Destination file is "+destFile); 768 qDebug("Destination file is "+destFile);
755 769
756 curFile = currentRemoteDir.canonicalPath(); 770 curFile = currentRemoteDir.canonicalPath();
757 771
758 if(curFile.right(1).find("/",0,TRUE) == -1) 772 if(curFile.right(1).find("/",0,TRUE) == -1)
759 curFile +="/"; 773 curFile +="/";
760 curFile+= item; 774 curFile+= item;
761 qDebug("CurrentFile file is " + curFile); 775 qDebug("CurrentFile file is " + curFile);
762 776
763 QFile f( curFile); 777 QFile f( curFile);
764 if( f.exists()) { 778 if( f.exists()) {
765 if(!copyFile( destFile, curFile) ) { 779 if(!copyFile( curFile, destFile) ) {
766 QMessageBox::message(tr("Note"),tr("Could not move\n") + curFile); 780 QMessageBox::message(tr("Note"),tr("Could not move\n") + curFile);
767 return; 781 return;
768 } else 782 } else
769 QFile::remove( curFile); 783 QFile::remove( curFile);
770 } 784 }
771 TabWidget->setCurrentTab(0); 785 TabWidget->setCurrentTab(0);
772 } 786 }
773 } 787 }
774 populateRemoteView(); 788 populateRemoteView();
775 populateLocalView(); 789 populateLocalView();
776 } 790 }
777} 791}
778 792
779bool AdvancedFm::copyFile( const QString & dest, const QString & src ) { 793bool AdvancedFm::copyFile( const QString & src, const QString & dest ) {
780 char bf[ 50000 ]; 794 char bf[ 50000 ];
781 int bytesRead; 795 int bytesRead;
782 bool success = TRUE; 796 bool success = TRUE;
783 struct stat status; 797 struct stat status;
784 798
785 QFile s( src ); 799 QFile s( src );
786 QFile d( dest ); 800 QFile d( dest );
787 801
788 if( s.open( IO_ReadOnly | IO_Raw ) && d.open( IO_WriteOnly | IO_Raw ) ) { 802 if( s.open( IO_ReadOnly | IO_Raw ) && d.open( IO_WriteOnly | IO_Raw ) ) {
789 while( (bytesRead = s.readBlock( bf, sizeof( bf ) )) == sizeof( bf ) ) { 803 while( (bytesRead = s.readBlock( bf, sizeof( bf ) )) == sizeof( bf ) ) {
790 if( d.writeBlock( bf, sizeof( bf ) ) != sizeof( bf ) ){ 804 if( d.writeBlock( bf, sizeof( bf ) ) != sizeof( bf ) ){
791 success = FALSE; 805 success = FALSE;
792 break; 806 break;
793 } 807 }
794 } 808 }
795 if( success && (bytesRead > 0) ){ 809 if( success && (bytesRead > 0) ){
796 d.writeBlock( bf, bytesRead ); 810 d.writeBlock( bf, bytesRead );
797 } 811 }
798 } else { 812 } else {
799 success = FALSE; 813 success = FALSE;
800 } 814 }
801 815
802 // Set file permissions 816 // Set file permissions
803 if( stat( (const char *) src, &status ) == 0 ){ 817 if( stat( (const char *) src, &status ) == 0 ){
804 chmod( (const char *) dest, status.st_mode ); 818 chmod( (const char *) dest, status.st_mode );
805 } 819 }
806 820
807 return success; 821 return success;
808} 822}
809 823
810void AdvancedFm::runCommand() { 824void AdvancedFm::runCommand() {
811 QString curFile; 825 QString curFile;
812 if (TabWidget->getCurrentTab() == 0) { 826 if (TabWidget->getCurrentTab() == 0) {
813 if( Local_View->currentItem()) 827 if( Local_View->currentItem())
814 curFile = currentDir.canonicalPath() +"/"+ Local_View->currentItem()->text(0); 828 curFile = currentDir.canonicalPath() +"/"+ Local_View->currentItem()->text(0);
815 } else { 829 } else {
816 if(Remote_View->currentItem()) 830 if(Remote_View->currentItem())
817 curFile = currentRemoteDir.canonicalPath() + "/"+Remote_View->currentItem()->text(0); 831 curFile = currentRemoteDir.canonicalPath() + "/"+Remote_View->currentItem()->text(0);
818 } 832 }
819 833
820 InputDialog *fileDlg; 834 InputDialog *fileDlg;
821 fileDlg = new InputDialog(this,tr("Run Command"),TRUE, 0); 835 fileDlg = new InputDialog(this,tr("Run Command"),TRUE, 0);
822 fileDlg->setInputText(curFile); 836 fileDlg->setInputText(curFile);
823 fileDlg->exec(); 837 fileDlg->exec();
824 //QString command; 838 //QString command;
825 839
826 if( fileDlg->result() == 1 ) { 840 if( fileDlg->result() == 1 ) {
827 qDebug(fileDlg->LineEdit1->text()); 841 qDebug(fileDlg->LineEdit1->text());
828 QStringList command; 842 QStringList command;
829 843
830 command << "/bin/sh"; 844 command << "/bin/sh";
831 command << "-c"; 845 command << "-c";
832 command << fileDlg->LineEdit1->text(); 846 command << fileDlg->LineEdit1->text();
833 Output *outDlg; 847 Output *outDlg;
834 outDlg = new Output( command, this, tr("AdvancedFm Output"), true); 848 outDlg = new Output( command, this, tr("AdvancedFm Output"), true);
835 outDlg->showMaximized(); 849 outDlg->showMaximized();
836 outDlg->exec(); 850 outDlg->exec();
837 qApp->processEvents(); 851 qApp->processEvents();
838 852
839 } 853 }
840} 854}
841 855
842void AdvancedFm::runCommandStd() { 856void AdvancedFm::runCommandStd() {
843 QString curFile; 857 QString curFile;