diff --git a/src/modules/welcome/CMakeLists.txt b/src/modules/welcome/CMakeLists.txt index f627db032..415faa500 100644 --- a/src/modules/welcome/CMakeLists.txt +++ b/src/modules/welcome/CMakeLists.txt @@ -27,6 +27,7 @@ calamares_add_plugin( welcome EXPORT_MACRO PLUGINDLLEXPORT_PRO SOURCES ${CHECKER_SOURCES} + LocaleModel.cpp WelcomeViewStep.cpp WelcomePage.cpp UI diff --git a/src/modules/welcome/LocaleModel.cpp b/src/modules/welcome/LocaleModel.cpp new file mode 100644 index 000000000..5fd032a52 --- /dev/null +++ b/src/modules/welcome/LocaleModel.cpp @@ -0,0 +1,52 @@ +/* === This file is part of Calamares - === + * + * Copyright 2019, Adriaan de Groot + * + * Calamares is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Calamares is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Calamares. If not, see . + */ + +#include "LocaleModel.h" + +int +LocaleModel::columnCount( const QModelIndex& ) const +{ + return 2; +} + +int +LocaleModel::rowCount( const QModelIndex& ) const +{ + return m_locales.size(); +} + +QVariant +LocaleModel::data( const QModelIndex& index, int role ) const +{ + if ( role != Qt::DisplayRole ) + return QVariant(); + + if ( !index.isValid() ) + return QVariant(); + + const auto& locale = m_locales.at( index.row() ); + switch ( index.column() ) + { + case 0: + return locale.label(); + case 1: + return locale.englishLabel(); + default: + return QVariant(); + } +} diff --git a/src/modules/welcome/LocaleModel.h b/src/modules/welcome/LocaleModel.h new file mode 100644 index 000000000..06a6a74c2 --- /dev/null +++ b/src/modules/welcome/LocaleModel.h @@ -0,0 +1,43 @@ +/* === This file is part of Calamares - === + * + * Copyright 2019, Adriaan de Groot + * + * Calamares is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Calamares is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Calamares. If not, see . + */ + +#ifndef WELCOME_LOCALEMODEL_H +#define WELCOME_LOCALEMODEL_H + +#include + +#include + +#include "utils/CalamaresUtilsGui.h" + +class LocaleModel : public QAbstractItemModel +{ +public: + LocaleModel( const QStringList& locales, QObject* parent = nullptr ); + virtual ~LocaleModel(); + + int rowCount( const QModelIndex& parent ) const override; + int columnCount( const QModelIndex& parent ) const override; + + QVariant data( const QModelIndex& index, int role ) const override; + +private: + std::vector< CalamaresUtils::LocaleLabel > m_locales; +} ; + +#endif