feat(编辑能力): 修复样式复制继承与直线编辑校验问题
build.yaml / build (push) Successful in 37s

This commit is contained in:
xiaoqidun committed 2026-09-17 21:26:54 +08:00
1 parent f8eeaad9f2
commit 4826496e98
13 files changed
+519 -178

No files matched your search

+7 -20
View File
@@ -98,10 +98,7 @@ func (e *Editor) CopyObjectsToComposite(page int, path ObjectPath, objects []Gra
if err := node.convertCoordinates(IdentityMatrix, true); err != nil {
return err
}
node.defaults, err = e.editorDrawParam(e.copiedLayerStyle(source), make(map[string]bool))
if err != nil {
return err
}
node.drawParams = []string{e.copiedLayerStyle(source)}
}
if err := e.isolateCompositeStyle(node); err != nil {
return err
@@ -157,27 +154,17 @@ func (e *Editor) CopyObjectsToComposite(page int, path ObjectPath, objects []Gra
// 返回: error 错误信息
func (e *Editor) isolateCompositeStyle(node *editorCompositeNode) error {
if node.object.Type == "CompositeObject" || node.object.Type == "CompositeGraphicUnit" {
own, err := e.editorDrawParam(node.object.CompositeGraphicUnit.DrawParam, make(map[string]bool))
if err != nil {
return err
}
if node.defaults != nil {
own = mergeDrawParam(*node.defaults, own)
}
for _, color := range []*FillColor{own.FillColor, (*FillColor)(own.StrokeColor)} {
if err := e.editorColor(color); err != nil {
return &EditError{Code: EditUnsupportedColor, Err: fmt.Errorf("composite inherited color cannot be isolated: %w", err)}
}
}
id, err := e.neutralDrawParam()
if err != nil {
return err
}
base, err := e.editorDrawParam(id, make(map[string]bool))
if err != nil {
return err
for _, source := range node.drawParams {
id, err = e.copyDrawParam(source, id, make(map[string]bool))
if err != nil {
return err
}
}
id, err = e.addEditorDrawParam(*mergeDrawParam(*base, own))
id, err = e.copyDrawParam(node.object.CompositeGraphicUnit.DrawParam, id, make(map[string]bool))
if err != nil {
return err
}