From 61c3752420bed98410db3e22361fba24c52060b4 Mon Sep 17 00:00:00 2001 From: Mauricio Baeza Date: Tue, 12 Nov 2019 19:30:28 -0600 Subject: [PATCH] Test install numpy --- CHANGELOG | 10 + VERSION | 2 +- conf.py | 2 +- easymacro.py | 109 ++++--- files/ZAZPip_v0.1.0.oxt | Bin 72720 -> 0 bytes .../{ZAZPip_v0.2.0.oxt => ZAZPip_v0.3.0.oxt} | Bin 79926 -> 80674 bytes source/ZAZPip.py | 15 +- source/description.xml | 2 +- source/pythonpath/easymacro.py | 293 ++++++++++++++---- 9 files changed, 308 insertions(+), 125 deletions(-) delete mode 100644 files/ZAZPip_v0.1.0.oxt rename files/{ZAZPip_v0.2.0.oxt => ZAZPip_v0.3.0.oxt} (52%) diff --git a/CHANGELOG b/CHANGELOG index c03539d..d83bb2a 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,3 +1,13 @@ +v 0.3.0 [12-nov-2019] + - Update easymacro.py + - Test install numpy + + +v 0.2.0 [18-oct-2019] +--------------------- + - Add spanish + + v 0.1.0 [18-oct-2019] --------------------- - Initial version diff --git a/VERSION b/VERSION index 5faa42c..69367fd 100644 --- a/VERSION +++ b/VERSION @@ -1,2 +1,2 @@ -0.2.0 +0.3.0 diff --git a/conf.py b/conf.py index f1685e9..3643ab8 100644 --- a/conf.py +++ b/conf.py @@ -26,7 +26,7 @@ import logging TYPE_EXTENSION = 1 # ~ https://semver.org/ -VERSION = '0.2.0' +VERSION = '0.3.0' # ~ Your great extension name, not used spaces NAME = 'ZAZPip' diff --git a/easymacro.py b/easymacro.py index a990a24..8e8e604 100644 --- a/easymacro.py +++ b/easymacro.py @@ -34,6 +34,7 @@ import shlex import shutil import socket import subprocess +import ssl import sys import tempfile import threading @@ -41,13 +42,9 @@ import time import traceback import zipfile -# ~ from collections import OrderedDict -# ~ from collections.abc import MutableMapping from functools import wraps -from operator import itemgetter from pathlib import Path, PurePath from pprint import pprint -from enum import Enum, IntEnum from urllib.request import Request, urlopen from urllib.error import URLError, HTTPError from string import Template @@ -96,15 +93,6 @@ from com.sun.star.awt.grid import XGridDataListener from com.sun.star.awt.grid import XGridSelectionListener -class FontSlant(IntEnum): - NONE = 0 - OBLIQUE = 1 - ITALIC = 2 - DONTKNOW = 3 - REVERSE_OBLIQUE = 4 - REVERSE_ITALIC = 5 - - try: from fernet import Fernet, InvalidToken except ImportError: @@ -124,7 +112,6 @@ KEY = { SEPARATION = 5 - MSG_LANG = { 'es': { 'OK': 'Aceptar', @@ -135,35 +122,36 @@ MSG_LANG = { } } - OS = platform.system() USER = getpass.getuser() PC = platform.node() DESKTOP = os.environ.get('DESKTOP_SESSION', '') INFO_DEBUG = '{}\n\n{}\n\n{}'.format(sys.version, platform.platform(), '\n'.join(sys.path)) - IS_WIN = OS == 'Windows' LOG_NAME = 'ZAZ' CLIPBOARD_FORMAT_TEXT = 'text/plain;charset=utf-16' - PYTHON = 'python' if IS_WIN: PYTHON = 'python.exe' CALC = 'calc' WRITER = 'writer' + OBJ_CELL = 'ScCellObj' OBJ_RANGE = 'ScCellRangeObj' OBJ_RANGES = 'ScCellRangesObj' OBJ_TYPE_RANGES = (OBJ_CELL, OBJ_RANGE, OBJ_RANGES) +TEXT_RANGE = 'SwXTextRange' +TEXT_RANGES = 'SwXTextRanges' +TEXT_TYPE_RANGES = (TEXT_RANGE, TEXT_RANGES) + TYPE_DOC = { 'calc': 'com.sun.star.sheet.SpreadsheetDocument', 'writer': 'com.sun.star.text.TextDocument', 'impress': 'com.sun.star.presentation.PresentationDocument', 'draw': 'com.sun.star.drawing.DrawingDocument', - # ~ 'base': 'com.sun.star.sdb.OfficeDatabaseDocument', 'base': 'com.sun.star.sdb.DocumentDataSource', 'math': 'com.sun.star.formula.FormulaProperties', 'basic': 'com.sun.star.script.BasicIDE', @@ -202,19 +190,16 @@ MENUS_WRITER = { 'windows': '.uno:WindowList', 'help': '.uno:HelpMenu', } - MENUS_APP = { 'main': MENUS_MAIN, 'calc': MENUS_CALC, 'writer': MENUS_WRITER, } - EXT = { 'pdf': 'pdf', } - FILE_NAME_DEBUG = 'debug.odt' FILE_NAME_CONFIG = 'zaz-{}.json' LOG_FORMAT = '%(asctime)s - %(levelname)s - %(message)s' @@ -284,6 +269,12 @@ def mri(obj): return +def inspect(obj): + zaz = create_instance('net.elmau.zaz.inspect') + zaz.inspect(obj) + return + + def catch_exception(f): @wraps(f) def func(*args, **kwargs): @@ -1008,7 +999,9 @@ class LOCalc(LODocument): def __getitem__(self, index): if isinstance(index, str): - index = [s.Name for s in self._sheets if s.CodeName == index][0] or index + code_name = [s.Name for s in self._sheets if s.CodeName == index] + if code_name: + index = code_name[0] return LOCalcSheet(self._sheets[index], self) def __setitem__(self, key, value): @@ -1376,7 +1369,11 @@ class LOWriter(LODocument): @property def selection(self): sel = self.obj.getCurrentSelection() - return LOTextRange(sel[0]) + if sel.ImplementationName == TEXT_RANGES: + return LOTextRange(sel[0]) + elif sel.ImplementationName == TEXT_RANGE: + return LOTextRange(sel) + return sel def write(self, data, cursor=None): cursor = cursor or self.selection.cursor.getEnd() @@ -1710,6 +1707,9 @@ class LOCellRange(object): def __getitem__(self, index): return LOCellRange(self.obj[index], self.doc) + def __contains__(self, item): + return item.in_range(self) + def _init_values(self): self._type_obj = self.obj.ImplementationName self._type_content = EMPTY @@ -1759,7 +1759,7 @@ class LOCellRange(object): self.obj.setFormula(data) else: self.obj.setString(data) - elif isinstance(data, (int, float)): + elif isinstance(data, (int, float, bool)): self.obj.setValue(data) elif isinstance(data, datetime.datetime): d = data.toordinal() @@ -1777,8 +1777,6 @@ class LOCellRange(object): return self.obj.getDataArray() @data.setter def data(self, values): - if isinstance(values, list): - values = tuple(values) self.obj.setDataArray(values) @property @@ -1786,8 +1784,6 @@ class LOCellRange(object): return self.obj.getFormulaArray() @formula.setter def formula(self, values): - if isinstance(values, list): - values = tuple(values) self.obj.setFormulaArray(values) @property @@ -1812,13 +1808,19 @@ class LOCellRange(object): cursor.collapseToSize(cols, rows) return LOCellRange(self.sheet[cursor.AbsoluteName].obj, self.doc) - def copy_from(self, rango): + def copy_from(self, rango, formula=False): data = rango if isinstance(rango, LOCellRange): - data = rango.data + if formula: + data = rango.formula + else: + data = rango.data rows = len(data) cols = len(data[0]) - self.to_size(rows, cols).data = data + if formula: + self.to_size(rows, cols).formula = data + else: + self.to_size(rows, cols).data = data return def copy_to(self, cell, formula=False): @@ -2178,7 +2180,10 @@ class EventsItem(EventsListenerBase, XItemListener): pass def itemStateChanged(self, event): - pass + event_name = '{}_item_changed'.format(self.name) + if hasattr(self._controller, event_name): + getattr(self._controller, event_name)(event) + return class EventsItemRoadmap(EventsItem): @@ -2447,23 +2452,23 @@ class UnoBaseObject(object): return self._model.Width @width.setter def width(self, value): - if hasattr(self.obj, 'PosSize'): + if hasattr(self.model, 'Width'): + self.model.Width = value + elif hasattr(self.obj, 'PosSize'): self._set_possize('Width', value) - else: - self._model.Width = value @property def height(self): - if hasattr(self._model, 'Height'): - return self._model.Height + if hasattr(self.model, 'Height'): + return self.model.Height ps = self.obj.getPosSize() return ps.Height @height.setter def height(self, value): - if hasattr(self.obj, 'PosSize'): + if hasattr(self.model, 'Height'): + self.model.Height = value + elif hasattr(self.obj, 'PosSize'): self._set_possize('Height', value) - else: - self._model.Height = value @property def tag(self): @@ -2526,8 +2531,12 @@ class UnoBaseObject(object): def move(self, origin, x=0, y=5): if x: self.x = origin.x + origin.width + x + else: + self.x = origin.x if y: self.y = origin.y + origin.height + y + else: + self.y = origin.y return def possize(self, origin): @@ -2771,7 +2780,6 @@ class UnoGrid(UnoBaseObject): def sort(self, column, asc=True): self._gdm.sortByColumn(column, asc) - # ~ self._data.sort(key=itemgetter(column), reverse=not asc) self.update_row_heading() return @@ -3022,7 +3030,6 @@ def get_control_model(control): return services[control] -@catch_exception def add_listeners(events, control, name=''): listeners = { 'addActionListener': EventsButton, @@ -3446,6 +3453,7 @@ class LOChart(object): chart_data.setData(data) chart_data.RowDescriptions = labels + # ~ Bug if tipo == 'Pie': chart.setDiagram(chart.createInstance(self.BASE.format('Bar'))) chart.setDiagram(chart.createInstance(self.BASE.format('Pie'))) @@ -3890,7 +3898,6 @@ class LOWindow(object): return properties - @catch_exception def add_control(self, properties): tipo = properties.pop('Type').lower() root = properties.pop('Root', '') @@ -4404,23 +4411,29 @@ def popen(command, stdin=None): yield (e.errno, e.strerror) -def url_open(url, options={}, json=False): +def url_open(url, options={}, verify=True, json=False): data = '' + err = '' req = Request(url) try: - response = urlopen(req) - # ~ response.info() + if verify: + response = urlopen(req) + else: + context = ssl._create_unverified_context() + response = urlopen(req, context=context) except HTTPError as e: error(e) + err = str(e) except URLError as e: error(e.reason) + err = str(e.reason) else: if json: data = json_loads(response.read()) else: data = response.read() - return data + return data, err def run(command, wait=False): @@ -5397,8 +5410,6 @@ class LIBOServer(object): return instance - - # ~ controls = { # ~ 'CheckBox': 'com.sun.star.awt.UnoControlCheckBoxModel', # ~ 'ComboBox': 'com.sun.star.awt.UnoControlComboBoxModel', diff --git a/files/ZAZPip_v0.1.0.oxt b/files/ZAZPip_v0.1.0.oxt deleted file mode 100644 index 554b9483bb2a99221a8f6c5dc526d7e4250dcdf3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 72720 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≠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 diff --git a/files/ZAZPip_v0.2.0.oxt b/files/ZAZPip_v0.3.0.oxt similarity index 52% rename from files/ZAZPip_v0.2.0.oxt rename to files/ZAZPip_v0.3.0.oxt index e087f5dabf249d2f9e263b5ebd054a11654e57fe..e412bc53a5e35391a6ce8490e8ef736f743982fb 100644 GIT binary patch delta 36100 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 delta 35389 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

