!XT (BREAK-16) (Sandbox) Remove double-newlines at the end of files.
[CRYENGINE.git] / Code / Sandbox / Plugins / EditorCommon / KeyboardShortcut.cpp
blobc0ed8136bb0efeb8fb5b7c7d781e00b80ca7ec19
1 // Copyright 2001-2018 Crytek GmbH / Crytek Group. All rights reserved.
3 #include "StdAfx.h"
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
43 if (IsStandardKey())
45 switch (GetKey())
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"));
57 return list;
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"));
85 return list;
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"));
101 return list;
103 case CKeyboardShortcut::StandardKey::FindPrevious:
105 QList<QKeySequence> list;
106 list.append(QKeySequence("Shift+F3"));
107 return list;
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);
121 default:
122 break;
125 else if (!GetString().empty())
127 return QKeySequence::listFromString(GetString().c_str());
130 return QList<QKeySequence>();