aboutsummaryrefslogtreecommitdiff
path: root/gui/launcher.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'gui/launcher.cpp')
-rw-r--r--gui/launcher.cpp23
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