[Scummvm-cvs-logs] SF.net SVN: scummvm:[50468] scummvm/trunk/gui/options.cpp

lordhoto at users.sourceforge.net lordhoto at users.sourceforge.net
Tue Jun 29 01:41:43 CEST 2010


Revision: 50468
          http://scummvm.svn.sourceforge.net/scummvm/?rev=50468&view=rev
Author:   lordhoto
Date:     2010-06-28 23:41:43 +0000 (Mon, 28 Jun 2010)

Log Message:
-----------
Fix regression from r50382, which triggered an assert when clicking "OK" in the GMM's options dialog.

The problem here is that our ConfigDialog uses "" as domain name,
this will result in the assert in common/config-manager.cpp:323
getting triggered, when using ConfMan.removeKey.

Since setting the domain to the game's domain does not seem save
according to the FIXME in gui/dialogs.cpp about this domain hackery,
I decided to adapt the OptionsDialog to only call ConfMan.removeKey
for "music_driver" etc., when the music driver widgets are present.
This is consistent with the over uses of removeKey in
OptionsDialog::close too.

Modified Paths:
--------------
    scummvm/trunk/gui/options.cpp

Modified: scummvm/trunk/gui/options.cpp
===================================================================
--- scummvm/trunk/gui/options.cpp	2010-06-28 23:34:06 UTC (rev 50467)
+++ scummvm/trunk/gui/options.cpp	2010-06-28 23:41:43 UTC (rev 50468)
@@ -364,14 +364,16 @@
 		}
 
 		// Audio options
-		if (_enableAudioSettings) {
-			saveMusicDeviceSetting(_midiPopUp, "music_driver", musicDeviceSkipSettingDefault);
-			saveMusicDeviceSetting(_mt32DevicePopUp, "mt32_device", musicDeviceSkipSettingSpec);
-			saveMusicDeviceSetting(_gmDevicePopUp, "gm_device", musicDeviceSkipSettingSpec);
-		} else {
-			ConfMan.removeKey("music_driver", _domain);
-			ConfMan.removeKey("mt32_device", _domain);
-			ConfMan.removeKey("gm_device", _domain);
+		if (_midiPopUp) {
+			if (_enableAudioSettings) {
+				saveMusicDeviceSetting(_midiPopUp, "music_driver", musicDeviceSkipSettingDefault);
+				saveMusicDeviceSetting(_mt32DevicePopUp, "mt32_device", musicDeviceSkipSettingSpec);
+				saveMusicDeviceSetting(_gmDevicePopUp, "gm_device", musicDeviceSkipSettingSpec);
+			} else {
+				ConfMan.removeKey("music_driver", _domain);
+				ConfMan.removeKey("mt32_device", _domain);
+				ConfMan.removeKey("gm_device", _domain);
+			}
 		}
 
 		if (_oplPopUp) {


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.




More information about the Scummvm-git-logs mailing list