GUI: Add a checkbox to allow overriding the global backend settings

This commit is contained in:
Cameron Cawley 2021-01-17 10:03:51 +00:00 committed by Filippos Karapetis
parent 7b08d041a2
commit 76b25ec1c3
22 changed files with 121 additions and 41 deletions

View file

@ -53,6 +53,8 @@ public:
// OptionsContainerWidget API // OptionsContainerWidget API
void load() override; void load() override;
bool save() override; bool save() override;
bool hasKeys() override;
void setEnabled(bool e) override;
private: private:
// OptionsContainerWidget API // OptionsContainerWidget API
@ -60,10 +62,12 @@ private:
GUI::CheckboxWidget *_onscreenCheckbox; GUI::CheckboxWidget *_onscreenCheckbox;
GUI::CheckboxWidget *_touchpadCheckbox; GUI::CheckboxWidget *_touchpadCheckbox;
bool _enabled;
}; };
AndroidOptionsWidget::AndroidOptionsWidget(GuiObject *boss, const Common::String &name, const Common::String &domain) : AndroidOptionsWidget::AndroidOptionsWidget(GuiObject *boss, const Common::String &name, const Common::String &domain) :
OptionsContainerWidget(boss, name, "AndroidOptionsDialog", false, domain) { OptionsContainerWidget(boss, name, "AndroidOptionsDialog", false, domain), _enabled(true) {
_onscreenCheckbox = new GUI::CheckboxWidget(widgetsBoss(), "AndroidOptionsDialog.OnScreenControl", _("Show On-screen control")); _onscreenCheckbox = new GUI::CheckboxWidget(widgetsBoss(), "AndroidOptionsDialog.OnScreenControl", _("Show On-screen control"));
_touchpadCheckbox = new GUI::CheckboxWidget(widgetsBoss(), "AndroidOptionsDialog.TouchpadMode", _("Touchpad mouse mode")); _touchpadCheckbox = new GUI::CheckboxWidget(widgetsBoss(), "AndroidOptionsDialog.TouchpadMode", _("Touchpad mouse mode"));
@ -75,7 +79,7 @@ AndroidOptionsWidget::~AndroidOptionsWidget() {
void AndroidOptionsWidget::defineLayout(GUI::ThemeEval &layouts, const Common::String &layoutName, const Common::String &overlayedLayout) const { void AndroidOptionsWidget::defineLayout(GUI::ThemeEval &layouts, const Common::String &layoutName, const Common::String &overlayedLayout) const {
layouts.addDialog(layoutName, overlayedLayout) layouts.addDialog(layoutName, overlayedLayout)
.addLayout(GUI::ThemeLayout::kLayoutVertical) .addLayout(GUI::ThemeLayout::kLayoutVertical)
.addPadding(16, 16, 16, 16) .addPadding(0, 0, 0, 0)
.addWidget("OnScreenControl", "Checkbox") .addWidget("OnScreenControl", "Checkbox")
.addWidget("TouchpadMode", "Checkbox") .addWidget("TouchpadMode", "Checkbox")
.closeLayout() .closeLayout()
@ -88,12 +92,28 @@ void AndroidOptionsWidget::load() {
} }
bool AndroidOptionsWidget::save() { bool AndroidOptionsWidget::save() {
if (_enabled) {
ConfMan.setBool("onscreen_control", _onscreenCheckbox->getState(), _domain); ConfMan.setBool("onscreen_control", _onscreenCheckbox->getState(), _domain);
ConfMan.setBool("touchpad_mouse_mode", _touchpadCheckbox->getState(), _domain); ConfMan.setBool("touchpad_mouse_mode", _touchpadCheckbox->getState(), _domain);
} else {
ConfMan.removeKey("onscreen_control", _domain);
ConfMan.removeKey("touchpad_mouse_mode", _domain);
}
return true; return true;
} }
bool AndroidOptionsWidget::hasKeys() {
return ConfMan.hasKey("onscreen_control", _domain) ||
ConfMan.hasKey("touchpad_mouse_mode", _domain);
}
void AndroidOptionsWidget::setEnabled(bool e) {
_enabled = e;
_onscreenCheckbox->setEnabled(e);
_touchpadCheckbox->setEnabled(e);
}
GUI::OptionsContainerWidget *OSystem_Android::buildBackendOptionsWidget(GUI::GuiObject *boss, const Common::String &name, const Common::String &target) const { GUI::OptionsContainerWidget *OSystem_Android::buildBackendOptionsWidget(GUI::GuiObject *boss, const Common::String &name, const Common::String &target) const {

View file

@ -38,7 +38,7 @@
#include "graphics/pixelformat.h" #include "graphics/pixelformat.h"
#define SCUMMVM_THEME_VERSION_STR "SCUMMVM_STX0.8.42" #define SCUMMVM_THEME_VERSION_STR "SCUMMVM_STX0.8.43"
class OSystem; class OSystem;

View file

@ -65,6 +65,7 @@ enum {
kCmdGlobalGraphicsOverride = 'OGFX', kCmdGlobalGraphicsOverride = 'OGFX',
kCmdGlobalShaderOverride = 'OSHD', kCmdGlobalShaderOverride = 'OSHD',
kCmdGlobalBackendOverride = 'OBAK',
kCmdGlobalAudioOverride = 'OSFX', kCmdGlobalAudioOverride = 'OSFX',
kCmdGlobalMIDIOverride = 'OMID', kCmdGlobalMIDIOverride = 'OMID',
kCmdGlobalMT32Override = 'OM32', kCmdGlobalMT32Override = 'OM32',
@ -245,6 +246,11 @@ EditGameDialog::EditGameDialog(const String &domain)
// //
int backendTabId = tab->addTab(_("Backend"), "GameOptions_Backend"); int backendTabId = tab->addTab(_("Backend"), "GameOptions_Backend");
if (g_system->getOverlayWidth() > 320)
_globalBackendOverride = new CheckboxWidget(tab, "GameOptions_Backend.EnableTabCheckbox", _("Override global backend settings"), Common::U32String(), kCmdGlobalBackendOverride);
else
_globalBackendOverride = new CheckboxWidget(tab, "GameOptions_Backend.EnableTabCheckbox", _c("Override global backend settings", "lowres"), Common::U32String(), kCmdGlobalBackendOverride);
g_system->registerDefaultSettings(_domain); g_system->registerDefaultSettings(_domain);
_backendOptions = g_system->buildBackendOptionsWidget(tab, "GameOptions_Backend.Container", _domain); _backendOptions = g_system->buildBackendOptionsWidget(tab, "GameOptions_Backend.Container", _domain);
@ -410,6 +416,11 @@ void EditGameDialog::open() {
_globalShaderOverride->setState(e); _globalShaderOverride->setState(e);
} }
if (_backendOptions) {
e = _backendOptions->hasKeys();
_globalBackendOverride->setState(e);
}
e = ConfMan.hasKey("music_driver", _domain) || e = ConfMan.hasKey("music_driver", _domain) ||
ConfMan.hasKey("output_rate", _domain) || ConfMan.hasKey("output_rate", _domain) ||
ConfMan.hasKey("opl_driver", _domain) || ConfMan.hasKey("opl_driver", _domain) ||
@ -510,6 +521,10 @@ void EditGameDialog::handleCommand(CommandSender *sender, uint32 cmd, uint32 dat
setShaderSettingsState(data != 0); setShaderSettingsState(data != 0);
g_gui.scheduleTopDialogRedraw(); g_gui.scheduleTopDialogRedraw();
break; break;
case kCmdGlobalBackendOverride:
_backendOptions->setEnabled(data != 0);
g_gui.scheduleTopDialogRedraw();
break;
case kCmdGlobalAudioOverride: case kCmdGlobalAudioOverride:
setAudioSettingsState(data != 0); setAudioSettingsState(data != 0);
setSubtitleSettingsState(data != 0); setSubtitleSettingsState(data != 0);

View file

@ -87,6 +87,7 @@ protected:
CheckboxWidget *_globalGraphicsOverride; CheckboxWidget *_globalGraphicsOverride;
CheckboxWidget *_globalShaderOverride; CheckboxWidget *_globalShaderOverride;
CheckboxWidget *_globalBackendOverride;
CheckboxWidget *_globalAudioOverride; CheckboxWidget *_globalAudioOverride;
CheckboxWidget *_globalMIDIOverride; CheckboxWidget *_globalMIDIOverride;
CheckboxWidget *_globalMT32Override; CheckboxWidget *_globalMT32Override;

View file

@ -1667,7 +1667,7 @@ const char *defaultXML1 = "<?xml version = '1.0'?>"
"</layout>" "</layout>"
"</dialog>" "</dialog>"
"<dialog name='GlobalOptions_Backend' overlays='Dialog.GlobalOptions.TabWidget'>" "<dialog name='GlobalOptions_Backend' overlays='Dialog.GlobalOptions.TabWidget'>"
"<layout type='vertical' padding='0,0,0,0'>" "<layout type='vertical' padding='16,16,16,16'>"
"<widget name='Container'/>" "<widget name='Container'/>"
"</layout>" "</layout>"
"</dialog>" "</dialog>"
@ -2385,7 +2385,10 @@ const char *defaultXML1 = "<?xml version = '1.0'?>"
"</layout>" "</layout>"
"</dialog>" "</dialog>"
"<dialog name='GameOptions_Backend' overlays='Dialog.GameOptions.TabWidget'>" "<dialog name='GameOptions_Backend' overlays='Dialog.GameOptions.TabWidget'>"
"<layout type='vertical' padding='0,0,0,0'>" "<layout type='vertical' padding='16,16,16,16'>"
"<widget name='EnableTabCheckbox' "
"type='Checkbox' "
"/>"
"<widget name='Container'/>" "<widget name='Container'/>"
"</layout>" "</layout>"
"</dialog>" "</dialog>"
@ -2680,7 +2683,7 @@ const char *defaultXML1 = "<?xml version = '1.0'?>"
"</layout>" "</layout>"
"</dialog>" "</dialog>"
"<dialog name='GlobalConfig_Backend' overlays='Dialog.GlobalConfig.TabWidget'>" "<dialog name='GlobalConfig_Backend' overlays='Dialog.GlobalConfig.TabWidget'>"
"<layout type='vertical' padding='0,0,0,0'>" "<layout type='vertical' padding='16,16,16,16'>"
"<widget name='Container'/>" "<widget name='Container'/>"
"</layout>" "</layout>"
"</dialog>" "</dialog>"
@ -3514,7 +3517,7 @@ const char *defaultXML1 = "<?xml version = '1.0'?>"
"</layout>" "</layout>"
"</dialog>" "</dialog>"
"<dialog name='GlobalOptions_Backend' overlays='Dialog.GlobalOptions.TabWidget'>" "<dialog name='GlobalOptions_Backend' overlays='Dialog.GlobalOptions.TabWidget'>"
"<layout type='vertical' padding='0,0,0,0'>" "<layout type='vertical' padding='16,16,16,16'>"
"<widget name='Container'/>" "<widget name='Container'/>"
"</layout>" "</layout>"
"</dialog>" "</dialog>"
@ -3858,6 +3861,11 @@ const char *defaultXML1 = "<?xml version = '1.0'?>"
"/>" "/>"
"</layout>" "</layout>"
"<layout type='horizontal' padding='0,0,0,0' spacing='6' align='center'>" "<layout type='horizontal' padding='0,0,0,0' spacing='6' align='center'>"
"<widget name='ConfirmExit' "
"type='Checkbox' "
"/>"
"</layout>"
"<layout type='horizontal' padding='0,0,0,0' spacing='6' align='center'>"
"<widget name='UpdatesPopupDesc' " "<widget name='UpdatesPopupDesc' "
"width='80' " "width='80' "
"height='Globals.Line.Height' " "height='Globals.Line.Height' "
@ -4232,7 +4240,10 @@ const char *defaultXML1 = "<?xml version = '1.0'?>"
"</layout>" "</layout>"
"</dialog>" "</dialog>"
"<dialog name='GameOptions_Backend' overlays='Dialog.GameOptions.TabWidget'>" "<dialog name='GameOptions_Backend' overlays='Dialog.GameOptions.TabWidget'>"
"<layout type='vertical' padding='0,0,0,0'>" "<layout type='vertical' padding='8,8,8,8'>"
"<widget name='EnableTabCheckbox' "
"type='Checkbox' "
"/>"
"<widget name='Container'/>" "<widget name='Container'/>"
"</layout>" "</layout>"
"</dialog>" "</dialog>"
@ -4536,7 +4547,7 @@ const char *defaultXML1 = "<?xml version = '1.0'?>"
"</layout>" "</layout>"
"</dialog>" "</dialog>"
"<dialog name='GlobalConfig_Backend' overlays='Dialog.GlobalConfig.TabWidget'>" "<dialog name='GlobalConfig_Backend' overlays='Dialog.GlobalConfig.TabWidget'>"
"<layout type='vertical' padding='0,0,0,0'>" "<layout type='vertical' padding='8,8,8,8'>"
"<widget name='Container'/>" "<widget name='Container'/>"
"</layout>" "</layout>"
"</dialog>" "</dialog>"

Binary file not shown.

View file

@ -1 +1 @@
[SCUMMVM_STX0.8.42:ResidualVM Modern Theme:No Author] [SCUMMVM_STX0.8.43:ResidualVM Modern Theme:No Author]

View file

@ -310,7 +310,7 @@
</dialog> </dialog>
<dialog name = 'GlobalOptions_Backend' overlays = 'Dialog.GlobalOptions.TabWidget'> <dialog name = 'GlobalOptions_Backend' overlays = 'Dialog.GlobalOptions.TabWidget'>
<layout type = 'vertical' padding = '0, 0, 0, 0'> <layout type = 'vertical' padding = '16, 16, 16, 16'>
<widget name = 'Container'/> <widget name = 'Container'/>
</layout> </layout>
</dialog> </dialog>
@ -653,12 +653,12 @@
/> />
</layout> </layout>
<layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '10' align = 'center'> <layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '10' align = 'center'>
<widget name = 'ConfirmExit' <widget name = 'ReturnToLauncherAtExit'
type = 'Checkbox' type = 'Checkbox'
/> />
</layout> </layout>
<layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '10' align = 'center'> <layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '10' align = 'center'>
<widget name = 'ReturnToLauncherAtExit' <widget name = 'ConfirmExit'
type = 'Checkbox' type = 'Checkbox'
/> />
</layout> </layout>
@ -1049,7 +1049,10 @@
</dialog> </dialog>
<dialog name = 'GameOptions_Backend' overlays = 'Dialog.GameOptions.TabWidget'> <dialog name = 'GameOptions_Backend' overlays = 'Dialog.GameOptions.TabWidget'>
<layout type = 'vertical' padding = '0, 0, 0, 0'> <layout type = 'vertical' padding = '16, 16, 16, 16'>
<widget name = 'EnableTabCheckbox'
type = 'Checkbox'
/>
<widget name = 'Container'/> <widget name = 'Container'/>
</layout> </layout>
</dialog> </dialog>
@ -1361,7 +1364,7 @@
</dialog> </dialog>
<dialog name = 'GlobalConfig_Backend' overlays = 'Dialog.GlobalConfig.TabWidget'> <dialog name = 'GlobalConfig_Backend' overlays = 'Dialog.GlobalConfig.TabWidget'>
<layout type = 'vertical' padding = '0, 0, 0, 0'> <layout type = 'vertical' padding = '16, 16, 16, 16'>
<widget name = 'Container'/> <widget name = 'Container'/>
</layout> </layout>
</dialog> </dialog>

View file

@ -289,7 +289,7 @@
</dialog> </dialog>
<dialog name = 'GlobalOptions_Backend' overlays = 'Dialog.GlobalOptions.TabWidget'> <dialog name = 'GlobalOptions_Backend' overlays = 'Dialog.GlobalOptions.TabWidget'>
<layout type = 'vertical' padding = '0, 0, 0, 0'> <layout type = 'vertical' padding = '16, 16, 16, 16'>
<widget name = 'Container'/> <widget name = 'Container'/>
</layout> </layout>
</dialog> </dialog>
@ -1034,7 +1034,10 @@
</dialog> </dialog>
<dialog name = 'GameOptions_Backend' overlays = 'Dialog.GameOptions.TabWidget'> <dialog name = 'GameOptions_Backend' overlays = 'Dialog.GameOptions.TabWidget'>
<layout type = 'vertical' padding = '0, 0, 0, 0'> <layout type = 'vertical' padding = '8, 8, 8, 8'>
<widget name = 'EnableTabCheckbox'
type = 'Checkbox'
/>
<widget name = 'Container'/> <widget name = 'Container'/>
</layout> </layout>
</dialog> </dialog>
@ -1355,7 +1358,7 @@
</dialog> </dialog>
<dialog name = 'GlobalConfig_Backend' overlays = 'Dialog.GlobalConfig.TabWidget'> <dialog name = 'GlobalConfig_Backend' overlays = 'Dialog.GlobalConfig.TabWidget'>
<layout type = 'vertical' padding = '0, 0, 0, 0'> <layout type = 'vertical' padding = '8, 8, 8, 8'>
<widget name = 'Container'/> <widget name = 'Container'/>
</layout> </layout>
</dialog> </dialog>

Binary file not shown.

View file

@ -1 +1 @@
[SCUMMVM_STX0.8.42:ScummVM Classic Theme:No Author] [SCUMMVM_STX0.8.43:ScummVM Classic Theme:No Author]

View file

@ -294,7 +294,7 @@
</dialog> </dialog>
<dialog name = 'GlobalOptions_Backend' overlays = 'Dialog.GlobalOptions.TabWidget'> <dialog name = 'GlobalOptions_Backend' overlays = 'Dialog.GlobalOptions.TabWidget'>
<layout type = 'vertical' padding = '0, 0, 0, 0'> <layout type = 'vertical' padding = '16, 16, 16, 16'>
<widget name = 'Container'/> <widget name = 'Container'/>
</layout> </layout>
</dialog> </dialog>
@ -1034,7 +1034,10 @@
</dialog> </dialog>
<dialog name = 'GameOptions_Backend' overlays = 'Dialog.GameOptions.TabWidget'> <dialog name = 'GameOptions_Backend' overlays = 'Dialog.GameOptions.TabWidget'>
<layout type = 'vertical' padding = '0, 0, 0, 0'> <layout type = 'vertical' padding = '16, 16, 16, 16'>
<widget name = 'EnableTabCheckbox'
type = 'Checkbox'
/>
<widget name = 'Container'/> <widget name = 'Container'/>
</layout> </layout>
</dialog> </dialog>
@ -1346,7 +1349,7 @@
</dialog> </dialog>
<dialog name = 'GlobalConfig_Backend' overlays = 'Dialog.GlobalConfig.TabWidget'> <dialog name = 'GlobalConfig_Backend' overlays = 'Dialog.GlobalConfig.TabWidget'>
<layout type = 'vertical' padding = '0, 0, 0, 0'> <layout type = 'vertical' padding = '16, 16, 16, 16'>
<widget name = 'Container'/> <widget name = 'Container'/>
</layout> </layout>
</dialog> </dialog>

View file

@ -291,7 +291,7 @@
</dialog> </dialog>
<dialog name = 'GlobalOptions_Backend' overlays = 'Dialog.GlobalOptions.TabWidget'> <dialog name = 'GlobalOptions_Backend' overlays = 'Dialog.GlobalOptions.TabWidget'>
<layout type = 'vertical' padding = '0, 0, 0, 0'> <layout type = 'vertical' padding = '16, 16, 16, 16'>
<widget name = 'Container'/> <widget name = 'Container'/>
</layout> </layout>
</dialog> </dialog>
@ -1035,7 +1035,10 @@
</dialog> </dialog>
<dialog name = 'GameOptions_Backend' overlays = 'Dialog.GameOptions.TabWidget'> <dialog name = 'GameOptions_Backend' overlays = 'Dialog.GameOptions.TabWidget'>
<layout type = 'vertical' padding = '0, 0, 0, 0'> <layout type = 'vertical' padding = '8, 8, 8, 8'>
<widget name = 'EnableTabCheckbox'
type = 'Checkbox'
/>
<widget name = 'Container'/> <widget name = 'Container'/>
</layout> </layout>
</dialog> </dialog>
@ -1355,7 +1358,7 @@
</dialog> </dialog>
<dialog name = 'GlobalConfig_Backend' overlays = 'Dialog.GlobalConfig.TabWidget'> <dialog name = 'GlobalConfig_Backend' overlays = 'Dialog.GlobalConfig.TabWidget'>
<layout type = 'vertical' padding = '0, 0, 0, 0'> <layout type = 'vertical' padding = '8, 8, 8, 8'>
<widget name = 'Container'/> <widget name = 'Container'/>
</layout> </layout>
</dialog> </dialog>

Binary file not shown.

View file

@ -1 +1 @@
[SCUMMVM_STX0.8.42:ScummVM Modern Theme:No Author] [SCUMMVM_STX0.8.43:ScummVM Modern Theme:No Author]

View file

@ -310,7 +310,7 @@
</dialog> </dialog>
<dialog name = 'GlobalOptions_Backend' overlays = 'Dialog.GlobalOptions.TabWidget'> <dialog name = 'GlobalOptions_Backend' overlays = 'Dialog.GlobalOptions.TabWidget'>
<layout type = 'vertical' padding = '0, 0, 0, 0'> <layout type = 'vertical' padding = '16, 16, 16, 16'>
<widget name = 'Container'/> <widget name = 'Container'/>
</layout> </layout>
</dialog> </dialog>
@ -1049,7 +1049,10 @@
</dialog> </dialog>
<dialog name = 'GameOptions_Backend' overlays = 'Dialog.GameOptions.TabWidget'> <dialog name = 'GameOptions_Backend' overlays = 'Dialog.GameOptions.TabWidget'>
<layout type = 'vertical' padding = '0, 0, 0, 0'> <layout type = 'vertical' padding = '16, 16, 16, 16'>
<widget name = 'EnableTabCheckbox'
type = 'Checkbox'
/>
<widget name = 'Container'/> <widget name = 'Container'/>
</layout> </layout>
</dialog> </dialog>
@ -1361,7 +1364,7 @@
</dialog> </dialog>
<dialog name = 'GlobalConfig_Backend' overlays = 'Dialog.GlobalConfig.TabWidget'> <dialog name = 'GlobalConfig_Backend' overlays = 'Dialog.GlobalConfig.TabWidget'>
<layout type = 'vertical' padding = '0, 0, 0, 0'> <layout type = 'vertical' padding = '16, 16, 16, 16'>
<widget name = 'Container'/> <widget name = 'Container'/>
</layout> </layout>
</dialog> </dialog>

View file

@ -289,7 +289,7 @@
</dialog> </dialog>
<dialog name = 'GlobalOptions_Backend' overlays = 'Dialog.GlobalOptions.TabWidget'> <dialog name = 'GlobalOptions_Backend' overlays = 'Dialog.GlobalOptions.TabWidget'>
<layout type = 'vertical' padding = '0, 0, 0, 0'> <layout type = 'vertical' padding = '16, 16, 16, 16'>
<widget name = 'Container'/> <widget name = 'Container'/>
</layout> </layout>
</dialog> </dialog>
@ -1034,7 +1034,10 @@
</dialog> </dialog>
<dialog name = 'GameOptions_Backend' overlays = 'Dialog.GameOptions.TabWidget'> <dialog name = 'GameOptions_Backend' overlays = 'Dialog.GameOptions.TabWidget'>
<layout type = 'vertical' padding = '0, 0, 0, 0'> <layout type = 'vertical' padding = '8, 8, 8, 8'>
<widget name = 'EnableTabCheckbox'
type = 'Checkbox'
/>
<widget name = 'Container'/> <widget name = 'Container'/>
</layout> </layout>
</dialog> </dialog>
@ -1355,7 +1358,7 @@
</dialog> </dialog>
<dialog name = 'GlobalConfig_Backend' overlays = 'Dialog.GlobalConfig.TabWidget'> <dialog name = 'GlobalConfig_Backend' overlays = 'Dialog.GlobalConfig.TabWidget'>
<layout type = 'vertical' padding = '0, 0, 0, 0'> <layout type = 'vertical' padding = '8, 8, 8, 8'>
<widget name = 'Container'/> <widget name = 'Container'/>
</layout> </layout>
</dialog> </dialog>

Binary file not shown.

View file

@ -1 +1 @@
[SCUMMVM_STX0.8.42:ScummVM Modern Theme Remastered:No Author] [SCUMMVM_STX0.8.43:ScummVM Modern Theme Remastered:No Author]

View file

@ -310,7 +310,7 @@
</dialog> </dialog>
<dialog name = 'GlobalOptions_Backend' overlays = 'Dialog.GlobalOptions.TabWidget'> <dialog name = 'GlobalOptions_Backend' overlays = 'Dialog.GlobalOptions.TabWidget'>
<layout type = 'vertical' padding = '0, 0, 0, 0'> <layout type = 'vertical' padding = '16, 16, 16, 16'>
<widget name = 'Container'/> <widget name = 'Container'/>
</layout> </layout>
</dialog> </dialog>
@ -1049,7 +1049,10 @@
</dialog> </dialog>
<dialog name = 'GameOptions_Backend' overlays = 'Dialog.GameOptions.TabWidget'> <dialog name = 'GameOptions_Backend' overlays = 'Dialog.GameOptions.TabWidget'>
<layout type = 'vertical' padding = '0, 0, 0, 0'> <layout type = 'vertical' padding = '16, 16, 16, 16'>
<widget name = 'EnableTabCheckbox'
type = 'Checkbox'
/>
<widget name = 'Container'/> <widget name = 'Container'/>
</layout> </layout>
</dialog> </dialog>
@ -1361,7 +1364,7 @@
</dialog> </dialog>
<dialog name = 'GlobalConfig_Backend' overlays = 'Dialog.GlobalConfig.TabWidget'> <dialog name = 'GlobalConfig_Backend' overlays = 'Dialog.GlobalConfig.TabWidget'>
<layout type = 'vertical' padding = '0, 0, 0, 0'> <layout type = 'vertical' padding = '16, 16, 16, 16'>
<widget name = 'Container'/> <widget name = 'Container'/>
</layout> </layout>
</dialog> </dialog>

View file

@ -289,7 +289,7 @@
</dialog> </dialog>
<dialog name = 'GlobalOptions_Backend' overlays = 'Dialog.GlobalOptions.TabWidget'> <dialog name = 'GlobalOptions_Backend' overlays = 'Dialog.GlobalOptions.TabWidget'>
<layout type = 'vertical' padding = '0, 0, 0, 0'> <layout type = 'vertical' padding = '16, 16, 16, 16'>
<widget name = 'Container'/> <widget name = 'Container'/>
</layout> </layout>
</dialog> </dialog>
@ -1034,7 +1034,10 @@
</dialog> </dialog>
<dialog name = 'GameOptions_Backend' overlays = 'Dialog.GameOptions.TabWidget'> <dialog name = 'GameOptions_Backend' overlays = 'Dialog.GameOptions.TabWidget'>
<layout type = 'vertical' padding = '0, 0, 0, 0'> <layout type = 'vertical' padding = '8, 8, 8, 8'>
<widget name = 'EnableTabCheckbox'
type = 'Checkbox'
/>
<widget name = 'Container'/> <widget name = 'Container'/>
</layout> </layout>
</dialog> </dialog>
@ -1355,7 +1358,7 @@
</dialog> </dialog>
<dialog name = 'GlobalConfig_Backend' overlays = 'Dialog.GlobalConfig.TabWidget'> <dialog name = 'GlobalConfig_Backend' overlays = 'Dialog.GlobalConfig.TabWidget'>
<layout type = 'vertical' padding = '0, 0, 0, 0'> <layout type = 'vertical' padding = '8, 8, 8, 8'>
<widget name = 'Container'/> <widget name = 'Container'/>
</layout> </layout>
</dialog> </dialog>

View file

@ -476,6 +476,15 @@ public:
*/ */
virtual bool save() = 0; virtual bool save() = 0;
/** Implementing classes should return if there are relevant keys set in the configuration domain
*
* @return true if there are relevant keys set in the configuration domain
*/
virtual bool hasKeys() { return true; }
/** Implementing classes should enable or disable all active widgets */
virtual void setEnabled(bool e) {}
void setParentDialog(Dialog *parentDialog) { _parentDialog = parentDialog; } void setParentDialog(Dialog *parentDialog) { _parentDialog = parentDialog; }
void setDomain(const Common::String &domain) { _domain = domain; } void setDomain(const Common::String &domain) { _domain = domain; }