X-Git-Url: https://git.ucc.asn.au/?p=ipdf%2Fcode.git;a=blobdiff_plain;f=src%2Fcontrolpanel.cpp;h=462105f9b415bcca92bae8b1153e7f95b4df6dfc;hp=0a50114c126792f23d66b7b129707cf62d763958;hb=b716ae547424e4e4bbda86781a151c31e3a64e67;hpb=54cbdc5600ed4280f1e33f9f1f4780e48713c352 diff --git a/src/controlpanel.cpp b/src/controlpanel.cpp index 0a50114..462105f 100644 --- a/src/controlpanel.cpp +++ b/src/controlpanel.cpp @@ -315,6 +315,10 @@ void ControlPanel::InsertTextIntoDocument() m_doc.AddText(msg, scale, xx, yy); #ifndef QUADTREE_DISABLED m_doc.PropagateQuadChanges(m_view.GetCurrentQuadtreeNode()); + // We may have split the object across up-to four nodes, so try the neighbouring nodes. + m_doc.PropagateQuadChanges(m_doc.GetQuadTree().GetNeighbour(m_view.GetCurrentQuadtreeNode(), 0, 1, 0)); + m_doc.PropagateQuadChanges(m_doc.GetQuadTree().GetNeighbour(m_view.GetCurrentQuadtreeNode(), 1, 0, 0)); + m_doc.PropagateQuadChanges(m_doc.GetQuadTree().GetNeighbour(m_view.GetCurrentQuadtreeNode(), 1, 1, 0)); #endif m_view.ForceRenderDirty(); m_view.ForceBufferDirty(); @@ -335,6 +339,10 @@ void ControlPanel::InsertSVGIntoDocument() m_doc.ParseSVG(m_text_edit->toPlainText().toStdString(), bounds); #ifndef QUADTREE_DISABLED m_doc.PropagateQuadChanges(m_view.GetCurrentQuadtreeNode()); + // We may have split the object across up-to four nodes, so try the neighbouring nodes. + m_doc.PropagateQuadChanges(m_doc.GetQuadTree().GetNeighbour(m_view.GetCurrentQuadtreeNode(), 0, 1, 0)); + m_doc.PropagateQuadChanges(m_doc.GetQuadTree().GetNeighbour(m_view.GetCurrentQuadtreeNode(), 1, 0, 0)); + m_doc.PropagateQuadChanges(m_doc.GetQuadTree().GetNeighbour(m_view.GetCurrentQuadtreeNode(), 1, 1, 0)); #endif m_view.ForceRenderDirty(); m_view.ForceBufferDirty(); @@ -365,6 +373,10 @@ void ControlPanel::LoadSVGIntoDocument() m_doc.LoadSVG(filename.toStdString(), bounds); #ifndef QUADTREE_DISABLED m_doc.PropagateQuadChanges(m_view.GetCurrentQuadtreeNode()); + // We may have split the object across up-to four nodes, so try the neighbouring nodes. + m_doc.PropagateQuadChanges(m_doc.GetQuadTree().GetNeighbour(m_view.GetCurrentQuadtreeNode(), 0, 1, 0)); + m_doc.PropagateQuadChanges(m_doc.GetQuadTree().GetNeighbour(m_view.GetCurrentQuadtreeNode(), 1, 0, 0)); + m_doc.PropagateQuadChanges(m_doc.GetQuadTree().GetNeighbour(m_view.GetCurrentQuadtreeNode(), 1, 1, 0)); #endif m_view.ForceRenderDirty(); m_view.ForceBufferDirty();