forked from openlp/openlp
uno commands
This commit is contained in:
parent
98a021b89f
commit
85587ce2f3
@ -30,6 +30,7 @@ import re
|
|||||||
import sys
|
import sys
|
||||||
import traceback
|
import traceback
|
||||||
from ipaddress import IPv4Address, IPv6Address, AddressValueError
|
from ipaddress import IPv4Address, IPv6Address, AddressValueError
|
||||||
|
from shutil import which
|
||||||
|
|
||||||
from PyQt5 import QtCore
|
from PyQt5 import QtCore
|
||||||
from PyQt5.QtCore import QCryptographicHash as QHash
|
from PyQt5.QtCore import QCryptographicHash as QHash
|
||||||
@ -257,3 +258,34 @@ def add_actions(target, actions):
|
|||||||
target.addSeparator()
|
target.addSeparator()
|
||||||
else:
|
else:
|
||||||
target.addAction(action)
|
target.addAction(action)
|
||||||
|
|
||||||
|
|
||||||
|
def get_uno_command(connection_type='pipe'):
|
||||||
|
"""
|
||||||
|
Returns the UNO command to launch an libreoffice.org instance.
|
||||||
|
"""
|
||||||
|
for command in ['libreoffice', 'soffice']:
|
||||||
|
if which(command):
|
||||||
|
break
|
||||||
|
else:
|
||||||
|
raise FileNotFoundError('Command not found')
|
||||||
|
|
||||||
|
OPTIONS = '--nologo --norestore --minimized --nodefault --nofirststartwizard'
|
||||||
|
if connection_type == 'pipe':
|
||||||
|
CONNECTION = '"--accept=pipe,name=openlp_pipe;urp;"'
|
||||||
|
else:
|
||||||
|
CONNECTION = '"--accept=socket,host=localhost,port=2002;urp;"'
|
||||||
|
return '%s %s %s' % (command, OPTIONS, CONNECTION)
|
||||||
|
|
||||||
|
|
||||||
|
def get_uno_instance(resolver, connection_type='pipe'):
|
||||||
|
"""
|
||||||
|
Returns a running libreoffice.org instance.
|
||||||
|
|
||||||
|
:param resolver: The UNO resolver to use to find a running instance.
|
||||||
|
"""
|
||||||
|
log.debug('get UNO Desktop Openoffice - resolve')
|
||||||
|
if connection_type == 'pipe':
|
||||||
|
return resolver.resolve('uno:pipe,name=openlp_pipe;urp;StarOffice.ComponentContext')
|
||||||
|
else:
|
||||||
|
return resolver.resolve('uno:socket,host=localhost,port=2002;urp;StarOffice.ComponentContext')
|
@ -33,7 +33,6 @@ import urllib.parse
|
|||||||
import urllib.request
|
import urllib.request
|
||||||
from http.client import HTTPException
|
from http.client import HTTPException
|
||||||
from random import randint
|
from random import randint
|
||||||
from shutil import which
|
|
||||||
|
|
||||||
from PyQt5 import QtGui
|
from PyQt5 import QtGui
|
||||||
|
|
||||||
@ -279,36 +278,5 @@ def get_web_page(url, header=None, update_openlp=False):
|
|||||||
return page
|
return page
|
||||||
|
|
||||||
|
|
||||||
def get_uno_command(connection_type='pipe'):
|
|
||||||
"""
|
|
||||||
Returns the UNO command to launch an libreoffice.org instance.
|
|
||||||
"""
|
|
||||||
for command in ['libreoffice', 'soffice']:
|
|
||||||
if which(command):
|
|
||||||
break
|
|
||||||
else:
|
|
||||||
raise FileNotFoundError('Command not found')
|
|
||||||
|
|
||||||
OPTIONS = '--nologo --norestore --minimized --nodefault --nofirststartwizard'
|
|
||||||
if connection_type == 'pipe':
|
|
||||||
CONNECTION = '"--accept=pipe,name=openlp_pipe;urp;"'
|
|
||||||
else:
|
|
||||||
CONNECTION = '"--accept=socket,host=localhost,port=2002;urp;"'
|
|
||||||
return '%s %s %s' % (command, OPTIONS, CONNECTION)
|
|
||||||
|
|
||||||
|
|
||||||
def get_uno_instance(resolver, connection_type='pipe'):
|
|
||||||
"""
|
|
||||||
Returns a running libreoffice.org instance.
|
|
||||||
|
|
||||||
:param resolver: The UNO resolver to use to find a running instance.
|
|
||||||
"""
|
|
||||||
log.debug('get UNO Desktop Openoffice - resolve')
|
|
||||||
if connection_type == 'pipe':
|
|
||||||
return resolver.resolve('uno:pipe,name=openlp_pipe;urp;StarOffice.ComponentContext')
|
|
||||||
else:
|
|
||||||
return resolver.resolve('uno:socket,host=localhost,port=2002;urp;StarOffice.ComponentContext')
|
|
||||||
|
|
||||||
__all__ = ['get_application_version', 'check_latest_version',
|
__all__ = ['get_application_version', 'check_latest_version',
|
||||||
'get_filesystem_encoding', 'get_web_page', 'get_uno_command', 'get_uno_instance',
|
'get_filesystem_encoding', 'get_web_page', 'delete_file', 'clean_filename']
|
||||||
'delete_file', 'clean_filename']
|
|
||||||
|
@ -35,7 +35,7 @@ import logging
|
|||||||
import os
|
import os
|
||||||
import time
|
import time
|
||||||
|
|
||||||
from openlp.core.common import is_win, Registry
|
from openlp.core.common import is_win, Registry, get_uno_command, get_uno_instance
|
||||||
|
|
||||||
if is_win():
|
if is_win():
|
||||||
from win32com.client import Dispatch
|
from win32com.client import Dispatch
|
||||||
|
@ -25,7 +25,7 @@ import time
|
|||||||
|
|
||||||
from PyQt5 import QtCore
|
from PyQt5 import QtCore
|
||||||
|
|
||||||
from openlp.core.common import is_win
|
from openlp.core.common import is_win, get_uno_command, get_uno_instance
|
||||||
from openlp.core.utils import get_uno_command, get_uno_instance
|
from openlp.core.utils import get_uno_command, get_uno_instance
|
||||||
from openlp.core.lib import translate
|
from openlp.core.lib import translate
|
||||||
from .songimport import SongImport
|
from .songimport import SongImport
|
||||||
|
@ -24,7 +24,7 @@ Package to test the openlp.core.utils.actions package.
|
|||||||
"""
|
"""
|
||||||
from unittest import TestCase
|
from unittest import TestCase
|
||||||
|
|
||||||
from openlp.core.utils import get_uno_command
|
from openlp.core.common import get_uno_command
|
||||||
from tests.functional import patch
|
from tests.functional import patch
|
||||||
from tests.helpers.testmixin import TestMixin
|
from tests.helpers.testmixin import TestMixin
|
||||||
|
|
||||||
|
@ -26,7 +26,8 @@ import os
|
|||||||
from unittest import TestCase
|
from unittest import TestCase
|
||||||
|
|
||||||
from openlp.core.utils import clean_filename, delete_file, get_filesystem_encoding, \
|
from openlp.core.utils import clean_filename, delete_file, get_filesystem_encoding, \
|
||||||
split_filename, _get_user_agent, get_web_page, get_uno_instance
|
split_filename, _get_user_agent, get_web_page
|
||||||
|
from openlp.core.common import get_uno_instance
|
||||||
|
|
||||||
from tests.functional import MagicMock, patch
|
from tests.functional import MagicMock, patch
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user