From e7ba15fa32b80655f2068e818072a32257582f96 Mon Sep 17 00:00:00 2001 From: Thierry Crozat Date: Sun, 16 Dec 2018 15:56:37 +0000 Subject: [PATCH] GUI: Add option to enable/disable using the system file browser --- gui/ThemeEngine.h | 2 +- gui/options.cpp | 16 ++++++++++++++++ gui/options.h | 2 ++ gui/themes/default.inc | 10 ++++++++++ gui/themes/scummclassic.zip | Bin 130822 -> 131157 bytes gui/themes/scummclassic/THEMERC | 2 +- gui/themes/scummclassic/classic_layout.stx | 5 +++++ .../scummclassic/classic_layout_lowres.stx | 5 +++++ gui/themes/scummmodern.zip | Bin 1650353 -> 1650688 bytes gui/themes/scummmodern/THEMERC | 2 +- gui/themes/scummmodern/scummmodern_layout.stx | 5 +++++ .../scummmodern/scummmodern_layout_lowres.stx | 5 +++++ 12 files changed, 51 insertions(+), 3 deletions(-) diff --git a/gui/ThemeEngine.h b/gui/ThemeEngine.h index ab77cfcbccb..7f13f3b3e4d 100644 --- a/gui/ThemeEngine.h +++ b/gui/ThemeEngine.h @@ -37,7 +37,7 @@ #include "graphics/pixelformat.h" -#define SCUMMVM_THEME_VERSION_STR "SCUMMVM_STX0.8.25" +#define SCUMMVM_THEME_VERSION_STR "SCUMMVM_STX0.8.26" class OSystem; diff --git a/gui/options.cpp b/gui/options.cpp index 5c5c9ecd7c2..7032d10130e 100644 --- a/gui/options.cpp +++ b/gui/options.cpp @@ -1468,6 +1468,7 @@ GlobalOptionsDialog::GlobalOptionsDialog(LauncherDialog *launcher) _guiLanguagePopUpDesc = 0; _guiLanguagePopUp = 0; _guiLanguageUseGameLanguageCheckbox = nullptr; + _useSystemDialogsCheckbox = 0; #ifdef USE_UPDATES _updatesPopUpDesc = 0; _updatesPopUp = 0; @@ -1704,6 +1705,17 @@ void GlobalOptionsDialog::build() { #endif // USE_TRANSLATION + if (g_system->hasFeature(OSystem::kFeatureNativeFileBowserDialog)) { + _useSystemDialogsCheckbox = new CheckboxWidget(tab, "GlobalOptions_Misc.UseSystemDialogs", + _("Use native system file browser"), + _("Use the native system file browser instead of the ScummVM one to select a file or directory.") + ); + + if (ConfMan.hasKey("gui_browser_native")) { + _useSystemDialogsCheckbox->setState(ConfMan.getBool("gui_browser_native", _domain)); + } + } + #ifdef USE_UPDATES _updatesPopUpDesc = new StaticTextWidget(tab, "GlobalOptions_Misc.UpdatesPopupDesc", _("Update check:"), _("How often to check ScummVM updates")); _updatesPopUp = new PopUpWidget(tab, "GlobalOptions_Misc.UpdatesPopup"); @@ -1977,6 +1989,10 @@ void GlobalOptionsDialog::apply() { ConfMan.setBool("gui_use_game_language", guiUseGameLanguage, _domain); #endif + if (_useSystemDialogsCheckbox) { + ConfMan.setBool("gui_browser_native", _useSystemDialogsCheckbox->getState(), _domain); + } + GUI::ThemeEngine::GraphicsMode gfxMode = (GUI::ThemeEngine::GraphicsMode)_rendererPopUp->getSelectedTag(); Common::String oldGfxConfig = ConfMan.get("gui_renderer"); Common::String newGfxConfig = GUI::ThemeEngine::findModeConfigName(gfxMode); diff --git a/gui/options.h b/gui/options.h index 12b42bd3a00..ad9cb2aed98 100644 --- a/gui/options.h +++ b/gui/options.h @@ -282,6 +282,8 @@ protected: StaticTextWidget *_guiLanguagePopUpDesc; PopUpWidget *_guiLanguagePopUp; CheckboxWidget *_guiLanguageUseGameLanguageCheckbox; + CheckboxWidget *_useSystemDialogsCheckbox; + #ifdef USE_UPDATES StaticTextWidget *_updatesPopUpDesc; diff --git a/gui/themes/default.inc b/gui/themes/default.inc index 499ae7b5ee2..312f410b320 100644 --- a/gui/themes/default.inc +++ b/gui/themes/default.inc @@ -1140,6 +1140,11 @@ const char *defaultXML1 = "" "/>" "" "" +"" +"" +"" "" @@ -2749,6 +2754,11 @@ const char *defaultXML1 = "" "/>" "" "" +"" +"" +"" "3jIVjLqu&d-zx) zib_2;$fqq!jC^fdyEQq%AKW#oYv`R*^H z6m$JC#_7IC86~E#`Nznk01C?T9StWBb2Bi2usDhtM=nnH|Hr5bR`pPC{U#0p1_lro lLs7No?(`}D7*!y4?D@wi#q{It^c(*eHQ3htWn^Gr00745n3@0p delta 409 zcmccGz|r=PT`0htnMH&F1d8VW^T|+_ah@oo!e~0tT!&?Pt-1Hc^gVoF#%6VX80)!g zo;7dMtODQQk7@=Y+Zh-{HYY{OI84r;#XWsy5F^jzh6=;Yd9yB;@!gtT;L9>AYH!vS z28OIH+x-O@XMmM$pBcpXp%`rL_TFQRj@%IDrHhPTpv+Tu87%}LqHOONH}P}8TsQr| zUq)T9#PpAU866-j(|<5l8eu3#i{~6UGhS~mS zlwvkG$~gVuMMmN2>yI(APXGO%kw*~}9OXM2P9ElFU;trp6eCJ6fHg==&-};8qX1I- tP;dPv4gm%R5EesGn|o*a + + + + + + cWsa>ZVaY!#2?=4m@oyM`!U?gDnq9J)BV^O2>amP_cow-;ar~c zzR!8id(QjZdto_w@V8`jZx6?dM1Q`WD#W{PpS*Ic`h~K{u}uN~)WObJcIcy_vM+`# zuPDZpYKnzw3P&}Cr?RrGjdTjcQ6I)s*L`rr1?Yar}E9mlX4>Xff}k#e5Yl z=3TUyU#%AN)yLoG2gcvssqU^6{+s26bHiQgo==4!hmf8WS~*^@w#L-2=LOA)aC*Uj zI=6FC7<3?a{;JT+^HYbi-Rh%j!XSsb@f!k{<15eiy`=7bRea5X@KQ=ln7Z--aW99_ z$+Y;oNm!Z`liVtOW9w!6HkX|c7b{Q^)Z_0F67p4a7RtJx7&Tb3c0Rb2KU@>7ftuO)pWmSz=?@}7FDb6?2(saPuHU! zot1xhkH0a0WQ&@xz@XWdD^^(PTWvKY%;;e^>@%D7`#MN*wiV;DJ}-m}&#^;ZXh-yo z7b1ur>oMJOEb4<6<6hZ_4FUr~)V^>S4G5|5dVJseiRxI>z2`vU7io$;dR?giVgw4oH z2Vo0lKMz8u^GRE=$3ckHJ)^6o=XCZmdpQI_ql;`N1T}k3aX>Pu#Q2-T;r%0Hy**_X zk;8wD{#h=_OHC06A^NbFWC%H(B^5w26Qg7MC*FD1LiR@pYAkOE%n^n|B~~S6951J delta 1175 zcmZvbT}TvB6vwYStE;ZAt24Vh$MCb#bwAunT{W{bBZ$qAG&MhhY_$R{@q?t)J|J#b z8(GAyjOw9=5CZ$0qG{PuXK+pW^k~YOsG`wgw~-AM2TpgK?TC8XVc0E2rc{v(RFOEUNJgqi z(NvLQs3MuDBE?cgild4YPZh~5D^kMZ4@?P%5@|SOq2W*x4Tr2W97>kMp_I!fBFl1J z9KUoPvEeH3;SlLHeuIXu#(2eo(V=k_1M9o0-%@FVTW)nhal)?-XrUR}tA zO|j}dY_xs5!iJq-XEjd9LD_L9R79#{VJ8$KEjV?%!aOKMU1uH?A>CW1xjZPtSei@M z?QuZ~#ztMR8R?@7Dv?CDPOWYzjTDu&{Z9eA;{iK+;sz0AAKXxZBzSacT&9~I*novj zFH@{n-*%f<@5-*8(BrA45ESH~;_u diff --git a/gui/themes/scummmodern/THEMERC b/gui/themes/scummmodern/THEMERC index 61c5cfe72a9..458e66808f0 100644 --- a/gui/themes/scummmodern/THEMERC +++ b/gui/themes/scummmodern/THEMERC @@ -1 +1 @@ -[SCUMMVM_STX0.8.25:ScummVM Modern Theme:No Author] +[SCUMMVM_STX0.8.26:ScummVM Modern Theme:No Author] diff --git a/gui/themes/scummmodern/scummmodern_layout.stx b/gui/themes/scummmodern/scummmodern_layout.stx index 48244c7a234..d6c927c2513 100644 --- a/gui/themes/scummmodern/scummmodern_layout.stx +++ b/gui/themes/scummmodern/scummmodern_layout.stx @@ -586,6 +586,11 @@ type = 'Checkbox' /> + + + + + +