From f36f86b179c62fb5b5028834c1eca82d92d50d09 Mon Sep 17 00:00:00 2001 From: "A. Wilcox" Date: Wed, 4 Dec 2019 23:46:44 -0600 Subject: Qt UI: Fix choosing timezones --- ui/qt5/datetimepage.cc | 8 ++++---- ui/qt5/datetimepage.hh | 2 ++ 2 files changed, 6 insertions(+), 4 deletions(-) (limited to 'ui') diff --git a/ui/qt5/datetimepage.cc b/ui/qt5/datetimepage.cc index a3356e7..7db62bf 100644 --- a/ui/qt5/datetimepage.cc +++ b/ui/qt5/datetimepage.cc @@ -16,11 +16,9 @@ #include #include #include -#include #include #include -#include #ifdef HAS_INSTALL_ENV # include # include @@ -52,6 +50,8 @@ TimeZone::TimeZone(QByteArray iana) { TimeZoneModel::TimeZoneModel(QWidget *parent) : QAbstractListModel(parent) { for(auto &iana : QTimeZone::availableTimeZoneIds()) { + /* we don't support raw timezones because tzdata doesn't */ + if(iana.startsWith("UTC") && iana.size() > 3) continue; TimeZone tzObj(iana); zones.push_back(tzObj); } @@ -187,7 +187,7 @@ DateTimePage::DateTimePage(QWidget *parent) : HorizonWizardPage(parent) { timeZoneSearch->addAction(QIcon::fromTheme("edit-find"), QLineEdit::LeadingPosition); timeZoneSearch->setPlaceholderText(tr("Search for a time zone")); - QSortFilterProxyModel *sortModel = new QSortFilterProxyModel(this); + sortModel = new QSortFilterProxyModel(this); sortModel->setFilterCaseSensitivity(Qt::CaseInsensitive); sortModel->setSourceModel(&zoneModel); connect(timeZoneSearch, &QLineEdit::textChanged, [=](const QString &text) { @@ -222,7 +222,7 @@ DateTimePage::DateTimePage(QWidget *parent) : HorizonWizardPage(parent) { QString DateTimePage::selectedTimeZone() { QModelIndex curr = timeZoneList->selectionModel()->currentIndex(); - return zoneModel.data(curr, Qt::ToolTipRole).toString(); + return sortModel->data(curr, Qt::ToolTipRole).toString(); } void DateTimePage::initializePage() { diff --git a/ui/qt5/datetimepage.hh b/ui/qt5/datetimepage.hh index 2c753dd..a861d90 100644 --- a/ui/qt5/datetimepage.hh +++ b/ui/qt5/datetimepage.hh @@ -18,6 +18,7 @@ #include #include #include +#include #include #include #include @@ -56,6 +57,7 @@ public: void cleanupPage(); TimeZoneModel zoneModel; + QSortFilterProxyModel *sortModel; QString selectedTimeZone(); signals: -- cgit v1.2.3-60-g2f50