mirror of
https://github.com/WerWolv/ImHex.git
synced 2026-04-01 21:17:44 -05:00
fix: Shortcuts acting as duplicates in settings
This commit is contained in:
@@ -54,7 +54,26 @@ namespace hex {
|
||||
return m_keys.contains(CurrentView);
|
||||
}
|
||||
|
||||
const std::set<Key>& Shortcut::getKeys() const { return m_keys; }
|
||||
const std::set<Key>& Shortcut::getKeys() const {
|
||||
return m_keys;
|
||||
}
|
||||
|
||||
bool Shortcut::has(Key key) const {
|
||||
return m_keys.contains(key);
|
||||
}
|
||||
|
||||
bool Shortcut::matches(const Shortcut& other) const {
|
||||
auto left = this->m_keys;
|
||||
auto right = other.m_keys;
|
||||
|
||||
left.erase(CurrentView);
|
||||
left.erase(AllowWhileTyping);
|
||||
right.erase(CurrentView);
|
||||
right.erase(AllowWhileTyping);
|
||||
|
||||
return left == right;
|
||||
}
|
||||
|
||||
|
||||
std::string Shortcut::toString() const {
|
||||
std::string result;
|
||||
@@ -342,10 +361,13 @@ namespace hex {
|
||||
return true;
|
||||
}
|
||||
|
||||
bool ShortcutManager::updateShortcut(const Shortcut &oldShortcut, const Shortcut &newShortcut, View *view) {
|
||||
if (oldShortcut == newShortcut)
|
||||
bool ShortcutManager::updateShortcut(const Shortcut &oldShortcut, Shortcut newShortcut, View *view) {
|
||||
if (oldShortcut.matches(newShortcut))
|
||||
return true;
|
||||
|
||||
if (oldShortcut.has(AllowWhileTyping))
|
||||
newShortcut += AllowWhileTyping;
|
||||
|
||||
bool result;
|
||||
if (view != nullptr) {
|
||||
result = updateShortcutImpl(oldShortcut + CurrentView, newShortcut + CurrentView , view->m_shortcuts);
|
||||
|
||||
Reference in New Issue
Block a user