From d32ed7704b12bb0dc2569b142f1498ba68c2ecd4 Mon Sep 17 00:00:00 2001 From: Yuriy Puchkov Date: Thu, 25 Feb 2021 21:27:48 +0200 Subject: [PATCH] fix - File name pattern editor 'Clear' and 'Reset' behavior (configuration window) (cherry picked from commit 116c807f166841e1ba2745e32ae1ef5fd7f25276) --- src/utils/confighandler.cpp | 12 +++++++++++- src/utils/confighandler.h | 1 + src/utils/filenamehandler.cpp | 9 +++++---- src/utils/filenamehandler.h | 2 +- 4 files changed, 18 insertions(+), 6 deletions(-) diff --git a/src/utils/confighandler.cpp b/src/utils/confighandler.cpp index 61235057..6786225a 100644 --- a/src/utils/confighandler.cpp +++ b/src/utils/confighandler.cpp @@ -238,9 +238,19 @@ void ConfigHandler::setDesktopNotification(const bool showDesktopNotification) showDesktopNotification); } +QString ConfigHandler::filenamePatternDefault() +{ + m_strRes = QLatin1String("%F_%H-%M"); + return m_strRes; +} + QString ConfigHandler::filenamePatternValue() { - return m_settings.value(QStringLiteral("filenamePattern")).toString(); + m_strRes = m_settings.value(QStringLiteral("filenamePattern")).toString(); + if (m_strRes.isEmpty()) { + m_strRes = filenamePatternDefault(); + } + return m_strRes; } void ConfigHandler::setFilenamePattern(const QString& pattern) diff --git a/src/utils/confighandler.h b/src/utils/confighandler.h index d3e563f2..9bb9106a 100644 --- a/src/utils/confighandler.h +++ b/src/utils/confighandler.h @@ -43,6 +43,7 @@ public: bool desktopNotificationValue(); void setDesktopNotification(const bool); + QString filenamePatternDefault(); QString filenamePatternValue(); void setFilenamePattern(const QString&); diff --git a/src/utils/filenamehandler.cpp b/src/utils/filenamehandler.cpp index d3b5a29f..023679ff 100644 --- a/src/utils/filenamehandler.cpp +++ b/src/utils/filenamehandler.cpp @@ -33,16 +33,17 @@ QString FileNameHandler::parsedPattern() QString FileNameHandler::parseFilename(const QString& name) { QString res = name; - // remove trailing characters '%' in the pattern if (name.isEmpty()) { - res = QLatin1String("%F_%H-%M"); + res = ConfigHandler().filenamePatternDefault(); } + + // remove trailing characters '%' in the pattern while (res.endsWith('%')) { res.chop(1); } std::time_t t = std::time(NULL); - char* tempData = QStringTocharArr(res); + char* tempData = QStringToCharArr(res); char data[MAX_CHARACTERS] = { 0 }; std::strftime(data, sizeof(data), tempData, std::localtime(&t)); res = QString::fromLocal8Bit(data, (int)strlen(data)); @@ -92,7 +93,7 @@ QString FileNameHandler::charArrToQString(const char* c) return QString::fromLocal8Bit(c, MAX_CHARACTERS); } -char* FileNameHandler::QStringTocharArr(const QString& s) +char* FileNameHandler::QStringToCharArr(const QString& s) { QByteArray ba = s.toLocal8Bit(); return const_cast(strdup(ba.constData())); diff --git a/src/utils/filenamehandler.h b/src/utils/filenamehandler.h index 875ba996..1c1068fe 100644 --- a/src/utils/filenamehandler.h +++ b/src/utils/filenamehandler.h @@ -25,7 +25,7 @@ public slots: private: // using charArr = char[MAX_CHARACTERS]; QString charArrToQString(const char* c); - char* QStringTocharArr(const QString& s); + char* QStringToCharArr(const QString& s); void fixPath(QString& directory, QString& filename); };