summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/apps/advancedfm/advancedfm.cpp32
-rw-r--r--noncore/apps/advancedfm/advancedfm.h2
2 files changed, 29 insertions, 5 deletions
diff --git a/noncore/apps/advancedfm/advancedfm.cpp b/noncore/apps/advancedfm/advancedfm.cpp
index 96a2d0a..16dc7da 100644
--- a/noncore/apps/advancedfm/advancedfm.cpp
+++ b/noncore/apps/advancedfm/advancedfm.cpp
@@ -61,24 +61,26 @@
61#include <qregexp.h> 61#include <qregexp.h>
62 62
63#include <unistd.h> 63#include <unistd.h>
64#include <stdlib.h> 64#include <stdlib.h>
65#include <sys/stat.h> 65#include <sys/stat.h>
66#include <dirent.h> 66#include <dirent.h>
67#include <stdio.h> 67#include <stdio.h>
68#include <time.h> 68#include <time.h>
69#include <fcntl.h> 69#include <fcntl.h>
70#include <mntent.h> 70#include <mntent.h>
71#include <string.h> 71#include <string.h>
72#include <errno.h> 72#include <errno.h>
73#include <sys/vfs.h>
74#include <mntent.h>
73 75
74AdvancedFm::AdvancedFm( ) 76AdvancedFm::AdvancedFm( )
75 : QMainWindow( ) 77 : QMainWindow( )
76{ 78{
77 setCaption( tr( "AdvancedFm" ) ); 79 setCaption( tr( "AdvancedFm" ) );
78 80
79 QGridLayout *layout = new QGridLayout( this ); 81 QGridLayout *layout = new QGridLayout( this );
80 layout->setSpacing( 2); 82 layout->setSpacing( 2);
81 layout->setMargin( 2); 83 layout->setMargin( 2);
82 84
83 connect( qApp,SIGNAL( aboutToQuit()),SLOT( cleanUp()) ); 85 connect( qApp,SIGNAL( aboutToQuit()),SLOT( cleanUp()) );
84 86
@@ -295,25 +297,25 @@ void AdvancedFm::tabChanged(QWidget *w)
295} 297}
296 298
297 299
298void AdvancedFm::populateLocalView() 300void AdvancedFm::populateLocalView()
299{ 301{
300 QPixmap pm; 302 QPixmap pm;
301 Local_View->clear(); 303 Local_View->clear();
302 currentDir.setSorting(/* QDir::Size*/ /*| QDir::Reversed | */QDir::DirsFirst); 304 currentDir.setSorting(/* QDir::Size*/ /*| QDir::Reversed | */QDir::DirsFirst);
303 currentDir.setMatchAllDirs(TRUE); 305 currentDir.setMatchAllDirs(TRUE);
304 currentDir.setNameFilter(filterStr); 306 currentDir.setNameFilter(filterStr);
305 QString fileL, fileS, fileDate; 307 QString fileL, fileS, fileDate;
306 QString fs= getFileSystemType((const QString &) currentDir.canonicalPath()); 308 QString fs= getFileSystemType((const QString &) currentDir.canonicalPath());
307 setCaption("AdvancedFm :: "+fs); 309 setCaption("AdvancedFm :: "+fs+" :: "+checkDiskSpace((const QString &) currentDir.canonicalPath())+" kB free" );
308 bool isDir=FALSE; 310 bool isDir=FALSE;
309 const QFileInfoList *list = currentDir.entryInfoList( /*QDir::All*/ /*, QDir::SortByMask*/); 311 const QFileInfoList *list = currentDir.entryInfoList( /*QDir::All*/ /*, QDir::SortByMask*/);
310 QFileInfoListIterator it(*list); 312 QFileInfoListIterator it(*list);
311 QFileInfo *fi; 313 QFileInfo *fi;
312 while ( (fi=it.current()) ) { 314 while ( (fi=it.current()) ) {
313 if (fi->isSymLink() ) { 315 if (fi->isSymLink() ) {
314 QString symLink=fi->readLink(); 316 QString symLink=fi->readLink();
315 QFileInfo sym( symLink); 317 QFileInfo sym( symLink);
316 fileS.sprintf( "%10li", sym.size() ); 318 fileS.sprintf( "%10li", sym.size() );
317 fileL.sprintf( "%s -> %s", fi->fileName().data(),sym.absFilePath().data() ); 319 fileL.sprintf( "%s -> %s", fi->fileName().data(),sym.absFilePath().data() );
318 fileDate = sym.lastModified().toString(); 320 fileDate = sym.lastModified().toString();
319 } else { 321 } else {
@@ -393,25 +395,25 @@ void AdvancedFm::populateLocalView()
393 395
394 396
395void AdvancedFm::populateRemoteView() 397void AdvancedFm::populateRemoteView()
396{ 398{
397 QPixmap pm; 399 QPixmap pm;
398 Remote_View->clear(); 400 Remote_View->clear();
399 currentRemoteDir.setSorting(/* QDir::Size*/ /*| QDir::Reversed | */QDir::DirsFirst); 401 currentRemoteDir.setSorting(/* QDir::Size*/ /*| QDir::Reversed | */QDir::DirsFirst);
400 currentRemoteDir.setMatchAllDirs(TRUE); 402 currentRemoteDir.setMatchAllDirs(TRUE);
401 currentRemoteDir.setNameFilter(filterStr); 403 currentRemoteDir.setNameFilter(filterStr);
402 QString fileL, fileS, fileDate; 404 QString fileL, fileS, fileDate;
403 405
404 QString fs= getFileSystemType((const QString &) currentRemoteDir.canonicalPath()); 406 QString fs= getFileSystemType((const QString &) currentRemoteDir.canonicalPath());
405 setCaption("AdvancedFm :: "+fs); 407 setCaption("AdvancedFm :: "+fs+" :: "+checkDiskSpace((const QString &) currentRemoteDir.canonicalPath())+" kB free" );
406 bool isDir=FALSE; 408 bool isDir=FALSE;
407 const QFileInfoList *list = currentRemoteDir.entryInfoList( /*QDir::All*/ /*, QDir::SortByMask*/); 409 const QFileInfoList *list = currentRemoteDir.entryInfoList( /*QDir::All*/ /*, QDir::SortByMask*/);
408 QFileInfoListIterator it(*list); 410 QFileInfoListIterator it(*list);
409 QFileInfo *fi; 411 QFileInfo *fi;
410 while ( (fi=it.current()) ) { 412 while ( (fi=it.current()) ) {
411 if (fi->isSymLink() ){ 413 if (fi->isSymLink() ){
412 QString symLink=fi->readLink(); 414 QString symLink=fi->readLink();
413 // qDebug("Symlink detected "+symLink); 415 // qDebug("Symlink detected "+symLink);
414 QFileInfo sym( symLink); 416 QFileInfo sym( symLink);
415 fileS.sprintf( "%10li", sym.size() ); 417 fileS.sprintf( "%10li", sym.size() );
416 fileL.sprintf( "%s -> %s", fi->fileName().data(),sym.absFilePath().data() ); 418 fileL.sprintf( "%s -> %s", fi->fileName().data(),sym.absFilePath().data() );
417 fileDate = sym.lastModified().toString(); 419 fileDate = sym.lastModified().toString();
@@ -1457,24 +1459,26 @@ void AdvancedFm::runCommand() {
1457 qDebug("Could not execute '" + command + "'! err=%d", fp); 1459 qDebug("Could not execute '" + command + "'! err=%d", fp);
1458 QMessageBox::warning( this, "AdvancedFm", tr("command failed!"), tr("&OK") ); 1460 QMessageBox::warning( this, "AdvancedFm", tr("command failed!"), tr("&OK") );
1459 pclose(fp); 1461 pclose(fp);
1460 return; 1462 return;
1461 } else { 1463 } else {
1462 while ( fgets( line, sizeof line, fp)) { 1464 while ( fgets( line, sizeof line, fp)) {
1463 QString lineStr = line; 1465 QString lineStr = line;
1464 lineStr=lineStr.left(lineStr.length()-1); 1466 lineStr=lineStr.left(lineStr.length()-1);
1465 outDlg->OutputEdit->append(lineStr); 1467 outDlg->OutputEdit->append(lineStr);
1466 outDlg->OutputEdit->setCursorPosition(outDlg->OutputEdit->numLines() + 1,0,FALSE); 1468 outDlg->OutputEdit->setCursorPosition(outDlg->OutputEdit->numLines() + 1,0,FALSE);
1467 } 1469 }
1468 } 1470 }
1471 pclose(fp);
1472
1469 } 1473 }
1470} 1474}
1471 1475
1472void AdvancedFm::runCommandStd() { 1476void AdvancedFm::runCommandStd() {
1473 QString curFile; 1477 QString curFile;
1474 if (TabWidget->currentPageIndex() == 0) { 1478 if (TabWidget->currentPageIndex() == 0) {
1475 if( Local_View->currentItem()) 1479 if( Local_View->currentItem())
1476 curFile = currentDir.canonicalPath() +"/"+ Local_View->currentItem()->text(0); 1480 curFile = currentDir.canonicalPath() +"/"+ Local_View->currentItem()->text(0);
1477 } else { 1481 } else {
1478 if(Remote_View->currentItem()) 1482 if(Remote_View->currentItem())
1479 curFile = currentRemoteDir.canonicalPath() +"/"+ Remote_View->currentItem()->text(0); 1483 curFile = currentRemoteDir.canonicalPath() +"/"+ Remote_View->currentItem()->text(0);
1480 } 1484 }
@@ -1512,24 +1516,25 @@ void AdvancedFm::fileStatus() {
1512 qDebug("Could not execute '" + command + "'! err=%d", fp); 1516 qDebug("Could not execute '" + command + "'! err=%d", fp);
1513 QMessageBox::warning( this, "AdvancedFm", tr("command failed!"), tr("&OK") ); 1517 QMessageBox::warning( this, "AdvancedFm", tr("command failed!"), tr("&OK") );
1514 pclose(fp); 1518 pclose(fp);
1515 return; 1519 return;
1516 } else { 1520 } else {
1517 while ( fgets( line, sizeof line, fp)) { 1521 while ( fgets( line, sizeof line, fp)) {
1518 outDlg->OutputEdit->append(line); 1522 outDlg->OutputEdit->append(line);
1519 outDlg->OutputEdit->setCursorPosition(outDlg->OutputEdit->numLines() + 1,0,FALSE); 1523 outDlg->OutputEdit->setCursorPosition(outDlg->OutputEdit->numLines() + 1,0,FALSE);
1520 1524
1521 } 1525 }
1522 1526
1523 } 1527 }
1528 pclose(fp);
1524} 1529}
1525 1530
1526void AdvancedFm::mkDir() { 1531void AdvancedFm::mkDir() {
1527 if (TabWidget->currentPageIndex() == 0) 1532 if (TabWidget->currentPageIndex() == 0)
1528 localMakDir(); 1533 localMakDir();
1529 else 1534 else
1530 remoteMakDir(); 1535 remoteMakDir();
1531 1536
1532} 1537}
1533 1538
1534void AdvancedFm::rn() { 1539void AdvancedFm::rn() {
1535 if (TabWidget->currentPageIndex() == 0) 1540 if (TabWidget->currentPageIndex() == 0)
@@ -1827,19 +1832,38 @@ void AdvancedFm::showFileMenu() {
1827 m->setItemChecked(m->idAt(0),TRUE); 1832 m->setItemChecked(m->idAt(0),TRUE);
1828 else 1833 else
1829 m->setItemChecked(m->idAt(0),FALSE); 1834 m->setItemChecked(m->idAt(0),FALSE);
1830 if(Ir::supported()) 1835 if(Ir::supported())
1831 m->insertItem( tr( "Beam File" ), this, SLOT( doBeam() )); 1836 m->insertItem( tr( "Beam File" ), this, SLOT( doBeam() ));
1832 m->setFocus(); 1837 m->setFocus();
1833 m->exec( QCursor::pos() ); 1838 m->exec( QCursor::pos() );
1834 sleep(1); 1839 sleep(1);
1835 if(m) delete m; 1840 if(m) delete m;
1836} 1841}
1837 1842
1838 1843
1839void AdvancedFm::cancelMenuTimer() 1844void AdvancedFm::cancelMenuTimer() {
1840{
1841 1845
1842 qDebug("selectionChanged: cancel menu timer"); 1846 qDebug("selectionChanged: cancel menu timer");
1843 if( menuTimer.isActive() ) 1847 if( menuTimer.isActive() )
1844 menuTimer.stop(); 1848 menuTimer.stop();
1845} 1849}
1850
1851QString AdvancedFm::checkDiskSpace(const QString &path) {
1852
1853 struct statfs fss;
1854 if ( !statfs( path.latin1(), &fss ) ) {
1855 int blkSize = fss.f_bsize;
1856// int totalBlks = fs.f_blocks;
1857 int availBlks = fss.f_bavail;
1858
1859 long mult = blkSize / 1024;
1860 long div = 1024 / blkSize;
1861 if ( !mult ) mult = 1;
1862 if ( !div ) div = 1;
1863
1864
1865 return QString::number(availBlks * mult / div);
1866 }
1867 return "";
1868}
1869
diff --git a/noncore/apps/advancedfm/advancedfm.h b/noncore/apps/advancedfm/advancedfm.h
index 45f00ad..78f0bad 100644
--- a/noncore/apps/advancedfm/advancedfm.h
+++ b/noncore/apps/advancedfm/advancedfm.h
@@ -104,25 +104,25 @@ protected slots:
104 void switchToLocalTab(); 104 void switchToLocalTab();
105 void switchToRemoteTab(); 105 void switchToRemoteTab();
106 106
107protected: 107protected:
108 QGridLayout *tabLayout, *tabLayout_2, *tabLayout_3; 108 QGridLayout *tabLayout, *tabLayout_2, *tabLayout_3;
109 QStringList remoteDirPathStringList, localDirPathStringList; 109 QStringList remoteDirPathStringList, localDirPathStringList;
110 110
111 void keyReleaseEvent( QKeyEvent *); 111 void keyReleaseEvent( QKeyEvent *);
112 QString getFileSystemType(const QString &); 112 QString getFileSystemType(const QString &);
113 QString getDiskSpace(const QString &); 113 QString getDiskSpace(const QString &);
114 114
115 void parsetab(const QString &fileName); 115 void parsetab(const QString &fileName);
116 116QString checkDiskSpace(const QString &);
117protected slots: 117protected slots:
118 void showFileMenu(); 118 void showFileMenu();
119 void cancelMenuTimer(); 119 void cancelMenuTimer();
120 void homeButtonPushed(); 120 void homeButtonPushed();
121 void docButtonPushed(); 121 void docButtonPushed();
122 void SDButtonPushed(); 122 void SDButtonPushed();
123 void CFButtonPushed(); 123 void CFButtonPushed();
124 void QPEButtonPushed(); 124 void QPEButtonPushed();
125 void upDir(); 125 void upDir();
126 void currentPathComboChanged(); 126 void currentPathComboChanged();
127 void copy(); 127 void copy();
128 void copyAs(); 128 void copyAs();