fix - File name pattern editor 'Clear' and 'Reset' behavior (configuration window)

(cherry picked from commit 116c807f166841e1ba2745e32ae1ef5fd7f25276)
This commit is contained in:
Yuriy Puchkov
2021-02-25 21:27:48 +02:00
parent 1c5dbb3c9e
commit d32ed7704b
4 changed files with 18 additions and 6 deletions

View File

@@ -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)

View File

@@ -43,6 +43,7 @@ public:
bool desktopNotificationValue();
void setDesktopNotification(const bool);
QString filenamePatternDefault();
QString filenamePatternValue();
void setFilenamePattern(const QString&);

View File

@@ -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<char*>(strdup(ba.constData()));

View File

@@ -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);
};