[Scummvm-cvs-logs] SF.net SVN: scummvm:[33850] scummvm/branches/gsoc2008-vkeybd/backends

kenny-d at users.sourceforge.net kenny-d at users.sourceforge.net
Thu Aug 14 00:20:19 CEST 2008


Revision: 33850
          http://scummvm.svn.sourceforge.net/scummvm/?rev=33850&view=rev
Author:   kenny-d
Date:     2008-08-13 22:20:18 +0000 (Wed, 13 Aug 2008)

Log Message:
-----------
Keymapper: support for saving to config file enabled

Modified Paths:
--------------
    scummvm/branches/gsoc2008-vkeybd/backends/keymapper/action.h
    scummvm/branches/gsoc2008-vkeybd/backends/keymapper/keymap-manager.cpp
    scummvm/branches/gsoc2008-vkeybd/backends/keymapper/keymap.h
    scummvm/branches/gsoc2008-vkeybd/backends/keymapper/remap-dialog.cpp
    scummvm/branches/gsoc2008-vkeybd/backends/keymapper/remap-dialog.h
    scummvm/branches/gsoc2008-vkeybd/backends/vkeybd/vkeybd.zip

Modified: scummvm/branches/gsoc2008-vkeybd/backends/keymapper/action.h
===================================================================
--- scummvm/branches/gsoc2008-vkeybd/backends/keymapper/action.h	2008-08-13 21:37:02 UTC (rev 33849)
+++ scummvm/branches/gsoc2008-vkeybd/backends/keymapper/action.h	2008-08-13 22:20:18 UTC (rev 33850)
@@ -96,6 +96,7 @@
 
 	void addEvent(const Event &evt) { events.push_back(evt); }
 	void setParent(Keymap *parent);
+	Keymap *getParent() { return _parent; }
 	void mapKey(const HardwareKey *key);
 	const HardwareKey *getMappedKey() const;
 

Modified: scummvm/branches/gsoc2008-vkeybd/backends/keymapper/keymap-manager.cpp
===================================================================
--- scummvm/branches/gsoc2008-vkeybd/backends/keymapper/keymap-manager.cpp	2008-08-13 21:37:02 UTC (rev 33849)
+++ scummvm/branches/gsoc2008-vkeybd/backends/keymapper/keymap-manager.cpp	2008-08-13 22:20:18 UTC (rev 33850)
@@ -37,10 +37,8 @@
 
 void KeymapManager::Domain::deleteAllKeyMaps() {
 	KeymapMap::iterator it;
-	for (it = _keymaps.begin(); it != _keymaps.end(); it++) {
-		//it->_value->saveMappings(_configDomain, it->_key);
+	for (it = _keymaps.begin(); it != _keymaps.end(); it++)
 		delete it->_value;
-	}
 	_keymaps.clear();
 }
 
@@ -88,8 +86,11 @@
 void KeymapManager::initKeymap(ConfigManager::Domain *domain, 
 							   Keymap *map) {
 	map->loadMappings(domain, _hardwareKeys);
-	if (map->isComplete(_hardwareKeys) == false)
+	if (map->isComplete(_hardwareKeys) == false) {
 		automaticMap(map);
+		map->saveMappings(domain);
+		ConfMan.flushToDisk();
+	}
 }
 
 // TODO:
@@ -202,7 +203,7 @@
 			act->mapKey(*selectedKey);
 			keys.erase(selectedKey);
 		} else {// no match = no keys left 
-			return;
+			break;
 		}
 	}
 }

Modified: scummvm/branches/gsoc2008-vkeybd/backends/keymapper/keymap.h
===================================================================
--- scummvm/branches/gsoc2008-vkeybd/backends/keymapper/keymap.h	2008-08-13 21:37:02 UTC (rev 33849)
+++ scummvm/branches/gsoc2008-vkeybd/backends/keymapper/keymap.h	2008-08-13 22:20:18 UTC (rev 33850)
@@ -91,6 +91,7 @@
 	/**
 	 * Save this keymap's mappings to the given config domain
 	 * @param domain	config domain to save keymap to
+	 * @note Changes are *not* flushed to disk, to do so call ConfMan.flushToDisk()
 	 */
 	void saveMappings(ConfigManager::Domain *domain);
 

Modified: scummvm/branches/gsoc2008-vkeybd/backends/keymapper/remap-dialog.cpp
===================================================================
--- scummvm/branches/gsoc2008-vkeybd/backends/keymapper/remap-dialog.cpp	2008-08-13 21:37:02 UTC (rev 33849)
+++ scummvm/branches/gsoc2008-vkeybd/backends/keymapper/remap-dialog.cpp	2008-08-13 22:20:18 UTC (rev 33850)
@@ -37,9 +37,6 @@
 RemapDialog::RemapDialog()
 	: Dialog("remap"), _keymapTable(0), _activeRemapAction(0), _topAction(0), _remapTimeout(0) {
 
-	const int screenW = g_system->getOverlayWidth();
-	const int screenH = g_system->getOverlayHeight();
-
 	_keymapper = g_system->getEventManager()->getKeymapper();
 	assert(_keymapper);
 
@@ -95,10 +92,11 @@
 		}
 	}
 
-	Dialog::open();
-	
+	_changes = false;
 	_kmPopUp->setSelected(0);
 	loadKeymap();
+
+	Dialog::open();
 }
 
 void RemapDialog::close() {
@@ -107,6 +105,7 @@
 		free(_keymapTable);
 		_keymapTable = 0;
 	}
+	if (_changes) ConfMan.flushToDisk();
 	Dialog::close();
 }
 
@@ -203,6 +202,8 @@
 		const HardwareKey *hwkey = _keymapper->getHardwareKey(state);
 		if (hwkey) {
 			_activeRemapAction->mapKey(hwkey);
+			// TODO:   _activeRemapAction->getParent()->saveMappings();
+			_changes = true;
 			stopRemapping();
 		}
 	} else {
@@ -285,7 +286,6 @@
 	//_container->draw();
 	_scrollBar->draw();
 
-	uint widgetI = 0;
 	uint actionI = _topAction;
 	for (uint widgetI = 0; widgetI < _keymapWidgets.size(); widgetI++) {
 		ActionWidgets& widg = _keymapWidgets[widgetI];

Modified: scummvm/branches/gsoc2008-vkeybd/backends/keymapper/remap-dialog.h
===================================================================
--- scummvm/branches/gsoc2008-vkeybd/backends/keymapper/remap-dialog.h	2008-08-13 21:37:02 UTC (rev 33849)
+++ scummvm/branches/gsoc2008-vkeybd/backends/keymapper/remap-dialog.h	2008-08-13 22:20:18 UTC (rev 33850)
@@ -83,6 +83,8 @@
 	uint32 _remapTimeout;
 	static const uint32 kRemapTimeoutDelay = 3000;
 
+	bool _changes;
+
 };
 
 } // end of namespace Common


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