Parcourir la source

:art: 改进块树索引

Liang Ding il y a 2 ans
Parent
commit
57a3188f4c
2 fichiers modifiés avec 6 ajouts et 5 suppressions
  1. 5 4
      kernel/model/block.go
  2. 1 1
      kernel/treenode/blocktree.go

+ 5 - 4
kernel/model/block.go

@@ -155,6 +155,9 @@ func SwapBlockRef(refID, defID string, includeChildren bool) (err error) {
 		}
 	}
 
+	refreshUpdated(defNode)
+	refreshUpdated(refNode)
+
 	refPivot := treenode.NewParagraph()
 	refNode.InsertBefore(refPivot)
 
@@ -215,13 +218,11 @@ func SwapBlockRef(refID, defID string, includeChildren bool) (err error) {
 	}
 	refPivot.Unlink()
 
-	treenode.IndexBlockTree(refTree)
-	if err = writeJSONQueue(refTree); nil != err {
+	if err = indexWriteJSONQueue(refTree); nil != err {
 		return
 	}
 	if !sameTree {
-		treenode.IndexBlockTree(defTree)
-		if err = writeJSONQueue(defTree); nil != err {
+		if err = indexWriteJSONQueue(defTree); nil != err {
 			return
 		}
 	}

+ 1 - 1
kernel/treenode/blocktree.go

@@ -270,7 +270,7 @@ func IndexBlockTree(tree *parse.Tree) {
 		slice.m.Unlock()
 
 		if nil != bt {
-			if bt.Updated != n.IALAttr("updated") {
+			if bt.Updated != n.IALAttr("updated") || bt.Path != tree.Path || bt.BoxID != tree.Box || bt.HPath != tree.HPath {
 				children := ChildBlockNodes(n) // 需要考虑子块,因为一些操作(比如移动块)后需要同时更新子块
 				changedNodes = append(changedNodes, children...)
 			}