1 // Copyright 2001-2018 Crytek GmbH / Crytek Group. All rights reserved.
4 #include "KeyboardShortcut.h"
6 CKeyboardShortcut::StandardKey
CKeyboardShortcut::StringToStandardKey(const char* str
)
8 if (stricmp(str
, STRINGIFY(HelpWiki
)) == 0) return StandardKey::HelpWiki
;
9 else if (stricmp(str
, STRINGIFY(HelpToolTip
)) == 0) return StandardKey::HelpToolTip
;
10 else if (stricmp(str
, STRINGIFY(Open
)) == 0) return StandardKey::Open
;
11 else if (stricmp(str
, STRINGIFY(Close
)) == 0) return StandardKey::Close
;
12 else if (stricmp(str
, STRINGIFY(Save
)) == 0) return StandardKey::Save
;
13 else if (stricmp(str
, STRINGIFY(SaveAs
)) == 0) return StandardKey::SaveAs
;
14 else if (stricmp(str
, STRINGIFY(New
)) == 0) return StandardKey::New
;
15 else if (stricmp(str
, STRINGIFY(Delete
)) == 0) return StandardKey::Delete
;
16 else if (stricmp(str
, STRINGIFY(Cut
)) == 0) return StandardKey::Cut
;
17 else if (stricmp(str
, STRINGIFY(Copy
)) == 0) return StandardKey::Copy
;
18 else if (stricmp(str
, STRINGIFY(Paste
)) == 0) return StandardKey::Paste
;
19 else if (stricmp(str
, STRINGIFY(Undo
)) == 0) return StandardKey::Undo
;
20 else if (stricmp(str
, STRINGIFY(Redo
)) == 0) return StandardKey::Redo
;
21 else if (stricmp(str
, STRINGIFY(Back
)) == 0) return StandardKey::Back
;
22 else if (stricmp(str
, STRINGIFY(Forward
)) == 0) return StandardKey::Forward
;
23 else if (stricmp(str
, STRINGIFY(Refresh
)) == 0) return StandardKey::Refresh
;
24 else if (stricmp(str
, STRINGIFY(ZoomIn
)) == 0) return StandardKey::ZoomIn
;
25 else if (stricmp(str
, STRINGIFY(ZoomOut
)) == 0) return StandardKey::ZoomOut
;
26 else if (stricmp(str
, STRINGIFY(Print
)) == 0) return StandardKey::Print
;
27 else if (stricmp(str
, STRINGIFY(AddTab
)) == 0) return StandardKey::AddTab
;
28 else if (stricmp(str
, STRINGIFY(Find
)) == 0) return StandardKey::Find
;
29 else if (stricmp(str
, STRINGIFY(FindNext
)) == 0) return StandardKey::FindNext
;
30 else if (stricmp(str
, STRINGIFY(FindPrevious
)) == 0) return StandardKey::FindPrevious
;
31 else if (stricmp(str
, STRINGIFY(Replace
)) == 0) return StandardKey::Replace
;
32 else if (stricmp(str
, STRINGIFY(SelectAll
)) == 0) return StandardKey::SelectAll
;
33 else if (stricmp(str
, STRINGIFY(SelectNone
)) == 0) return StandardKey::SelectNone
;
34 else if (stricmp(str
, STRINGIFY(Preferences
)) == 0) return StandardKey::Preferences
;
35 else if (stricmp(str
, STRINGIFY(Quit
)) == 0) return StandardKey::Quit
;
36 else if (stricmp(str
, STRINGIFY(FullScreen
)) == 0) return StandardKey::FullScreen
;
37 else return StandardKey::Count
;
40 QList
<QKeySequence
> CKeyboardShortcut::ToKeySequence() const
42 //Note : Some of the shortcuts may not be desired, specialize per platform to control how the standard shortcuts behave
47 case CKeyboardShortcut::StandardKey::HelpWiki
:
48 return QKeySequence::keyBindings(QKeySequence::HelpContents
);
49 case CKeyboardShortcut::StandardKey::HelpToolTip
:
50 return QKeySequence::keyBindings(QKeySequence::WhatsThis
);
51 case CKeyboardShortcut::StandardKey::Open
:
52 return QKeySequence::keyBindings(QKeySequence::Open
);
53 case CKeyboardShortcut::StandardKey::Close
:
55 QList
<QKeySequence
> list
;
56 list
.append(QKeySequence("Ctrl+W"));
59 case CKeyboardShortcut::StandardKey::Save
:
60 return QKeySequence::keyBindings(QKeySequence::Save
);
61 case CKeyboardShortcut::StandardKey::SaveAs
:
62 return QKeySequence::keyBindings(QKeySequence::SaveAs
);
63 case CKeyboardShortcut::StandardKey::New
:
64 return QKeySequence::keyBindings(QKeySequence::New
);
65 case CKeyboardShortcut::StandardKey::Delete
:
66 return QKeySequence::keyBindings(QKeySequence::Delete
);
67 case CKeyboardShortcut::StandardKey::Cut
:
68 return QKeySequence::keyBindings(QKeySequence::Cut
);
69 case CKeyboardShortcut::StandardKey::Copy
:
70 return QKeySequence::keyBindings(QKeySequence::Copy
);
71 case CKeyboardShortcut::StandardKey::Paste
:
72 return QKeySequence::keyBindings(QKeySequence::Paste
);
73 case CKeyboardShortcut::StandardKey::Undo
:
74 return QKeySequence::keyBindings(QKeySequence::Undo
);
75 case CKeyboardShortcut::StandardKey::Redo
:
76 return QKeySequence::keyBindings(QKeySequence::Redo
);
77 case CKeyboardShortcut::StandardKey::Back
:
78 return QKeySequence::keyBindings(QKeySequence::Back
);
79 case CKeyboardShortcut::StandardKey::Forward
:
80 return QKeySequence::keyBindings(QKeySequence::Forward
);
81 case CKeyboardShortcut::StandardKey::Refresh
:
83 QList
<QKeySequence
> list
;
84 list
.append(QKeySequence("Ctrl+R"));
87 case CKeyboardShortcut::StandardKey::ZoomIn
:
88 return QKeySequence::keyBindings(QKeySequence::ZoomIn
);
89 case CKeyboardShortcut::StandardKey::ZoomOut
:
90 return QKeySequence::keyBindings(QKeySequence::ZoomOut
);
91 case CKeyboardShortcut::StandardKey::Print
:
92 return QKeySequence::keyBindings(QKeySequence::Print
);
93 case CKeyboardShortcut::StandardKey::AddTab
:
94 return QKeySequence::keyBindings(QKeySequence::AddTab
);
95 case CKeyboardShortcut::StandardKey::Find
:
96 return QKeySequence::keyBindings(QKeySequence::Find
);
97 case CKeyboardShortcut::StandardKey::FindNext
:
99 QList
<QKeySequence
> list
;
100 list
.append(QKeySequence("F3"));
103 case CKeyboardShortcut::StandardKey::FindPrevious
:
105 QList
<QKeySequence
> list
;
106 list
.append(QKeySequence("Shift+F3"));
109 case CKeyboardShortcut::StandardKey::Replace
:
110 return QKeySequence::keyBindings(QKeySequence::Replace
);
111 case CKeyboardShortcut::StandardKey::SelectAll
:
112 return QKeySequence::keyBindings(QKeySequence::SelectAll
);
113 case CKeyboardShortcut::StandardKey::SelectNone
:
114 return QKeySequence::keyBindings(QKeySequence::Deselect
);
115 case CKeyboardShortcut::StandardKey::Preferences
:
116 return QKeySequence::keyBindings(QKeySequence::Preferences
);
117 case CKeyboardShortcut::StandardKey::Quit
:
118 return QKeySequence::keyBindings(QKeySequence::Quit
);
119 case CKeyboardShortcut::StandardKey::FullScreen
:
120 return QKeySequence::keyBindings(QKeySequence::FullScreen
);
125 else if (!GetString().empty())
127 return QKeySequence::listFromString(GetString().c_str());
130 return QList
<QKeySequence
>();