[Scummvm-cvs-logs] CVS: scummvm/scumm dialogs.cpp,1.12,1.13 dialogs.h,1.5,1.6

Max Horn fingolfin at users.sourceforge.net
Mon Oct 21 02:39:04 CEST 2002


Update of /cvsroot/scummvm/scummvm/scumm
In directory usw-pr-cvs1:/tmp/cvs-serv25641/scumm

Modified Files:
	dialogs.cpp dialogs.h 
Log Message:
patch #626226 with some mods of my own

Index: dialogs.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/dialogs.cpp,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -d -r1.12 -r1.13
--- dialogs.cpp	19 Oct 2002 01:22:41 -0000	1.12
+++ dialogs.cpp	21 Oct 2002 09:38:42 -0000	1.13
@@ -318,10 +318,7 @@
 
 void SaveLoadDialog::open()
 {
-	_saveMode = false;
-	_saveButton->setState(false);
-	_loadButton->setState(true);
-	fillList();
+	switchToLoadMode();
 
 	ScummDialog::open();
 }
@@ -331,28 +328,24 @@
 	switch (cmd) {
 	case kSaveCmd:
 		if (!_saveMode) {
-			_saveMode = true;
-			_saveButton->setState(true);
-			_loadButton->setState(false);
-			fillList();
-			draw();
+			switchToSaveMode();
 		}
 		break;
 	case kLoadCmd:
 		if (_saveMode) {
-			_saveMode = false;
-			_saveButton->setState(false);
-			_loadButton->setState(true);
-			fillList();
-			draw();
+			switchToLoadMode();
 		}
 		break;
 	case kListItemDoubleClickedCmd:
-		if (_savegameList->getSelected() >= 0 && !_savegameList->getSelectedString().isEmpty()) {
+		if (_savegameList->getSelected() >= 0) {
 			if (_saveMode) {
-				// Start editing the selected item, for saving
-				_savegameList->startEditMode();
-			} else {
+				if (_savegameList->getSelectedString().isEmpty()) {
+					// Start editing the selected item, for saving
+					_savegameList->startEditMode();
+				} else {
+					save();
+				}
+			} else if (!_savegameList->getSelectedString().isEmpty()) {
 				load();
 			}
 		}
@@ -366,6 +359,11 @@
 			}
 		}
 		break;
+	case kListSelectionChangedCmd:
+		if (_saveMode) {
+			_savegameList->startEditMode();
+		}
+		break;
 	case kPlayCmd:
 		close();
 		break;
@@ -413,6 +411,30 @@
 	_scumm->_saveLoadCompatible = false;
 	_scumm->_saveLoadFlag = 2;		// 2 for load. Magic number anyone?
 	close();
+}
+
+void SaveLoadDialog::switchToSaveMode()
+{
+	_saveMode = true;
+	_saveButton->setState(true);
+	_loadButton->setState(false);
+	_saveButton->clearFlags(WIDGET_ENABLED);
+	_loadButton->setFlags(WIDGET_ENABLED);
+	_savegameList->setEditable(true);
+	fillList();
+	draw();
+}
+
+void SaveLoadDialog::switchToLoadMode()
+{
+	_saveMode = false;
+	_saveButton->setState(false);
+	_loadButton->setState(true);
+	_saveButton->setFlags(WIDGET_ENABLED);
+	_loadButton->clearFlags(WIDGET_ENABLED);
+	_savegameList->setEditable(false);
+	fillList();
+	draw();
 }
 
 

Index: dialogs.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/dialogs.h,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -d -r1.5 -r1.6
--- dialogs.h	19 Oct 2002 01:22:41 -0000	1.5
+++ dialogs.h	21 Oct 2002 09:38:42 -0000	1.6
@@ -66,6 +66,8 @@
 	void fillList();
 	void save();
 	void load();
+	void switchToSaveMode();
+	void switchToLoadMode();
 };
 
 





More information about the Scummvm-git-logs mailing list