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
@@ -226,313 +226,313 @@ AdvancedFm::AdvancedFm( )
226 this, SLOT( currentPathComboActivated( const QString & ) ) ); 226 this, SLOT( currentPathComboActivated( const QString & ) ) );
227 227
228 connect( currentPathCombo->lineEdit(),SIGNAL(returnPressed()), 228 connect( currentPathCombo->lineEdit(),SIGNAL(returnPressed()),
229 this,SLOT(currentPathComboChanged())); 229 this,SLOT(currentPathComboChanged()));
230 230
231 currentPathCombo->lineEdit()->setText( currentDir.canonicalPath()); 231 currentPathCombo->lineEdit()->setText( currentDir.canonicalPath());
232 232
233 layout->addMultiCellWidget( currentPathCombo, 3, 3, 0, 7); 233 layout->addMultiCellWidget( currentPathCombo, 3, 3, 0, 7);
234 234
235 filterStr="*"; 235 filterStr="*";
236 b=FALSE; 236 b=FALSE;
237 populateLocalView(); 237 populateLocalView();
238 populateRemoteView(); 238 populateRemoteView();
239} 239}
240 240
241AdvancedFm::~AdvancedFm() 241AdvancedFm::~AdvancedFm()
242{ 242{
243} 243}
244 244
245void AdvancedFm::cleanUp() 245void AdvancedFm::cleanUp()
246{ 246{
247 QString sfile=QDir::homeDirPath(); 247 QString sfile=QDir::homeDirPath();
248 if(sfile.right(1) != "/") 248 if(sfile.right(1) != "/")
249 sfile+="/._temp"; 249 sfile+="/._temp";
250 else 250 else
251 sfile+="._temp"; 251 sfile+="._temp";
252 QFile file( sfile); 252 QFile file( sfile);
253 if(file.exists()) 253 if(file.exists())
254 file.remove(); 254 file.remove();
255} 255}
256 256
257void AdvancedFm::tabChanged(QWidget *w) 257void 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() ) {
507 currentDir.cd(strItem2, TRUE); 507 currentDir.cd(strItem2, TRUE);
508 populateLocalView(); 508 populateLocalView();
509 } 509 }
510 } else { // not a symlink 510 } else { // not a symlink
511 if(strItem.find(". .",0,TRUE) && strItem.find("/",0,TRUE)!=-1 ) { 511 if(strItem.find(". .",0,TRUE) && strItem.find("/",0,TRUE)!=-1 ) {
512 if(QDir(QDir::cleanDirPath(currentDir.canonicalPath()+"/"+strItem)).exists() ) { 512 if(QDir(QDir::cleanDirPath(currentDir.canonicalPath()+"/"+strItem)).exists() ) {
513 strItem=QDir::cleanDirPath(currentDir.canonicalPath()+"/"+strItem); 513 strItem=QDir::cleanDirPath(currentDir.canonicalPath()+"/"+strItem);
514 currentDir.cd(strItem,FALSE); 514 currentDir.cd(strItem,FALSE);
515 populateLocalView(); 515 populateLocalView();
516 } else { 516 } else {
517 currentDir.cdUp(); 517 currentDir.cdUp();
518 populateLocalView(); 518 populateLocalView();
519 } 519 }
520 if(QDir(strItem).exists()){ 520 if(QDir(strItem).exists()){
521 currentDir.cd(strItem, TRUE); 521 currentDir.cd(strItem, TRUE);
522 populateLocalView(); 522 populateLocalView();
523 } 523 }
524 } else { 524 } else {
525 strItem=QDir::cleanDirPath(currentDir.canonicalPath()+"/"+strItem); 525 strItem=QDir::cleanDirPath(currentDir.canonicalPath()+"/"+strItem);
526 if( QFile::exists(strItem ) ) { 526 if( QFile::exists(strItem ) ) {
527// qDebug("upload "+strItem); 527// qDebug("upload "+strItem);
528 } 528 }
529 } //end not symlink 529 } //end not symlink
530 chdir(strItem.latin1()); 530 chdir(strItem.latin1());
531 } 531 }
532 } 532 }
533} 533}
534 534
535void AdvancedFm::remoteListClicked(QListViewItem *selectedItem) 535void AdvancedFm::remoteListClicked(QListViewItem *selectedItem)
536{ 536{
537 if(selectedItem) { 537 if(selectedItem) {
538 QString strItem=selectedItem->text(0); 538 QString strItem=selectedItem->text(0);
@@ -623,222 +623,222 @@ void AdvancedFm::localListPressed( int mouse, QListViewItem *item, const QPoint
623 case 1: 623 case 1:
624 break; 624 break;
625 case 2: 625 case 2:
626 showLocalMenu(item); 626 showLocalMenu(item);
627 Local_View->clearSelection(); 627 Local_View->clearSelection();
628 break; 628 break;
629 }; 629 };
630} 630}
631 631
632void AdvancedFm::remoteListPressed( int mouse, QListViewItem *item, const QPoint &point, int i) 632void AdvancedFm::remoteListPressed( int mouse, QListViewItem *item, const QPoint &point, int i)
633{ 633{
634 switch (mouse) { 634 switch (mouse) {
635 case 1: 635 case 1:
636 break; 636 break;
637 case 2: 637 case 2:
638 showRemoteMenu(item); 638 showRemoteMenu(item);
639 Remote_View->clearSelection(); 639 Remote_View->clearSelection();
640 break; 640 break;
641 }; 641 };
642} 642}
643 643
644void AdvancedFm::showLocalMenu(QListViewItem * item) 644void AdvancedFm::showLocalMenu(QListViewItem * item)
645{ 645{
646 if(item) { 646 if(item) {
647 QPopupMenu m; 647 QPopupMenu m;
648 m.insertItem( tr( "Show Hidden Files" ), this, SLOT( showHidden() )); 648 m.insertItem( tr( "Show Hidden Files" ), this, SLOT( showHidden() ));
649 m.insertSeparator(); 649 m.insertSeparator();
650 if( /*item->text(0).right(1) == "/" ||*/ item->text(0).find("/",0,TRUE) !=-1) 650 if( /*item->text(0).right(1) == "/" ||*/ item->text(0).find("/",0,TRUE) !=-1)
651 m.insertItem( tr( "Change Directory" ), this, SLOT( doLocalCd() )); 651 m.insertItem( tr( "Change Directory" ), this, SLOT( doLocalCd() ));
652 else 652 else
653 m.insertItem( tr( "Open" ), this, SLOT( runThis() )); 653 m.insertItem( tr( "Open" ), this, SLOT( runThis() ));
654 m.insertItem( tr( "Open as Text" ), this, SLOT( runText() )); 654 m.insertItem( tr( "Open as Text" ), this, SLOT( runText() ));
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());
813 populateLocalView(); 813 populateLocalView();
814 } 814 }
815 break; 815 break;
816 case 1: 816 case 1:
817 // exit 817 // exit
818 break; 818 break;
819 }; 819 };
820 820
821 } else { 821 } else {
822 switch ( QMessageBox::warning(this,tr("Delete"),tr("Do you really want to delete\n")+f 822 switch ( QMessageBox::warning(this,tr("Delete"),tr("Do you really want to delete\n")+f
823 +" ?",tr("Yes"),tr("No"),0,0,1) ) { 823 +" ?",tr("Yes"),tr("No"),0,0,1) ) {
824 case 0: { 824 case 0: {
825 QString cmd="rm "+f; 825 QString cmd="rm "+f;
826 QFile file(f); 826 QFile file(f);
827 file.remove(); 827 file.remove();
828// system( cmd.latin1()); 828// system( cmd.latin1());
829 populateLocalView(); 829 populateLocalView();
830 } 830 }
831 break; 831 break;
832 case 1: 832 case 1:
833 // exit 833 // exit
834 break; 834 break;
835 }; 835 };
836 } 836 }
837 } 837 }
838} 838}
839 839
840void AdvancedFm::remoteDelete() 840void AdvancedFm::remoteDelete()
841{ 841{
842 QStringList curFileList = getPath(); 842 QStringList curFileList = getPath();
843 QString myFile; 843 QString myFile;
844 844
@@ -953,382 +953,376 @@ void AdvancedFm::currentPathComboChanged()
953 if(QDir( currentPathCombo->lineEdit()->text()).exists()) { 953 if(QDir( currentPathCombo->lineEdit()->text()).exists()) {
954 currentRemoteDir.setPath( currentPathCombo->lineEdit()->text() ); 954 currentRemoteDir.setPath( currentPathCombo->lineEdit()->text() );
955 populateRemoteView(); 955 populateRemoteView();
956 } else { 956 } else {
957 QMessageBox::message(tr("Note"),tr("That directory does not exist")); 957 QMessageBox::message(tr("Note"),tr("That directory does not exist"));
958 } 958 }
959 } 959 }
960} 960}
961 961
962void AdvancedFm::fillCombo(const QString &currentPath) { 962void AdvancedFm::fillCombo(const QString &currentPath) {
963 963
964 if (TabWidget->currentPageIndex() == 0) { 964 if (TabWidget->currentPageIndex() == 0) {
965 currentPathCombo->lineEdit()->setText( currentPath); 965 currentPathCombo->lineEdit()->setText( currentPath);
966 if( localDirPathStringList.grep(currentPath,TRUE).isEmpty() ) { 966 if( localDirPathStringList.grep(currentPath,TRUE).isEmpty() ) {
967 currentPathCombo->clear(); 967 currentPathCombo->clear();
968 localDirPathStringList.prepend( currentPath ); 968 localDirPathStringList.prepend( currentPath );
969 currentPathCombo->insertStringList( localDirPathStringList,-1); 969 currentPathCombo->insertStringList( localDirPathStringList,-1);
970 } 970 }
971 } else { 971 } else {
972 currentPathCombo->lineEdit()->setText( currentPath); 972 currentPathCombo->lineEdit()->setText( currentPath);
973 if( remoteDirPathStringList.grep( currentPath,TRUE).isEmpty() ) { 973 if( remoteDirPathStringList.grep( currentPath,TRUE).isEmpty() ) {
974 currentPathCombo->clear(); 974 currentPathCombo->clear();
975 remoteDirPathStringList.prepend( currentPath ); 975 remoteDirPathStringList.prepend( currentPath );
976 currentPathCombo->insertStringList( remoteDirPathStringList,-1); 976 currentPathCombo->insertStringList( remoteDirPathStringList,-1);
977 } 977 }
978 } 978 }
979} 979}
980 980
981void AdvancedFm::currentPathComboActivated(const QString & currentPath) { 981void AdvancedFm::currentPathComboActivated(const QString & currentPath) {
982 if (TabWidget->currentPageIndex() == 0) { 982 if (TabWidget->currentPageIndex() == 0) {
983 chdir( currentPath.latin1() ); 983 chdir( currentPath.latin1() );
984 currentDir.cd( currentPath, TRUE); 984 currentDir.cd( currentPath, TRUE);
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
1303 bool AdvancedFm::copyFile( const QString & dest, const QString & src ) 1297 bool AdvancedFm::copyFile( const QString & dest, const QString & src )
1304{ 1298{
1305 char bf[ 50000 ]; 1299 char bf[ 50000 ];
1306 int bytesRead; 1300 int bytesRead;
1307 bool success = TRUE; 1301 bool success = TRUE;
1308 struct stat status; 1302 struct stat status;
1309 1303
1310 QFile s( src ); 1304 QFile s( src );
1311 QFile d( dest ); 1305 QFile d( dest );
1312 1306
1313 if( s.open( IO_ReadOnly | IO_Raw ) && d.open( IO_WriteOnly | IO_Raw ) ) { 1307 if( s.open( IO_ReadOnly | IO_Raw ) && d.open( IO_WriteOnly | IO_Raw ) ) {
1314 while( (bytesRead = s.readBlock( bf, sizeof( bf ) )) == sizeof( bf ) ) { 1308 while( (bytesRead = s.readBlock( bf, sizeof( bf ) )) == sizeof( bf ) ) {
1315 if( d.writeBlock( bf, sizeof( bf ) ) != sizeof( bf ) ){ 1309 if( d.writeBlock( bf, sizeof( bf ) ) != sizeof( bf ) ){
1316 success = FALSE; 1310 success = FALSE;
1317 break; 1311 break;
1318 } 1312 }
1319 } 1313 }
1320 if( success && (bytesRead > 0) ){ 1314 if( success && (bytesRead > 0) ){
1321 d.writeBlock( bf, bytesRead ); 1315 d.writeBlock( bf, bytesRead );
1322 } 1316 }
1323 } else { 1317 } else {
1324 success = FALSE; 1318 success = FALSE;
1325 } 1319 }
1326 1320
1327 // Set file permissions 1321 // Set file permissions
1328 if( stat( (const char *) src, &status ) == 0 ){ 1322 if( stat( (const char *) src, &status ) == 0 ){
1329 chmod( (const char *) dest, status.st_mode ); 1323 chmod( (const char *) dest, status.st_mode );
1330 } 1324 }
1331 1325
1332 return success; 1326 return success;
1333} 1327}
1334 1328
@@ -1441,128 +1435,137 @@ void AdvancedFm::mkDir() {
1441 1435
1442} 1436}
1443 1437
1444void AdvancedFm::rn() { 1438void AdvancedFm::rn() {
1445 if (TabWidget->currentPageIndex() == 0) 1439 if (TabWidget->currentPageIndex() == 0)
1446 localRename(); 1440 localRename();
1447 else 1441 else
1448 remoteRename(); 1442 remoteRename();
1449 1443
1450} 1444}
1451 1445
1452void AdvancedFm::del() { 1446void AdvancedFm::del() {
1453 if (TabWidget->currentPageIndex() == 0) 1447 if (TabWidget->currentPageIndex() == 0)
1454 localDelete(); 1448 localDelete();
1455 else 1449 else
1456 remoteDelete(); 1450 remoteDelete();
1457} 1451}
1458 1452
1459void AdvancedFm::doAbout() { 1453void AdvancedFm::doAbout() {
1460 QMessageBox::message("AdvancedFm","Advanced FileManager\n" 1454 QMessageBox::message("AdvancedFm","Advanced FileManager\n"
1461 "is copyright 2002 by\n" 1455 "is copyright 2002 by\n"
1462 "L.J.Potter<llornkcor@handhelds.org>\n" 1456 "L.J.Potter<llornkcor@handhelds.org>\n"
1463 "and is licensed by the GPL"); 1457 "and is licensed by the GPL");
1464} 1458}
1465 1459
1466void AdvancedFm::keyReleaseEvent( QKeyEvent *e) 1460void AdvancedFm::keyReleaseEvent( QKeyEvent *e)
1467{ 1461{
1468 switch ( e->key() ) { 1462 switch ( e->key() ) {
1469 case Key_Delete: 1463 case Key_Delete:
1470 del(); 1464 del();
1471 break; 1465 break;
1472 case Key_H: 1466 case Key_H:
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}