31 #include <QtCore/QDate>
32 #include <QtCore/QFile>
33 #include <QtCore/QCoreApplication>
34 #include <QtCore/QTextStream>
35 #include <QtCore/QStringList>
39 if ( key ==
"Alt" || key ==
"Ctrl" || key ==
"Enter" || key ==
"Esc" ||
40 key ==
"Shift" || key ==
"Tab" ) {
41 return QString(
'&' + key +
';');
43 if ( key ==
"Left" || key ==
"Right" || key ==
"Up" || key ==
"Down" ) {
44 return QString(
"<keysym>" + key +
" Arrow</keysym>");
46 if ( key ==
"Backspace" || key ==
"Menu" ) {
47 return QString(
"<keysym>" + key +
"</keysym>");
49 if ( key ==
"Plus" ) {
50 return QString(
"<keycap>+</keycap>");
52 if ( key ==
"Minus" ) {
53 return QString(
"<keycap>-</keycap>");
55 return QString(
"<keycap>" + key +
"</keycap>");
60 QString markup =
"<!ENTITY KeyCombo_";
67 case KStandardShortcut::AccelNone:
69 case KStandardShortcut::Open:
72 case KStandardShortcut::OpenRecent:
73 markup +=
"OpenRecent";
75 case KStandardShortcut::New:
78 case KStandardShortcut::Close:
81 case KStandardShortcut::Save:
84 case KStandardShortcut::SaveAs:
87 case KStandardShortcut::Print:
90 case KStandardShortcut::Quit:
93 case KStandardShortcut::Undo:
96 case KStandardShortcut::Redo:
99 case KStandardShortcut::Cut:
102 case KStandardShortcut::Copy:
105 case KStandardShortcut::Paste:
108 case KStandardShortcut::SelectAll:
109 markup +=
"SelectAll";
111 case KStandardShortcut::Deselect:
112 markup +=
"Deselect";
114 case KStandardShortcut::DeleteWordBack:
115 markup +=
"DeleteWordBack";
117 case KStandardShortcut::DeleteWordForward:
118 markup +=
"DeleteWordForward";
120 case KStandardShortcut::Find:
123 case KStandardShortcut::FindNext:
124 markup +=
"FindNext";
126 case KStandardShortcut::FindPrev:
127 markup +=
"FindPrev";
129 case KStandardShortcut::Replace:
132 case KStandardShortcut::Home:
135 case KStandardShortcut::Begin:
138 case KStandardShortcut::End:
141 case KStandardShortcut::Prior:
144 case KStandardShortcut::Next:
147 case KStandardShortcut::GotoLine:
148 markup +=
"GotoLine";
150 case KStandardShortcut::AddBookmark:
151 markup +=
"AddBookmark";
153 case KStandardShortcut::ZoomIn:
156 case KStandardShortcut::ZoomOut:
159 case KStandardShortcut::Up:
162 case KStandardShortcut::Back:
165 case KStandardShortcut::Forward:
168 case KStandardShortcut::Reload:
171 case KStandardShortcut::ShowMenubar:
172 markup +=
"ShowMenubar";
174 case KStandardShortcut::Help:
177 case KStandardShortcut::WhatsThis:
178 markup +=
"WhatsThis";
180 case KStandardShortcut::TextCompletion:
181 markup +=
"TextCompletion";
183 case KStandardShortcut::PrevCompletion:
184 markup +=
"PrevCompletion";
186 case KStandardShortcut::NextCompletion:
187 markup +=
"NextCompletion";
189 case KStandardShortcut::SubstringCompletion:
190 markup +=
"SubstringCompletion";
192 case KStandardShortcut::RotateUp:
193 markup +=
"RotateUp";
195 case KStandardShortcut::RotateDown:
196 markup +=
"RotateDown";
198 case KStandardShortcut::TabNext:
201 case KStandardShortcut::TabPrev:
204 case KStandardShortcut::FullScreen:
205 markup +=
"FullScreen";
207 case KStandardShortcut::BackwardWord:
208 markup +=
"BackwardWord";
210 case KStandardShortcut::ForwardWord:
211 markup +=
"ForwardWord";
213 case KStandardShortcut::BeginningOfLine:
214 markup +=
"BeginningOfLine";
216 case KStandardShortcut::EndOfLine:
217 markup +=
"EndOfLine";
219 case KStandardShortcut::PasteSelection:
220 markup +=
"PastSelection";
222 case KStandardShortcut::Revert:
225 case KStandardShortcut::PrintPreview:
226 markup +=
"PrintPreview";
228 case KStandardShortcut::Mail:
231 case KStandardShortcut::Clear:
234 case KStandardShortcut::ActualSize:
235 markup +=
"ActualSize";
237 case KStandardShortcut::FitToPage:
238 markup +=
"FitToPage";
240 case KStandardShortcut::FitToWidth:
241 markup +=
"FitToWidth";
243 case KStandardShortcut::FitToHeight:
244 markup +=
"FitToHeight";
246 case KStandardShortcut::Zoom:
249 case KStandardShortcut::Goto:
252 case KStandardShortcut::GotoPage:
253 markup +=
"GotoPage";
255 case KStandardShortcut::DocumentBack:
256 markup +=
"DocumentBack";
258 case KStandardShortcut::DocumentForward:
259 markup +=
"DocumentForward";
261 case KStandardShortcut::EditBookmarks:
262 markup +=
"EditBookmarks";
264 case KStandardShortcut::Spelling:
265 markup +=
"Spelling";
267 case KStandardShortcut::ShowToolbar:
268 markup +=
"ShowToolbar";
270 case KStandardShortcut::ShowStatusbar:
271 markup +=
"ShowStatusbar";
273 case KStandardShortcut::SaveOptions:
274 markup +=
"SaveOptions";
276 case KStandardShortcut::KeyBindings:
277 markup +=
"KeyBindings";
279 case KStandardShortcut::Preferences:
280 markup +=
"Preferences";
282 case KStandardShortcut::ConfigureToolbars:
283 markup +=
"ConfigureToolbars";
285 case KStandardShortcut::ConfigureNotifications:
286 markup +=
"ConfigureNotifications";
288 case KStandardShortcut::TipofDay:
289 markup +=
"TipofDay";
291 case KStandardShortcut::ReportBug:
292 markup +=
"ReportBug";
294 case KStandardShortcut::SwitchApplicationLanguage:
295 markup +=
"SwitchApplicationLanguage";
297 case KStandardShortcut::AboutApp:
298 markup +=
"AboutApp";
300 case KStandardShortcut::AboutKDE:
301 markup +=
"AboutKDE";
303 case KStandardShortcut::StandardShortcutCount:
309 QString internalStr = KStandardShortcut::shortcut( accel ).toString();
310 QString firstSequence = internalStr.left( internalStr.indexOf(
';' ) );
311 const QStringList keys = firstSequence.split(
'+',QString::SkipEmptyParts );
312 if ( keys.empty() ) {
316 if ( keys.count() == 1 ) {
317 if ( keys.first().startsWith( QLatin1String(
"XF86") ) ) {
322 markup +=
"<keycombo action=\"Simul\">";
323 foreach(
const QString &key, keys ) {
324 if ( key.startsWith( QLatin1String(
"XF86") ) ) {
329 markup +=
"</keycombo>";
335 int main(
int argc,
char **argv )
338 cmdLineOptions.
add(
"o");
339 cmdLineOptions.
add(
"output <file>",
ki18n(
"Output file"),
"kde-standard-accels.entities");
341 KAboutData aboutData(
"genshortcutents", 0,
ki18n(
"genshortcutents"),
"1.0",
342 ki18n(
"Generates DocBook entities for key shortcuts of standard actions" ));
353 QFile outputFile( outputFileName );
354 if ( !outputFile.open( QIODevice::WriteOnly ) ) {
355 qDebug(
"Failed to open %s for writing.", qPrintable( outputFileName ) );
359 QTextStream stream( &outputFile );
360 stream <<
"<!-- Generated by "
362 << aboutData.
version() +
" on "
363 << QDateTime::currentDateTime().toString() +
".\n";
364 stream <<
" Do not bother to fiddle with this, your modifications will be\n"
365 <<
" overwritten as soon as the file is regenerated. -->\n";
368 for (
unsigned int i = 0; i < KStandardShortcut::StandardShortcutCount; ++i ) {
369 stream << entityForAccel( static_cast<KStandardShortcut::StandardShortcut>(i) ) <<
"\n";