summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristophe Lebras <christophe.lebras@gmail.com>2017-07-01 13:59:09 +0000
committerChristophe Lebras <christophe.lebras@gmail.com>2017-07-02 03:11:49 +0000
commita6c0debc242fbf1a43d424c97516a0356a3e2c38 (patch)
treecfa8a9a0d42abe68da9500fb707befd27d7cdf03
parentSpecify CI test stage platform dependencies (diff)
downloadinkscape-a6c0debc242fbf1a43d424c97516a0356a3e2c38.tar.gz
inkscape-a6c0debc242fbf1a43d424c97516a0356a3e2c38.zip
Add new verb "save template"
-rw-r--r--share/keys/inkscape.xml98
-rw-r--r--src/menus-skeleton.h1
-rw-r--r--src/verbs.cpp28
-rw-r--r--src/verbs.h3
4 files changed, 70 insertions, 60 deletions
diff --git a/share/keys/inkscape.xml b/share/keys/inkscape.xml
index 4461dee69..b56e1d957 100644
--- a/share/keys/inkscape.xml
+++ b/share/keys/inkscape.xml
@@ -1,7 +1,7 @@
<?xml version="1.0"?>
<keys name="Inkscape default">
-<!--
+<!--
This file contains the default Inkscape keyboard shortcuts. In each "bind" element:
- The "key" attribute contains the key name. The names are the same as those in the
@@ -61,6 +61,8 @@ override) the bindings in the main default.xml.
<bind key="s" modifiers="Ctrl,Shift,Alt" action="FileSaveACopy" display="true" />
<bind key="S" modifiers="Ctrl,Shift,Alt" action="FileSaveACopy" />
+ <bind action="FileSaveTemplate" />
+
<bind key="p" modifiers="Ctrl" action="FilePrint" display="true" />
<bind key="P" modifiers="Ctrl" action="FilePrint" />
@@ -128,8 +130,8 @@ override) the bindings in the main default.xml.
<bind action="MeasurePrefs" />
<bind key="F9" modifiers="Shift" action="ToolStar" />
- <bind key="asterisk" modifiers="Shift" action="ToolStar" />
- <bind key="asterisk" action="ToolStar" />
+ <bind key="asterisk" modifiers="Shift" action="ToolStar" />
+ <bind key="asterisk" action="ToolStar" />
<bind key="KP_Multiply" action="ToolStar" display="true" />
<bind action="StarPrefs" />
@@ -209,7 +211,7 @@ override) the bindings in the main default.xml.
<bind key="minus" action="ZoomOut" display="true" />
<bind key="minus" modifiers="Shift" action="ZoomOut" />
<bind key="underscore" action="ZoomOut" />
- <bind key="underscore" modifiers="Shift" action="ZoomOut" />
+ <bind key="underscore" modifiers="Shift" action="ZoomOut" />
<bind key="KP_Subtract" action="ZoomOut" />
<bind key="1" action="Zoom1:0" display="true" />
@@ -240,12 +242,12 @@ override) the bindings in the main default.xml.
<bind key="KP_9" action="ZoomNext" />
<bind key="grave" action="ZoomPrev" display="true" /> <!-- ` -->
<bind key="KP_8" action="ZoomPrev" />
-
+
<!-- View -->
- <bind key="F11" action="FullScreen" display="true" />
- <bind key="F11" action="FocusToggle" modifiers="Shift" display="true" />
- <bind key="F11" action="FullScreenFocus" modifiers="Ctrl" display="true" />
+ <bind key="F11" action="FullScreen" display="true" />
+ <bind key="F11" action="FocusToggle" modifiers="Shift" display="true" />
+ <bind key="F11" action="FullScreenFocus" modifiers="Ctrl" display="true" />
<bind key="Tab" modifiers="Ctrl" action="NextWindow" display="true" />
<bind key="ISO_Left_Tab" modifiers="Ctrl" action="NextWindow" />
@@ -254,7 +256,7 @@ override) the bindings in the main default.xml.
<bind key="numbersign" modifiers="Shift" action="ToggleGrid" /> <!-- # -->
<bind key="numbersign" action="ToggleGrid" display="true" />
-
+
<bind key="bar" modifiers="Shift" action="ToggleGuides" /> <!-- | -->
<bind key="bar" action="ToggleGuides" display="true" />
@@ -276,7 +278,7 @@ override) the bindings in the main default.xml.
<bind key="P" modifiers="Shift,Alt" action="TogglePalette" />
<bind action="ToggleStatusbar" />
-
+
<bind action="ViewNew" />
<bind action="ViewNewPreview" />
<bind action="ViewIconPreview" />
@@ -294,7 +296,7 @@ override) the bindings in the main default.xml.
<bind action="ViewColorModeGrayscale" />
<!-- Edit -->
-
+
<bind key="z" modifiers="Ctrl" action="EditUndo" display="true" />
<bind key="Z" modifiers="Ctrl" action="EditUndo" />
<!--Do not put in Ctrl,Shift+Y, already used-->
@@ -310,7 +312,7 @@ override) the bindings in the main default.xml.
<bind key="x" modifiers="Ctrl" action="EditCut" display="true" />
<bind key="X" modifiers="Ctrl" action="EditCut" />
<bind key="Delete" modifiers="Shift" action="EditCut"/>
-
+
<bind key="c" modifiers="Ctrl" action="EditCopy" display="true" />
<bind key="C" modifiers="Ctrl" action="EditCopy" />
<bind key="Insert" modifiers="Ctrl" action="EditCopy"/>
@@ -360,10 +362,10 @@ override) the bindings in the main default.xml.
<bind key="a" modifiers="Ctrl,Alt" action="EditSelectAllInAllLayers" display="true" />
<bind key="A" modifiers="Ctrl,Alt" action="EditSelectAllInAllLayers" />
- <bind action="EditSelectSameFillStroke" />
- <bind action="EditSelectSameFillColor" />
- <bind action="EditSelectSameStrokeColor" />
- <bind action="EditSelectSameStrokeStyle" />
+ <bind action="EditSelectSameFillStroke" />
+ <bind action="EditSelectSameFillColor" />
+ <bind action="EditSelectSameStrokeColor" />
+ <bind action="EditSelectSameStrokeStyle" />
<bind key="a" modifiers="Shift,Alt" action="EditSelectSameObjectType" display="true" />
<bind key="A" modifiers="Shift,Alt" action="EditSelectSameObjectType" />
@@ -379,7 +381,7 @@ override) the bindings in the main default.xml.
<bind key="Tab" modifiers="Shift" action="EditSelectPrev" display="true" />
<bind key="ISO_Left_Tab" modifiers="Shift" action="EditSelectPrev" />
- <bind key="Escape" action="EditDeselect" />
+ <bind key="Escape" action="EditDeselect" />
<bind key="7" action="EditNextPathEffectParameter" display="true" />
<bind action="EditSwapFillStroke" display="true" />
@@ -406,22 +408,22 @@ override) the bindings in the main default.xml.
<bind key="Page_Down" action="SelectionLower" display="true" />
<bind key="KP_Page_Down" action="SelectionLower" />
-
+
<bind key="comma" action="SelectionShrink" display="true" />
<bind key="less" action="SelectionShrink" />
-
+
<bind key="comma" modifiers="Alt" action="SelectionShrinkScreen" />
<bind key="less" modifiers="Alt" action="SelectionShrinkScreen" />
-
+
<bind key="comma" modifiers="Ctrl" action="SelectionShrinkHalve" />
<bind key="less" modifiers="Ctrl" action="SelectionShrinkHalve" />
-
+
<bind key="period" action="SelectionGrow" display="true" />
<bind key="greater" action="SelectionGrow" />
-
+
<bind key="period" modifiers="Alt" action="SelectionGrowScreen" />
<bind key="greater" modifiers="Alt" action="SelectionGrowScreen" />
-
+
<bind key="period" modifiers="Ctrl" action="SelectionGrowDouble" />
<bind key="greater" modifiers="Ctrl" action="SelectionGrowDouble" />
@@ -448,7 +450,7 @@ override) the bindings in the main default.xml.
<bind key="i" modifiers="Alt,Shift" action="ObjectsFromPattern" display="true" />
<bind key="I" modifiers="Alt,Shift" action="ObjectsFromPattern" />
-
+
<bind key="g" modifiers="Shift" action="ObjectsToGuides" display="true" />
<bind key="G" modifiers="Shift" action="ObjectsToGuides" />
@@ -459,14 +461,14 @@ override) the bindings in the main default.xml.
<bind action="ObjectUnSetClipPath" />
<!-- FIXME: currently these bypass the verbs, so the verbs are not bound to ctrl+[] as they should be -->
- <bind action="ObjectRotate90" />
- <bind action="ObjectRotate90CCW" />
+ <bind action="ObjectRotate90" />
+ <bind action="ObjectRotate90CCW" />
- <bind action="ObjectRemoveTransform" />
+ <bind action="ObjectRemoveTransform" />
- <bind action="FitCanvasToSelection" />
- <bind action="FitCanvasToDrawing" />
- <bind action="FitCanvasToSelectionOrDrawing" />
+ <bind action="FitCanvasToSelection" />
+ <bind action="FitCanvasToDrawing" />
+ <bind action="FitCanvasToSelectionOrDrawing" />
<!-- Path -->
@@ -510,7 +512,7 @@ override) the bindings in the main default.xml.
<bind key="parenright" modifiers="Ctrl,Shift" action="SelectionOffset" />
<bind key="0" modifiers="Ctrl,Shift" action="SelectionOffset" />
<bind key="0" modifiers="Ctrl" action="SelectionOffset" />
-
+
<bind key="parenright" modifiers="Alt" action="SelectionOffsetScreen" display="true" />
<bind key="0" modifiers="Alt" action="SelectionOffsetScreen" />
@@ -586,24 +588,24 @@ override) the bindings in the main default.xml.
<bind key="Page_Down" modifiers="Shift" action="LayerMoveToPrev" display="true" />
<bind key="KP_Page_Down" modifiers="Shift" action="LayerMoveToPrev" />
- <bind action="LayerMoveTo" />
+ <bind action="LayerMoveTo" />
<bind key="l" modifiers="Ctrl,Shift" action="DialogLayers" display="true" />
- <bind key="L" modifiers="Ctrl,Shift" action="DialogLayers" />
+ <bind key="L" modifiers="Ctrl,Shift" action="DialogLayers" />
- <bind action="LayerDuplicate" />
- <bind action="LayerDelete" />
+ <bind action="LayerDuplicate" />
+ <bind action="LayerDelete" />
- <bind action="LayerHideAll" />
- <bind action="LayerSolo" />
- <bind action="LayerShowAll" />
+ <bind action="LayerHideAll" />
+ <bind action="LayerSolo" />
+ <bind action="LayerShowAll" />
- <bind action="LayerLockAll" />
- <bind action="LayerLockOthers" />
- <bind action="LayerUnlockAll" />
+ <bind action="LayerLockAll" />
+ <bind action="LayerLockOthers" />
+ <bind action="LayerUnlockAll" />
- <bind action="LayerToggleHide" />
- <bind action="LayerToggleLock" />
+ <bind action="LayerToggleHide" />
+ <bind action="LayerToggleLock" />
<!-- Dialogs -->
@@ -689,11 +691,11 @@ override) the bindings in the main default.xml.
<!-- Effects -->
- <bind key="q" modifiers="Alt" action="EffectLast" display="true" />
- <bind key="Q" modifiers="Alt" action="EffectLast" />
+ <bind key="q" modifiers="Alt" action="EffectLast" display="true" />
+ <bind key="Q" modifiers="Alt" action="EffectLast" />
<bind key="q" modifiers="Shift,Alt" action="EffectLastPref" display="true" />
<bind key="Q" modifiers="Shift,Alt" action="EffectLastPref" />
-
+
<!-- You can also assign keys to individual effects. The action should be set to he
effect id from the .inx file, for example "org.ekips.filter.addnodes" for the Add
Nodes effect. -->
@@ -701,11 +703,11 @@ override) the bindings in the main default.xml.
<bind key="g" modifiers="Ctrl,Alt" action="org.inkscape.typography.newglyphlayer" display="true"/>
<bind key="G" modifiers="Ctrl,Alt" action="org.inkscape.typography.newglyphlayer"/>
-<!--
+<!--
<bind key="h" modifiers="Ctrl,Alt" action="org.inkscape.typography.previousglyphlayer" display="true"/>
<bind key="H" modifiers="Ctrl,Alt" action="org.inkscape.typography.previousglyphlayer"/>
-->
-
+
<bind key="j" modifiers="Ctrl,Alt" action="org.inkscape.typography.nextglyphlayer" display="true"/>
<bind key="J" modifiers="Ctrl,Alt" action="org.inkscape.typography.nextglyphlayer"/>
diff --git a/src/menus-skeleton.h b/src/menus-skeleton.h
index 65c497da4..e5991aa1d 100644
--- a/src/menus-skeleton.h
+++ b/src/menus-skeleton.h
@@ -24,6 +24,7 @@ static char const menus_skeleton[] =
" <verb verb-id=\"FileSave\" />\n"
" <verb verb-id=\"FileSaveAs\" />\n"
" <verb verb-id=\"FileSaveACopy\" />\n"
+" <verb verb-id=\"FileSaveTemplate\" />\n"
" <separator/>\n"
" <verb verb-id=\"FileImport\" />\n"
" <verb verb-id=\"DialogExport\" />\n"
diff --git a/src/verbs.cpp b/src/verbs.cpp
index 22ded60b3..9394aeb81 100644
--- a/src/verbs.cpp
+++ b/src/verbs.cpp
@@ -84,6 +84,7 @@
#include "ui/dialog/spellcheck.h"
#include "ui/icon-names.h"
#include "ui/tools/node-tool.h"
+#include "ui/dialog/save-template-dialog.h"
using Inkscape::DocumentUndo;
using Inkscape::UI::Dialog::ActionAlign;
@@ -587,7 +588,7 @@ SPAction *Verb::make_action_helper(Inkscape::ActionContext const & context, void
_(_tip), _image, this);
if (action == NULL) return NULL;
-
+
action->signal_perform.connect(
sigc::bind(
sigc::bind(
@@ -849,7 +850,7 @@ void FileVerb::perform(SPAction *action, void *data)
// Convert verb impls to use this where possible, to reduce static cling
// to macros like SP_ACTIVE_DOCUMENT, which end up enforcing GUI-mode operation
SPDocument *doc = sp_action_get_document(action);
-
+
// We can vacuum defs, or exit, without needing a desktop!
bool handled = true;
switch (reinterpret_cast<std::size_t>(data)) {
@@ -866,7 +867,7 @@ void FileVerb::perform(SPAction *action, void *data)
if (handled) {
return;
}
-
+
g_return_if_fail(ensure_desktop_valid(action));
SPDesktop *desktop = sp_action_get_desktop(action);
@@ -892,6 +893,9 @@ void FileVerb::perform(SPAction *action, void *data)
case SP_VERB_FILE_SAVE_A_COPY:
sp_file_save_a_copy(*parent, NULL, NULL);
break;
+ case SP_VERB_FILE_SAVE_TEMPLATE:
+ Inkscape::UI::Dialog::SaveTemplate::save_document_as_template();
+ break;
case SP_VERB_FILE_PRINT:
sp_file_print(*parent);
break;
@@ -944,7 +948,7 @@ void EditVerb::perform(SPAction *action, void *data)
if (handled) {
return;
}
-
+
g_return_if_fail(ensure_desktop_valid(action));
SPDesktop *dt = sp_action_get_desktop(action);
@@ -1297,7 +1301,7 @@ void LayerVerb::perform(SPAction *action, void *data)
g_return_if_fail(ensure_desktop_valid(action));
SPDesktop *dt = sp_action_get_desktop(action);
size_t verb = reinterpret_cast<std::size_t>(data);
-
+
if ( !dt->currentLayer() ) {
return;
}
@@ -1633,12 +1637,12 @@ void TagVerb::perform( SPAction *action, void *data)
g_free(id);
id = g_strdup_printf(_("Set %d"), tag_suffix++);
} while (dt->doc()->getObjectById(id));
-
+
doc = dt->doc()->getReprDoc();
repr = doc->createElement("inkscape:tag");
repr->setAttribute("id", id);
g_free(id);
-
+
dt->doc()->getDefs()->addChild(repr, NULL);
Inkscape::DocumentUndo::done(dt->doc(), SP_VERB_DIALOG_TAGS, _("Create new selection set"));
break;
@@ -1657,7 +1661,7 @@ void ContextVerb::perform(SPAction *action, void *data)
SPDesktop *dt;
sp_verb_t verb;
int vidx;
-
+
g_return_if_fail(ensure_desktop_valid(action));
dt = sp_action_get_desktop(action);
@@ -2134,7 +2138,7 @@ void DialogVerb::perform(SPAction *action, void *data)
// unhide all when opening a new dialog
INKSCAPE.dialogs_unhide();
}
-
+
g_return_if_fail(ensure_desktop_valid(action));
SPDesktop *dt = sp_action_get_desktop(action);
g_assert(dt->_dlg_mgr != NULL);
@@ -2564,6 +2568,8 @@ Verb *Verb::_base_verbs[] = {
N_("Save document under a new name"), INKSCAPE_ICON("document-save-as")),
new FileVerb(SP_VERB_FILE_SAVE_A_COPY, "FileSaveACopy", N_("Save a Cop_y..."),
N_("Save a copy of the document under a new name"), NULL ),
+ new FileVerb(SP_VERB_FILE_SAVE_TEMPLATE, "FileSaveTemplate", N_("Save template ..."),
+ N_("Save a copy of the document as template"), NULL ),
new FileVerb(SP_VERB_FILE_PRINT, "FilePrint", N_("_Print..."), N_("Print document"),
INKSCAPE_ICON("document-print")),
// TRANSLATORS: "Vacuum Defs" means "Clean up defs" (so as to remove unused definitions)
@@ -2572,7 +2578,7 @@ Verb *Verb::_base_verbs[] = {
new FileVerb(SP_VERB_FILE_IMPORT, "FileImport", N_("_Import..."),
N_("Import a bitmap or SVG image into this document"), INKSCAPE_ICON("document-import")),
// new FileVerb(SP_VERB_FILE_EXPORT, "FileExport", N_("_Export Bitmap..."), N_("Export this document or a selection as a bitmap image"), INKSCAPE_ICON("document-export")),
- new FileVerb(SP_VERB_FILE_IMPORT_FROM_OCAL, "FileImportFromOCAL", N_("Import Clip Art..."),
+ new FileVerb(SP_VERB_FILE_IMPORT_FROM_OCAL, "FileImportFromOCAL", N_("Import Clip Art..."),
N_("Import clipart from Open Clip Art Library"), INKSCAPE_ICON("document-import-ocal")),
// new FileVerb(SP_VERB_FILE_EXPORT_TO_OCAL, "FileExportToOCAL", N_("Export To Open Clip Art Library"), N_("Export this document to Open Clip Art Library"), INKSCAPE_ICON_DOCUMENT_EXPORT_OCAL),
new FileVerb(SP_VERB_FILE_NEXT_DESKTOP, "NextWindow", N_("N_ext Window"),
@@ -3199,7 +3205,7 @@ Verb *Verb::_base_verbs[] = {
N_("Remove a linked ICC color profile"), NULL),
// Scripting
new ContextVerb(SP_VERB_EDIT_ADD_EXTERNAL_SCRIPT, "AddExternalScript",
- N_("Add External Script"), N_("Add an external script"), NULL),
+ N_("Add External Script"), N_("Add an external script"), NULL),
new ContextVerb(SP_VERB_EDIT_ADD_EMBEDDED_SCRIPT, "AddEmbeddedScript",
N_("Add Embedded Script"), N_("Add an embedded script"), NULL),
new ContextVerb(SP_VERB_EDIT_EMBEDDED_SCRIPT, "EditEmbeddedScript",
diff --git a/src/verbs.h b/src/verbs.h
index a383bc365..7df2d1399 100644
--- a/src/verbs.h
+++ b/src/verbs.h
@@ -51,6 +51,7 @@ enum {
SP_VERB_FILE_SAVE, /**< Save the current file with its saved filename */
SP_VERB_FILE_SAVE_AS, /**< Save the current file with a new filename */
SP_VERB_FILE_SAVE_A_COPY, /**< Save a copy of the current file */
+ SP_VERB_FILE_SAVE_TEMPLATE, /**< Save the ciurrent document as template */
SP_VERB_FILE_PRINT,
SP_VERB_FILE_VACUUM,
SP_VERB_FILE_IMPORT,
@@ -604,7 +605,7 @@ public:
}
}
static Verb * getbyid (gchar const * id, bool verbose = true);
-
+
/**
* Print a message to stderr indicating that this verb needs a GUI to run
*/