diff options
Diffstat (limited to 'gui/launcher.cpp')
-rw-r--r-- | gui/launcher.cpp | 23 |
1 files changed, 14 insertions, 9 deletions
diff --git a/gui/launcher.cpp b/gui/launcher.cpp index a97ebc88d1..f72bdfa795 100644 --- a/gui/launcher.cpp +++ b/gui/launcher.cpp @@ -443,22 +443,26 @@ LauncherDialog::LauncherDialog(GameDetector &detector) // Restore last selection String last = ConfMan.get(String("lastselectedgame"), ConfigManager::kApplicationDomain); - if (!last.isEmpty()) { + selectGame(last); + + // En-/Disable the buttons depending on the list selection + updateButtons(); + + // Create file browser dialog + _browser = new BrowserDialog("Select directory with game data"); +} + +void LauncherDialog::selectGame(const String &name) { + if (!name.isEmpty()) { int itemToSelect = 0; StringList::const_iterator iter; for (iter = _domains.begin(); iter != _domains.end(); ++iter, ++itemToSelect) { - if (last == *iter) { + if (name == *iter) { _list->setSelected(itemToSelect); break; } } } - - // En-/Disable the buttons depending on the list selection - updateButtons(); - - // Create file browser dialog - _browser = new BrowserDialog("Select directory with game data"); } LauncherDialog::~LauncherDialog() { @@ -609,8 +613,9 @@ void LauncherDialog::addGame() { // Write config to disk ConfMan.flushToDisk(); - // Update the ListWidget and force a redraw + // Update the ListWidget, select the new item, and force a redraw updateListing(); + selectGame(domain); draw(); } else { // User aborted, remove the the new domain again |