GUI: Fix the SaveLoadDialog with the lowres layouts

The thumbnail layout element is not available in the lowres layouts.
Issue introduced by c0d8b6d9fc.

Fixes #11304.
This commit is contained in:
Bastien Bouclet 2020-01-05 06:47:17 +01:00
parent c6dcb30f4f
commit 4182c50a92
2 changed files with 18 additions and 3 deletions

View File

@ -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);

View File

@ -164,6 +164,7 @@ private:
String _resultString;
void addThumbnailContainer();
void updateSelection(bool redraw);
};