Jump to content

Macros/ScriptForge/IsXRayInstalledQuickwin

From The Document Foundation Wiki

Xray is not an extension, but a Basic library installed at will. Suffice to test Xray's library presence.

Function isXRayInstalled As Boolean
	GlobalScope.BasicLibraries.loadLibrary("ScriptForge")
	fs = CreateScriptService("ScriptForge.FileSystem")
	isXrayInstalled = fs.FolderExists(fs.BuildPath(fs.ConfigFolder, "basic/XrayTool"))
End Function
from scriptforge import CreateScriptService

def isXrayInstalled():
    fs = CreateScriptService("ScriptForge.FileSystem")
	return fs.FolderExists(fs.BuildPath(fs.ConfigFolder, "basic/XrayTool"))

ScriptForge.Platform.Extensions property lists all installed extension identifiers. Extension identifiers are stored in description.xml file located in .oxt compressed files.

Sub Main
	Print isOxtInstalled( "apso.python.script.organizer" )
End Sub

Function isOxtInstalled(oxtID As String) As Boolean
	Dim id As String, p As Object
	GlobalScope.BasicLibraries.loadLibrary("ScriptForge")
	p = CreateScriptService("ScriptForge.Platform")
	For Each ID in p.Extensions
		If ID = oxtID Then
			isOxtInstalled = True : Exit For
		EndIf
	Next ' extension ID
End Function
from scriptforge import CreateScriptService as getSvc

def quidAPSO():
    util = getSvc("ScriptForge.Basic")
    util.MsgBox( isOxtInstalled('apso.python.script.organizer') )

def isOxtInstalled(oxtID: str):
    p = getSvc("ScriptForge.Platform")
    return oxtID in p.Extensions