diff --git a/src/libcalamares/locale/TimeZone.cpp b/src/libcalamares/locale/TimeZone.cpp index 4e56b5af1..d5d4938a8 100644 --- a/src/libcalamares/locale/TimeZone.cpp +++ b/src/libcalamares/locale/TimeZone.cpp @@ -262,15 +262,17 @@ ZonesModel::data( const QModelIndex& index, int role ) const } const auto* zone = m_private->m_zones[ index.row() ]; - if ( role == NameRole ) + switch ( role ) { + case NameRole: return zone->tr(); - } - if ( role == KeyRole ) - { + case KeyRole: return zone->key(); + case RegionRole: + return zone->region(); + default: + return QVariant(); } - return QVariant(); } QHash< int, QByteArray > diff --git a/src/libcalamares/locale/TimeZone.h b/src/libcalamares/locale/TimeZone.h index de23f07d2..afe32963c 100644 --- a/src/libcalamares/locale/TimeZone.h +++ b/src/libcalamares/locale/TimeZone.h @@ -54,11 +54,18 @@ public: const QString& country, double latitude, double longitude ); + TimeZoneData( const TimeZoneData& ) = delete; + TimeZoneData( TimeZoneData&& ) = delete; + QString tr() const override; QString region() const { return m_region; } QString zone() const { return key(); } + QString country() const { return m_country; } + double latitude() const { return m_latitude; } + double longitude() const { return m_longitude; } + private: QString m_region; QString m_country; @@ -80,7 +87,7 @@ public: enum Roles { NameRole = Qt::DisplayRole, - KeyRole = Qt::UserRole + 1 + KeyRole = Qt::UserRole // So that currentData() will get the key }; RegionsModel( QObject* parent = nullptr ); @@ -103,7 +110,8 @@ public: enum Roles { NameRole = Qt::DisplayRole, - KeyRole = Qt::UserRole + 1 + KeyRole = Qt::UserRole, // So that currentData() will get the key + RegionRole = Qt::UserRole + 1 }; ZonesModel( QObject* parent = nullptr );