Added default keyboard shortcuts to common commands including: Undo, Redo, Cut, Copy and Paste
git-svn-id: http://svg-edit.googlecode.com/svn/trunk@1949 eee81c28-f429-11dd-99c0-75d572ba1ddd
This commit is contained in:
@@ -2441,6 +2441,14 @@
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
var pasteInCenter = function() {
|
||||||
|
var zoom = svgCanvas.getZoom();
|
||||||
|
|
||||||
|
var x = (workarea[0].scrollLeft + workarea.width()/2)/zoom - svgCanvas.contentW;
|
||||||
|
var y = (workarea[0].scrollTop + workarea.height()/2)/zoom - svgCanvas.contentH;
|
||||||
|
svgCanvas.pasteElements('point', x, y);
|
||||||
|
}
|
||||||
|
|
||||||
var moveToTopSelected = function() {
|
var moveToTopSelected = function() {
|
||||||
if (selectedElement != null) {
|
if (selectedElement != null) {
|
||||||
svgCanvas.moveToTopSelectedElement();
|
svgCanvas.moveToTopSelectedElement();
|
||||||
@@ -3258,7 +3266,7 @@
|
|||||||
// switch modifier key in tooltips if mac
|
// switch modifier key in tooltips if mac
|
||||||
// NOTE: This code is not used yet until I can figure out how to successfully bind ctrl/meta
|
// NOTE: This code is not used yet until I can figure out how to successfully bind ctrl/meta
|
||||||
// in Opera and Chrome
|
// in Opera and Chrome
|
||||||
if (isMac) {
|
if (isMac && !window.opera) {
|
||||||
var shortcutButtons = ["tool_clear", "tool_save", "tool_source", "tool_undo", "tool_redo", "tool_clone"];
|
var shortcutButtons = ["tool_clear", "tool_save", "tool_source", "tool_undo", "tool_redo", "tool_clone"];
|
||||||
var i = shortcutButtons.length;
|
var i = shortcutButtons.length;
|
||||||
while (i--) {
|
while (i--) {
|
||||||
@@ -3950,6 +3958,7 @@
|
|||||||
{sel:'#copy_save_done', fn: cancelOverlays, evt: 'click'},
|
{sel:'#copy_save_done', fn: cancelOverlays, evt: 'click'},
|
||||||
|
|
||||||
// Shortcuts not associated with buttons
|
// Shortcuts not associated with buttons
|
||||||
|
|
||||||
{key: 'ctrl+left', fn: function(){rotateSelected(0,1)}},
|
{key: 'ctrl+left', fn: function(){rotateSelected(0,1)}},
|
||||||
{key: 'ctrl+right', fn: function(){rotateSelected(1,1)}},
|
{key: 'ctrl+right', fn: function(){rotateSelected(1,1)}},
|
||||||
{key: 'ctrl+shift+left', fn: function(){rotateSelected(0,5)}},
|
{key: 'ctrl+shift+left', fn: function(){rotateSelected(0,5)}},
|
||||||
@@ -3968,7 +3977,18 @@
|
|||||||
{key: 'shift+down', fn: function(){moveSelected(0,10)}},
|
{key: 'shift+down', fn: function(){moveSelected(0,10)}},
|
||||||
{key: 'shift+left', fn: function(){moveSelected(-10,0)}},
|
{key: 'shift+left', fn: function(){moveSelected(-10,0)}},
|
||||||
{key: 'shift+right', fn: function(){moveSelected(10,0)}},
|
{key: 'shift+right', fn: function(){moveSelected(10,0)}},
|
||||||
{key: 'A', fn: function(){svgCanvas.selectAllInCurrentLayer();}}
|
{key: 'A', fn: function(){svgCanvas.selectAllInCurrentLayer();}},
|
||||||
|
|
||||||
|
// Standard shortcuts
|
||||||
|
{key: modKey+'z', fn: clickUndo},
|
||||||
|
{key: modKey + 'shift+z', fn: clickRedo},
|
||||||
|
{key: modKey + 'y', fn: clickRedo},
|
||||||
|
|
||||||
|
{key: modKey+'x', fn: cutSelected},
|
||||||
|
{key: modKey+'c', fn: copySelected},
|
||||||
|
{key: modKey+'v', fn: pasteInCenter}
|
||||||
|
|
||||||
|
|
||||||
];
|
];
|
||||||
|
|
||||||
// Tooltips not directly associated with a single function
|
// Tooltips not directly associated with a single function
|
||||||
@@ -4183,12 +4203,12 @@
|
|||||||
case 'ungroup':
|
case 'ungroup':
|
||||||
svgCanvas.ungroupSelectedElement();
|
svgCanvas.ungroupSelectedElement();
|
||||||
break;
|
break;
|
||||||
case 'move_front':
|
case 'move_front':
|
||||||
moveToTopSelected();
|
moveToTopSelected();
|
||||||
break;
|
break;
|
||||||
case 'move_up':
|
case 'move_up':
|
||||||
moveUpDownSelected('Up');
|
moveUpDownSelected('Up');
|
||||||
break;
|
break;
|
||||||
case 'move_down':
|
case 'move_down':
|
||||||
moveUpDownSelected('Down');
|
moveUpDownSelected('Down');
|
||||||
break;
|
break;
|
||||||
|
|||||||
@@ -8849,7 +8849,7 @@ this.copySelectedElements = function() {
|
|||||||
canvas.clipBoard = $.merge([], selectedElements);
|
canvas.clipBoard = $.merge([], selectedElements);
|
||||||
};
|
};
|
||||||
|
|
||||||
this.pasteElements = function(type) {
|
this.pasteElements = function(type, x, y) {
|
||||||
var cb = canvas.clipBoard;
|
var cb = canvas.clipBoard;
|
||||||
var len = cb.length;
|
var len = cb.length;
|
||||||
if(!len) return;
|
if(!len) return;
|
||||||
@@ -8875,9 +8875,20 @@ this.pasteElements = function(type) {
|
|||||||
selectOnly(pasted);
|
selectOnly(pasted);
|
||||||
|
|
||||||
if(type !== 'in_place') {
|
if(type !== 'in_place') {
|
||||||
|
|
||||||
|
var ctr_x, ctr_y;
|
||||||
|
|
||||||
|
if(!type) {
|
||||||
|
ctr_x = lastClickPoint.x;
|
||||||
|
ctr_y = lastClickPoint.y;
|
||||||
|
} else if(type === 'point') {
|
||||||
|
ctr_x = x;
|
||||||
|
ctr_y = y;
|
||||||
|
}
|
||||||
|
|
||||||
var bbox = getStrokedBBox(pasted);
|
var bbox = getStrokedBBox(pasted);
|
||||||
var cx = lastClickPoint.x - (bbox.x + bbox.width/2),
|
var cx = ctr_x - (bbox.x + bbox.width/2),
|
||||||
cy = lastClickPoint.y - (bbox.y + bbox.height/2),
|
cy = ctr_y - (bbox.y + bbox.height/2),
|
||||||
dx = [],
|
dx = [],
|
||||||
dy = [];
|
dy = [];
|
||||||
|
|
||||||
@@ -8890,6 +8901,8 @@ this.pasteElements = function(type) {
|
|||||||
batchCmd.addSubCommand(cmd);
|
batchCmd.addSubCommand(cmd);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
addCommandToHistory(batchCmd);
|
addCommandToHistory(batchCmd);
|
||||||
call("changed", pasted);
|
call("changed", pasted);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user