X-Git-Url: http://sigrok.org/gitweb/?p=pulseview.git;a=blobdiff_plain;f=pv%2Fglobalsettings.cpp;fp=pv%2Fglobalsettings.cpp;h=1c23e04c39a85929ed17de14d4e23878caeaca58;hp=f7df48021f481eafd062bb0f5ad653fb6aaa83c8;hb=0466001be51e779b23aaebec1cc9361305c07be9;hpb=1f5d683e6bbab6d5694bd28524b24022fef70195 diff --git a/pv/globalsettings.cpp b/pv/globalsettings.cpp index f7df4802..1c23e04c 100644 --- a/pv/globalsettings.cpp +++ b/pv/globalsettings.cpp @@ -18,6 +18,7 @@ */ #include "globalsettings.hpp" +#include "application.hpp" #include #include @@ -42,6 +43,7 @@ const vector< pair > Themes { {"DarkStyle", ":/themes/darkstyle/darkstyle.qss"} }; +const QString GlobalSettings::Key_General_Language = "General_Language"; const QString GlobalSettings::Key_General_Theme = "General_Theme"; const QString GlobalSettings::Key_General_Style = "General_Style"; const QString GlobalSettings::Key_General_SaveWithSetup = "General_SaveWithSetup"; @@ -90,6 +92,14 @@ void GlobalSettings::save_internal_defaults() void GlobalSettings::set_defaults_where_needed() { + if (!contains(Key_General_Language)) { + // Determine and set default UI language + QString language = QLocale().uiLanguages().first(); // May return e.g. en-Latn-US + language = language.split("-").first(); + + setValue(Key_General_Language, language); + } + // Use no theme by default if (!contains(Key_General_Theme)) setValue(Key_General_Theme, 0); @@ -231,6 +241,12 @@ void GlobalSettings::apply_theme() QPixmapCache::clear(); } +void GlobalSettings::apply_language() +{ + Application* a = qobject_cast(QApplication::instance()); + a->switch_language(value(Key_General_Language).toString()); +} + void GlobalSettings::add_change_handler(GlobalSettingsInterface *cb) { callbacks_.push_back(cb);