void KeyPressMappingSet::resetToDefaultMapping (const CommandID commandID) { clearAllKeyPresses (commandID); const ApplicationCommandInfo* const ci = commandManager->getCommandForID (commandID); for (int j = 0; j < ci->defaultKeypresses.size(); ++j) { addKeyPress (ci->commandID, ci->defaultKeypresses.getReference (j)); } }
void KeyPressMappingSet::resetToDefaultMappings() { mappings.clear(); for (int i = 0; i < commandManager->getNumCommands(); ++i) { const ApplicationCommandInfo* const ci = commandManager->getCommandForIndex (i); for (int j = 0; j < ci->defaultKeypresses.size(); ++j) { addKeyPress (ci->commandID, ci->defaultKeypresses.getReference (j)); } } sendChangeMessage(); }
//============================================================================== bool KeyPressMappingSet::restoreFromXml (const XmlElement& xmlVersion) { if (xmlVersion.hasTagName ("KEYMAPPINGS")) { if (xmlVersion.getBoolAttribute ("basedOnDefaults", true)) { // if the XML was created as a set of differences from the default mappings, // (i.e. by calling createXml (true)), then we need to first restore the defaults. resetToDefaultMappings(); } else { // if the XML was created calling createXml (false), then we need to clear all // the keys and treat the xml as describing the entire set of mappings. clearAllKeyPresses(); } forEachXmlChildElement (xmlVersion, map) { const CommandID commandId = map->getStringAttribute ("commandId").getHexValue32(); if (commandId != 0) { const KeyPress key (KeyPress::createFromDescription (map->getStringAttribute ("key"))); if (map->hasTagName ("MAPPING")) { addKeyPress (commandId, key); } else if (map->hasTagName ("UNMAPPING")) { for (int i = mappings.size(); --i >= 0;) if (mappings.getUnchecked(i)->commandID == commandId) mappings.getUnchecked(i)->keypresses.removeAllInstancesOf (key); } } } return true; } return false; }