[Scummvm-cvs-logs] CVS: scummvm/gui launcher.cpp,1.23,1.24

Max Horn fingolfin at users.sourceforge.net
Thu Nov 21 09:26:04 CET 2002


Update of /cvsroot/scummvm/scummvm/gui
In directory sc8-pr-cvs1:/tmp/cvs-serv30118/gui

Modified Files:
	launcher.cpp 
Log Message:
enhanced Config::rename_domain; added the ability to change the domain name in EditGameDialog

Index: launcher.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/gui/launcher.cpp,v
retrieving revision 1.23
retrieving revision 1.24
diff -u -d -r1.23 -r1.24
--- launcher.cpp	21 Nov 2002 16:56:29 -0000	1.23
+++ launcher.cpp	21 Nov 2002 17:25:31 -0000	1.24
@@ -80,20 +80,21 @@
 	Config			&_config;
 	const String	&_domain;
 	EditTextWidget	*_descriptionWidget;
+	EditTextWidget	*_domainWidget;
 };
 
 EditGameDialog::EditGameDialog(NewGui *gui, Config &config, const String &domain)
-	: Dialog(gui, 10, 40, 320-2*10, 200-2*40), _config(config), _domain(domain)
+	: Dialog(gui, 8, 50, 320-2*8, 200-2*40), _config(config), _domain(domain)
 {
 	// Determine the description string
-	String name(_config.get("gameid", _domain));
+	String gameid(_config.get("gameid", _domain));
 	String description(_config.get("description", _domain));
-	if (name.isEmpty())
-		name = _domain;
+	if (gameid.isEmpty())
+		gameid = _domain;
 	if (description.isEmpty()) {
 		const VersionSettings *v = version_settings;
 		while (v->filename) {
-			if (!scumm_stricmp(v->filename, name.c_str())) {
+			if (!scumm_stricmp(v->filename, gameid.c_str())) {
 				description = v->gamename;
 				break;
 			}
@@ -101,15 +102,20 @@
 		}
 	}
 	
+	// Label & edit widget for the game ID
+	new StaticTextWidget(this, 10, 10, 40, kLineHeight, "ID: ", kTextAlignRight);
+	_domainWidget =
+		new EditTextWidget(this, 50, 10, _w-50-10, kLineHeight, _domain);
+	
 	// Label & edit widget for the description
-	new StaticTextWidget(this, 10, 10, 40, kLineHeight, "Name: ", kTextAlignRight);
+	new StaticTextWidget(this, 10, 26, 40, kLineHeight, "Name: ", kTextAlignRight);
 	_descriptionWidget =
-		new EditTextWidget(this, 50, 10, _w-50-10, kLineHeight, description);
+		new EditTextWidget(this, 50, 26, _w-50-10, kLineHeight, description);
 
 	// Path to game data (view only)
 	String path(_config.get("path", _domain));
-	new StaticTextWidget(this, 10, 24, 40, kLineHeight, "Path: ", kTextAlignRight);
-	new StaticTextWidget(this, 50, 24, _w-50-10, kLineHeight, path, kTextAlignLeft);
+	new StaticTextWidget(this, 10, 42, 40, kLineHeight, "Path: ", kTextAlignRight);
+	new StaticTextWidget(this, 50, 42, _w-50-10, kLineHeight, path, kTextAlignLeft);
 	
 	// TODO - insert more widgets here; see comments before the class
 
@@ -121,11 +127,21 @@
 void EditGameDialog::handleCommand(CommandSender *sender, uint32 cmd, uint32 data)
 {
 	switch (cmd) {
-	case kOKCmd:
+	case kOKCmd: {
 		// Write back changes made to config object
-		_config.set("description", _descriptionWidget->getLabel(), _domain);
+		String newDomain(_domainWidget->getLabel());
+		if (newDomain != _domain) {
+			if (newDomain.isEmpty() || _config.has_domain(newDomain)) {
+				MessageDialog alert(_gui, "This game ID is already taken. Please choose another one.");
+				alert.runModal();
+				return;
+			}
+			_config.rename_domain(_domain, newDomain);
+		}
+		_config.set("description", _descriptionWidget->getLabel(), newDomain);
 		setResult(1);
 		close();
+		}
 		break;
 	default:
 		Dialog::handleCommand(sender, cmd, data);





More information about the Scummvm-git-logs mailing list