From 85a59da691cfadedfb1b7b680efa0bfe5b44a36c Mon Sep 17 00:00:00 2001 From: Arno Date: Fri, 22 Nov 2019 12:58:37 +0100 Subject: Use QStorageInfo instead of vfs.h Use Qt instead of Posix to make it compile with Windows. Actually, this made the code easier, too. --- shemov.cpp | 21 ++++++--------------- 1 file changed, 6 insertions(+), 15 deletions(-) diff --git a/shemov.cpp b/shemov.cpp index 75d7f48..3425247 100644 --- a/shemov.cpp +++ b/shemov.cpp @@ -15,8 +15,7 @@ #include #include #include - -#include +#include #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(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); -- cgit v1.2.3-70-g09d2