NOISSUE split out language selection widget, use it in settings

This commit is contained in:
Petr Mrázek
2019-01-09 04:38:35 +01:00
parent e71786d7b9
commit c08053d8b8
24 changed files with 744 additions and 56 deletions

View File

@ -0,0 +1,51 @@
#include "LanguagePage.h"
#include "widgets/LanguageSelectionWidget.h"
#include <QVBoxLayout>
LanguagePage::LanguagePage(QWidget* parent) :
QWidget(parent)
{
setObjectName(QStringLiteral("languagePage"));
auto layout = new QVBoxLayout(this);
mainWidget = new LanguageSelectionWidget(this);
layout->setContentsMargins(0,0,0,0);
layout->addWidget(mainWidget);
retranslate();
}
LanguagePage::~LanguagePage()
{
}
bool LanguagePage::apply()
{
applySettings();
return true;
}
void LanguagePage::applySettings()
{
auto settings = MMC->settings();
QString key = mainWidget->getSelectedLanguageKey();
settings->set("Language", key);
}
void LanguagePage::loadSettings()
{
// NIL
}
void LanguagePage::retranslate()
{
mainWidget->retranslate();
}
void LanguagePage::changeEvent(QEvent* event)
{
if (event->type() == QEvent::LanguageChange)
{
retranslate();
}
QWidget::changeEvent(event);
}

View File

@ -0,0 +1,60 @@
/* Copyright 2013-2019 MultiMC Contributors
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#pragma once
#include <memory>
#include "pages/BasePage.h"
#include <MultiMC.h>
#include <QWidget>
class LanguageSelectionWidget;
class LanguagePage : public QWidget, public BasePage
{
Q_OBJECT
public:
explicit LanguagePage(QWidget *parent = 0);
virtual ~LanguagePage();
QString displayName() const override
{
return tr("Language");
}
QIcon icon() const override
{
return MMC->getThemedIcon("language");
}
QString id() const override
{
return "language-settings";
}
QString helpPage() const override
{
return "Language-settings";
}
bool apply() override;
void changeEvent(QEvent * ) override;
private:
void applySettings();
void loadSettings();
void retranslate();
private:
LanguageSelectionWidget *mainWidget;
};