mirror of
https://github.com/xiaoqidun/ofdgo.git
synced 2026-10-29 16:44:23 +08:00
This commit is contained in:
1 parent
094f67e333
commit
896b00148a
14 files changed
+963
-60
No files matched your search
+15
-1
@@ -350,6 +350,13 @@ func (e *Editor) UpdateObjects(page int, objects []GraphicObject) error {
|
||||
// 入参: page 页面索引, objects 新对象, preserveContent 是否保留原内容
|
||||
// 返回: error 错误信息
|
||||
func (e *Editor) updateObjects(page int, objects []GraphicObject, preserveContent bool) error {
|
||||
return e.updateObjectOrigins(page, objects, preserveContent, nil)
|
||||
}
|
||||
|
||||
// updateObjectOrigins 原子提交对象及原文来源,撤销时一并恢复
|
||||
// 入参: page 页面索引, objects 新对象, preserveContent 是否保留原内容, origins 新原文来源
|
||||
// 返回: error 错误信息
|
||||
func (e *Editor) updateObjectOrigins(page int, objects []GraphicObject, preserveContent bool, origins map[string]*editorObjectOrigin) error {
|
||||
ids := make([]string, len(objects))
|
||||
for i, object := range objects {
|
||||
ids[i] = editorObjectID(object)
|
||||
@@ -416,6 +423,13 @@ func (e *Editor) updateObjects(page int, objects []GraphicObject, preserveConten
|
||||
}
|
||||
}
|
||||
}
|
||||
if next := origins[ids[i]]; next != nil {
|
||||
if beforeOrigins == nil {
|
||||
beforeOrigins = make(map[string]*editorObjectOrigin)
|
||||
afterOrigins = make(map[string]*editorObjectOrigin)
|
||||
}
|
||||
beforeOrigins[ids[i]], afterOrigins[ids[i]] = origin, next
|
||||
}
|
||||
}
|
||||
if reflect.DeepEqual(before, after) {
|
||||
return nil
|
||||
@@ -612,7 +626,7 @@ func (e *Editor) objectBounds(page int, objects []GraphicObject) ([]Box, error)
|
||||
if _, err := reader.PageContentByIndex(page); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
renderer := NewRenderer(reader)
|
||||
renderer := NewRenderer(reader, WithFontFS(e.fontFS...))
|
||||
boxes := make([]Box, len(objects))
|
||||
for i, object := range objects {
|
||||
layer, _, findErr := e.findObject(page, editorObjectID(object))
|
||||
|
||||
Reference in new issue
Block a user