Add Utilities::SaveToTemporaryFile()

This commit is contained in:
santigl 2017-03-17 13:54:02 -03:00 committed by John Maguire
parent f609bc793f
commit f44414db81
2 changed files with 32 additions and 14 deletions

View File

@ -100,7 +100,8 @@ QString PrettyTime(int seconds) {
QString ret;
if (hours)
ret.sprintf("%d:%02d:%02d", hours, minutes, seconds); // NOLINT(runtime/printf)
ret.sprintf("%d:%02d:%02d", hours, minutes,
seconds); // NOLINT(runtime/printf)
else
ret.sprintf("%d:%02d", minutes, seconds); // NOLINT(runtime/printf)
@ -161,11 +162,15 @@ QString PrettySize(quint64 bytes) {
if (bytes <= 1000)
ret = QString::number(bytes) + " bytes";
else if (bytes <= 1000 * 1000)
ret.sprintf("%.1f KB", static_cast<float>(bytes) / 1000); // NOLINT(runtime/printf)
ret.sprintf("%.1f KB",
static_cast<float>(bytes) / 1000); // NOLINT(runtime/printf)
else if (bytes <= 1000 * 1000 * 1000)
ret.sprintf("%.1f MB", static_cast<float>(bytes) / (1000 * 1000)); // NOLINT(runtime/printf)
ret.sprintf("%.1f MB", static_cast<float>(bytes) /
(1000 * 1000)); // NOLINT(runtime/printf)
else
ret.sprintf("%.1f GB", static_cast<float>(bytes) / (1000 * 1000 * 1000)); // NOLINT(runtime/printf)
ret.sprintf("%.1f GB",
static_cast<float>(bytes) /
(1000 * 1000 * 1000)); // NOLINT(runtime/printf)
}
return ret;
}
@ -231,6 +236,23 @@ QString GetTemporaryFileName() {
return file;
}
QString SaveToTemporaryFile(const QByteArray& data) {
QString filename = GetTemporaryFileName();
QFile file(filename);
if (!file.open(QIODevice::WriteOnly)) {
return QString();
}
if (file.write(data) != data.size()) {
file.remove();
return QString();
}
file.close();
return filename;
}
bool RemoveRecursive(const QString& path) {
QDir dir(path);
for (const QString& child :
@ -562,19 +584,13 @@ bool ParseUntilElement(QXmlStreamReader* reader, const QString& name) {
}
QDateTime ParseRFC822DateTime(const QString& text) {
QRegExp regexp("(\\d{1,2}) (\\w{3,12}) (\\d+) (\\d{1,2}):(\\d{1,2}):(\\d{1,2})");
QRegExp regexp(
"(\\d{1,2}) (\\w{3,12}) (\\d+) (\\d{1,2}):(\\d{1,2}):(\\d{1,2})");
if (regexp.indexIn(text) == -1) {
return QDateTime();
}
enum class MatchNames {
DAYS = 1,
MONTHS,
YEARS,
HOURS,
MINUTES,
SECONDS
};
enum class MatchNames { DAYS = 1, MONTHS, YEARS, HOURS, MINUTES, SECONDS };
QMap<QString, int> monthmap;
monthmap["Jan"] = 1;
@ -610,7 +626,7 @@ QDateTime ParseRFC822DateTime(const QString& text) {
regexp.cap(static_cast<int>(MatchNames::MINUTES)).toInt(),
regexp.cap(static_cast<int>(MatchNames::SECONDS)).toInt());
return QDateTime (date, time);
return QDateTime(date, time);
}
const char* EnumToString(const QMetaObject& meta, const char* name, int value) {

View File

@ -56,6 +56,8 @@ quint64 FileSystemFreeSpace(const QString& path);
QString MakeTempDir(const QString template_name = QString());
QString GetTemporaryFileName();
QString SaveToTemporaryFile(const QByteArray& data);
bool RemoveRecursive(const QString& path);
bool CopyRecursive(const QString& source, const QString& destination);
bool Copy(QIODevice* source, QIODevice* destination);