summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMenTaLguY <mental@rydia.net>2006-04-06 04:23:24 +0000
committermental <mental@users.sourceforge.net>2006-04-06 04:23:24 +0000
commitf5a269d4b769859d05e02f553eb4231d061f86c9 (patch)
treef597f02384fc6dd26b6b839362ea5a2c5533fb9c /src
parentintroduce uniform resource path API to replace copy-and-pasted hacks (diff)
downloadinkscape-f5a269d4b769859d05e02f553eb4231d061f86c9.tar.gz
inkscape-f5a269d4b769859d05e02f553eb4231d061f86c9.zip
share/keyboards -> share/keys; first shot at configurable keymaps
(bzr r437)
Diffstat (limited to 'src')
-rw-r--r--src/Makefile_insert1
-rw-r--r--src/shortcuts-default-xml.cpp243
-rw-r--r--src/shortcuts.cpp41
3 files changed, 30 insertions, 255 deletions
diff --git a/src/Makefile_insert b/src/Makefile_insert
index 31f57f33b..e09b69ffc 100644
--- a/src/Makefile_insert
+++ b/src/Makefile_insert
@@ -120,7 +120,6 @@ libinkpre_a_SOURCES = \
selection.cpp selection.h \
seltrans-handles.cpp seltrans-handles.h \
seltrans.cpp seltrans.h \
- shortcuts-default-xml.cpp \
shortcuts.cpp shortcuts.h \
slideshow.cpp slideshow.h \
snap.cpp snap.h \
diff --git a/src/shortcuts-default-xml.cpp b/src/shortcuts-default-xml.cpp
deleted file mode 100644
index 56b31ceb6..000000000
--- a/src/shortcuts-default-xml.cpp
+++ /dev/null
@@ -1,243 +0,0 @@
-extern char const shortcuts_default_xml[]=
-"<?xml version=\"1.0\"?>\n"
-"<keybindings name=\"Inkscape default\">\n"
-" <primary keyval=\"n\" modifiers=\"control\" verb=\"FileNew\" />\n"
-" <secondary keyval=\"N\" modifiers=\"control\" verb=\"FileNew\" />\n"
-" <primary keyval=\"o\" modifiers=\"control\" verb=\"FileOpen\" />\n"
-" <secondary keyval=\"O\" modifiers=\"control\" verb=\"FileOpen\" />\n"
-" <primary keyval=\"s\" modifiers=\"control\" verb=\"FileSave\" />\n"
-" <secondary keyval=\"S\" modifiers=\"control\" verb=\"FileSave\" />\n"
-" <primary keyval=\"s\" modifiers=\"control,shift\" verb=\"FileSaveAs\" />\n"
-" <secondary keyval=\"S\" modifiers=\"control,shift\" verb=\"FileSaveAs\" />\n"
-" <primary keyval=\"p\" modifiers=\"control\" verb=\"FilePrint\" />\n"
-" <secondary keyval=\"P\" modifiers=\"control\" verb=\"FilePrint\" />\n"
-" <primary keyval=\"F11\" verb=\"FullScreen\" />\n"
-" <primary keyval=\"e\" modifiers=\"control,shift\" verb=\"FileExport\" />\n"
-" <secondary keyval=\"E\" modifiers=\"control,shift\" verb=\"FileExport\" />\n"
-" <primary keyval=\"i\" modifiers=\"control\" verb=\"FileImport\" />\n"
-" <secondary keyval=\"I\" modifiers=\"control\" verb=\"FileImport\" />\n"
-" <primary keyval=\"Tab\" modifiers=\"control\" verb=\"FileNextDesktop\" />\n"
-" <primary keyval=\"Tab\" modifiers=\"control,shift\" verb=\"FilePrevDesktop\" />\n"
-" <secondary keyval=\"ISO_Left_Tab\" modifiers=\"control\" verb=\"FilePrevDesktop\" />\n"
-" <secondary keyval=\"ISO_Left_Tab\" modifiers=\"control,shift\" verb=\"FilePrevDesktop\" />\n"
-" <primary keyval=\"w\" modifiers=\"control\" verb=\"FileCloseView\" />\n"
-" <primary keyval=\"W\" modifiers=\"control\" verb=\"FileCloseView\" />\n"
-" <primary keyval=\"q\" modifiers=\"control\" verb=\"FileQuit\" />\n"
-" <primary keyval=\"Q\" modifiers=\"control\" verb=\"FileQuit\" />\n"
-" <primary keyval=\"F1\" verb=\"DrawSelect\" />\n"
-" <secondary keyval=\"s\" verb=\"DrawSelect\" />\n"
-" <secondary keyval=\"S\" verb=\"DrawSelect\" />\n"
-" <primary keyval=\"F1\" modifiers=\"control\" verb=\"DrawGradient\" />\n"
-" <secondary keyval=\"g\" verb=\"DrawGradient\" />\n"
-" <secondary keyval=\"G\" verb=\"DrawGradient\" />\n"
-" <primary keyval=\"F2\" verb=\"DrawNode\" />\n"
-" <secondary keyval=\"n\" verb=\"DrawNode\" />\n"
-" <secondary keyval=\"N\" verb=\"DrawNode\" />\n"
-" <primary keyval=\"F3\" verb=\"DrawZoom\" />\n"
-" <secondary keyval=\"z\" verb=\"DrawZoom\" />\n"
-" <secondary keyval=\"Z\" verb=\"DrawZoom\" />\n"
-" <primary keyval=\"F4\" verb=\"DrawRect\" />\n"
-" <secondary keyval=\"r\" verb=\"DrawRect\" />\n"
-" <secondary keyval=\"R\" verb=\"DrawRect\" />\n"
-" <primary keyval=\"F5\" verb=\"DrawArc\" />\n"
-" <secondary keyval=\"e\" verb=\"DrawArc\" />\n"
-" <secondary keyval=\"E\" verb=\"DrawArc\" />\n"
-" <primary keyval=\"F6\" verb=\"DrawPencil\" />\n"
-" <secondary keyval=\"p\" verb=\"DrawPencil\" />\n"
-" <secondary keyval=\"P\" verb=\"DrawPencil\" />\n"
-" <primary keyval=\"F6\" modifiers=\"shift\" verb=\"DrawPen\" />\n"
-" <secondary keyval=\"b\" verb=\"DrawPen\" />\n"
-" <secondary keyval=\"B\" verb=\"DrawPen\" />\n"
-" <primary keyval=\"F6\" modifiers=\"control\" verb=\"DrawCalligrphic\" />\n"
-" <secondary keyval=\"c\" verb=\"DrawCalligrphic\" />\n"
-" <secondary keyval=\"C\" verb=\"DrawCalligrphic\" />\n"
-" <primary keyval=\"F7\" verb=\"DrawDropper\" />\n"
-" <secondary keyval=\"d\" verb=\"DrawDropper\" />\n"
-" <secondary keyval=\"D\" verb=\"DrawDropper\" />\n"
-" <primary keyval=\"F8\" verb=\"DrawText\" />\n"
-" <secondary keyval=\"t\" verb=\"DrawText\" />\n"
-" <secondary keyval=\"T\" verb=\"DrawText\" />\n"
-" <primary keyval=\"F9\" verb=\"DrawSpiral\" />\n"
-" <secondary keyval=\"i\" verb=\"DrawSpiral\" />\n"
-" <secondary keyval=\"I\" verb=\"DrawSpiral\" />\n"
-" <secondary keyval=\"F9\" modifiers=\"shift\" verb=\"DrawStar\" />\n"
-" <secondary keyval=\"asterisk\" modifiers=\"shift\" verb=\"DrawStar\" />\n"
-" <secondary keyval=\"asterisk\" verb=\"DrawStar\" />\n"
-" <primary keyval=\"KP_Multiply\" verb=\"DrawStar\" />\n"
-" <primary keyval=\"F2\" modifiers=\"control\" verb=\"DrawConnector\" />\n"
-" <secondary keyval=\"o\" verb=\"DrawConnector\" />\n"
-" <secondary keyval=\"O\" verb=\"DrawConnector\" />\n"
-" <primary keyval=\"plus\" verb=\"ZoomIn\" />\n"
-" <secondary keyval=\"plus\" modifiers=\"shift\" verb=\"ZoomIn\" />\n"
-" <secondary keyval=\"equal\" verb=\"ZoomIn\" />\n"
-" <secondary keyval=\"KP_Add\" verb=\"ZoomIn\" />\n"
-" <primary keyval=\"minus\" verb=\"ZoomOut\" />\n"
-" <secondary keyval=\"KP_Subtract\" verb=\"ZoomOut\" />\n"
-" <primary keyval=\"1\" verb=\"Zoom1:0\" />\n"
-" <primary keyval=\"grave\" verb=\"ZoomPrev\" />\n"
-" <primary keyval=\"grave\" modifiers=\"shift\" verb=\"ZoomNext\" />\n"
-" <secondary keyval=\"asciitilde\" modifiers=\"shift\" verb=\"ZoomNext\" />\n"
-" <primary keyval=\"2\" verb=\"Zoom1:2\" />\n"
-" <primary keyval=\"3\" verb=\"ZoomSelection\" />\n"
-" <primary keyval=\"4\" verb=\"ZoomDrawing\" />\n"
-" <primary keyval=\"5\" verb=\"ZoomPage\" />\n"
-" <secondary keyval=\"KP_5\" verb=\"ZoomPage\" />\n"
-" <primary keyval=\"6\" verb=\"ZoomPageWidth\" />\n"
-" <secondary keyval=\"e\" modifiers=\"control\" verb=\"ZoomPageWidth\" />\n"
-" <secondary keyval=\"E\" modifiers=\"control\" verb=\"ZoomPageWidth\" />\n"
-" <primary keyval=\"r\" modifiers=\"control\" verb=\"ToggleRulers\" />\n"
-" <secondary keyval=\"R\" modifiers=\"control\" verb=\"ToggleRulers\" />\n"
-" <primary keyval=\"b\" modifiers=\"control\" verb=\"ToggleScrollbars\" />\n"
-" <secondary keyval=\"B\" modifiers=\"control\" verb=\"ToggleScrollbars\" />\n"
-" <secondary keyval=\"bar\" modifiers=\"shift\" verb=\"ToggleGuides\" />\n"
-" <primary keyval=\"bar\" verb=\"ToggleGuides\" />\n"
-" <secondary keyval=\"numbersign\" modifiers=\"shift\" verb=\"ToggleGrid\" />\n"
-" <primary keyval=\"numbersign\" verb=\"ToggleGrid\" />\n"
-" <primary keyval=\"z\" modifiers=\"control\" verb=\"EditUndo\" />\n"
-" <secondary keyval=\"Z\" modifiers=\"control\" verb=\"EditUndo\" />\n"
-" <secondary keyval=\"y\" modifiers=\"control\" verb=\"EditRedo\" />\n"
-" <secondary keyval=\"Y\" modifiers=\"control\" verb=\"EditRedo\" />\n"
-" <primary keyval=\"z\" modifiers=\"control,shift\" verb=\"EditRedo\" />\n"
-" <secondary keyval=\"Z\" modifiers=\"control,shift\" verb=\"EditRedo\" />\n"
-" <secondary keyval=\"y\" modifiers=\"control,shift\" verb=\"EditUndo\" />\n"
-" <secondary keyval=\"Y\" modifiers=\"control,shift\" verb=\"EditUndo\" />\n"
-" <primary keyval=\"x\" modifiers=\"control\" verb=\"EditCut\" />\n"
-" <secondary keyval=\"X\" modifiers=\"control\" verb=\"EditCut\" />\n"
-" <primary keyval=\"c\" modifiers=\"control\" verb=\"EditCopy\" />\n"
-" <secondary keyval=\"C\" modifiers=\"control\" verb=\"EditCopy\" />\n"
-" <primary keyval=\"v\" modifiers=\"control\" verb=\"EditPaste\" />\n"
-" <secondary keyval=\"V\" modifiers=\"control\" verb=\"EditPaste\" />\n"
-" <primary keyval=\"v\" modifiers=\"control,shift\" verb=\"EditPasteStyle\" />\n"
-" <secondary keyval=\"V\" modifiers=\"control,shift\" verb=\"EditPasteStyle\" />\n"
-" <primary keyval=\"v\" modifiers=\"control,alt\" verb=\"EditPasteInPlace\" />\n"
-" <secondary keyval=\"V\" modifiers=\"control,alt\" verb=\"EditPasteInPlace\" />\n"
-" <primary keyval=\"Delete\" verb=\"EditDelete\" />\n"
-" <secondary keyval=\"KP_Delete\" verb=\"EditDelete\" />\n"
-" <secondary keyval=\"BackSpace\" verb=\"EditDelete\" />\n"
-" <primary keyval=\"d\" modifiers=\"control\" verb=\"EditDuplicate\" />\n"
-" <secondary keyval=\"D\" modifiers=\"control\" verb=\"EditDuplicate\" />\n"
-" <primary keyval=\"d\" modifiers=\"alt\" verb=\"EditClone\" />\n"
-" <secondary keyval=\"D\" modifiers=\"alt\" verb=\"EditClone\" />\n"
-" <primary keyval=\"d\" modifiers=\"alt,shift\" verb=\"EditUnlinkClone\" />\n"
-" <secondary keyval=\"D\" modifiers=\"alt,shift\" verb=\"EditUnlinkClone\" />\n"
-" <primary keyval=\"d\" modifiers=\"shift\" verb=\"EditCloneOriginal\" />\n"
-" <secondary keyval=\"D\" modifiers=\"shift\" verb=\"EditCloneOriginal\" />\n"
-" <primary keyval=\"i\" modifiers=\"alt\" verb=\"EditTile\" />\n"
-" <secondary keyval=\"I\" modifiers=\"alt\" verb=\"EditTile\" />\n"
-" <primary keyval=\"i\" modifiers=\"alt,shift\" verb=\"EditUnTile\" />\n"
-" <secondary keyval=\"I\" modifiers=\"alt,shift\" verb=\"EditUnTile\" />\n"
-" <primary keyval=\"c\" modifiers=\"control,shift\" verb=\"ObjectToCurve\" />\n"
-" <secondary keyval=\"C\" modifiers=\"control,shift\" verb=\"ObjectToCurve\" />\n"
-" <primary keyval=\"w\" modifiers=\"alt\" verb=\"ObjectFlowText\" />\n"
-" <secondary keyval=\"W\" modifiers=\"alt\" verb=\"ObjectFlowText\" />\n"
-" <primary keyval=\"w\" modifiers=\"alt,shift\" verb=\"ObjectUnFlowText\" />\n"
-" <secondary keyval=\"W\" modifiers=\"alt,shift\" verb=\"ObjectUnFlowText\" />\n"
-" <primary keyval=\"h\" verb=\"ObjectFlipHorizontally\" />\n"
-" <secondary keyval=\"H\" verb=\"ObjectFlipHorizontally\" />\n"
-" <primary keyval=\"v\" verb=\"ObjectFlipVertically\" />\n"
-" <secondary keyval=\"V\" verb=\"ObjectFlipVertically\" />\n"
-" <primary keyval=\"Page_Up\" modifiers=\"control,shift\" verb=\"LayerRaise\" />\n"
-" <secondary keyval=\"KP_Page_Up\" modifiers=\"control,shift\" verb=\"LayerRaise\" />\n"
-" <primary keyval=\"Page_Down\" modifiers=\"control,shift\" verb=\"LayerLower\" />\n"
-" <secondary keyval=\"KP_Page_Down\" modifiers=\"control,shift\" verb=\"LayerLower\" />\n"
-" <primary keyval=\"Home\" modifiers=\"control,shift\" verb=\"LayerToTop\" />\n"
-" <secondary keyval=\"KP_Home\" modifiers=\"control,shift\" verb=\"LayerToTop\" />\n"
-" <primary keyval=\"End\" modifiers=\"control,shift\" verb=\"LayerToBottom\" />\n"
-" <secondary keyval=\"KP_End\" modifiers=\"control,shift\" verb=\"LayerToBottom\" />\n"
-" <primary keyval=\"Page_Up\" modifiers=\"shift\" verb=\"LayerMoveToNext\" />\n"
-" <secondary keyval=\"KP_Page_Up\" modifiers=\"shift\" verb=\"LayerMoveToNext\" />\n"
-" <primary keyval=\"Page_Down\" modifiers=\"shift\" verb=\"LayerMoveToPrev\" />\n"
-" <secondary keyval=\"KP_Page_Down\" modifiers=\"shift\" verb=\"LayerMoveToPrev\" />\n"
-" <primary keyval=\"Home\" verb=\"SelectionToFront\" />\n"
-" <secondary keyval=\"KP_Home\" verb=\"SelectionToFront\" />\n"
-" <primary keyval=\"End\" verb=\"SelectionToBack\" />\n"
-" <secondary keyval=\"KP_End\" verb=\"SelectionToBack\" />\n"
-" <primary keyval=\"Page_Up\" verb=\"SelectionRaise\" />\n"
-" <secondary keyval=\"KP_Page_Up\" verb=\"SelectionRaise\" />\n"
-" <primary keyval=\"Page_Down\" verb=\"SelectionLower\" />\n"
-" <secondary keyval=\"KP_Page_Down\" verb=\"SelectionLower\" />\n"
-" <primary keyval=\"a\" modifiers=\"control\" verb=\"EditSelectAll\" />\n"
-" <secondary keyval=\"A\" modifiers=\"control\" verb=\"EditSelectAll\" />\n"
-" <primary keyval=\"a\" modifiers=\"control,alt\" verb=\"EditSelectAllInAllLayers\" />\n"
-" <secondary keyval=\"A\" modifiers=\"control,alt\" verb=\"EditSelectAllInAllLayers\" />\n"
-" <primary keyval=\"exclam\" verb=\"EditInvert\" />\n"
-" <secondary keyval=\"exclam\" modifiers=\"shift\" verb=\"EditInvert\" />\n"
-" <primary keyval=\"exclam\" modifiers=\"alt\" verb=\"EditInvertInAllLayers\" />\n"
-" <secondary keyval=\"exclam\" modifiers=\"alt,shift\" verb=\"EditInvertInAllLayers\" />\n"
-" <primary keyval=\"g\" modifiers=\"control\" verb=\"SelectionGroup\" />\n"
-" <secondary keyval=\"G\" modifiers=\"control\" verb=\"SelectionGroup\" />\n"
-" <secondary keyval=\"u\" modifiers=\"control\" verb=\"SelectionUnGroup\" />\n"
-" <secondary keyval=\"U\" modifiers=\"control\" verb=\"SelectionUnGroup\" />\n"
-" <primary keyval=\"g\" modifiers=\"control,shift\" verb=\"SelectionUnGroup\" />\n"
-" <secondary keyval=\"G\" modifiers=\"control,shift\" verb=\"SelectionUnGroup\" />\n"
-" <secondary keyval=\"u\" modifiers=\"control,shift\" verb=\"SelectionGroup\" />\n"
-" <secondary keyval=\"U\" modifiers=\"control,shift\" verb=\"SelectionGroup\" />\n"
-" <primary keyval=\"plus\" modifiers=\"control\" verb=\"SelectionUnion\" />\n"
-" <secondary keyval=\"KP_Add\" modifiers=\"control\" verb=\"SelectionUnion\" />\n"
-" <secondary keyval=\"plus\" modifiers=\"control,shift\" verb=\"SelectionUnion\" />\n"
-" <primary keyval=\"asterisk\" modifiers=\"control\" verb=\"SelectionIntersect\" />\n"
-" <secondary keyval=\"KP_Multiply\" modifiers=\"control\" verb=\"SelectionIntersect\" />\n"
-" <secondary keyval=\"asterisk\" modifiers=\"control,shift\" verb=\"SelectionIntersect\" />\n"
-" <primary keyval=\"minus\" modifiers=\"control\" verb=\"SelectionDiff\" />\n"
-" <secondary keyval=\"underscore\" modifiers=\"control\" verb=\"SelectionDiff\" />\n"
-" <secondary keyval=\"underscore\" modifiers=\"control,shift\" verb=\"SelectionDiff\" />\n"
-" <secondary keyval=\"KP_Subtract\" modifiers=\"control\" verb=\"SelectionDiff\" />\n"
-" <secondary keyval=\"minus\" modifiers=\"control,shift\" verb=\"SelectionDiff\" />\n"
-" <primary keyval=\"asciicircum\" modifiers=\"control\" verb=\"SelectionSymDiff\" />\n"
-" <secondary keyval=\"asciicircum\" modifiers=\"control,shift\" verb=\"SelectionSymDiff\" />\n"
-" <primary keyval=\"slash\" modifiers=\"control,alt\" verb=\"SelectionCutPath\" />\n"
-" <secondary keyval=\"slash\" modifiers=\"control,alt,shift\" verb=\"SelectionCutPath\" />\n"
-" <primary keyval=\"slash\" modifiers=\"control\" verb=\"SelectionDivide\" />\n"
-" <secondary keyval=\"slash\" modifiers=\"control,shift\" verb=\"SelectionDivide\" />\n"
-" <primary keyval=\"parenright\" modifiers=\"control\" verb=\"SelectionOffset\" />\n"
-" <secondary keyval=\"parenright\" modifiers=\"control,shift\" verb=\"SelectionOffset\" />\n"
-" <secondary keyval=\"0\" modifiers=\"control,shift\" verb=\"SelectionOffset\" />\n"
-" <primary keyval=\"parenright\" modifiers=\"alt\" verb=\"SelectionOffsetScreen\" />\n"
-" <secondary keyval=\"0\" modifiers=\"alt\" verb=\"SelectionOffsetScreen\" />\n"
-" <primary keyval=\"parenright\" modifiers=\"alt,shift\" verb=\"SelectionOffsetScreen10\" />\n"
-" <secondary keyval=\"0\" modifiers=\"alt,shift\" verb=\"SelectionOffsetScreen10\" />\n"
-" <primary keyval=\"parenleft\" modifiers=\"control\" verb=\"SelectionInset\" />\n"
-" <secondary keyval=\"parenleft\" modifiers=\"control,shift\" verb=\"SelectionInset\" />\n"
-" <secondary keyval=\"9\" modifiers=\"control,shift\" verb=\"SelectionInset\" />\n"
-" <primary keyval=\"parenleft\" modifiers=\"alt\" verb=\"SelectionInsetScreen\" />\n"
-" <secondary keyval=\"9\" modifiers=\"alt\" verb=\"SelectionInsetScreen\" />\n"
-" <primary keyval=\"parenleft\" modifiers=\"alt,shift\" verb=\"SelectionInsetScreen\" />\n"
-" <secondary keyval=\"9\" modifiers=\"alt,shift\" verb=\"SelectionInsetScreen\" />\n"
-" <primary keyval=\"j\" modifiers=\"control\" verb=\"SelectionDynOffset\" />\n"
-" <secondary keyval=\"J\" modifiers=\"control\" verb=\"SelectionDynOffset\" />\n"
-" <primary keyval=\"j\" modifiers=\"control,alt\" verb=\"SelectionLinkedOffset\" />\n"
-" <secondary keyval=\"J\" modifiers=\"control,alt\" verb=\"SelectionLinkedOffset\" />\n"
-" <primary keyval=\"c\" modifiers=\"control,alt\" verb=\"SelectionOutline\" />\n"
-" <secondary keyval=\"C\" modifiers=\"control,alt\" verb=\"SelectionOutline\" />\n"
-" <primary keyval=\"l\" modifiers=\"control\" verb=\"SelectionSimplify\" />\n"
-" <secondary keyval=\"L\" modifiers=\"control\" verb=\"SelectionSimplify\" />\n"
-" <primary keyval=\"b\" modifiers=\"alt\" verb=\"SelectionCreateBitmap\" />\n"
-" <secondary keyval=\"B\" modifiers=\"alt\" verb=\"SelectionCreateBitmap\" />\n"
-" <primary keyval=\"b\" modifiers=\"alt,shift\" verb=\"SelectionTrace\" />\n"
-" <secondary keyval=\"B\" modifiers=\"alt,shift\" verb=\"SelectionTrace\" />\n"
-" <primary keyval=\"k\" modifiers=\"control\" verb=\"SelectionCombine\" />\n"
-" <secondary keyval=\"K\" modifiers=\"control\" verb=\"SelectionCombine\" />\n"
-" <primary keyval=\"k\" modifiers=\"control,shift\" verb=\"SelectionBreakApart\" />\n"
-" <secondary keyval=\"K\" modifiers=\"control,shift\" verb=\"SelectionBreakApart\" />\n"
-" <primary keyval=\"x\" modifiers=\"control,shift\" verb=\"DialogXMLEditor\" />\n"
-" <secondary keyval=\"X\" modifiers=\"control,shift\" verb=\"DialogXMLEditor\" />\n"
-" <primary keyval=\"d\" modifiers=\"control,shift\" verb=\"DialogNamedview\" />\n"
-" <secondary keyval=\"D\" modifiers=\"control,shift\" verb=\"DialogNamedview\" />\n"
-" <primary keyval=\"a\" modifiers=\"control,shift\" verb=\"DialogAlignDistribute\" />\n"
-" <secondary keyval=\"A\" modifiers=\"control,shift\" verb=\"DialogAlignDistribute\" />\n"
-" <primary keyval=\"t\" modifiers=\"control,shift\" verb=\"Dialogtext\" />\n"
-" <secondary keyval=\"T\" modifiers=\"control,shift\" verb=\"Dialogtext\" />\n"
-" <primary keyval=\"p\" modifiers=\"control,shift\" verb=\"DialogDisplay\" />\n"
-" <secondary keyval=\"P\" modifiers=\"control,shift\" verb=\"DialogDisplay\" />\n"
-" <primary keyval=\"f\" modifiers=\"control,shift\" verb=\"DialogFillStroke\" />\n"
-" <secondary keyval=\"F\" modifiers=\"control,shift\" verb=\"DialogFillStroke\" />\n"
-" <primary keyval=\"f\" modifiers=\"control\" verb=\"DialogFind\" />\n"
-" <secondary keyval=\"F\" modifiers=\"control\" verb=\"DialogFind\" />\n"
-" <primary keyval=\"m\" modifiers=\"control,shift\" verb=\"DialogTransform\" />\n"
-" <secondary keyval=\"M\" modifiers=\"control,shift\" verb=\"DialogTransform\" />\n"
-" <primary keyval=\"o\" modifiers=\"control,shift\" verb=\"DialogItem\" />\n"
-" <secondary keyval=\"O\" modifiers=\"control,shift\" verb=\"DialogItem\" />\n"
-" <primary keyval=\"w\" modifiers=\"control,shift\" verb=\"DialogSwatches\" />\n"
-" <secondary keyval=\"W\" modifiers=\"control,shift\" verb=\"DialogSwatches\" />\n"
-" <primary keyval=\"F12\" verb=\"DialogsToggle\" />\n"
-"</keybindings>";
diff --git a/src/shortcuts.cpp b/src/shortcuts.cpp
index 047928071..7061df77a 100644
--- a/src/shortcuts.cpp
+++ b/src/shortcuts.cpp
@@ -22,10 +22,14 @@
# include "config.h"
#endif
+#include <vector>
+
#include <gdk/gdkkeys.h>
#include <gdk/gdkkeysyms.h>
#include "helper/action.h"
+#include "io/sys.h"
+#include "io/resource.h"
#include "shortcuts.h"
#include "verbs.h"
#include "xml/node-iterators.h"
@@ -34,8 +38,8 @@
using namespace Inkscape;
static void sp_shortcut_set(unsigned int const shortcut, Inkscape::Verb *const verb, bool const is_primary);
-
-static void set_shortcuts_xml(XML::Document const *doc);
+static void try_shortcuts_file(char const *filename);
+static void read_shortcuts_file(char const *filename);
/* Returns true if action was performed */
@@ -56,24 +60,37 @@ sp_shortcut_invoke(unsigned int shortcut, Inkscape::UI::View::View *view)
static GHashTable *verbs = NULL;
static GHashTable *primary_shortcuts = NULL;
-extern char const shortcuts_default_xml[];
-
static void
sp_shortcut_init()
{
+ using Inkscape::IO::Resource::get_path;
+ using Inkscape::IO::Resource::SYSTEM;
+ using Inkscape::IO::Resource::USER;
+ using Inkscape::IO::Resource::KEYS;
+
verbs = g_hash_table_new(NULL, NULL);
primary_shortcuts = g_hash_table_new(NULL, NULL);
- XML::Document *shortcuts=sp_repr_read_mem(shortcuts_default_xml, strlen(shortcuts_default_xml), NULL);
- if (shortcuts) {
- set_shortcuts_xml(shortcuts);
- GC::release(shortcuts);
- } else {
- g_error("Unable to parse default shortcuts");
+ read_shortcuts_file(get_path(SYSTEM, KEYS, "default.xml"));
+ try_shortcuts_file(get_path(USER, KEYS, "default.xml"));
+}
+
+static void try_shortcuts_file(char const *filename) {
+ using Inkscape::IO::file_test;
+
+ /* ah, if only we had an exception to catch... (permission, forgiveness) */
+ if (file_test(filename, G_FILE_TEST_EXISTS)) {
+ read_shortcuts_file(filename);
}
}
-static void set_shortcuts_xml(XML::Document const *doc) {
+static void read_shortcuts_file(char const *filename) {
+ XML::Document *doc=sp_repr_read_file(filename, NULL);
+ if (!doc) {
+ g_warning("Unable to read keys file %s", filename);
+ return;
+ }
+
XML::Node const *root=doc->root();
g_return_if_fail(!strcmp(root->name(), "keybindings"));
XML::NodeConstSiblingIterator iter=root->firstChild();
@@ -133,6 +150,8 @@ static void set_shortcuts_xml(XML::Document const *doc) {
Inkscape::Verb::getbyid(verb_name),
is_primary);
}
+
+ GC::release(doc);
}
/**