[libcalamares] Satisfy test, return region names

This commit is contained in:
Adriaan de Groot 2020-08-05 16:36:00 +02:00
parent 609ea8350c
commit 33e39b92fb
3 changed files with 29 additions and 2 deletions

View File

@ -255,13 +255,14 @@ LocaleTests::testRegions()
QStringList names; QStringList names;
for ( int i = 0; i < regions.rowCount( QModelIndex() ); ++i ) for ( int i = 0; i < regions.rowCount( QModelIndex() ); ++i )
{ {
QVariant name = regions.data( regions.index( i ), Qt::UserRole ); QVariant name = regions.data( regions.index( i ), Qt::DisplayRole );
QVERIFY( name.isValid() ); QVERIFY( name.isValid() );
QVERIFY( !name.toString().isEmpty() ); QVERIFY( !name.toString().isEmpty() );
names.append( name.toString() ); names.append( name.toString() );
} }
QVERIFY( names.contains( "America" ) ); QVERIFY( names.contains( "America" ) );
QVERIFY( !names.contains( "UTC" ) );
} }

View File

@ -325,10 +325,30 @@ RegionsModel::rowCount( const QModelIndex& parent ) const
QVariant QVariant
RegionsModel::data( const QModelIndex& index, int role ) const RegionsModel::data( const QModelIndex& index, int role ) const
{
if ( !index.isValid() || index.row() < 0 || index.row() >= m_private->m_regions.count() )
{ {
return QVariant(); return QVariant();
} }
if ( role == Qt::DisplayRole )
{
return m_private->m_regions[ index.row() ].tr();
}
if ( role == KeyRole )
{
return m_private->m_regions[ index.row() ].key();
}
return QVariant();
}
QHash< int, QByteArray >
RegionsModel::roleNames() const
{
return { { Qt::DisplayRole, "name" }, { KeyRole, "key" } };
}
ZonesModel::ZonesModel( QObject* parent ) ZonesModel::ZonesModel( QObject* parent )
: QAbstractListModel( parent ) : QAbstractListModel( parent )
, m_private( privateInstance() ) , m_private( privateInstance() )

View File

@ -43,14 +43,20 @@ class DLLEXPORT RegionsModel : public QAbstractListModel
{ {
Q_OBJECT Q_OBJECT
public: public:
enum Roles
{
KeyRole = Qt::UserRole + 1
};
RegionsModel( QObject* parent = nullptr ); RegionsModel( QObject* parent = nullptr );
virtual ~RegionsModel() override; virtual ~RegionsModel() override;
int rowCount( const QModelIndex& parent ) const override; int rowCount( const QModelIndex& parent ) const override;
QVariant data( const QModelIndex& index, int role ) const override; QVariant data( const QModelIndex& index, int role ) const override;
QHash< int, QByteArray > roleNames() const override;
private: private:
Private* m_private; Private* m_private;
}; };