summaryrefslogtreecommitdiffstats
path: root/application/setupwizard/LanguageWizardPage.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'application/setupwizard/LanguageWizardPage.cpp')
-rw-r--r--application/setupwizard/LanguageWizardPage.cpp55
1 files changed, 8 insertions, 47 deletions
diff --git a/application/setupwizard/LanguageWizardPage.cpp b/application/setupwizard/LanguageWizardPage.cpp
index 9a8fd37f..ca93c6f5 100644
--- a/application/setupwizard/LanguageWizardPage.cpp
+++ b/application/setupwizard/LanguageWizardPage.cpp
@@ -2,41 +2,19 @@
#include <MultiMC.h>
#include <translations/TranslationsModel.h>
+#include "widgets/LanguageSelectionWidget.h"
#include <QVBoxLayout>
-#include <QTreeView>
-#include <QHeaderView>
-#include <QLabel>
LanguageWizardPage::LanguageWizardPage(QWidget *parent)
: BaseWizardPage(parent)
{
setObjectName(QStringLiteral("languagePage"));
- verticalLayout = new QVBoxLayout(this);
- verticalLayout->setObjectName(QStringLiteral("verticalLayout"));
- languageView = new QTreeView(this);
- languageView->setObjectName(QStringLiteral("languageView"));
- languageView->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
- languageView->setAlternatingRowColors(true);
- languageView->setRootIsDecorated(false);
- languageView->setItemsExpandable(false);
- languageView->setWordWrap(true);
- languageView->header()->setCascadingSectionResizes(true);
- languageView->header()->setStretchLastSection(false);
- verticalLayout->addWidget(languageView);
- helpUsLabel = new QLabel(this);
- helpUsLabel->setTextInteractionFlags(Qt::LinksAccessibleByMouse);
- helpUsLabel->setOpenExternalLinks(true);
- helpUsLabel->setWordWrap(true);
- verticalLayout->addWidget(helpUsLabel);
- 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);
- languageView->header()->setSectionResizeMode(QHeaderView::ResizeToContents);
- languageView->header()->setSectionResizeMode(0, QHeaderView::Stretch);
- connect(languageView->selectionModel(), &QItemSelectionModel::currentRowChanged, this, &LanguageWizardPage::languageRowChanged);
+ retranslate();
}
LanguageWizardPage::~LanguageWizardPage()
@@ -57,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;
}
@@ -67,21 +44,5 @@ void LanguageWizardPage::retranslate()
{
setTitle(tr("Language"));
setSubTitle(tr("Select the language to use in MultiMC"));
- QString text =
- tr("Don't see your language or the quality is poor?") +
- "<br/>" +
- QString("<a href=\"https://github.com/MultiMC/MultiMC5/wiki/Translating-MultiMC\">%1</a>").arg("Help us with translations!");
- helpUsLabel->setText(text);
-}
-
-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();
}