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
@@ -65,16 +65,18 @@
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);
@@ -299,17 +301,17 @@ void 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);
@@ -397,17 +399,17 @@ void AdvancedFm::populateRemoteView()
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);
@@ -1461,16 +1463,18 @@ void AdvancedFm::runCommand() {
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);
@@ -1516,16 +1520,17 @@ void AdvancedFm::fileStatus() {
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
@@ -1831,15 +1836,34 @@ void AdvancedFm::showFileMenu() {
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
@@ -108,17 +108,17 @@ protected:
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();