Files
MuditaOS/module-apps/application-settings/windows/display-keypad/InputLanguageWindow.cpp
Przemyslaw Brudny df242323de [EGD-7135] Display and keypad setting cleanup and fixes
Display and keypad setting cleanup. Moved settings window
Names to separate file. Added selective build options.
Fixed SpinBox arrows position. Fixed focus on window start
in InputLanguageWindow and KeypadLightWindow. Moved AutoLock
to Security. Disabled not working options in UI.
2021-07-14 15:05:07 +02:00

65 lines
2.2 KiB
C++

// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved.
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md
#include "InputLanguageWindow.hpp"
#include <application-settings/windows/WindowNames.hpp>
#include <service-appmgr/service-appmgr/Controller.hpp>
#include <OptionSetting.hpp>
#include <i18n/i18n.hpp>
namespace gui
{
InputLanguageWindow::InputLanguageWindow(app::Application *app)
: BaseSettingsWindow(app, window::name::input_language), langList(profiles.getAvailableInputLanguages())
{
setTitle(utils::translate("app_settings_display_input_language"));
}
void InputLanguageWindow::onBeforeShow(ShowMode mode, SwitchData *data)
{
selectedLanguage = utils::getInputLanguage();
setLanguageIndex();
refreshOptionsList(selectedLanguageIndex);
}
auto InputLanguageWindow::buildOptionsList() -> std::list<gui::Option>
{
std::list<gui::Option> optionsList;
for (const auto &lang : langList) {
optionsList.emplace_back(std::make_unique<gui::option::OptionSettings>(
lang,
[=](gui::Item &item) {
selectedLanguage = lang;
app::manager::Controller::changeInputLanguage(application, lang);
refreshOptionsList();
return true;
},
[=](gui::Item &item) {
if (item.focus) {
this->setBottomBarText(utils::translate(style::strings::common::select),
BottomBar::Side::CENTER);
}
return true;
},
this,
selectedLanguage == lang ? gui::option::SettingRightItem::Checked
: gui::option::SettingRightItem::Disabled));
}
return optionsList;
}
void InputLanguageWindow::setLanguageIndex()
{
for (unsigned int langIndex = 0; langIndex < langList.size(); ++langIndex) {
if (selectedLanguage == langList[langIndex]) {
selectedLanguageIndex = langIndex;
break;
}
}
}
} // namespace gui