[Libreoffice-commits] core.git: wizards/source

Jean-Pierre Ledure (via logerrit) logerrit at kemper.freedesktop.org
Wed Jul 14 08:45:48 UTC 2021


 wizards/source/scriptforge/python/scriptforge.py |    3 +
 wizards/source/sfdocuments/SF_Base.xba           |   43 +++++++++++++++++++++++
 2 files changed, 46 insertions(+)

New commits:
commit 2366c24ffe564643ca616d848a477ba382e9fe50
Author:     Jean-Pierre Ledure <jp at ledure.be>
AuthorDate: Tue Jul 13 16:30:16 2021 +0200
Commit:     Jean-Pierre Ledure <jp at ledure.be>
CommitDate: Wed Jul 14 10:45:15 2021 +0200

    ScriptForge - (SF_Base) new CloseFormDocument() method
    
    The closure of a form document is available from
    the SF_Form service.
    
    A form document is since recent commits associated with
    actions like PrintOut() that do not require to access
    its internal forms.
    
    As a consequence, the closure of a form document from
    the SF_Base service gains in relevance.
    
    Hence the actual commit.
    
    Change-Id: I9d4af078e6631d18c2d92c17249be6025ac9dfdd
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/118857
    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/scriptforge/python/scriptforge.py b/wizards/source/scriptforge/python/scriptforge.py
index 5e3b2c6c7a8c..16dbca2b4fd2 100644
--- a/wizards/source/scriptforge/python/scriptforge.py
+++ b/wizards/source/scriptforge/python/scriptforge.py
@@ -1794,6 +1794,9 @@ class SFDocuments:
         def CloseDocument(self, saveask = True):
             return self.ExecMethod(self.vbMethod, 'CloseDocument', saveask)
 
+        def CloseFormDocument(self, formdocument):
+            return self.ExecMethod(self.vbMethod, 'CloseFormDocument', formdocument)
+
         def FormDocuments(self):
             return self.ExecMethod(self.vbMethod + self.flgArrayRet, 'FormDocuments')
 
diff --git a/wizards/source/sfdocuments/SF_Base.xba b/wizards/source/sfdocuments/SF_Base.xba
index 52fc0fd768c2..ae2a23e9f0d3 100644
--- a/wizards/source/sfdocuments/SF_Base.xba
+++ b/wizards/source/sfdocuments/SF_Base.xba
@@ -135,6 +135,49 @@ Catch:
 	GoTo Finally
 End Function   '   SFDocuments.SF_Base.CloseDocument
 
+REM -----------------------------------------------------------------------------
+Public Function CloseFormDocument(Optional ByVal FormDocument As Variant) As Boolean
+'''	Close the given form document
+'''	Nothing happens if the form document is not open
+'''	Args:
+'''		FormDocument: a valid document form name as a case-sensitive string
+'''	Returns:
+'''		True if closure is successful
+'''	Example:
+'''			oDoc.CloseFormDocument("Folder1/myFormDocument")
+
+Dim bClose As Boolean				'	Return value
+Dim oMainForm As Object				'	com.sun.star.comp.sdb.Content
+Dim vFormNames As Variant			'	Array of all document form names present in the document
+
+Const cstThisSub = "SFDocuments.Base.CloseFormDocument"
+Const cstSubArgs = "FormDocument"
+
+	If ScriptForge.SF_Utils._ErrorHandling() Then On Local Error GoTo Catch
+	bClose = False
+
+Check:
+	If ScriptForge.SF_Utils._EnterFunction(cstThisSub, cstSubArgs) Then
+		If Not _IsStillAlive() Then GoTo Finally
+		'	Build list of available FormDocuments recursively with _CollectFormDocuments
+		If IsNull(_FormDocuments) Then Set _FormDocuments = _Component.getFormDocuments()
+		vFormNames = Split(_CollectFormDocuments(_FormDocuments), cstToken)
+		If Not ScriptForge.SF_Utils._Validate(FormDocument, "FormDocument", V_STRING, vFormNames) Then GoTo Finally
+	End If
+	If Not IsLoaded(FormDocument) Then GoTo Finally
+
+Try:
+	Set oMainForm = _FormDocuments.getByHierarchicalName(FormDocument)
+	bClose = oMainForm.close()
+
+Finally:
+	CloseFormDocument = bClose
+	ScriptForge.SF_Utils._ExitFunction(cstThisSub)
+	Exit Function
+Catch:
+	GoTo Finally
+End Function	'	SFDocuments.SF_Base.CloseFormDocument
+
 REM -----------------------------------------------------------------------------
 Public Function FormDocuments() As Variant
 '''	Return the list of the FormDocuments contained in the Base document


More information about the Libreoffice-commits mailing list