45 Qt::KeyboardModifiers modifiers,
47 bool wheel =
false ) :
48 m_buttons { buttons }, m_modifiers { modifiers }, m_key { key }, m_wheel { wheel } {}
54 Qt::KeyboardModifiers modifiers = Qt::NoModifier ) :
55 m_buttons { buttons }, m_modifiers { modifiers } {}
60 explicit EventBinding(
int key, Qt::KeyboardModifiers modifiers = Qt::NoModifier ) :
61 m_modifiers { modifiers }, m_key { key } {}
60 explicit EventBinding(
int key, Qt::KeyboardModifiers modifiers = Qt::NoModifier ) : {
…}
66 explicit EventBinding(
bool wheel, Qt::KeyboardModifiers modifiers = Qt::NoModifier ) :
67 m_modifiers { modifiers }, m_wheel { wheel } {}
66 explicit EventBinding(
bool wheel, Qt::KeyboardModifiers modifiers = Qt::NoModifier ) : {
…}
69 bool isMouseEvent() {
return m_buttons != Qt::NoButton; }
70 bool isWheelEvent() {
return m_wheel; }
71 bool isKeyEvent() {
return !isMouseEvent() && !isWheelEvent(); }
72 bool operator<(
const EventBinding& b )
const;
75 Qt::MouseButtons m_buttons { Qt::NoButton };
76 Qt::KeyboardModifiers m_modifiers { Qt::NoModifier };
79 bool m_wheel {
false };
87 void loadConfiguration(
const std::string& filename = {} );
92 bool saveConfiguration(
const std::string& filename = {} );
95 void reloadConfiguration();
97 std::string getLoadedFilename() {
return m_file->fileName().toStdString(); }
105 KeyMappingAction getAction(
const Context& context,
106 const Qt::MouseButtons& buttons,
107 const Qt::KeyboardModifiers& modifiers,
109 bool wheel =
false );
111 getAction(
const Context& context,
const QEvent* event,
int key,
bool wheel =
false );
112 KeyMappingAction getAction(
const Context& context,
const EventBinding& binding );
116 std::optional<EventBinding> getBinding(
const Context& context, KeyMappingAction action );
120 KeyMappingAction addAction(
const Context& context,
const std::string& actionName );
125 addAction(
const Context& context,
const EventBinding& binding,
const std::string& actionName );
130 void setActionBinding(
const Context& context,
131 const EventBinding& binding,
132 const KeyMappingAction& action );
140 Context addContext(
const std::string& contextName );
145 Context getContext(
const std::string& contextName );
152 KeyMappingAction getAction(
const Context& context,
const std::string& actionName );
155 std::string getActionName(
const Context& context,
const KeyMappingAction& action );
158 std::string getContextName(
const Context& context );
161 int addListener( Observable::Observer callback );
165 void removeListener(
int callbackId );
172 static std::string enumNamesFromMouseButtons(
const Qt::MouseButtons& buttons );
176 static std::string enumNamesFromKeyboardModifiers(
const Qt::KeyboardModifiers& modifiers );
181 static EventBinding createEventBindingFromStrings(
const std::string& buttonsString =
"",
188 ~KeyMappingManager();
191 void saveNode( QXmlStreamWriter& stream,
const QDomNode& domNode );
192 void saveKeymap( QXmlStreamWriter& stream );
194 void loadConfigurationInternal(
const QDomDocument& domDocument );
195 void loadConfigurationTagsInternal( QDomElement& node );
196 KeyMappingAction loadConfigurationMappingInternal(
const std::string& context,
206 static Qt::KeyboardModifiers getQtModifiersValue(
const std::string& modifierString );
211 static Qt::MouseButtons getQtMouseButtonsValue(
const std::string& buttonsString );
212 static int getKeyCode(
const std::string& keyString );
221 ContextNameMap m_contextNameToIndex;