From 513f5a0230f5039ba5407562a7539a22cb20802a Mon Sep 17 00:00:00 2001 From: "Lubomir I. Ivanov" Date: Fri, 10 Nov 2017 17:28:09 +0200 Subject: preferences: support a pre-defined list of time formats Add a combo-box that holds a list of pre-defined time formats in the Language preferences. The user is still allowed to enter a custom time format. Signed-off-by: Lubomir I. Ivanov --- .../preferences/preferences_language.cpp | 10 ++++-- desktop-widgets/preferences/prefs_language.ui | 41 +++++++++++++--------- 2 files changed, 32 insertions(+), 19 deletions(-) (limited to 'desktop-widgets/preferences') diff --git a/desktop-widgets/preferences/preferences_language.cpp b/desktop-widgets/preferences/preferences_language.cpp index 0cb36dc2c..5f7b5f488 100644 --- a/desktop-widgets/preferences/preferences_language.cpp +++ b/desktop-widgets/preferences/preferences_language.cpp @@ -30,6 +30,10 @@ PreferencesLanguage::PreferencesLanguage() : AbstractPreferencesWidget(tr("Langu ui->dateFormatEntry->addItem(format); connect(ui->dateFormatEntry, SIGNAL(currentIndexChanged(const QString&)), this, SLOT(dateFormatChanged(const QString&))); + + ui->timeFormatEntry->addItem("hh:mm"); + ui->timeFormatEntry->addItem("h:mm AP"); + ui->timeFormatEntry->addItem("hh:mm AP"); } PreferencesLanguage::~PreferencesLanguage() @@ -47,7 +51,7 @@ void PreferencesLanguage::refreshSettings() ui->languageSystemDefault->setChecked(prefs.locale.use_system_language); ui->timeFormatSystemDefault->setChecked(!prefs.time_format_override); ui->dateFormatSystemDefault->setChecked(!prefs.date_format_override); - ui->timeFormatEntry->setText(prefs.time_format); + ui->timeFormatEntry->setCurrentText(prefs.time_format); ui->dateFormatEntry->setCurrentText(prefs.date_format); ui->shortDateFormatEntry->setText(prefs.date_format_short); QAbstractItemModel *m = ui->languageDropdown->model(); @@ -84,14 +88,14 @@ void PreferencesLanguage::syncSettings() lang->setUseSystemLanguage(ui->languageSystemDefault->isChecked()); lang->setTimeFormatOverride(!ui->timeFormatSystemDefault->isChecked()); lang->setDateFormatOverride(!ui->dateFormatSystemDefault->isChecked()); - lang->setTimeFormat(ui->timeFormatEntry->text()); + lang->setTimeFormat(ui->timeFormatEntry->currentText()); lang->setDateFormat(ui->dateFormatEntry->currentText()); lang->setDateFormatShort(ui->shortDateFormatEntry->text()); uiLanguage(NULL); QString qDateTimeWeb = tr("These will be used as is. This might not be what you intended.\nSee http://doc.qt.io/qt-5/qdatetime.html#toString"); QRegExp tfillegalchars("[^hHmszaApPt\\s:;\\.,]"); - if (tfillegalchars.indexIn(ui->timeFormatEntry->text()) >= 0) + if (tfillegalchars.indexIn(ui->timeFormatEntry->currentText()) >= 0) QMessageBox::warning(this, tr("Literal characters"), tr("Non-special character(s) in time format.\n") + qDateTimeWeb); diff --git a/desktop-widgets/preferences/prefs_language.ui b/desktop-widgets/preferences/prefs_language.ui index 470e8b6d1..b51dd083f 100644 --- a/desktop-widgets/preferences/prefs_language.ui +++ b/desktop-widgets/preferences/prefs_language.ui @@ -140,10 +140,19 @@ - + + + + 0 + 0 + + <html><head/><body><p>Preferred time format</p><p>Commonly used format specifiers are</p><p>h (hours in 12h format)</p><p>H (hours in 24h format)</p><p>mm (2 digit minutes)</p><p>ss (2 digit seconds)</p><p>t/tt (a/p or am/pm)</p></body></html> + + true + @@ -212,50 +221,50 @@ - timeFormatSystemDefault + dateFormatSystemDefault toggled(bool) - timeFormatEntry + shortDateFormatEntry setDisabled(bool) - 79 - 210 + 99 + 132 - 264 - 210 + 293 + 169 dateFormatSystemDefault toggled(bool) - shortDateFormatEntry + dateFormatEntry setDisabled(bool) - 99 - 132 + 89 + 103 - 293 - 169 + 273 + 103 - dateFormatSystemDefault + timeFormatSystemDefault toggled(bool) - dateFormatEntry + timeFormatEntry setDisabled(bool) 89 - 103 + 190 273 - 103 + 190 -- cgit v1.2.3-70-g09d2