mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-04-28 11:45:40 +08:00
Ref T125, human readable file size
This commit is contained in:
committed by
Mathew Sutcliffe
parent
8c032fb4d7
commit
53189eafd5
@@ -7,9 +7,11 @@
|
|||||||
* contained in the LICENSE file.
|
* contained in the LICENSE file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "blackconfig/buildconfig.h"
|
|
||||||
#include "blackmisc/fileutils.h"
|
|
||||||
#include "blackmisc/worker.h"
|
#include "blackmisc/worker.h"
|
||||||
|
#include "blackmisc/fileutils.h"
|
||||||
|
#include "blackmisc/math/mathutils.h"
|
||||||
|
|
||||||
|
#include "blackconfig/buildconfig.h"
|
||||||
|
|
||||||
#include <QCoreApplication>
|
#include <QCoreApplication>
|
||||||
#include <QDateTime>
|
#include <QDateTime>
|
||||||
@@ -23,6 +25,7 @@
|
|||||||
#include <algorithm>
|
#include <algorithm>
|
||||||
|
|
||||||
using namespace BlackConfig;
|
using namespace BlackConfig;
|
||||||
|
using namespace BlackMisc::Math;
|
||||||
|
|
||||||
namespace BlackMisc
|
namespace BlackMisc
|
||||||
{
|
{
|
||||||
@@ -124,8 +127,8 @@ namespace BlackMisc
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
QDir originDir(sourceFileInfo.absoluteFilePath());
|
const QDir originDir(sourceFileInfo.absoluteFilePath());
|
||||||
auto fileNames = originDir.entryList(QDir::Files | QDir::Dirs | QDir::NoDotAndDotDot | QDir::Hidden | QDir::System);
|
const auto fileNames = originDir.entryList(QDir::Files | QDir::Dirs | QDir::NoDotAndDotDot | QDir::Hidden | QDir::System);
|
||||||
for (const QString &fileName : fileNames)
|
for (const QString &fileName : fileNames)
|
||||||
{
|
{
|
||||||
if (!copyRecursively(originDir.absoluteFilePath(fileName), targetDir.absoluteFilePath(fileName)))
|
if (!copyRecursively(originDir.absoluteFilePath(fileName), targetDir.absoluteFilePath(fileName)))
|
||||||
@@ -141,7 +144,6 @@ namespace BlackMisc
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -354,4 +356,22 @@ namespace BlackMisc
|
|||||||
static const QString f("/%1");
|
static const QString f("/%1");
|
||||||
return f.arg(filePath);
|
return f.arg(filePath);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QString CFileUtils::humanReadableFileSize(qint64 size)
|
||||||
|
{
|
||||||
|
// from https://stackoverflow.com/a/30958189/356726
|
||||||
|
// fell free to replace it by something better
|
||||||
|
static const QStringList units({ "KB", "MB", "GB", "TB" });
|
||||||
|
if (size <= 1024) { return QString::number(size); }
|
||||||
|
|
||||||
|
QStringListIterator i(units);
|
||||||
|
double currentSize = size;
|
||||||
|
QString unit;
|
||||||
|
while (currentSize >= 1024.0 && i.hasNext())
|
||||||
|
{
|
||||||
|
unit = i.next();
|
||||||
|
currentSize /= 1024.0;
|
||||||
|
}
|
||||||
|
return QString("%1 %2").arg(CMathUtils::roundAsString(currentSize, 2), unit);
|
||||||
|
}
|
||||||
} // ns
|
} // ns
|
||||||
|
|||||||
@@ -130,6 +130,9 @@ namespace BlackMisc
|
|||||||
//! UNC file paths on Qt start with "/", but UNC file paths only work when they start with "//"
|
//! UNC file paths on Qt start with "/", but UNC file paths only work when they start with "//"
|
||||||
//! \remark On Windows starting with "/" means an UNC path, on UNIX it varies, see http://unix.stackexchange.com/a/12291/19428
|
//! \remark On Windows starting with "/" means an UNC path, on UNIX it varies, see http://unix.stackexchange.com/a/12291/19428
|
||||||
static QString fixWindowsUncPath(const QString &filePath);
|
static QString fixWindowsUncPath(const QString &filePath);
|
||||||
|
|
||||||
|
//! Human readable (GB, MB, ..) file size
|
||||||
|
static QString humanReadableFileSize(qint64 size);
|
||||||
};
|
};
|
||||||
} // ns
|
} // ns
|
||||||
|
|
||||||
|
|||||||
@@ -51,6 +51,11 @@ namespace BlackMisc
|
|||||||
return rv;
|
return rv;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QString CMathUtils::roundAsString(double value, int digits)
|
||||||
|
{
|
||||||
|
return QString::number(round(value, digits));
|
||||||
|
}
|
||||||
|
|
||||||
double CMathUtils::roundEpsilon(double value, double epsilon)
|
double CMathUtils::roundEpsilon(double value, double epsilon)
|
||||||
{
|
{
|
||||||
if (epsilon == 0) { return value; } // avoid division by 0
|
if (epsilon == 0) { return value; } // avoid division by 0
|
||||||
|
|||||||
@@ -50,6 +50,9 @@ namespace BlackMisc
|
|||||||
//! Utility round method
|
//! Utility round method
|
||||||
static double round(double value, int digits);
|
static double round(double value, int digits);
|
||||||
|
|
||||||
|
//! Utility round method, returning as string
|
||||||
|
static QString roundAsString(double value, int digits);
|
||||||
|
|
||||||
//! Round by given epsilon
|
//! Round by given epsilon
|
||||||
static double roundEpsilon(double value, double epsilon);
|
static double roundEpsilon(double value, double epsilon);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user