ZEui8s+)N=JgB0fM%hM{PjCe^PZ?0N}agx4n z5tyl$)GxZoz8pM6c)e+xLQao9QTn0#ZIk|qAfxz} z3F#vVB?ZC`ZPTu)3MM=4^5ZB3{H@VYqiY9#hqwRhb@r@7POHrjqiu5qDQAk0M}0T^ zv45)R&fUs<;zbVWx}avWE4A6W;HU;g_HMEQRv=uLHa_rekaz{>wvaVceb~rLAz{a;7UJn(fAQ3l~z!_qt|dI&QdPq4(F*?TcyL6wY+)dU7K83W08y@z1!ESV_KV3C2P4gwTRpcqP4iA^P%74cj z+%3OLVjOfkOzSj%YDu4Tj6t&dFKbQSFBm(ZpL3O%Oxx`w*!b*;Iz~vZ;WXvh<)u7;xf^zit{)b zM^p1c(>Eq77)%_ChOkl8$q`SnFM7#ky#Wdg%C1*8mTwFMg=Q4CH7tKAX+PgNO0?7S zd}h}raiz}gp%j{oJ`P+wvys+F-j{T6n#>P4kdJ()Bw0gpeShY`Q-+C0#*Z~`l+CCP zSrTVRAZ;I$G+?*hVeRySllkrZ=}fLxVMz^3QzA@KKrqeSI?|k%o zyw;lmd%PN--H@w(KGPsRL~mKSK9#g;DL|*`r-nNqfWN-pG405&wvH zACI9rAI>R!PeA}c|0)1b007`o$I9MDn_IM01tI<19e5Z-?_%18rTnEjX{j2 zD10zIt5F;TfOr^L1xEd~aakd9*#&ZF=%_KM3todDV-P1gAF385kbwloAPLNbP$nP| zbcHA;;C35DCIB2h<{K0kZWtcud(uDH;CN`zK1UFN5<|ghk$?y?*~ z1qP2?)_fe)WdbMN4Jn#})}RtZF$D==FT^$ltw4LI-4wJzu+y{a)0H7jGk8u_kfYh( zb2?@Qsv!mnv*n5~djAWU{&nnwh?p|GqyGh{4ZSb}?GRx_*}j}L5Z)X#MCfy1TOEoq z2W5VeJ!cLl{(L;e^PQ;WN5-1+^G5gs`)F7%NoW(Mi!uksFaY4 z1*j(Gy$*y%bU=0Jf(3{do7nL8(GvnF|1)Sp6x6rzryGa=Z+`F^a8AYfXCTD@AX*Xt zG=8DLBbTMJ87d@znoybrTrVa8)IfOXi9GtE6$8B_z|_3-MGg%}+7eWf$TWiM0{jJp Cxw9hx diff --git a/source/ZAZPip.py b/source/ZAZPip.py index 8cbfacb..6473f17 100644 --- a/source/ZAZPip.py +++ b/source/ZAZPip.py @@ -16,6 +16,7 @@ PIP = 'pip' PACKAGES = { 'psycopg2-binary': 'ok.png', 'peewee': 'ok.png', + 'numpy': 'ok.png', } @@ -62,10 +63,10 @@ class Controllers(object): path_pip = f.name self.d.lst_log.insert('Download PIP...') - data = app.url_open(URL_PIP) - if not data: + data, err = app.url_open(URL_PIP, verify=False) + if err: msg = _('Do you have internet connection?') - app.errorbox(msg) + app.errorbox('{}\n\n{}'.format(msg, err)) return app.save_file(path_pip, 'wb', data) @@ -486,13 +487,13 @@ class ZAZPip(unohelper.Base, XJobExecutor): controls = (dialog.cmd_home, dialog.cmd_search, dialog.cmd_uninstall, dialog.cmd_shell) - dialog.center(controls) + dialog.lbl_package.move(dialog.cmd_home) + dialog.txt_search.move(dialog.lbl_package) + dialog.lst_package.move(dialog.txt_search) dialog.lbl_package.center() dialog.lst_package.center() dialog.txt_search.center() - dialog.lbl_package.move(dialog.cmd_search) - dialog.txt_search.move(dialog.lbl_package) - dialog.lst_package.move(dialog.txt_search) + dialog.center(controls) dialog.step = 10 diff --git a/source/description.xml b/source/description.xml index 66dbf0a..015d124 100644 --- a/source/description.xml +++ b/source/description.xml @@ -1,7 +1,7 @@ - + ZAZ Pip ZAZ Pip diff --git a/source/pythonpath/easymacro.py b/source/pythonpath/easymacro.py index 39a2a79..8e8e604 100644 --- a/source/pythonpath/easymacro.py +++ b/source/pythonpath/easymacro.py @@ -34,6 +34,7 @@ import shlex import shutil import socket import subprocess +import ssl import sys import tempfile import threading @@ -41,13 +42,9 @@ import time import traceback import zipfile -# ~ from collections import OrderedDict -# ~ from collections.abc import MutableMapping from functools import wraps -from operator import itemgetter from pathlib import Path, PurePath from pprint import pprint -from enum import IntEnum from urllib.request import Request, urlopen from urllib.error import URLError, HTTPError from string import Template @@ -92,14 +89,9 @@ from com.sun.star.awt import XKeyListener from com.sun.star.awt import XItemListener from com.sun.star.awt import XFocusListener from com.sun.star.awt import XTabListener +from com.sun.star.awt.grid import XGridDataListener +from com.sun.star.awt.grid import XGridSelectionListener -class FontSlant(IntEnum): - NONE = 0 - OBLIQUE = 1 - ITALIC = 2 - DONTKNOW = 3 - REVERSE_OBLIQUE = 4 - REVERSE_ITALIC = 5 try: from fernet import Fernet, InvalidToken @@ -120,7 +112,6 @@ KEY = { SEPARATION = 5 - MSG_LANG = { 'es': { 'OK': 'Aceptar', @@ -131,35 +122,36 @@ MSG_LANG = { } } - OS = platform.system() USER = getpass.getuser() PC = platform.node() DESKTOP = os.environ.get('DESKTOP_SESSION', '') INFO_DEBUG = '{}\n\n{}\n\n{}'.format(sys.version, platform.platform(), '\n'.join(sys.path)) - IS_WIN = OS == 'Windows' LOG_NAME = 'ZAZ' CLIPBOARD_FORMAT_TEXT = 'text/plain;charset=utf-16' - PYTHON = 'python' if IS_WIN: PYTHON = 'python.exe' CALC = 'calc' WRITER = 'writer' + OBJ_CELL = 'ScCellObj' OBJ_RANGE = 'ScCellRangeObj' OBJ_RANGES = 'ScCellRangesObj' OBJ_TYPE_RANGES = (OBJ_CELL, OBJ_RANGE, OBJ_RANGES) +TEXT_RANGE = 'SwXTextRange' +TEXT_RANGES = 'SwXTextRanges' +TEXT_TYPE_RANGES = (TEXT_RANGE, TEXT_RANGES) + TYPE_DOC = { 'calc': 'com.sun.star.sheet.SpreadsheetDocument', 'writer': 'com.sun.star.text.TextDocument', 'impress': 'com.sun.star.presentation.PresentationDocument', 'draw': 'com.sun.star.drawing.DrawingDocument', - # ~ 'base': 'com.sun.star.sdb.OfficeDatabaseDocument', 'base': 'com.sun.star.sdb.DocumentDataSource', 'math': 'com.sun.star.formula.FormulaProperties', 'basic': 'com.sun.star.script.BasicIDE', @@ -198,19 +190,16 @@ MENUS_WRITER = { 'windows': '.uno:WindowList', 'help': '.uno:HelpMenu', } - MENUS_APP = { 'main': MENUS_MAIN, 'calc': MENUS_CALC, 'writer': MENUS_WRITER, } - EXT = { 'pdf': 'pdf', } - FILE_NAME_DEBUG = 'debug.odt' FILE_NAME_CONFIG = 'zaz-{}.json' LOG_FORMAT = '%(asctime)s - %(levelname)s - %(message)s' @@ -280,6 +269,12 @@ def mri(obj): return +def inspect(obj): + zaz = create_instance('net.elmau.zaz.inspect') + zaz.inspect(obj) + return + + def catch_exception(f): @wraps(f) def func(*args, **kwargs): @@ -1004,7 +999,9 @@ class LOCalc(LODocument): def __getitem__(self, index): if isinstance(index, str): - index = [s.Name for s in self._sheets if s.CodeName == index][0] or index + code_name = [s.Name for s in self._sheets if s.CodeName == index] + if code_name: + index = code_name[0] return LOCalcSheet(self._sheets[index], self) def __setitem__(self, key, value): @@ -1372,7 +1369,11 @@ class LOWriter(LODocument): @property def selection(self): sel = self.obj.getCurrentSelection() - return LOTextRange(sel[0]) + if sel.ImplementationName == TEXT_RANGES: + return LOTextRange(sel[0]) + elif sel.ImplementationName == TEXT_RANGE: + return LOTextRange(sel) + return sel def write(self, data, cursor=None): cursor = cursor or self.selection.cursor.getEnd() @@ -1706,6 +1707,9 @@ class LOCellRange(object): def __getitem__(self, index): return LOCellRange(self.obj[index], self.doc) + def __contains__(self, item): + return item.in_range(self) + def _init_values(self): self._type_obj = self.obj.ImplementationName self._type_content = EMPTY @@ -1755,7 +1759,7 @@ class LOCellRange(object): self.obj.setFormula(data) else: self.obj.setString(data) - elif isinstance(data, (int, float)): + elif isinstance(data, (int, float, bool)): self.obj.setValue(data) elif isinstance(data, datetime.datetime): d = data.toordinal() @@ -1773,8 +1777,6 @@ class LOCellRange(object): return self.obj.getDataArray() @data.setter def data(self, values): - if isinstance(values, list): - values = tuple(values) self.obj.setDataArray(values) @property @@ -1782,8 +1784,6 @@ class LOCellRange(object): return self.obj.getFormulaArray() @formula.setter def formula(self, values): - if isinstance(values, list): - values = tuple(values) self.obj.setFormulaArray(values) @property @@ -1808,13 +1808,19 @@ class LOCellRange(object): cursor.collapseToSize(cols, rows) return LOCellRange(self.sheet[cursor.AbsoluteName].obj, self.doc) - def copy_from(self, rango): + def copy_from(self, rango, formula=False): data = rango if isinstance(rango, LOCellRange): - data = rango.data + if formula: + data = rango.formula + else: + data = rango.data rows = len(data) cols = len(data[0]) - self.to_size(rows, cols).data = data + if formula: + self.to_size(rows, cols).formula = data + else: + self.to_size(rows, cols).data = data return def copy_to(self, cell, formula=False): @@ -2060,6 +2066,10 @@ class EventsListenerBase(unohelper.Base, XEventListener): self._name = name self._window = window + @property + def name(self): + return self._name + def disposing(self, event): self._controller = None if not self._window is None: @@ -2170,7 +2180,10 @@ class EventsItem(EventsListenerBase, XItemListener): pass def itemStateChanged(self, event): - pass + event_name = '{}_item_changed'.format(self.name) + if hasattr(self._controller, event_name): + getattr(self._controller, event_name)(event) + return class EventsItemRoadmap(EventsItem): @@ -2231,6 +2244,33 @@ class EventsTab(EventsListenerBase, XTabListener): return +class EventsGrid(EventsListenerBase, XGridDataListener, XGridSelectionListener): + + def __init__(self, controller, name): + super().__init__(controller, name) + + def dataChanged(self, event): + event_name = '{}_data_changed'.format(self.name) + if hasattr(self._controller, event_name): + getattr(self._controller, event_name)(event) + return + + def rowHeadingChanged(self, event): + pass + + def rowsInserted(self, event): + pass + + def rowsRemoved(self, evemt): + pass + + def selectionChanged(self, event): + event_name = '{}_selection_changed'.format(self.name) + if hasattr(self._controller, event_name): + getattr(self._controller, event_name)(event) + return + + class EventsKeyWindow(EventsListenerBase, XKeyListener): """ event.KeyChar @@ -2307,8 +2347,8 @@ class EventsWindow(EventsListenerBase, XTopWindowListener, XWindowListener): # ~ XWindowListener def windowResized(self, event): - # ~ sb = self._container.getControl('subcontainer') - # ~ sb.setPosSize(0, 0, event.Width, event.Height, SIZE) + sb = self._cls._subcont + sb.setPosSize(0, 0, event.Width, event.Height, SIZE) event_name = '{}_resized'.format(self._name) if hasattr(self._controller, event_name): getattr(self._controller, event_name)(event) @@ -2370,6 +2410,7 @@ class UnoBaseObject(object): @property def parent(self): + ps = self.obj.getContext().PosSize return self.obj.getContext() def _get_possize(self, name): @@ -2411,17 +2452,23 @@ class UnoBaseObject(object): return self._model.Width @width.setter def width(self, value): - self._model.Width = value + if hasattr(self.model, 'Width'): + self.model.Width = value + elif hasattr(self.obj, 'PosSize'): + self._set_possize('Width', value) @property def height(self): - if hasattr(self._model, 'Height'): - return self._model.Height + if hasattr(self.model, 'Height'): + return self.model.Height ps = self.obj.getPosSize() return ps.Height @height.setter def height(self, value): - self._model.Height = value + if hasattr(self.model, 'Height'): + self.model.Height = value + elif hasattr(self.obj, 'PosSize'): + self._set_possize('Height', value) @property def tag(self): @@ -2484,8 +2531,12 @@ class UnoBaseObject(object): def move(self, origin, x=0, y=5): if x: self.x = origin.x + origin.width + x + else: + self.x = origin.x if y: self.y = origin.y + origin.height + y + else: + self.y = origin.y return def possize(self, origin): @@ -2654,16 +2705,19 @@ class UnoGrid(UnoBaseObject): # ~ def format_columns(self, value): # ~ self._format_columns = value + @property + def value(self): + return self[self.column, self.row] + @property def data(self): return self._data @data.setter def data(self, values): # ~ self._data = values - self._gdm.removeAllRows() + self.clear() headings = tuple(range(1, len(values) + 1)) self._gdm.addRows(headings, values) - # ~ rows = range(grid_dm.RowCount) # ~ colors = [COLORS['GRAY'] if r % 2 else COLORS['WHITE'] for r in rows] # ~ grid.Model.RowBackgroundColors = tuple(colors) @@ -2703,6 +2757,10 @@ class UnoGrid(UnoBaseObject): row.append(d) return tuple(row) + def clear(self): + self._gdm.removeAllRows() + return + def add_row(self, data): # ~ self._data.append(data) data = self._validate_column(data) @@ -2712,18 +2770,17 @@ class UnoGrid(UnoBaseObject): def remove_row(self, row): self._gdm.removeRow(row) # ~ del self._data[row] - self._update_row_heading() + self.update_row_heading() return - def _update_row_heading(self): + def update_row_heading(self): for i in range(self.rows): self._gdm.updateRowHeading(i, i + 1) return def sort(self, column, asc=True): self._gdm.sortByColumn(column, asc) - # ~ self._data.sort(key=itemgetter(column), reverse=not asc) - self._update_row_heading() + self.update_row_heading() return def set_column_image(self, column, path): @@ -2823,7 +2880,7 @@ class UnoTree(UnoBaseObject): return -class UnoPages(UnoBaseObject): +class UnoTab(UnoBaseObject): def __init__(self, obj): super().__init__(obj) @@ -2835,6 +2892,9 @@ class UnoPages(UnoBaseObject): @property def current(self): return self.obj.getActiveTabID() + @property + def active(self): + return self.current def get_sheet(self, id): if isinstance(id, int): @@ -2887,7 +2947,11 @@ class UnoPages(UnoBaseObject): def _special_properties(self, tipo, properties): columns = properties.pop('Columns', ()) if tipo == 'grid': - properties['ColumnModel'] = self._set_column_model(columns) + properties['ColumnModel'] = _set_column_model(columns) + if not 'Width' in properties: + properties['Width'] = self.width + if not 'Height' in properties: + properties['Height'] = self.height elif tipo == 'button' and 'ImageURL' in properties: properties['ImageURL'] = self._set_image_url(properties['ImageURL']) elif tipo == 'roadmap': @@ -2939,7 +3003,7 @@ def get_custom_class(tipo, obj): 'link': UnoLabelLink, 'roadmap': UnoRoadmap, 'tree': UnoTree, - 'pages': UnoPages, + 'tab': UnoTab, # ~ 'image': UnoImage, # ~ 'radio': UnoRadio, # ~ 'groupbox': UnoGroupBox, @@ -2961,7 +3025,7 @@ def get_control_model(control): 'groupbox': 'com.sun.star.awt.UnoControlGroupBoxModel', 'image': 'com.sun.star.awt.UnoControlImageControlModel', 'radio': 'com.sun.star.awt.UnoControlRadioButtonModel', - 'pages': 'com.sun.star.awt.UnoMultiPageModel', + 'tab': 'com.sun.star.awt.UnoMultiPageModel', } return services[control] @@ -2995,6 +3059,11 @@ def add_listeners(events, control, name=''): continue getattr(control, key)(listeners[key](events, name)) + + if is_grid: + controllers = EventsGrid(events, name) + control.addSelectionListener(controllers) + control.Model.GridDataModel.addGridDataListener(controllers) return @@ -3384,6 +3453,7 @@ class LOChart(object): chart_data.setData(data) chart_data.RowDescriptions = labels + # ~ Bug if tipo == 'Pie': chart.setDiagram(chart.createInstance(self.BASE.format('Bar'))) chart.setDiagram(chart.createInstance(self.BASE.format('Pie'))) @@ -3435,6 +3505,29 @@ class LOChart(object): return self +def _set_column_model(columns): + #~ https://api.libreoffice.org/docs/idl/ref/interfacecom_1_1sun_1_1star_1_1awt_1_1grid_1_1XGridColumn.html + column_model = create_instance('com.sun.star.awt.grid.DefaultGridColumnModel', True) + for column in columns: + grid_column = create_instance('com.sun.star.awt.grid.GridColumn', True) + for k, v in column.items(): + setattr(grid_column, k, v) + column_model.addColumn(grid_column) + return column_model + + +def _set_image_url(image, id_extension=''): + if exists_path(image): + return _path_url(image) + + if not id_extension: + return '' + + path = get_path_extension(id_extension) + path = join(path, DIR['images'], image) + return _path_url(path) + + class LODialog(object): def __init__(self, **properties): @@ -3622,7 +3715,7 @@ class LODialog(object): properties['Height'] = self.height if 'Title' in properties: properties['Text'] = properties.pop('Title') - elif tipo == 'pages': + elif tipo == 'tab': if not 'Width' in properties: properties['Width'] = self.width if not 'Height' in properties: @@ -3681,13 +3774,26 @@ class LODialog(object): class LOWindow(object): + EMPTY = b""" + +""" def __init__(self, **kwargs): self._events = None self._menu = None self._container = None + self._id_extension = '' self._obj = self._create(kwargs) + @property + def id_extension(self): + return self._id_extension + @id_extension.setter + def id_extension(self, value): + global ID_EXTENSION + ID_EXTENSION = value + self._id_extension = value + def _create(self, properties): ps = ( properties.get('X', 0), @@ -3698,6 +3804,7 @@ class LOWindow(object): self._title = properties.get('Title', TITLE) self._create_frame(ps) self._create_container(ps) + self._create_subcontainer(ps) # ~ self._create_splitter(ps) return @@ -3729,6 +3836,31 @@ class LOWindow(object): self._frame.setComponent(self._container, None) return + def _create_subcontainer(self, ps): + service = 'com.sun.star.awt.ContainerWindowProvider' + cwp = create_instance(service, True) + with get_temp_file() as f: + f.write(self.EMPTY) + f.flush() + subcont = cwp.createContainerWindow( + _path_url(f.name), '', self._container.getPeer(), None) + + # ~ service = 'com.sun.star.awt.UnoControlDialog' + # ~ subcont2 = create_instance(service, True) + # ~ service = 'com.sun.star.awt.UnoControlDialogModel' + # ~ model = create_instance(service, True) + # ~ service = 'com.sun.star.awt.UnoControlContainer' + # ~ context = create_instance(service, True) + # ~ subcont2.setModel(model) + # ~ subcont2.setContext(context) + # ~ subcont2.createPeer(self._toolkit, self._container.getPeer()) + + subcont.setPosSize(0, 0, 500, 500, POSSIZE) + subcont.setVisible(True) + self._container.addControl('subcont', subcont) + self._subcont = subcont + return + def _get_base_control(self, tipo): services = { 'label': 'com.sun.star.awt.UnoControlFixedText', @@ -3742,25 +3874,50 @@ class LOWindow(object): 'radio': 'com.sun.star.awt.UnoControlRadioButton', 'tree': 'com.sun.star.awt.tree.TreeControl', 'grid': 'com.sun.star.awt.grid.UnoControlGrid', + 'tab': 'com.sun.star.awt.tab.UnoControlTabPage', } return services[tipo] + def _special_properties(self, tipo, properties): + columns = properties.pop('Columns', ()) + if tipo == 'grid': + properties['ColumnModel'] = self._set_column_model(columns) + elif tipo == 'button' and 'ImageURL' in properties: + properties['ImageURL'] = _set_image_url( + properties['ImageURL'], self.id_extension) + elif tipo == 'roadmap': + if not 'Height' in properties: + properties['Height'] = self.height + if 'Title' in properties: + properties['Text'] = properties.pop('Title') + elif tipo == 'tab': + if not 'Width' in properties: + properties['Width'] = self.width - 20 + if not 'Height' in properties: + properties['Height'] = self.height - 20 + + return properties + def add_control(self, properties): tipo = properties.pop('Type').lower() - base = self._get_base_control(tipo) - obj = create_instance(base, True) - model = create_instance('{}Model'.format(base), True) + root = properties.pop('Root', '') + sheets = properties.pop('Sheets', ()) + + properties = self._special_properties(tipo, properties) + model = self._subcont.Model.createInstance(get_control_model(tipo)) set_properties(model, properties) - obj.setModel(model) - x = properties.get('X', 5) - y = properties.get('Y', 5) - w = properties.get('Width', 200) - h = properties.get('Height', 25) - obj.setPosSize(x, y, w, h, POSSIZE) name = properties['Name'] - self._container.addControl(name, obj) - add_listeners(self.events, obj, name) - control = get_custom_class(tipo, obj) + self._subcont.Model.insertByName(name, model) + control = self._subcont.getControl(name) + add_listeners(self.events, control, name) + control = get_custom_class(tipo, control) + + if tipo == 'tree' and root: + control.root = root + elif tipo == 'tab' and sheets: + control.sheets = sheets + control.events = self.events + setattr(self, name, control) return @@ -4201,7 +4358,7 @@ def open_file(path): if IS_WIN: os.startfile(path) else: - subprocess.Popen(['xdg-open', path]) + pid = subprocess.Popen(['xdg-open', path]).pid return @@ -4254,23 +4411,29 @@ def popen(command, stdin=None): yield (e.errno, e.strerror) -def url_open(url, options={}, json=False): +def url_open(url, options={}, verify=True, json=False): data = '' + err = '' req = Request(url) try: - response = urlopen(req) - # ~ response.info() + if verify: + response = urlopen(req) + else: + context = ssl._create_unverified_context() + response = urlopen(req, context=context) except HTTPError as e: error(e) + err = str(e) except URLError as e: error(e.reason) + err = str(e.reason) else: if json: data = json_loads(response.read()) else: data = response.read() - return data + return data, err def run(command, wait=False): @@ -5247,8 +5410,6 @@ class LIBOServer(object): return instance - - # ~ controls = { # ~ 'CheckBox': 'com.sun.star.awt.UnoControlCheckBoxModel', # ~ 'ComboBox': 'com.sun.star.awt.UnoControlComboBoxModel',