summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArno <arno@disconnect.de>2019-11-22 12:58:37 +0100
committerArno <arno@disconnect.de>2019-11-22 12:58:37 +0100
commit85a59da691cfadedfb1b7b680efa0bfe5b44a36c (patch)
tree97dd4f332008a69782b52d6c3c5f15eb22ea13a3
parent77c6915b6ca2b727aaebb4871088d57fb9b926d7 (diff)
downloadSheMov-85a59da691cfadedfb1b7b680efa0bfe5b44a36c.tar.gz
SheMov-85a59da691cfadedfb1b7b680efa0bfe5b44a36c.tar.bz2
SheMov-85a59da691cfadedfb1b7b680efa0bfe5b44a36c.zip
Use QStorageInfo instead of vfs.h
Use Qt instead of Posix to make it compile with Windows. Actually, this made the code easier, too.
-rw-r--r--shemov.cpp21
1 files 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 <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);