diff options
author | Petr Mrázek <peterix@gmail.com> | 2019-01-09 04:38:35 +0100 |
---|---|---|
committer | Petr Mrázek <peterix@gmail.com> | 2019-01-09 04:38:35 +0100 |
commit | c08053d8b87de4d0fd4f9ac51021e03dfd851420 (patch) | |
tree | 8c947a06781438d8dc2e139e81634bf39b7f3a76 /application/pages | |
parent | e71786d7b97c6e3b7aa91d085c935ef67832abc3 (diff) | |
download | MultiMC-c08053d8b87de4d0fd4f9ac51021e03dfd851420.tar MultiMC-c08053d8b87de4d0fd4f9ac51021e03dfd851420.tar.gz MultiMC-c08053d8b87de4d0fd4f9ac51021e03dfd851420.tar.lz MultiMC-c08053d8b87de4d0fd4f9ac51021e03dfd851420.tar.xz MultiMC-c08053d8b87de4d0fd4f9ac51021e03dfd851420.zip |
NOISSUE split out language selection widget, use it in settings
Diffstat (limited to 'application/pages')
-rw-r--r-- | application/pages/global/LanguagePage.cpp | 51 | ||||
-rw-r--r-- | application/pages/global/LanguagePage.h | 60 |
2 files changed, 111 insertions, 0 deletions
diff --git a/application/pages/global/LanguagePage.cpp b/application/pages/global/LanguagePage.cpp new file mode 100644 index 00000000..ae3168cc --- /dev/null +++ b/application/pages/global/LanguagePage.cpp @@ -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); +} diff --git a/application/pages/global/LanguagePage.h b/application/pages/global/LanguagePage.h new file mode 100644 index 00000000..c4df2ea9 --- /dev/null +++ b/application/pages/global/LanguagePage.h @@ -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; +}; |