diff options
Diffstat (limited to 'FreeFileSync/Source/RealTimeSync/application.cpp')
-rw-r--r-- | FreeFileSync/Source/RealTimeSync/application.cpp | 29 |
1 files changed, 17 insertions, 12 deletions
diff --git a/FreeFileSync/Source/RealTimeSync/application.cpp b/FreeFileSync/Source/RealTimeSync/application.cpp index 62a21148..2a7d404f 100644 --- a/FreeFileSync/Source/RealTimeSync/application.cpp +++ b/FreeFileSync/Source/RealTimeSync/application.cpp @@ -7,15 +7,13 @@ #include "application.h" #include "main_dlg.h" #include <zen/file_access.h> -//#include <zen/thread.h> #include <zen/shutdown.h> #include <zen/resolve_path.h> #include <wx/clipbrd.h> #include <wx/event.h> -//#include <wx/log.h> #include <wx/tooltip.h> #include <wx+/app_main.h> -//#include <wx+/popup_dlg.h> +#include <wx+/darkmode.h> #include <wx+/image_resources.h> #include "config.h" #include "../localization.h" @@ -62,6 +60,17 @@ bool Application::OnInit() notifyAppError(msg); }); + //tentatively set program language to OS default until GlobalSettings.xml is read later + try { fff::localizationInit(appendPath(fff::getResourceDirPath(), Zstr("Languages.zip"))); } //throw FileError + catch (const FileError& e) { logExtraError(e.toString()); } + + GlobalConfig globalCfg; + try { globalCfg = getGlobalConfig(); } //throw FileError + catch (const FileError& e) { logExtraError(e.toString()); } + + try { fff::setLanguage(globalCfg.programLanguage); } //throw FileError + catch (const FileError& e) { logExtraError(e.toString()); } + try { imageResourcesInit(appendPath(fff::getResourceDirPath(), Zstr("Icons.zip"))); } catch (const FileError& e) { logExtraError(e.toString()); } //not critical in this context @@ -102,7 +111,7 @@ bool Application::OnInit() { loadCSS("Gtk3Styles.old.css"); //throw SysError } - catch (const SysError& e3) { logExtraError(_("Error during process initialization.") + L"\n\n" + e3.toString()); } + catch (const SysError& e3) { logExtraError(_("Failed to update the color theme.") + L"\n\n" + e3.toString()); } } #else #error unknown GTK version! @@ -117,6 +126,9 @@ bool Application::OnInit() else assert(!oldHandler); + try { colorThemeInit(*this, globalCfg.appColorTheme); } //throw FileError + catch (const FileError& e) { logExtraError(e.toString()); } //not critical in this context + //Windows User Experience Interaction Guidelines: tool tips should have 5s timeout, info tips no timeout => compromise: wxToolTip::Enable(true); //wxWidgets screw-up: wxToolTip::SetAutoPop is no-op if global tooltip window is not yet constructed: wxToolTip::Enable creates it wxToolTip::SetAutoPop(15'000); //https://docs.microsoft.com/en-us/windows/win32/uxguide/ctrl-tooltips-and-infotips @@ -124,13 +136,6 @@ bool Application::OnInit() SetAppName(L"RealTimeSync"); //if not set, defaults to executable name - try - { - fff::localizationInit(appendPath(fff::getResourceDirPath(), Zstr("Languages.zip"))); //throw FileError - fff::setLanguage(getProgramLanguage()); //throw FileError - } - catch (const FileError& e) { logExtraError(e.toString()); } - auto onSystemShutdown = [](int /*unused*/ = 0) { onSystemShutdownRunTasks(); @@ -148,7 +153,7 @@ bool Application::OnInit() //Note: app start is deferred: -> see FreeFileSync CallAfter([&] { onEnterEventLoop(); }); - return true; //true: continue processing; false: exit immediately. + return true; //true: continue processing; false: exit immediately } |