From a5d137688a2e1abe72823c6ce0d7cb8fa8fb1f22 Mon Sep 17 00:00:00 2001 From: livecodeali Date: Thu, 28 Apr 2016 16:08:45 +0100 Subject: [PATCH] [[ Bug 17256 ]] Fix some issues with project browser drag-reordering - Also clean up a lot of unnecessary repeated code in pb drag reordering - Add constant to define drag indicator thickness - Make drag indicator grey --- .../libraries/revidelibrary.8.livecodescript | 6 +- .../revideprojectbrowser.livecode | Bin 89109 -> 44746 bytes .../revprojectbrowserbehavior.livecodescript | 332 ++++++------------ notes/bugfix-17256.md | 1 + 4 files changed, 117 insertions(+), 222 deletions(-) create mode 100644 notes/bugfix-17256.md diff --git a/Toolset/libraries/revidelibrary.8.livecodescript b/Toolset/libraries/revidelibrary.8.livecodescript index 7eff20fd8f..2cf0404dd0 100644 --- a/Toolset/libraries/revidelibrary.8.livecodescript +++ b/Toolset/libraries/revidelibrary.8.livecodescript @@ -2690,11 +2690,11 @@ on revIDEMoveControl pControl, pNewCard, pLayerNumber lock messages copy pControl to pNewCard put the long id of it into tNewControl - + delete pControl - + try - --revIDESetPropertyOfObject tNewControl, "layer", pLayerNumber + revIDESetPropertyOfObject tNewControl, "layer", pLayerNumber catch pError end try unlock messages diff --git a/Toolset/palettes/project browser/revideprojectbrowser.livecode b/Toolset/palettes/project browser/revideprojectbrowser.livecode index 40ba10b06a210aa20acdda8004d7c1510fcb9e34..0ccda88ca51bca28bfe69244fb4ec07380bc2bea 100644 GIT binary patch delta 4486 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 diff --git a/Toolset/palettes/project browser/revprojectbrowserbehavior.livecodescript b/Toolset/palettes/project browser/revprojectbrowserbehavior.livecodescript index de39addae6..8909614429 100644 --- a/Toolset/palettes/project browser/revprojectbrowserbehavior.livecodescript +++ b/Toolset/palettes/project browser/revprojectbrowserbehavior.livecodescript @@ -2065,7 +2065,7 @@ on reorderRows pDraggedRowList,pNewStartingRow, pDroppedAfterRow local tDraggedOwner, tNewRowOwner, tDroppedAfterOwner local tDirection, tVisibleRows local tUpdateParents - local tDraggedCardNumber, tNewRowNumber, tDroppedAfterNumber + local tNewRowNumber, tDroppedAfterNumber local tDraggedMainStack, tDroppedAfterMainStack local tExpanded, tNewID, tRowRect @@ -2111,234 +2111,128 @@ on reorderRows pDraggedRowList,pNewStartingRow, pDroppedAfterRow put revIDEStackOfObject(tNewRowID) into tNewRowStack put revIDEStackOfObject(tDroppedAfterID) into tDroppedAfterStack - local tAbs, tLongID - - if (tDraggedStyle is "control" or tDraggedStyle is "group") and (tDroppedAfterStyle is "control") then - ## If both controls have the same owner (card or group) - if tDraggedOwner is tDroppedAfterOwner then - lock messages - set the relayerGroupedControls to true - if tDirection is "after" then - repeat for each item tRow in pDraggedRowList - put getAbsoluteRow(tRow) into tAbs - revIDERelayerControl sDisplayArray["objects"][tAbs]["long id"], tNewRowLayer, tDraggedCard - end repeat + local tAbs, tLongID, tRelayer + switch tDraggedType + case "stack" + exit reorderRows + break + case "card" + switch tDroppedAfterType + case "card" + put the number of tNewRowID into tNewRowNumber + put the number of tDroppedAfterID+1 into tDroppedAfterNumber + break + case "stack" + put 1 into tNewRowNumber + put 1 into tDroppedAfterNumber + break + case "stack" + ## A card has been dropped after a stack + put 1 into tNewRowNumber + put 1 into tDroppedAfterNumber + break + case "control" + case "group" + put the number of tDroppedAfterCard+1 into tDroppedAfterNumber + put tDroppedAfterNumber into tNewRowNumber + break + default + exit reorderRows + break + end switch + if tDraggedStack is tDroppedAfterStack then + ## Reorder cards + revIDERenumberCard tDraggedID,tNewRowNumber + refreshChildren tDraggedStack else - repeat with x = the number of items in pDraggedRowList down to 1 - put item x of pDraggedRowList into tRow - put getAbsoluteRow(tRow) into tAbs - revIDERelayerControl sDisplayArray["objects"][tAbs]["long id"], tNewRowLayer, tDraggedCard - end repeat + ## Move to another stack + put sDisplayArray["objects"][tDraggedRowIndex]["expanded"] into tExpanded + revIDEMoveCard tDraggedID, tDroppedAfterStack + put the result into tNewID + put tDraggedStack & return & tDroppedAfterStack into tUpdateParents + revIDERenumberCard tNewID,tDroppedAfterNumber + refreshChildren tUpdateParents, tNewID, tExpanded end if - set the relayerGroupedControls to false - refreshChildren tDraggedCard - unlock messages - else - if tDraggedCard is tDroppedAfterCard then - ## Same card but different groups + break + case "substack" + local tNewMainstack + switch tDroppedAfterType + case "substack" + case "group" + case "control" + put the long name of stack (the mainstack of tDraggedStack) into tDraggedMainStack + put the long name of stack (the mainstack of tDroppedAfterStack) into tDroppedAfterMainStack + put tDraggedMainStack & return & tDroppedAfterMainStack into tUpdateParents + put tDroppedAfterMainStack into tNewMainstack + break + case "card" + case "stack" + put the long name of stack (the mainstack of tDraggedStack) & return & tDroppedAfterStack into tUpdateParents + put tDroppedAfterStack into tNewMainstack + break + default + exit reorderRows + break + end switch + revIDEMoveSubstack tDraggedID, tNewMainstack + put the long name of stack (line -1 of the substacks of tNewMainstack) into tNewID + put sDisplayArray["objects"][tDraggedRowIndex]["expanded"] into tExpanded + refreshChildren tUpdateParents,tNewID,tExpanded + break + default + # Control + put true into tRelayer + switch tDroppedAfterType + case "card" + put "bottom" into tNewRowLayer + break + case "stack" + ## if the stack is closed drop the control onto the current card of the stack + if sDisplayArray["objects"][tDroppedAfterRowIndex]["expanded"] is not true then + put the long id of this card of tDroppedAfterStack into tDroppedAfterCard + else + put the long id of card 1 of tDroppedAfterStack into tDroppedAfterCard + end if + put "bottom" into tNewRowLayer + break + case "group" + ## Depending on "drop zone" of non-expanded group + ## Drop after the group, not into it + if sDisplayArray["objects"][tDroppedAfterRowIndex]["expanded"] is not true then + put the rect of the dvControlOfRow[pDroppedAfterRow] of the dvControl of group "objectList" of me into tRowRect + if (the mouseV <= item 2 of tRowRect+8) or (the mouseV >= item 4 of tRowRect-8) then + ## outside group + put false into tRelayer + end if + end if + break + default + if tDroppedAfterStyle is not "control" then + exit reorderRows + end if + break + end switch + lock messages + if tRelayer then set the relayerGroupedControls to true - repeat for each item tRow in pDraggedRowList - put getAbsoluteRow(tRow) into tAbs - put sDisplayArray["objects"][tAbs]["long id"] into tLongID - revIDERelayerControl tLongID, tNewRowLayer, tDraggedCard - end repeat - --put the result into tNewID - set the relayerGroupedControls to false - refreshChildren tDraggedCard - else - ## Different cards - repeat for each item tRow in pDraggedRowList - put getAbsoluteRow(tRow) into tAbs - put sDisplayArray["objects"][tAbs]["long id"] into tLongID - revIDEMoveControl tLongID, tDroppedAfterCard, tNewRowLayer - end repeat - put the result into tNewID - put tDraggedCard & return & tDroppedAfterCard into tUpdateParents - refreshChildren tUpdateParents end if - end if - else if (tDraggedStyle is "control" or tDraggedStyle is "group") and tDroppedAfterType is "card" then - ## A control has been dropped after a card - if tDraggedCard is tDroppedAfterCard then - ## Dragged to the top/after the card - set the relayerGroupedControls to true - - repeat for each item tRow in pDraggedRowList - put getAbsoluteRow(tRow) into tAbs - put sDisplayArray["objects"][tAbs]["long id"] into tLongID - revIDERelayerControl tLongID, "top", tDraggedCard - end repeat - - set the relayerGroupedControls to false - refreshChildren tDraggedCard - else - ## Dragged to another card - repeat for each item tRow in pDraggedRowList - put getAbsoluteRow(tRow) into tAbs - put sDisplayArray["objects"][tAbs]["long id"] into tLongID - revIDEMoveControl tLongID, tDroppedAfterCard, 1 - end repeat - - put the result into tNewID - put tDraggedCard & return & tDroppedAfterCard into tUpdateParents - refreshChildren tUpdateParents - end if - else if (tDraggedStyle is "control" or tDraggedStyle is "group") and tDroppedAfterType is "stack" then - ## Control dropped after a stack - ## if the stack is closed drop the control onto the current card of the stack - if sDisplayArray["objects"][tDroppedAfterRowIndex]["expanded"] is not true then - repeat for each item tRow in pDraggedRowList put getAbsoluteRow(tRow) into tAbs put sDisplayArray["objects"][tAbs]["long id"] into tLongID - revIDEMoveControl tLongID, the long id of this card of tDroppedAfterStack , 1 - end repeat - - put the result into tNewID - put tDraggedCard & return & tDroppedAfterCard into tUpdateParents - refreshChildren tUpdateParents - end if - - ## Groups - ## Dropped after a group (or into a group) - else if (tDraggedStyle is "control" or tDraggedStyle is "group") and (tDroppedAfterStyle is "group") then - ## If both controls have the same owner (card or group) - if tDraggedOwner is tDroppedAfterOwner then - ## If group is expanded - if sDisplayArray["objects"][tDroppedAfterRowIndex]["expanded"] then - set the relayerGroupedControls to true - revIDERelayerControl tDraggedID, tNewRowLayer, tDraggedCard - set the relayerGroupedControls to false - refreshChildren tDraggedCard - else - ## Depending on "drop zone" - ## Drop after the group, not into it - put the rect of the dvControlOfRow[pDroppedAfterRow] of the dvControl of group "objectList" of me into tRowRect - if (the mouseV > item 2 of tRowRect+8) and (the mouseV < item 4 of tRowRect-8) then - ## Middle - set the relayerGroupedControls to true - revIDERelayerControl tDraggedID, tNewRowLayer, tDraggedCard - set the relayerGroupedControls to false - refreshChildren tDraggedCard - else - revIDERelayerControl tDraggedID, tNewRowLayer, tDraggedCard - refreshChildren tDraggedCard - end if - end if - else - if tDraggedCard is tDroppedAfterCard then - if sDisplayArray["objects"][tDroppedAfterRowIndex]["expanded"] then - set the relayerGroupedControls to true - revIDERelayerControl tDraggedID, tNewRowLayer, tDraggedCard - set the relayerGroupedControls to false - refreshChildren tDraggedCard + if tDraggedCard is not tDroppedAfterCard then + revIDEMoveControl tLongID, tDroppedAfterCard, tNewRowLayer + put tDraggedCard & return & tDroppedAfterCard into tUpdateParents else - ## Drop after the group, not into it - revIDERelayerControl tDraggedID, tNewRowLayer, tDraggedCard - refreshChildren tDraggedCard + revIDERelayerControl tLongID, tNewRowLayer, tDraggedCard + put tDraggedCard into tUpdateParents end if - else - ## Different cards - revIDEMoveControl tDraggedID, tDroppedAfterCard, tNewRowLayer - put tDraggedCard & return & tDroppedAfterCard into tUpdateParents - refreshChildren tUpdateParents - end if - end if - ## Cards - else if tDraggedType is "card" and tDroppedAfterType is "card" then - put the number of tDraggedID into tDraggedCardNumber - put the number of tNewRowID into tNewRowNumber - put the number of tDroppedAfterID+1 into tDroppedAfterNumber - - if tDraggedStack is tDroppedAfterStack then - ## Reorder cards - revIDERenumberCard tDraggedID,tNewRowNumber - refreshChildren tDraggedStack - else - ## Move to another stack - put sDisplayArray["objects"][tDraggedRowIndex]["expanded"] into tExpanded - - revIDEMoveCard tDraggedID, tDroppedAfterStack - put the result into tNewID - put tDraggedStack & return & tDroppedAfterStack into tUpdateParents - - revIDERenumberCard tNewID,tDroppedAfterNumber - refreshChildren tUpdateParents, tNewID, tExpanded - end if - else if tDraggedType is "card" and tDroppedAfterType is "stack" then - ## A card has been dropped after a stack - if tDraggedStack is tDroppedafterStack then - revIDERenumberCard tDraggedID,1 - refreshChildren tDraggedStack - else - put sDisplayArray["objects"][tDraggedRowIndex]["expanded"] into tExpanded - - revIDEMoveCard tDraggedID, tDroppedAfterStack - put the result into tNewID - put tDraggedStack & return & tDroppedAfterStack into tUpdateParents - - revIDERenumberCard tNewID,1 - refreshChildren tUpdateParents, tNewID, tExpanded - end if - else if tDraggedType is "card" and (tDroppedAfterStyle is "control" or tDroppedAfterStyle is "group") then - ## The card has been dropped after the last control on an open card - put the number of tDraggedCard into tDraggedCardNumber - --put the number of tNewRowCard into tNewRowNumber - put the number of tDroppedAfterCard+1 into tDroppedAfterNumber - - if tDraggedStack is tDroppedAfterStack then - ## Reorder cards - revIDERenumberCard tDraggedID,tDroppedAfterNumber - refreshChildren tDraggedStack - else - ## Move to another stack - put sDisplayArray["objects"][tDraggedRowIndex]["expanded"] into tExpanded - - revIDEMoveCard tDraggedID, tDroppedAfterStack - put the result into tNewID - put tDraggedStack & return & tDroppedAfterStack into tUpdateParents - - revIDERenumberCard tNewID,tDroppedAfterNumber - refreshChildren tUpdateParents, tNewID, tExpanded - end if - ## Substacks - else if tDraggedType is "substack" and tDroppedAfterType is "substack" then - ## Drop the substack after the last substack - put the long name of stack (the mainstack of tDraggedStack) into tDraggedMainStack - put the long name of stack (the mainstack of tDroppedAfterStack) into tDroppedAfterMainStack - - put tDraggedMainStack & return & tDroppedAfterMainStack into tUpdateParents - put sDisplayArray["objects"][tDraggedRowIndex]["expanded"] into tExpanded - - revIDEMoveSubstack tDraggedID, tDroppedAfterMainStack - put the long name of stack (line -1 of the substacks of tDroppedAfterMainStack) into tNewID - refreshChildren tUpdateParents,tNewID,tExpanded - else if tDraggedType is "substack" and tDroppedAfterType is "card" then - ## Drop the substack after the last card - put the long name of stack (the mainstack of tDraggedStack) & return & tDroppedAfterStack into tUpdateParents - put sDisplayArray["objects"][tDraggedRowIndex]["expanded"] into tExpanded - - revIDEMoveSubstack tDraggedID, tDroppedAfterStack - put the long name of stack (line -1 of the substacks of stack (tDroppedAfterStack)) into tNewID - refreshChildren tUpdateParents,tNewID,tExpanded - else if tDraggedType is "substack" and tDroppedAfterType is "stack" then - - else if tDraggedType is "substack" and (tDroppedAfterStyle is "control" or tDroppedAfterType is "group") then - put the long name of stack (the mainstack of tDraggedStack) into tDraggedMainStack - put the long name of stack (the mainstack of tDroppedAfterStack) into tDroppedAfterMainStack - - put tDraggedMainStack & return & tDroppedAfterMainStack into tUpdateParents - put sDisplayArray["objects"][tDraggedRowIndex]["expanded"] into tExpanded - - revIDEMoveSubstack tDraggedID, tDroppedAfterMainStack - put the long name of stack (line -1 of the substacks of tDroppedAfterMainStack) into tNewID - refreshChildren tUpdateParents,tNewID,tExpanded - end if - + end repeat + set the relayerGroupedControls to false + refreshChildren tUpdateParents + unlock messages + break + end switch refreshProjectView - - -- if tNewID is empty then put tDraggedID into tNewID - -- selectObjects tNewID end reorderRows ####### Property Management diff --git a/notes/bugfix-17256.md b/notes/bugfix-17256.md new file mode 100644 index 0000000000..1c5b088bfb --- /dev/null +++ b/notes/bugfix-17256.md @@ -0,0 +1 @@ +# Fix some issues with project browser drag-reordering \ No newline at end of file