summaryrefslogtreecommitdiff
authorllornkcor <llornkcor>2002-10-06 20:59:04 (UTC)
committer llornkcor <llornkcor>2002-10-06 20:59:04 (UTC)
commit2623a1e2fddf0bfb91191ea7224f016032336ed5 (patch) (unidiff)
tree3ee4d0330368bc3508778298b907ade1cfdf0ac1
parente334186122e512a57bd27026014f01f501db93fc (diff)
downloadopie-2623a1e2fddf0bfb91191ea7224f016032336ed5.zip
opie-2623a1e2fddf0bfb91191ea7224f016032336ed5.tar.gz
opie-2623a1e2fddf0bfb91191ea7224f016032336ed5.tar.bz2
fix select and scroll
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/apps/advancedfm/advancedfm.cpp11
1 files changed, 9 insertions, 2 deletions
diff --git a/noncore/apps/advancedfm/advancedfm.cpp b/noncore/apps/advancedfm/advancedfm.cpp
index 3aa516c..ec475a4 100644
--- a/noncore/apps/advancedfm/advancedfm.cpp
+++ b/noncore/apps/advancedfm/advancedfm.cpp
@@ -275,156 +275,161 @@ void AdvancedFm::populateRemoteView() {
275 } 275 }
276 isDir=FALSE; 276 isDir=FALSE;
277 ++it; 277 ++it;
278 } 278 }
279 279
280 if(currentRemoteDir.canonicalPath().find("dev",0,TRUE) != -1) { 280 if(currentRemoteDir.canonicalPath().find("dev",0,TRUE) != -1) {
281 struct stat buf; 281 struct stat buf;
282 DIR *dir; 282 DIR *dir;
283 struct dirent *mydirent; 283 struct dirent *mydirent;
284 if((dir = opendir( currentRemoteDir.canonicalPath().latin1())) != NULL) 284 if((dir = opendir( currentRemoteDir.canonicalPath().latin1())) != NULL)
285 while ((mydirent = readdir(dir)) != NULL) { 285 while ((mydirent = readdir(dir)) != NULL) {
286 lstat( mydirent->d_name, &buf); 286 lstat( mydirent->d_name, &buf);
287 qDebug(mydirent->d_name); 287 qDebug(mydirent->d_name);
288 fileL.sprintf("%s", mydirent->d_name); 288 fileL.sprintf("%s", mydirent->d_name);
289 fileS.sprintf("%d,%d", (int) (buf.st_dev>>8)&0xFF, (int) buf.st_dev &0xFF); 289 fileS.sprintf("%d,%d", (int) (buf.st_dev>>8)&0xFF, (int) buf.st_dev &0xFF);
290 fileDate.sprintf("%s", ctime( &buf.st_mtime)); 290 fileDate.sprintf("%s", ctime( &buf.st_mtime));
291 if( fileL.find(".") == -1 ){ 291 if( fileL.find(".") == -1 ){
292 item= new QListViewItem( Remote_View, fileL, fileS, fileDate); 292 item= new QListViewItem( Remote_View, fileL, fileS, fileDate);
293 pm = Resource::loadPixmap( "UnknownDocument-14" ); 293 pm = Resource::loadPixmap( "UnknownDocument-14" );
294 item->setPixmap( 0,pm); 294 item->setPixmap( 0,pm);
295 } 295 }
296 } 296 }
297 297
298 closedir(dir); 298 closedir(dir);
299 } 299 }
300 300
301 Remote_View->setSorting( 3,FALSE); 301 Remote_View->setSorting( 3,FALSE);
302 fillCombo( (const QString &) currentRemoteDir.canonicalPath() ); 302 fillCombo( (const QString &) currentRemoteDir.canonicalPath() );
303} 303}
304 304
305void AdvancedFm::localListClicked(QListViewItem *selectedItem) { 305void AdvancedFm::localListClicked(QListViewItem *selectedItem) {
306 if(selectedItem) { 306 if(selectedItem) {
307 QString strItem=selectedItem->text(0); 307 QString strItem=selectedItem->text(0);
308 QString strSize=selectedItem->text(1); 308 QString strSize=selectedItem->text(1);
309 strSize=strSize.stripWhiteSpace(); 309 strSize=strSize.stripWhiteSpace();
310 if(strItem.find("@",0,TRUE) !=-1 || strItem.find("->",0,TRUE) !=-1 ) { //if symlink 310 if(strItem.find("@",0,TRUE) !=-1 || strItem.find("->",0,TRUE) !=-1 ) { //if symlink
311 QString strItem2 = strItem.right( (strItem.length() - strItem.find("->",0,TRUE)) - 4); 311 QString strItem2 = strItem.right( (strItem.length() - strItem.find("->",0,TRUE)) - 4);
312 if(QDir(strItem2).exists() ) { 312 if(QDir(strItem2).exists() ) {
313 currentDir.cd(strItem2, TRUE); 313 currentDir.cd(strItem2, TRUE);
314 populateLocalView(); 314 populateLocalView();
315 315
316 } 316 }
317 } else { // not a symlink 317 } else { // not a symlink
318 if(strItem.find(". .",0,TRUE) && strItem.find("/",0,TRUE)!=-1 ) { 318 if(strItem.find(". .",0,TRUE) && strItem.find("/",0,TRUE)!=-1 ) {
319 if(QDir(QDir::cleanDirPath(currentDir.canonicalPath()+"/"+strItem)).exists() ) { 319 if(QDir(QDir::cleanDirPath(currentDir.canonicalPath()+"/"+strItem)).exists() ) {
320 strItem=QDir::cleanDirPath(currentDir.canonicalPath()+"/"+strItem); 320 strItem=QDir::cleanDirPath(currentDir.canonicalPath()+"/"+strItem);
321 currentDir.cd(strItem,FALSE); 321 currentDir.cd(strItem,FALSE);
322 populateLocalView(); 322 populateLocalView();
323 Local_View->ensureItemVisible(Local_View->firstChild());
324
323 } else { 325 } else {
324 currentDir.cdUp(); 326 currentDir.cdUp();
325 populateLocalView(); 327 populateLocalView();
328 Local_View->ensureItemVisible(Local_View->firstChild());
326 } 329 }
327 if(QDir(strItem).exists()){ 330 if(QDir(strItem).exists()){
328 currentDir.cd(strItem, TRUE); 331 currentDir.cd(strItem, TRUE);
332 Local_View->ensureItemVisible(Local_View->firstChild());
329 populateLocalView(); 333 populateLocalView();
330 } 334 }
331 } else { 335 } else {
332 strItem=QDir::cleanDirPath(currentDir.canonicalPath()+"/"+strItem); 336 strItem=QDir::cleanDirPath(currentDir.canonicalPath()+"/"+strItem);
333 if( QFile::exists(strItem ) ) { 337 if( QFile::exists(strItem ) ) {
334 // qDebug("clicked item "+strItem); 338 // qDebug("clicked item "+strItem);
335 // DocLnk doc( strItem, FALSE ); 339 // DocLnk doc( strItem, FALSE );
336 // doc.execute(); 340 // doc.execute();
337 // Local_View->clearSelection(); 341 // Local_View->clearSelection();
338 } 342 }
339 } //end not symlink 343 } //end not symlink
340 chdir(strItem.latin1()); 344 chdir(strItem.latin1());
341 } 345 }
342 Local_View->ensureItemVisible(Local_View->firstChild());
343 346
344 } 347 }
345} 348}
346 349
347void AdvancedFm::remoteListClicked(QListViewItem *selectedItem) { 350void AdvancedFm::remoteListClicked(QListViewItem *selectedItem) {
348 351
349 if(selectedItem) { 352 if(selectedItem) {
350 QString strItem=selectedItem->text(0); 353 QString strItem=selectedItem->text(0);
351 QString strSize=selectedItem->text(1); 354 QString strSize=selectedItem->text(1);
352 strSize=strSize.stripWhiteSpace(); 355 strSize=strSize.stripWhiteSpace();
353 if(strItem.find("@",0,TRUE) !=-1 || strItem.find("->",0,TRUE) !=-1 ) { //if symlink 356 if(strItem.find("@",0,TRUE) !=-1 || strItem.find("->",0,TRUE) !=-1 ) { //if symlink
354 QString strItem2 = strItem.right( (strItem.length() - strItem.find("->",0,TRUE)) - 4); 357 QString strItem2 = strItem.right( (strItem.length() - strItem.find("->",0,TRUE)) - 4);
355 currentRemoteDir.cd(strItem2, TRUE); 358 currentRemoteDir.cd(strItem2, TRUE);
356 populateRemoteView(); 359 populateRemoteView();
357 } else { // not a symlink 360 } else { // not a symlink
358 if(strItem.find(". .",0,TRUE) && strItem.find("/",0,TRUE)!=-1 ) { 361 if(strItem.find(". .",0,TRUE) && strItem.find("/",0,TRUE)!=-1 ) {
359 if(QDir(QDir::cleanDirPath( currentRemoteDir.canonicalPath()+"/"+strItem)).exists() ) { 362 if(QDir(QDir::cleanDirPath( currentRemoteDir.canonicalPath()+"/"+strItem)).exists() ) {
360 strItem=QDir::cleanDirPath( currentRemoteDir.canonicalPath()+"/"+strItem); 363 strItem=QDir::cleanDirPath( currentRemoteDir.canonicalPath()+"/"+strItem);
361 currentRemoteDir.cd(strItem,FALSE); 364 currentRemoteDir.cd(strItem,FALSE);
362 populateRemoteView(); 365 populateRemoteView();
366 Remote_View->ensureItemVisible(Remote_View->firstChild());
363 } else { 367 } else {
364 currentRemoteDir.cdUp(); 368 currentRemoteDir.cdUp();
365 populateRemoteView(); 369 populateRemoteView();
370 Remote_View->ensureItemVisible(Remote_View->firstChild());
366 } 371 }
367 if(QDir(strItem).exists()){ 372 if(QDir(strItem).exists()){
368 currentRemoteDir.cd(strItem, TRUE); 373 currentRemoteDir.cd(strItem, TRUE);
369 populateRemoteView(); 374 populateRemoteView();
375 Remote_View->ensureItemVisible(Remote_View->firstChild());
370 } 376 }
371 } else { 377 } else {
372 strItem=QDir::cleanDirPath( currentRemoteDir.canonicalPath()+"/"+strItem); 378 strItem=QDir::cleanDirPath( currentRemoteDir.canonicalPath()+"/"+strItem);
373 if( QFile::exists(strItem ) ) { 379 if( QFile::exists(strItem ) ) {
374 // qDebug("clicked item "+strItem); 380 // qDebug("clicked item "+strItem);
375 // DocLnk doc( strItem, FALSE ); 381 // DocLnk doc( strItem, FALSE );
376 // doc.execute(); 382 // doc.execute();
377 // Remote_View->clearSelection(); 383 // Remote_View->clearSelection();
378 } 384 }
379 } //end not symlink 385 } //end not symlink
380 chdir(strItem.latin1()); 386 chdir(strItem.latin1());
381 } 387 }
382 Remote_View->ensureItemVisible(Remote_View->firstChild());
383 } 388 }
384} 389}
385 390
386 391
387void AdvancedFm::localListPressed( int mouse, QListViewItem *, const QPoint& , int ) { 392void AdvancedFm::localListPressed( int mouse, QListViewItem *, const QPoint& , int ) {
388// qDebug("list pressed"); 393// qDebug("list pressed");
389 switch (mouse) { 394 switch (mouse) {
390 case 1: 395 case 1:
391 break; 396 break;
392 case 2: 397 case 2:
393 menuTimer.start( 750, TRUE ); 398 menuTimer.start( 750, TRUE );
394 qDebug("Start menu timer\n"); 399 qDebug("Start menu timer\n");
395 break; 400 break;
396 }; 401 };
397} 402}
398 403
399void AdvancedFm::remoteListPressed( int mouse, QListViewItem*, const QPoint&, int ) { 404void AdvancedFm::remoteListPressed( int mouse, QListViewItem*, const QPoint&, int ) {
400 405
401 switch (mouse) { 406 switch (mouse) {
402 case 1: 407 case 1:
403 break; 408 break;
404 case 2: 409 case 2:
405 menuTimer.start( 750, TRUE ); 410 menuTimer.start( 750, TRUE );
406 qDebug("Start menu timer"); 411 qDebug("Start menu timer");
407 break; 412 break;
408 }; 413 };
409} 414}
410 415
411 416
412void AdvancedFm::switchToLocalTab() { 417void AdvancedFm::switchToLocalTab() {
413 TabWidget->setCurrentPage(0); 418 TabWidget->setCurrentPage(0);
414 Local_View->setFocus(); 419 Local_View->setFocus();
415} 420}
416 421
417void AdvancedFm::switchToRemoteTab() { 422void AdvancedFm::switchToRemoteTab() {
418 TabWidget->setCurrentPage(1); 423 TabWidget->setCurrentPage(1);
419 Remote_View->setFocus(); 424 Remote_View->setFocus();
420} 425}
421 426
422void AdvancedFm::readConfig() { 427void AdvancedFm::readConfig() {
423 Config cfg("AdvancedFm"); 428 Config cfg("AdvancedFm");
424} 429}
425 430
426void AdvancedFm::writeConfig() { 431void AdvancedFm::writeConfig() {
427 Config cfg("AdvancedFm"); 432 Config cfg("AdvancedFm");
428} 433}
429 434
430void AdvancedFm::currentPathComboChanged() { 435void AdvancedFm::currentPathComboChanged() {
@@ -735,97 +740,99 @@ void AdvancedFm::showFileMenu() {
735 if ( app ) 740 if ( app )
736 m->insertItem( app->pixmap(), tr( "Open in " 741 m->insertItem( app->pixmap(), tr( "Open in "
737 + app->name() ), this, SLOT( runThis() ) ); 742 + app->name() ), this, SLOT( runThis() ) );
738 else if( QFileInfo(fi).isExecutable() ) 743 else if( QFileInfo(fi).isExecutable() )
739 m->insertItem( Resource::loadPixmap( app->name()), tr( "Execute" ), this, SLOT( runThis() ) ); 744 m->insertItem( Resource::loadPixmap( app->name()), tr( "Execute" ), this, SLOT( runThis() ) );
740 745
741 m->insertItem( Resource::loadPixmap( "txt" ), tr( "Open as text" ),this, SLOT( runText() ) ); 746 m->insertItem( Resource::loadPixmap( "txt" ), tr( "Open as text" ),this, SLOT( runText() ) );
742 } 747 }
743 m->insertSeparator(); 748 m->insertSeparator();
744 749
745 750
746 if(isLocalView) 751 if(isLocalView)
747 m->insertItem( tr( "Make Directory" ), this, SLOT( localMakDir() )); 752 m->insertItem( tr( "Make Directory" ), this, SLOT( localMakDir() ));
748 else 753 else
749 m->insertItem( tr( "Make Directory" ), this, SLOT( remoteMakDir() )); 754 m->insertItem( tr( "Make Directory" ), this, SLOT( remoteMakDir() ));
750 755
751 m->insertItem( tr( "Make Symlink" ), this, SLOT( mkSym() )); 756 m->insertItem( tr( "Make Symlink" ), this, SLOT( mkSym() ));
752 m->insertSeparator(); 757 m->insertSeparator();
753 758
754 if(isLocalView) 759 if(isLocalView)
755 m->insertItem( tr( "Rename" ), this, SLOT( localRename() )); 760 m->insertItem( tr( "Rename" ), this, SLOT( localRename() ));
756 else 761 else
757 m->insertItem( tr( "Rename" ), this, SLOT( remoteRename() )); 762 m->insertItem( tr( "Rename" ), this, SLOT( remoteRename() ));
758 763
759 m->insertItem( tr( "Copy" ), this, SLOT( copy() )); 764 m->insertItem( tr( "Copy" ), this, SLOT( copy() ));
760 m->insertItem( tr( "Copy As" ), this, SLOT( copyAs() )); 765 m->insertItem( tr( "Copy As" ), this, SLOT( copyAs() ));
761 m->insertItem( tr( "Copy Same Dir" ), this, SLOT( copySameDir() )); 766 m->insertItem( tr( "Copy Same Dir" ), this, SLOT( copySameDir() ));
762 m->insertItem( tr( "Move" ), this, SLOT( move() )); 767 m->insertItem( tr( "Move" ), this, SLOT( move() ));
763 m->insertSeparator(); 768 m->insertSeparator();
764 m->insertItem( tr( "Add To Documents" ), this, SLOT( addToDocs() )); 769 m->insertItem( tr( "Add To Documents" ), this, SLOT( addToDocs() ));
765 770
766// if(isLocalView) 771// if(isLocalView)
767// m->insertItem( tr( "Rescan" ), this, SLOT( populateLocalView() )); 772// m->insertItem( tr( "Rescan" ), this, SLOT( populateLocalView() ));
768// else 773// else
769// m->insertItem( tr( "Rescan" ), this, SLOT( populateRemoteView() )); 774// m->insertItem( tr( "Rescan" ), this, SLOT( populateRemoteView() ));
770 775
771 m->insertItem( tr( "Run Command" ), this, SLOT( runCommand() )); 776 m->insertItem( tr( "Run Command" ), this, SLOT( runCommand() ));
772 m->insertItem( tr( "File Info" ), this, SLOT( fileStatus() )); 777 m->insertItem( tr( "File Info" ), this, SLOT( fileStatus() ));
773 m->insertSeparator(); 778 m->insertSeparator();
774 779
775 if(isLocalView) 780 if(isLocalView)
776 m->insertItem( tr( "Delete" ), this, SLOT( localDelete() )); 781 m->insertItem( tr( "Delete" ), this, SLOT( localDelete() ));
777 else 782 else
778 m->insertItem( tr( "Delete" ), this, SLOT( remoteDelete() )); 783 m->insertItem( tr( "Delete" ), this, SLOT( remoteDelete() ));
779 784
780 m->insertSeparator(); 785 m->insertSeparator();
781 m->insertItem( tr( "Set Permissions" ), this, SLOT( filePerms() )); 786 m->insertItem( tr( "Set Permissions" ), this, SLOT( filePerms() ));
782 787
788#if defined(QT_QWS_OPIE)
783 m->insertItem( tr( "Properties" ), this, SLOT( doProperties() )); 789 m->insertItem( tr( "Properties" ), this, SLOT( doProperties() ));
790#endif
784 m->setCheckable(TRUE); 791 m->setCheckable(TRUE);
785 if (!b) 792 if (!b)
786 m->setItemChecked(m->idAt(0),TRUE); 793 m->setItemChecked(m->idAt(0),TRUE);
787 else 794 else
788 m->setItemChecked(m->idAt(0),FALSE); 795 m->setItemChecked(m->idAt(0),FALSE);
789 796
790 if(Ir::supported()) 797 if(Ir::supported())
791 m->insertItem( tr( "Beam File" ), this, SLOT( doBeam() )); 798 m->insertItem( tr( "Beam File" ), this, SLOT( doBeam() ));
792 m->setFocus(); 799 m->setFocus();
793 m->exec( QCursor::pos() ); 800 m->exec( QCursor::pos() );
794 sleep(1); 801 sleep(1);
795 if(m) delete m; 802 if(m) delete m;
796} 803}
797 804
798 805
799void AdvancedFm::cancelMenuTimer() { 806void AdvancedFm::cancelMenuTimer() {
800 807
801// qDebug("selectionChanged: cancel menu timer"); 808// qDebug("selectionChanged: cancel menu timer");
802 if( menuTimer.isActive() ) 809 if( menuTimer.isActive() )
803 menuTimer.stop(); 810 menuTimer.stop();
804} 811}
805 812
806QString AdvancedFm::checkDiskSpace(const QString &path) { 813QString AdvancedFm::checkDiskSpace(const QString &path) {
807 struct statfs fss; 814 struct statfs fss;
808 if ( !statfs( path.latin1(), &fss ) ) { 815 if ( !statfs( path.latin1(), &fss ) ) {
809 int blkSize = fss.f_bsize; 816 int blkSize = fss.f_bsize;
810// int totalBlks = fs.f_blocks; 817// int totalBlks = fs.f_blocks;
811 int availBlks = fss.f_bavail; 818 int availBlks = fss.f_bavail;
812 819
813 long mult = blkSize / 1024; 820 long mult = blkSize / 1024;
814 long div = 1024 / blkSize; 821 long div = 1024 / blkSize;
815 if ( !mult ) mult = 1; 822 if ( !mult ) mult = 1;
816 if ( !div ) div = 1; 823 if ( !div ) div = 1;
817 824
818 825
819 return QString::number(availBlks * mult / div); 826 return QString::number(availBlks * mult / div);
820 } 827 }
821 return ""; 828 return "";
822} 829}
823 830
824void AdvancedFm::addToDocs() { 831void AdvancedFm::addToDocs() {
825 QStringList strListPaths = getPath(); 832 QStringList strListPaths = getPath();
826 if( strListPaths.count() > 0) { 833 if( strListPaths.count() > 0) {
827 QString curFile; 834 QString curFile;
828 if (TabWidget->currentPageIndex() == 0) { 835 if (TabWidget->currentPageIndex() == 0) {
829 for ( QStringList::Iterator it = strListPaths.begin(); it != strListPaths.end(); ++it ) { 836 for ( QStringList::Iterator it = strListPaths.begin(); it != strListPaths.end(); ++it ) {
830 curFile = currentDir.canonicalPath()+"/"+(*it); 837 curFile = currentDir.canonicalPath()+"/"+(*it);
831 qDebug(curFile); 838 qDebug(curFile);