diff options
Diffstat (limited to 'application/setupwizard/LanguageWizardPage.cpp')
-rw-r--r-- | application/setupwizard/LanguageWizardPage.cpp | 55 |
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 ¤t, 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(); } |