Merge pull request #1903 from ONLYOFFICE/fix/pe-custom-path

Fix/pe custom path
This commit is contained in:
Julia Radzhabova 2022-08-24 16:38:43 +03:00 committed by GitHub
commit d6636e0592
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 53 additions and 15 deletions

View file

@ -794,6 +794,9 @@ define(function(){ 'use strict';
textTurns: 'Turns',
textShapes: 'Shapes',
textLoops: 'Loops',
textPathCurve: 'Curve',
textPathLine: 'Line',
textPathScribble: 'Scribble',
getEffectGroupData: function () {
return [
@ -849,8 +852,8 @@ define(function(){ 'use strict';
{group: 'menu-effect-group-path', value: AscFormat.MOTION_ARC_DOWN, iconCls: 'animation-motion-paths-arcs', displayValue: this.textArcs, familyEffect: 'patharcs'},
{group: 'menu-effect-group-path', value: AscFormat.MOTION_TURN_DOWN, iconCls: 'animation-motion-paths-turns', displayValue: this.textTurns, familyEffect: 'pathturns'},
{group: 'menu-effect-group-path', value: AscFormat.MOTION_CIRCLE, iconCls: 'animation-motion-paths-shapes', displayValue: this.textShapes, familyEffect: 'pathshapes'},
{group: 'menu-effect-group-path', value: AscFormat.MOTION_HORIZONTAL_FIGURE_8_FOUR, iconCls: 'animation-motion-paths-loops', displayValue: this.textLoops, familyEffect: 'pathloops'}//,
//{group: 'menu-effect-group-path', value: AscFormat.MOTION_CUSTOM_PATH, iconCls: 'animation-motion-paths-custom-path', displayValue: this.textCustomPath}
{group: 'menu-effect-group-path', value: AscFormat.MOTION_HORIZONTAL_FIGURE_8_FOUR, iconCls: 'animation-motion-paths-loops', displayValue: this.textLoops, familyEffect: 'pathloops'},
{group: 'menu-effect-group-path', value: AscFormat.MOTION_CUSTOM_PATH, iconCls: 'animation-motion-paths-custom-path', displayValue: this.textCustomPath}
];
},
@ -1038,7 +1041,8 @@ define(function(){ 'use strict';
{group: 'menu-effect-group-path', level: 'menu-effect-level-special', value: AscFormat.MOTION_PEANUT, displayValue: this.textPeanut},
{group: 'menu-effect-group-path', level: 'menu-effect-level-special', value: AscFormat.MOTION_POINTY_STAR, displayValue: this.textPointStar},
{group: 'menu-effect-group-path', level: 'menu-effect-level-special', value: AscFormat.MOTION_SWOOSH, displayValue: this.textSwoosh},
{group: 'menu-effect-group-path', level: 'menu-effect-level-special', value: AscFormat.MOTION_VERTICAL_FIGURE_8, displayValue: this.textVerticalFigure, familyEffect: 'pathloops'}
{group: 'menu-effect-group-path', level: 'menu-effect-level-special', value: AscFormat.MOTION_VERTICAL_FIGURE_8, displayValue: this.textVerticalFigure, familyEffect: 'pathloops'},
{group: 'menu-effect-group-path', level: 'menu-effect-level-special', value: AscFormat.MOTION_CUSTOM_PATH, displayValue: this.textCustomPath, notsupported: true}
];
},
@ -1277,11 +1281,21 @@ define(function(){ 'use strict';
return undefined;
}
break;
case 'menu-effect-group-path':
switch (type) {
case AscFormat.MOTION_CUSTOM_PATH:
return [
{value: AscFormat.MOTION_CUSTOM_PATH_CURVE, caption: this.textPathCurve, isCustom: true},
{value: AscFormat.MOTION_CUSTOM_PATH_LINE, caption: this.textPathLine, isCustom: true},
{value: AscFormat.MOTION_CUSTOM_PATH_SCRIBBLE, caption: this.textPathScribble, isCustom: true}
];
}
break;
default:
return undefined;
}
},
getSimilarEffectsArray: function (group, familyEffect) {
getSimilarEffectsArray: function (familyEffect) {
switch (familyEffect){
case 'shape':
return [

View file

@ -155,6 +155,10 @@ define([
this.AnimationProperties.asc_putSubtype(value);
this.api.asc_SetAnimationProperties(this.AnimationProperties);
}
else if(toggleGroup=='custompath') {
var groupName = _.findWhere(this.EffectGroups, {value: AscFormat.PRESET_CLASS_PATH}).id;
this.addNewEffect(AscFormat.MOTION_CUSTOM_PATH, AscFormat.PRESET_CLASS_PATH, groupName,true, value);
}
else {
var groupName = _.findWhere(this.EffectGroups, {value: this._state.EffectGroup}).id;
this.addNewEffect(value, this._state.EffectGroup, groupName,true, this._state.EffectOption);
@ -185,6 +189,10 @@ define([
var type = record.get('value');
var group = _.findWhere(this.EffectGroups, {id: record.get('group')}).value;
this.addNewEffect(type, group, record.get('group'), false);
if (group===AscFormat.PRESET_CLASS_PATH && type===AscFormat.MOTION_CUSTOM_PATH) {
Common.Utils.lockControls(Common.enumLock.noAnimation, false, {array: [this.view.btnParameters]});
Common.Utils.lockControls(Common.enumLock.noAnimationParam, false, {array: [this.view.btnParameters]});
}
},
addNewEffect: function (type, group, groupName, replace, parametr, preview) {
@ -326,7 +334,13 @@ define([
var group = _.findWhere(this.EffectGroups, {id: record.get('group')});
group = group ? group.value : undefined;
this.addNewEffect(type, group, record.get('group'),this._state.Effect != AscFormat.ANIM_PRESET_NONE);
var prevEffect = this._state.Effect;
this._state.Effect = undefined;
this.addNewEffect(type, group, record.get('group'),prevEffect != AscFormat.ANIM_PRESET_NONE);
if (group===AscFormat.PRESET_CLASS_PATH && type===AscFormat.MOTION_CUSTOM_PATH) {
Common.Utils.lockControls(Common.enumLock.noAnimation, false, {array: [this.view.btnParameters]});
Common.Utils.lockControls(Common.enumLock.noAnimationParam, false, {array: [this.view.btnParameters]});
}
}
},

View file

@ -96,7 +96,7 @@ define([
if (me.btnParameters) {
me.btnParameters.menu.on('item:click', function (menu, item, e) {
me.fireEvent('animation:parameters', [item.value, item.toggleGroup]);
me.fireEvent('animation:parameters', [item.value, item.options.isCustom ? 'custompath' : item.toggleGroup]);
});
}
@ -572,25 +572,32 @@ define([
}
if (arrEffectOptions){
if (this.btnParameters.menu.items.length == 0) {
arrEffectOptions.forEach(function (opt, index) {
opt.checkable = true;
opt.toggleGroup = 'animateeffects';
this.btnParameters.menu.addItem(opt);
(opt.value == option || option===undefined && !!opt.defvalue) && (selectedElement = this.btnParameters.menu.items[index]);
}, this);
if (effectGroup==='menu-effect-group-path' && effectId===AscFormat.MOTION_CUSTOM_PATH) {
arrEffectOptions.forEach(function (opt, index) {
this.btnParameters.menu.addItem(opt);
(opt.value == option || option===undefined && !!opt.defvalue) && (selectedElement = this.btnParameters.menu.items[index]);
}, this);
} else {
arrEffectOptions.forEach(function (opt, index) {
opt.checkable = true;
opt.toggleGroup = 'animateeffects';
this.btnParameters.menu.addItem(opt);
(opt.value == option || option===undefined && !!opt.defvalue) && (selectedElement = this.btnParameters.menu.items[index]);
}, this);
}
(effect && effect.familyEffect) && this.btnParameters.menu.addItem({caption: '--'});
} else {
this.btnParameters.menu.clearAll();
this.btnParameters.menu.items.forEach(function (opt) {
if(opt.toggleGroup == 'animateeffects' && (opt.value == option || option===undefined && !!opt.options.defvalue))
if((opt.toggleGroup == 'animateeffects' || effectGroup==='menu-effect-group-path' && effectId===AscFormat.MOTION_CUSTOM_PATH) && (opt.value == option || option===undefined && !!opt.options.defvalue))
selectedElement = opt;
},this);
}
selectedElement && selectedElement.setChecked(true);
!(effectGroup==='menu-effect-group-path' && effectId===AscFormat.MOTION_CUSTOM_PATH) && selectedElement && selectedElement.setChecked(true);
}
if (effect && effect.familyEffect){
if (this._familyEffect != effect.familyEffect) {
var effectsArray = Common.define.effectData.getSimilarEffectsArray(effectGroup, effect.familyEffect);
var effectsArray = Common.define.effectData.getSimilarEffectsArray(effect.familyEffect);
effectsArray.forEach(function (opt) {
opt.checkable = true;
opt.toggleGroup = 'animatesimilareffects'

View file

@ -245,6 +245,9 @@
"Common.define.effectData.textWipe": "Wipe",
"Common.define.effectData.textZigzag": "Zigzag",
"Common.define.effectData.textZoom": "Zoom",
"Common.define.effectData.textPathCurve": "Curve",
"Common.define.effectData.textPathLine": "Line",
"Common.define.effectData.textPathScribble": "Scribble",
"Common.Translation.textMoreButton": "More",
"Common.Translation.warnFileLocked": "The file is being edited in another app. You can continue editing and save it as a copy.",
"Common.Translation.warnFileLockedBtnEdit": "Create a copy",