[Libreoffice-commits] core.git: wizards/source
Jean-Pierre Ledure (via logerrit)
logerrit at kemper.freedesktop.org
Fri Dec 4 16:48:52 UTC 2020
wizards/source/sfdialogs/SF_DialogControl.xba | 55 +++++++++++++++++++++++++-
1 file changed, 53 insertions(+), 2 deletions(-)
New commits:
commit d087459826212867e72a0031d3b2e91941140f60
Author: Jean-Pierre Ledure <jp at ledure.be>
AuthorDate: Fri Dec 4 16:02:12 2020 +0100
Commit: Jean-Pierre Ledure <jp at ledure.be>
CommitDate: Fri Dec 4 17:48:05 2020 +0100
ScriptForge: RootNode/CurrentNode for tree controls
RootNode returns the root node
CurrentNode is for getting or setting a unique selected node
Change-Id: Ie92761f57fe18b188769870ed7d2e0340a9e146c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/107227
Tested-by: Jean-Pierre Ledure <jp at ledure.be>
Tested-by: Jenkins
Reviewed-by: Jean-Pierre Ledure <jp at ledure.be>
diff --git a/wizards/source/sfdialogs/SF_DialogControl.xba b/wizards/source/sfdialogs/SF_DialogControl.xba
index 3a85149f3e93..d7bfd7d6f44d 100644
--- a/wizards/source/sfdialogs/SF_DialogControl.xba
+++ b/wizards/source/sfdialogs/SF_DialogControl.xba
@@ -148,6 +148,20 @@ Property Get ControlType() As String
ControlType = _PropertyGet("ControlType")
End Property ' SFDialogs.SF_DialogControl.ControlType
+REM -----------------------------------------------------------------------------
+Property Get CurrentNode() As Variant
+''' The CurrentNode property returns the currently selected node
+''' It returns Empty when there is no node selected
+''' When there are several selections, it returns the topmost node among the selected ones
+ CurrentNode = _PropertyGet("CurrentNode", "")
+End Property ' SFDialogs.SF_DialogControl.CurrentNode (get)
+
+REM -----------------------------------------------------------------------------
+Property Let CurrentNode(Optional ByVal pvCurrentNode As Variant)
+''' Set a single selection in a tree control
+ _PropertySet("CurrentNode", pvCurrentNode)
+End Property ' SFDialogs.SF_DialogControl.CurrentNode (let)
+
REM -----------------------------------------------------------------------------
Property Get Default() As Variant
''' The Default property specifies whether a command button is the default (OK) button.
@@ -459,6 +473,12 @@ Property Let Picture(Optional ByVal pvPicture As Variant)
_PropertySet("Picture", pvPicture)
End Property ' SFDialogs.SF_DialogControl.Picture (let)
+REM -----------------------------------------------------------------------------
+Property Get RootNode() As Variant
+''' The RootNode property returns the last root node of a tree control
+ RootNode = _PropertyGet("RootNode", "")
+End Property ' SFDialogs.SF_DialogControl.RootNode (get)
+
REM -----------------------------------------------------------------------------
Property Get RowSource() As Variant
''' The RowSource property specifies the data contained in a combobox or a listbox
@@ -1105,7 +1125,7 @@ Private Function _PropertyGet(Optional ByVal psProperty As String _
Dim vGet As Variant ' Return value
Static oSession As Object ' Alias of SF_Session
-Dim vSelection As Variant ' Alias of Model.SelectedItems
+Dim vSelection As Variant ' Alias of Model.SelectedItems or Model.Selection
Dim vList As Variant ' Alias of Model.StringItemList
Dim lIndex As Long ' Index in StringItemList
Dim sItem As String ' A single item
@@ -1142,6 +1162,22 @@ Const cstSubArgs = ""
End Select
Case UCase("ControlType")
_PropertyGet = _ControlType
+ Case UCase("CurrentNode")
+ Select Case _ControlType
+ Case CTLTREECONTROL
+ If oSession.HasUNOMethod(_ControlView, "getSelection") Then
+ _PropertyGet = Empty
+ If _ControlModel.SelectionType <> com.sun.star.view.SelectionType.NONE Then
+ vSelection = _ControlView.getSelection()
+ If IsArray(vSelection) Then
+ If UBound(vSelection) >= 0 Then Set _PropertyGet = vSelection(0)
+ Else
+ Set _PropertyGet = vSelection
+ End If
+ End If
+ End If
+ Case Else : GoTo CatchType
+ End Select
Case UCase("Default")
Select Case _ControlType
Case CTLBUTTON
@@ -1223,6 +1259,12 @@ Const cstSubArgs = ""
If oSession.HasUnoProperty(_ControlModel, "ImageURL") Then _PropertyGet = ScriptForge.SF_FileSystem._ConvertFromUrl(_ControlModel.ImageURL)
Case Else : GoTo CatchType
End Select
+ Case UCase("RootNode")
+ Select Case _ControlType
+ Case CTLTREECONTROL
+ _PropertyGet = _TreeDataModel.getRoot()
+ Case Else : GoTo CatchType
+ End Select
Case UCase("RowSource")
Select Case _ControlType
Case CTLCOMBOBOX, CTLLISTBOX
@@ -1381,6 +1423,15 @@ Const cstSubArgs = "Value"
If oSession.HasUNOProperty(_ControlModel, "Label") Then _ControlModel.Label = pvValue
Case Else : GoTo CatchType
End Select
+ Case UCAse("CurrentNode")
+ Select Case _ControlType
+ Case CTLTREECONTROL
+ If Not ScriptForge.SF_Utils._Validate(pvValue, "Selection", ScriptForge.V_OBJECT) Then GoTo Finally
+ If oSession.UnoObjectType(pvValue) <> "toolkit.MutableTreeNode" Then GoTo CatchType
+ _ControlView.clearSelection()
+ _ControlView.addSelection(pvValue)
+ Case Else : GoTo CatchType
+ End Select
Case UCase("Default")
Select Case _ControlType
Case CTLBUTTON
@@ -1613,4 +1664,4 @@ Private Function _Repr() As String
End Function ' SFDialogs.SF_DialogControl._Repr
REM ============================================ END OF SFDIALOGS.SF_DIALOGCONTROL
-</script:module>
+</script:module>
\ No newline at end of file
More information about the Libreoffice-commits
mailing list