Commit 3caf3a5b authored by Oleg.Korshul's avatar Oleg.Korshul Committed by Alexander.Trofimov

copy/cut desktop editor

git-svn-id: svn://192.168.3.15/activex/AVS/Sources/TeamlabOffice/trunk/OfficeWeb@62430 954022d7-b5bf-4e40-9824-e11837661b57
parent 8051245e
...@@ -627,7 +627,7 @@ var ASC_DOCS_API_USE_EMBEDDED_FONTS = "@@ASC_DOCS_API_USE_EMBEDDED_FONTS"; ...@@ -627,7 +627,7 @@ var ASC_DOCS_API_USE_EMBEDDED_FONTS = "@@ASC_DOCS_API_USE_EMBEDDED_FONTS";
var _e = {}; var _e = {};
_e.ctrlKey = true; _e.ctrlKey = true;
_e.shiftKey = false; _e.shiftKey = false;
_e.which = 86; _e.which = 67;
this.controller._onWindowKeyDown(_e); this.controller._onWindowKeyDown(_e);
...@@ -642,12 +642,46 @@ var ASC_DOCS_API_USE_EMBEDDED_FONTS = "@@ASC_DOCS_API_USE_EMBEDDED_FONTS"; ...@@ -642,12 +642,46 @@ var ASC_DOCS_API_USE_EMBEDDED_FONTS = "@@ASC_DOCS_API_USE_EMBEDDED_FONTS";
}; };
spreadsheet_api.prototype.asc_Paste = function(){ spreadsheet_api.prototype.asc_Paste = function(){
if (window["AscDesktopEditor"])
{
window["AscDesktopEditorButtonMode"] = true;
var _e = {};
_e.ctrlKey = true;
_e.shiftKey = false;
_e.which = 86;
this.controller._onWindowKeyDown(_e);
window["AscDesktopEditorButtonMode"] = false;
return;
}
var result = this.wb.pasteFromClipboardButton(); var result = this.wb.pasteFromClipboardButton();
this.wb.restoreFocus(); this.wb.restoreFocus();
return result; return result;
}; };
spreadsheet_api.prototype.asc_Cut = function(){ spreadsheet_api.prototype.asc_Cut = function(){
if (window["AscDesktopEditor"])
{
window["AscDesktopEditorButtonMode"] = true;
var _e = {};
_e.ctrlKey = true;
_e.shiftKey = false;
_e.which = 88;
this.controller._onWindowKeyDown(_e);
window["AscDesktopEditorButtonMode"] = false;
return;
}
var result = this.wb.cutToClipboardButton(); var result = this.wb.cutToClipboardButton();
this.wb.restoreFocus(); this.wb.restoreFocus();
return result; return result;
......
...@@ -258,7 +258,7 @@ ...@@ -258,7 +258,7 @@
this.element = undefined; this.element = undefined;
} }
}, },
copyDesktopEditorButton: function(ElemToSelect, isCut) copyDesktopEditorButton: function(ElemToSelect, isCut)
{ {
if (isCut) if (isCut)
...@@ -273,11 +273,17 @@ ...@@ -273,11 +273,17 @@
var api = window["Asc"]["editor"]; var api = window["Asc"]["editor"];
if(api.controller.isCellEditMode) if(api.controller.isCellEditMode)
return; return;
Editor_Copy_Event_Excel(e, ElemToSelect, true, true); Editor_Copy_Event_Excel(e, ElemToSelect, true, true);
e.preventDefault();
}
var selection = window.getSelection();
var rangeToSelect = window.document.createRange();
rangeToSelect.selectNodeContents(ElemToSelect);
selection.removeAllRanges();
selection.addRange(rangeToSelect);
};
ElemToSelect.focus();
window["AscDesktopEditor"]["Cut"](); window["AscDesktopEditor"]["Cut"]();
} }
else else
...@@ -292,11 +298,17 @@ ...@@ -292,11 +298,17 @@
var api = window["Asc"]["editor"]; var api = window["Asc"]["editor"];
if(api.controller.isCellEditMode) if(api.controller.isCellEditMode)
return; return;
Editor_Copy_Event_Excel(e, ElemToSelect, null, true); Editor_Copy_Event_Excel(e, ElemToSelect, null, true);
e.preventDefault();
}
var selection = window.getSelection();
var rangeToSelect = window.document.createRange();
rangeToSelect.selectNodeContents(ElemToSelect);
selection.removeAllRanges();
selection.addRange(rangeToSelect);
};
ElemToSelect.focus();
window["AscDesktopEditor"]["Copy"](); window["AscDesktopEditor"]["Copy"]();
} }
...@@ -414,6 +426,59 @@ ...@@ -414,6 +426,59 @@
} }
}, },
_getHtmlBase64: function(range, worksheet, isCut)
{
var t = this;
t._cleanElement();
var objectRender = worksheet.objectRender;
var isIntoShape = objectRender.controller.getTargetDocContent();
var text = t._makeTableNode(range, worksheet, isCut, isIntoShape);
if(text == false)
return;
this._startCopyOrPaste();
t.element.appendChild(text);
History.TurnOff();
//use binary strings
if(copyPasteUseBinary)
{
if(isIntoShape)
{
this.lStorage = {};
this.lStorage.htmlInShape = text;
}
else
{
var sBase64 = this._getBinaryForCopy(worksheet);
if(this.element.children && this.element.children.length == 1 && (window.USER_AGENT_WEBKIT || window.USER_AGENT_SAFARI_MACOS))
{
$(this.element.children[0]).css("font-weight", "normal");
$(this.element.children[0]).wrap(document.createElement("b"));
}
if(this.element.children[0])
$(this.element.children[0]).addClass("xslData;" + sBase64);
//for buttons copy/paste
this.lStorage = sBase64;
}
}
History.TurnOn();
/*if(AscBrowser.isMozilla)
t._selectElement(t._getStylesSelect);
else
t._selectElement();*/
this._endCopyOrPaste();
},
_getBinaryForCopy: function(worksheet) _getBinaryForCopy: function(worksheet)
{ {
var fullUrl = this._getUseFullUrl(); var fullUrl = this._getUseFullUrl();
...@@ -5621,14 +5686,22 @@ function SafariIntervalFocus2() ...@@ -5621,14 +5686,22 @@ function SafariIntervalFocus2()
} }
} }
function Editor_Copy_Event_Excel(e, ElemToSelect, isCut) function Editor_Copy_Event_Excel(e, ElemToSelect, isCut, isAlreadyReadyHtml)
{ {
var api = window["Asc"]["editor"]; var api = window["Asc"]["editor"];
var wb = api.wb; var wb = api.wb;
var ws = wb.getWorksheet(); var ws = wb.getWorksheet();
var sBase64 = wb.clipboard.copyRange(ws.getSelectedRange(), ws, isCut, true); var sBase64;
if(!isAlreadyReadyHtml)
{
if (window["AscDesktopEditorButtonMode"] === true && window["AscDesktopEditor"])
sBase64 = wb.clipboard._getHtmlBase64(ws.getSelectedRange(), ws, isCut, true);
else
sBase64 = wb.clipboard.copyRange(ws.getSelectedRange(), ws, isCut, true);
}
if(isCut) if(isCut)
ws.emptySelection(c_oAscCleanOptions.All); ws.emptySelection(c_oAscCleanOptions.All);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment