#32 use remove/add to replace hotkey

possible workaround for "edited hotkey" not working
This commit is contained in:
Klaus Basan
2020-06-08 02:18:54 +02:00
committed by Mat Sutcliffe
parent 7981815ddf
commit 637bae5bb6
3 changed files with 15 additions and 8 deletions

View File

@@ -131,9 +131,13 @@ namespace BlackGui
void CSettingsHotkeyComponent::updateHotkeyInSettings(const CActionHotkey &oldValue, const CActionHotkey &newValue) void CSettingsHotkeyComponent::updateHotkeyInSettings(const CActionHotkey &oldValue, const CActionHotkey &newValue)
{ {
CActionHotkeyList actionHotkeyList(m_actionHotkeys.getThreadLocal()); //! \todo KB 2020-06 since there are many users reporting issues with replacing hotkey we use remove/add
actionHotkeyList.replace(oldValue, newValue); this->removeHotkeyFromSettings(oldValue);
m_actionHotkeys.set(actionHotkeyList); this->addHotkeyToSettings(newValue);
// CActionHotkeyList actionHotkeyList(m_actionHotkeys.getThreadLocal());
// actionHotkeyList.replace(oldValue, newValue);
// m_actionHotkeys.set(actionHotkeyList);
} }
void CSettingsHotkeyComponent::removeHotkeyFromSettings(const CActionHotkey &actionHotkey) void CSettingsHotkeyComponent::removeHotkeyFromSettings(const CActionHotkey &actionHotkey)

View File

@@ -66,8 +66,11 @@ namespace BlackMisc
const CIdentifier comparison("comparison for local machine"); const CIdentifier comparison("comparison for local machine");
for (CActionHotkey &actionHotkey : *this) for (CActionHotkey &actionHotkey : *this)
{ {
const bool sameMachine = actionHotkey.getIdentifier().hasSameMachineNameOrId(comparison); // to avoid issue we always update
if (sameMachine) { actionHotkey.updateToCurrentMachine(); } actionHotkey.updateToCurrentMachine();
// const bool sameMachine = actionHotkey.getIdentifier().hasSameMachineNameOrId(comparison);
// if (sameMachine) { actionHotkey.updateToCurrentMachine(); }
} }
} }
} // ns } // ns