diff options
author | Johannes Schickel | 2012-07-01 16:07:48 +0200 |
---|---|---|
committer | Johannes Schickel | 2012-07-01 16:49:07 +0200 |
commit | bd3d5fb8ffed3938c68a723d5c5bfbb6b56fb0ec (patch) | |
tree | abd363915ff1f3c6ab48a119b19935a4a6726597 /gui/saveload.cpp | |
parent | 236db5ed87acf603898243734e2c5273c23568cb (diff) | |
download | scummvm-rg350-bd3d5fb8ffed3938c68a723d5c5bfbb6b56fb0ec.tar.gz scummvm-rg350-bd3d5fb8ffed3938c68a723d5c5bfbb6b56fb0ec.tar.bz2 scummvm-rg350-bd3d5fb8ffed3938c68a723d5c5bfbb6b56fb0ec.zip |
GUI: Clean up save load chooser selection code.
Diffstat (limited to 'gui/saveload.cpp')
-rw-r--r-- | gui/saveload.cpp | 30 |
1 files changed, 14 insertions, 16 deletions
diff --git a/gui/saveload.cpp b/gui/saveload.cpp index 7f3dd6d5d8..12e62122fe 100644 --- a/gui/saveload.cpp +++ b/gui/saveload.cpp @@ -40,18 +40,20 @@ SaveLoadChooser::~SaveLoadChooser() { } void SaveLoadChooser::selectChooser(const MetaEngine &engine) { - delete _impl; - _impl = 0; + const SaveLoadChooserType requestedType = getRequestedSaveLoadDialog(_saveMode, engine); + if (!_impl || _impl->getType() != requestedType) { + delete _impl; + _impl = 0; - Common::String userConfig = ConfMan.get("gui_saveload_chooser", Common::ConfigManager::kApplicationDomain); + switch (requestedType) { + case kSaveLoadDialogGrid: + _impl = new LoadChooserThumbnailed(_title); + break; - if (!_saveMode && g_gui.getWidth() >= 640 && g_gui.getHeight() >= 400 - && engine.hasFeature(MetaEngine::kSavesSupportMetaInfo) - && engine.hasFeature(MetaEngine::kSavesSupportThumbnail) - && userConfig.equalsIgnoreCase("grid")) { - _impl = new LoadChooserThumbnailed(_title); - } else { - _impl = new SaveLoadChooserSimple(_title, _buttonLabel, _saveMode); + case kSaveLoadDialogList: + _impl = new SaveLoadChooserSimple(_title, _buttonLabel, _saveMode); + break; + } } } @@ -90,12 +92,8 @@ int SaveLoadChooser::runModalWithPluginAndTarget(const EnginePlugin *plugin, con do { ret = _impl->run(target, &(**plugin)); - if (ret == kSwitchToList) { - delete _impl; - _impl = new SaveLoadChooserSimple(_title, _buttonLabel, _saveMode); - } else if (ret == kSwitchToGrid) { - delete _impl; - _impl = new LoadChooserThumbnailed(_title); + if (ret == kSwitchSaveLoadDialog) { + selectChooser(**plugin); } } while (ret < -1); |