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:
Alexis Deveria
2011-01-28 20:11:18 +00:00
parent 2a8f6fbd20
commit 81ac3d75c6
2 changed files with 44 additions and 11 deletions

View File

@@ -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() {
if (selectedElement != null) {
svgCanvas.moveToTopSelectedElement();
@@ -3258,7 +3266,7 @@
// 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
// 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 i = shortcutButtons.length;
while (i--) {
@@ -3950,6 +3958,7 @@
{sel:'#copy_save_done', fn: cancelOverlays, evt: 'click'},
// Shortcuts not associated with buttons
{key: 'ctrl+left', fn: function(){rotateSelected(0,1)}},
{key: 'ctrl+right', fn: function(){rotateSelected(1,1)}},
{key: 'ctrl+shift+left', fn: function(){rotateSelected(0,5)}},
@@ -3968,7 +3977,18 @@
{key: 'shift+down', fn: function(){moveSelected(0,10)}},
{key: 'shift+left', 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
@@ -4183,12 +4203,12 @@
case 'ungroup':
svgCanvas.ungroupSelectedElement();
break;
case 'move_front':
moveToTopSelected();
break;
case 'move_up':
moveUpDownSelected('Up');
break;
case 'move_front':
moveToTopSelected();
break;
case 'move_up':
moveUpDownSelected('Up');
break;
case 'move_down':
moveUpDownSelected('Down');
break;

View File

@@ -8849,7 +8849,7 @@ this.copySelectedElements = function() {
canvas.clipBoard = $.merge([], selectedElements);
};
this.pasteElements = function(type) {
this.pasteElements = function(type, x, y) {
var cb = canvas.clipBoard;
var len = cb.length;
if(!len) return;
@@ -8875,9 +8875,20 @@ this.pasteElements = function(type) {
selectOnly(pasted);
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 cx = lastClickPoint.x - (bbox.x + bbox.width/2),
cy = lastClickPoint.y - (bbox.y + bbox.height/2),
var cx = ctr_x - (bbox.x + bbox.width/2),
cy = ctr_y - (bbox.y + bbox.height/2),
dx = [],
dy = [];
@@ -8890,6 +8901,8 @@ this.pasteElements = function(type) {
batchCmd.addSubCommand(cmd);
}
addCommandToHistory(batchCmd);
call("changed", pasted);
}