diff options
Diffstat (limited to 'shemov.cpp')
-rw-r--r-- | shemov.cpp | 21 |
1 files changed, 6 insertions, 15 deletions
@@ -15,8 +15,7 @@ #include <QCloseEvent> #include <QToolBar> #include <QSplashScreen> - -#include <sys/vfs.h> +#include <QStorageInfo> #include "shemov.h" #include "configurationdialog.h" @@ -233,23 +232,16 @@ void SheMov::tabChanged(int newTab){ break; default: setDuration(0x0, false); - ;; } } void SheMov::setFsFree(){ - struct statfs buf; QSettings s; QString dir = s.value("paths/archivedir").toString(); - int success = statfs(qPrintable(dir), &buf); - if(success == -1){ - mFsFree->setText(tr("Error")); - return; - } - long blocksize = buf.f_bsize; - unsigned long free = buf.f_bfree; - unsigned long avail = buf.f_blocks; - unsigned long used = avail - free; + QStorageInfo si(dir); + qint64 free = si.bytesFree(); + qint64 avail = si.bytesTotal(); + qint64 used = avail - free; qreal freep = free * 100.0 / avail; qreal usedp = used * 100.0 / avail; QFont f = qApp->font(); @@ -263,8 +255,7 @@ void SheMov::setFsFree(){ p.drawRect(QRectF(0, 0, usedp, height)); p.setBrush(QBrush(Qt::green)); p.drawRect(QRectF(usedp, 0, freep, height)); - unsigned long freeb = free * static_cast<unsigned long>(blocksize); - qreal freegib = freeb / 1024.0 / 1024.0 / 1024.0; + qreal freegib = free / 1024.0 / 1024.0 / 1024.0; int freeRounded = qRound(freegib); QString freeString = QString("%1 GiB free").arg(QString::number(freeRounded)); QSize stringSize = fm.size(Qt::TextSingleLine, freeString); |