From 82c69ce984dbda106fa4ed41fbb8ff862e53ba77 Mon Sep 17 00:00:00 2001 From: Brian Milby Date: Sat, 18 Aug 2018 00:47:56 -0500 Subject: [PATCH 1/2] [[ Bug 21503 ]] Tree widget - prevent value removal on key addition Current operation of the tree widget will delete the value stored in a key if the "+" is clicked to add a new sub-key and it is not already an array. This change alters the behavior such that when the "+" is clicked, if the current key is not already an array, then the existing value is moved to the new sub-key that is created. --- extensions/widgets/treeview/notes/21503.md | 1 + extensions/widgets/treeview/treeview.lcb | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) create mode 100644 extensions/widgets/treeview/notes/21503.md diff --git a/extensions/widgets/treeview/notes/21503.md b/extensions/widgets/treeview/notes/21503.md new file mode 100644 index 00000000000..efbb95cbcf2 --- /dev/null +++ b/extensions/widgets/treeview/notes/21503.md @@ -0,0 +1 @@ +# [21503] Prevent value removal on key addition \ No newline at end of file diff --git a/extensions/widgets/treeview/treeview.lcb b/extensions/widgets/treeview/treeview.lcb index e7641189506..588941000ee 100644 --- a/extensions/widgets/treeview/treeview.lcb +++ b/extensions/widgets/treeview/treeview.lcb @@ -759,7 +759,7 @@ public handler OnMouseDown() returns nothing end if end handler -public handler OnMouseMove() returns nothing +public handler OnMouseMove() returns nothing if scrollDragging() then variable tScrollPositionRatio as Real scrollbarDrag(mViewHeight) @@ -1511,7 +1511,7 @@ private handler addKey(in pListElt as Integer, in pPath as List, in pLevel as In else variable tArray as Array put the empty array into tArray - put "" into tArray[1 formatted as string] + put tElement into tArray[1 formatted as string] put tArray into xArray[pPath[pLevel + 1]] put false into xList[pListElt]["leaf"] end if From b70a409911ffaeaa69c941f5da3e56c2fbde7cfc Mon Sep 17 00:00:00 2001 From: Brian Milby Date: Tue, 21 Aug 2018 19:27:25 -0500 Subject: [PATCH 2/2] [[ Bug 21503 ]] Tree widget - prevent value removal on key addition Adjust code to display a dialog box to allow the user to choose how to handle the situation where a new array could remove an existing value. --- extensions/widgets/treeview/notes/21503.md | 2 +- extensions/widgets/treeview/treeview.lcb | 14 ++++++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/extensions/widgets/treeview/notes/21503.md b/extensions/widgets/treeview/notes/21503.md index efbb95cbcf2..e333f747434 100644 --- a/extensions/widgets/treeview/notes/21503.md +++ b/extensions/widgets/treeview/notes/21503.md @@ -1 +1 @@ -# [21503] Prevent value removal on key addition \ No newline at end of file +# [21503] Prevent accidental value removal on key addition \ No newline at end of file diff --git a/extensions/widgets/treeview/treeview.lcb b/extensions/widgets/treeview/treeview.lcb index 588941000ee..7cb16855381 100644 --- a/extensions/widgets/treeview/treeview.lcb +++ b/extensions/widgets/treeview/treeview.lcb @@ -1509,6 +1509,20 @@ private handler addKey(in pListElt as Integer, in pPath as List, in pLevel as In if tElement is an array then createNewKey(xArray[pPath[pLevel + 1]]) else + if tElement is not "" then + variable tPrompt as String + combine pPath with "][" + put "The array element at path [" & the result & "] is not empty. " & \ + "Would you like to replace it with an empty array or " & \ + "move it to the first element?" into tPrompt + execute script "answer \q" & tPrompt & \ + "\q with Cancel or Replace or Move; return it" + if the result is "Replace" then + put "" into tElement + else if the result is "Cancel" then + return + end if + end if variable tArray as Array put the empty array into tArray put tElement into tArray[1 formatted as string]