[plugins] mark pluginMethod_InsertOleObject and pluginMethod_ChangeOleObjects as async methods

This commit is contained in:
Sergey Luzyanin
2023-02-14 18:15:58 +05:30
parent 75ed68475b
commit 69d6a5078f
3 changed files with 37 additions and 15 deletions

View File

@ -2337,28 +2337,40 @@
baseEditorsApi.prototype.asc_addOleObject = function(oPluginData)
{
if(this.isViewMode){
if(this.isViewMode) {
return;
}
var oThis = this;
var sImgSrc = oPluginData["imgSrc"];
var nWidthPix = oPluginData["widthPix"];
var nHeightPix = oPluginData["heightPix"];
var fWidthMM = oPluginData["width"];
var fHeightMM = oPluginData["height"];
var sData = oPluginData["data"];
var sGuid = oPluginData["guid"];
var bSelect = (oPluginData["select"] === true || oPluginData["select"] === false) ? oPluginData["select"] : true;
let oThis = this;
let sImgSrc = oPluginData["imgSrc"];
let nWidthPix = oPluginData["widthPix"];
let nHeightPix = oPluginData["heightPix"];
let fWidthMM = oPluginData["width"];
let fHeightMM = oPluginData["height"];
let sData = oPluginData["data"];
let sGuid = oPluginData["guid"];
let bSelect = (oPluginData["select"] === true || oPluginData["select"] === false) ? oPluginData["select"] : true;
let bPlugin = oPluginData["plugin"] === true && !!window.g_asc_plugins;
if (typeof sImgSrc === "string" && sImgSrc.length > 0 && typeof sData === "string"
&& typeof sGuid === "string" && sGuid.length > 0
/*&& AscFormat.isRealNumber(nWidthPix) && AscFormat.isRealNumber(nHeightPix)*/
&& AscFormat.isRealNumber(fWidthMM) && AscFormat.isRealNumber(fHeightMM)
)
this.asc_checkImageUrlAndAction(sImgSrc, function(oImage)
{
oThis.asc_addOleObjectAction(AscCommon.g_oDocumentUrls.getImageLocal(oImage.src), sData, sGuid, fWidthMM, fHeightMM, nWidthPix, nHeightPix, bSelect);
});
let sMethodGuid;
if(bPlugin)
{
sMethodGuid = window.g_asc_plugins.setPluginMethodReturnAsync();
}
this.asc_checkImageUrlAndAction(sImgSrc, function(oImage)
{
oThis.asc_addOleObjectAction(AscCommon.g_oDocumentUrls.getImageLocal(oImage.src), sData, sGuid, fWidthMM, fHeightMM, nWidthPix, nHeightPix, bSelect);
if(bPlugin)
{
window.g_asc_plugins.onPluginMethodReturn(sMethodGuid);
}
});
}
};
baseEditorsApi.prototype.asc_editOleObject = function(oPluginData)

View File

@ -2299,7 +2299,7 @@ CDocumentContentBase.prototype.SetThisElementCurrent = function(isUpdateStates)
*/
CDocumentContentBase.prototype.GetAllOleObjects = function(sPluginId, arrObjects)
{
if (Array.isArray(arrObjects))
if (!Array.isArray(arrObjects))
{
arrObjects = [];
}

View File

@ -864,6 +864,7 @@
oPluginData["data"] = NewObject["Data"];
oPluginData["guid"] = NewObject["ApplicationId"];
oPluginData["select"] = bSelect;
oPluginData["plugin"] = true;
this.asc_addOleObject(oPluginData);
};
@ -964,6 +965,11 @@
oImagesMap[oData["ImageData"]] = oData["ImageData"];
}
let oApi = this;
let sGuid;
if(window.g_asc_plugins)
{
sGuid = window.g_asc_plugins.setPluginMethodReturnAsync();
}
AscCommon.Check_LoadingDataBeforePrepaste(this, {}, oImagesMap, function() {
oLogicDocument.Reassign_ImageUrls(oImagesMap);
oLogicDocument.Recalculate();
@ -971,6 +977,10 @@
oLogicDocument.LoadDocumentState(oStartState);
oLogicDocument.UpdateSelection();
oLogicDocument.FinalizeAction();
if(window.g_asc_plugins)
{
window.g_asc_plugins.onPluginMethodReturn(sGuid);
}
});
}
else