summaryrefslogtreecommitdiffstats
path: root/application/setupwizard
diff options
context:
space:
mode:
Diffstat (limited to 'application/setupwizard')
-rw-r--r--application/setupwizard/LanguageWizardPage.cpp34
-rw-r--r--application/setupwizard/LanguageWizardPage.h9
2 files changed, 10 insertions, 33 deletions
diff --git a/application/setupwizard/LanguageWizardPage.cpp b/application/setupwizard/LanguageWizardPage.cpp
index dbbe5e7f..ca93c6f5 100644
--- a/application/setupwizard/LanguageWizardPage.cpp
+++ b/application/setupwizard/LanguageWizardPage.cpp
@@ -2,25 +2,19 @@
#include <MultiMC.h>
#include <translations/TranslationsModel.h>
+#include "widgets/LanguageSelectionWidget.h"
#include <QVBoxLayout>
-#include <QListView>
LanguageWizardPage::LanguageWizardPage(QWidget *parent)
: BaseWizardPage(parent)
{
setObjectName(QStringLiteral("languagePage"));
- verticalLayout = new QVBoxLayout(this);
- verticalLayout->setObjectName(QStringLiteral("verticalLayout"));
- languageView = new QListView(this);
- languageView->setObjectName(QStringLiteral("languageView"));
- verticalLayout->addWidget(languageView);
- retranslate();
+ auto layout = new QVBoxLayout(this);
+ mainWidget = new LanguageSelectionWidget(this);
+ layout->setContentsMargins(0,0,0,0);
+ layout->addWidget(mainWidget);
- auto translations = MMC->translations();
- auto index = translations->selectedIndex();
- languageView->setModel(translations.get());
- languageView->setCurrentIndex(index);
- connect(languageView->selectionModel(), &QItemSelectionModel::currentRowChanged, this, &LanguageWizardPage::languageRowChanged);
+ retranslate();
}
LanguageWizardPage::~LanguageWizardPage()
@@ -41,8 +35,7 @@ void LanguageWizardPage::refresh()
bool LanguageWizardPage::validatePage()
{
auto settings = MMC->settings();
- auto translations = MMC->translations();
- QString key = translations->data(languageView->currentIndex(), Qt::UserRole).toString();
+ QString key = mainWidget->getSelectedLanguageKey();
settings->set("Language", key);
return true;
}
@@ -51,16 +44,5 @@ void LanguageWizardPage::retranslate()
{
setTitle(tr("Language"));
setSubTitle(tr("Select the language to use in MultiMC"));
-}
-
-void LanguageWizardPage::languageRowChanged(const QModelIndex &current, const QModelIndex &previous)
-{
- if (current == previous)
- {
- return;
- }
- auto translations = MMC->translations();
- QString key = translations->data(current, Qt::UserRole).toString();
- translations->selectLanguage(key);
- translations->updateLanguage(key);
+ mainWidget->retranslate();
}
diff --git a/application/setupwizard/LanguageWizardPage.h b/application/setupwizard/LanguageWizardPage.h
index 866f81c3..45a0e5c0 100644
--- a/application/setupwizard/LanguageWizardPage.h
+++ b/application/setupwizard/LanguageWizardPage.h
@@ -2,8 +2,7 @@
#include "BaseWizardPage.h"
-class QVBoxLayout;
-class QListView;
+class LanguageSelectionWidget;
class LanguageWizardPage : public BaseWizardPage
{
@@ -22,10 +21,6 @@ public:
protected:
void retranslate() override;
-protected slots:
- void languageRowChanged(const QModelIndex &current, const QModelIndex &previous);
-
private:
- QVBoxLayout *verticalLayout = nullptr;
- QListView *languageView = nullptr;
+ LanguageSelectionWidget *mainWidget = nullptr;
};