diff options
author | Bastien Bouclet | 2020-01-05 06:47:17 +0100 |
---|---|---|
committer | Bastien Bouclet | 2020-01-05 08:34:24 +0100 |
commit | 4182c50a92822fb21d2582e2293068777a7ccc15 (patch) | |
tree | 0d40162e81f6904b4ded705885e7643b7f011535 | |
parent | c6dcb30f4fe11158566c7f51b4d631e5706dae03 (diff) | |
download | scummvm-rg350-4182c50a92822fb21d2582e2293068777a7ccc15.tar.gz scummvm-rg350-4182c50a92822fb21d2582e2293068777a7ccc15.tar.bz2 scummvm-rg350-4182c50a92822fb21d2582e2293068777a7ccc15.zip |
GUI: Fix the SaveLoadDialog with the lowres layouts
The thumbnail layout element is not available in the lowres layouts.
Issue introduced by c0d8b6d9fc73abc8de4575686e0776e3468d37b2.
Fixes #11304.
-rw-r--r-- | gui/saveload-dialog.cpp | 20 | ||||
-rw-r--r-- | gui/saveload-dialog.h | 1 |
2 files changed, 18 insertions, 3 deletions
diff --git a/gui/saveload-dialog.cpp b/gui/saveload-dialog.cpp index cca3a4d5b8..d300e91bda 100644 --- a/gui/saveload-dialog.cpp +++ b/gui/saveload-dialog.cpp @@ -372,7 +372,8 @@ enum { }; SaveLoadChooserSimple::SaveLoadChooserSimple(const String &title, const String &buttonLabel, bool saveMode) - : SaveLoadChooserDialog("SaveLoadChooser", saveMode), _list(0), _chooseButton(0), _deleteButton(0), _gfxWidget(0) { + : SaveLoadChooserDialog("SaveLoadChooser", saveMode), _list(0), _chooseButton(0), _deleteButton(0), _gfxWidget(0), + _container(0) { _backgroundType = ThemeEngine::kDialogBackgroundSpecial; new StaticTextWidget(this, "SaveLoadChooser.Title", title); @@ -398,7 +399,18 @@ SaveLoadChooserSimple::SaveLoadChooserSimple(const String &title, const String & _delSupport = _metaInfoSupport = _thumbnailSupport = false; - _container = new ContainerWidget(this, "SaveLoadChooser.Thumbnail"); + addThumbnailContainer(); +} + +void SaveLoadChooserSimple::addThumbnailContainer() { + // When switching layouts, create / remove the thumbnail container as needed + if (g_gui.xmlEval()->getVar("Globals.SaveLoadChooser.ExtInfo.Visible") == 1 && !_container) { + _container = new ContainerWidget(this, "SaveLoadChooser.Thumbnail"); + } else if (g_gui.xmlEval()->getVar("Globals.SaveLoadChooser.ExtInfo.Visible") == 0 && _container) { + removeWidget(_container); + delete _container; + _container = nullptr; + } } int SaveLoadChooserSimple::runIntern() { @@ -471,6 +483,8 @@ void SaveLoadChooserSimple::handleCommand(CommandSender *sender, uint32 cmd, uin } void SaveLoadChooserSimple::reflowLayout() { + addThumbnailContainer(); + SaveLoadChooserDialog::reflowLayout(); if (g_gui.xmlEval()->getVar("Globals.SaveLoadChooser.ExtInfo.Visible") == 1 && (_thumbnailSupport || _saveDateSupport || _playTimeSupport)) { @@ -531,7 +545,7 @@ void SaveLoadChooserSimple::reflowLayout() { updateSelection(false); } else { - _container->setVisible(false); + if (_container) _container->setVisible(false); _gfxWidget->setVisible(false); _date->setVisible(false); _time->setVisible(false); diff --git a/gui/saveload-dialog.h b/gui/saveload-dialog.h index 43721aa270..b4820ff56e 100644 --- a/gui/saveload-dialog.h +++ b/gui/saveload-dialog.h @@ -164,6 +164,7 @@ private: String _resultString; + void addThumbnailContainer(); void updateSelection(bool redraw); }; |