diff --git a/apps/apps_container.cpp b/apps/apps_container.cpp index 47cc2365e..04bd40520 100644 --- a/apps/apps_container.cpp +++ b/apps/apps_container.cpp @@ -202,6 +202,10 @@ void AppsContainer::shutdownDueToLowBattery() { window()->redraw(true); } +void AppsContainer::reloadTitleBar() { + m_window.reloadTitleBar(); +} + Window * AppsContainer::window() { return &m_window; } diff --git a/apps/apps_container.h b/apps/apps_container.h index de2dcae81..6a802fb8a 100644 --- a/apps/apps_container.h +++ b/apps/apps_container.h @@ -56,6 +56,7 @@ public: void refreshPreferences(); void displayExamModePopUp(bool activate, bool forceRedrawWindow); void shutdownDueToLowBattery(); + void reloadTitleBar(); private: Window * window() override; int numberOfTimers() override; diff --git a/apps/apps_window.cpp b/apps/apps_window.cpp index 1e52cefdc..7c8f2fd92 100644 --- a/apps/apps_window.cpp +++ b/apps/apps_window.cpp @@ -53,6 +53,10 @@ void AppsWindow::hideTitleBarView(bool hide) { } } +void AppsWindow::reloadTitleBar() { + m_titleBarView.reload(); +} + int AppsWindow::numberOfSubviews() const { return (m_contentView == nullptr ? 1 : 2); } diff --git a/apps/apps_window.h b/apps/apps_window.h index e6f9a61e7..e60d57309 100644 --- a/apps/apps_window.h +++ b/apps/apps_window.h @@ -14,6 +14,7 @@ public: void refreshPreferences(); bool updateAlphaLock(); void hideTitleBarView(bool hide); + void reloadTitleBar(); private: constexpr static KDCoordinate k_titleBarHeight = 18; int numberOfSubviews() const override; diff --git a/apps/settings/sub_controller.cpp b/apps/settings/sub_controller.cpp index 89277bc31..a5d7a8e6d 100644 --- a/apps/settings/sub_controller.cpp +++ b/apps/settings/sub_controller.cpp @@ -171,8 +171,12 @@ void SubController::setPreferenceAtIndexWithValueIndex(int preferenceIndex, int Preferences::sharedPreferences()->setComplexFormat((Expression::ComplexFormat)valueIndex); break; case 3: + { GlobalPreferences::sharedGlobalPreferences()->setLanguage((I18n::Language)(valueIndex+1)); + AppsContainer * appsContainer = (AppsContainer *)app()->container(); + appsContainer->reloadTitleBar(); break; + } default: break; } diff --git a/apps/title_bar_view.cpp b/apps/title_bar_view.cpp index ccbbd4327..73cb00c7d 100644 --- a/apps/title_bar_view.cpp +++ b/apps/title_bar_view.cpp @@ -22,6 +22,10 @@ void TitleBarView::drawRect(KDContext * ctx, KDRect rect) const { ctx->fillRect(KDRect(0, 0, bounds().width(), 2), Palette::YellowDark); } +void TitleBarView::reload() { + markRectAsDirty(bounds()); +} + void TitleBarView::setTitle(I18n::Message title) { m_titleView.setMessage(title); } diff --git a/apps/title_bar_view.h b/apps/title_bar_view.h index 83933680e..dffdae8d9 100644 --- a/apps/title_bar_view.h +++ b/apps/title_bar_view.h @@ -10,6 +10,7 @@ class TitleBarView : public View { public: TitleBarView(); void drawRect(KDContext * ctx, KDRect rect) const override; + void reload(); void setTitle(I18n::Message title); bool setChargeState(Ion::Battery::Charge chargeState); bool setIsCharging(bool isCharging);