12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- #ifndef CRYINCLUDE_EDITOR_KEYBOARD_CUSTOMIZATION_SETTINGS_H
- #define CRYINCLUDE_EDITOR_KEYBOARD_CUSTOMIZATION_SETTINGS_H
- #pragma once
- #include <QWidget>
- #include <QHash>
- #include <QVector>
- QString RemoveAcceleratorAmpersands(const QString& original);
- class SANDBOX_API KeyboardCustomizationSettings
- {
- public:
- struct Shortcut
- {
- QString text;
- QList<QKeySequence> keySequence;
- };
- using Snapshot = QHash<const QAction*, Shortcut>;
- KeyboardCustomizationSettings(const QString& group, QWidget* parent);
- virtual ~KeyboardCustomizationSettings();
-
- static void EnableShortcutsGlobally(bool);
- static void LoadDefaultsGlobally();
- static void SaveGlobally();
-
- void EnableShortcuts(bool);
- void Load();
- void Load(const Snapshot& snapshot);
- void LoadDefaults();
- void Save();
- Snapshot CreateSnapshot();
- QAction* FindActionForShortcut(QKeySequence) const;
- public:
- static void ExportToFile(QWidget* parentWindow);
- static void ImportFromFile(QWidget* parentWindow);
- private:
- AZ_PUSH_DISABLE_DLL_EXPORT_MEMBER_WARNING
- const QWidget* m_parent;
- const QString m_group;
- const Snapshot m_defaults;
- bool m_shortcutsEnabled;
- Snapshot m_lastEnabledShortcuts;
- AZ_POP_DISABLE_DLL_EXPORT_MEMBER_WARNING
- void LoadFromSnapshot(const Snapshot& snapshot);
- QJsonObject ExportGroup();
- void ImportGroup(const QJsonObject& group);
- void ClearShortcutsAndAccelerators();
- private:
- AZ_PUSH_DISABLE_DLL_EXPORT_MEMBER_WARNING
- static QVector<KeyboardCustomizationSettings*> m_instances;
- AZ_POP_DISABLE_DLL_EXPORT_MEMBER_WARNING
- };
- #endif
|