Add property view_web to Writer

This commit is contained in:
Mauricio Baeza 2021-10-14 22:25:48 -05:00
parent 5144785dda
commit 08f5a48bc2
1 changed files with 118 additions and 17 deletions

View File

@ -94,6 +94,7 @@ from com.sun.star.awt import XFocusListener
from com.sun.star.awt import XKeyListener from com.sun.star.awt import XKeyListener
from com.sun.star.awt import XItemListener from com.sun.star.awt import XItemListener
from com.sun.star.awt import XTabListener from com.sun.star.awt import XTabListener
from com.sun.star.awt import XSpinListener
from com.sun.star.awt import XWindowListener from com.sun.star.awt import XWindowListener
from com.sun.star.awt import XTopWindowListener from com.sun.star.awt import XTopWindowListener
from com.sun.star.awt.grid import XGridDataListener from com.sun.star.awt.grid import XGridDataListener
@ -729,8 +730,7 @@ def sha512(data):
def get_config(key='', prefix='conf', default={}): def get_config(key='', prefix='conf', default={}):
name_file = FILE_NAME_CONFIG.format(prefix) name_file = FILE_NAME_CONFIG.format(prefix)
values = None values = {}
# ~ path = _P.join(_P.config('UserConfig'), name_file)
path = _P.join(_P.user_config, name_file) path = _P.join(_P.user_config, name_file)
if not _P.exists(path): if not _P.exists(path):
return default return default
@ -744,9 +744,8 @@ def get_config(key='', prefix='conf', default={}):
def set_config(key, value, prefix='conf'): def set_config(key, value, prefix='conf'):
name_file = FILE_NAME_CONFIG.format(prefix) name_file = FILE_NAME_CONFIG.format(prefix)
# ~ path = _P.join(_P.config('UserConfig'), name_file)
path = _P.join(_P.user_config, name_file) path = _P.join(_P.user_config, name_file)
values = get_config(default={}, prefix=prefix) values = get_config(prefix=prefix, default={})
values[key] = value values[key] = value
result = _P.to_json(path, values) result = _P.to_json(path, values)
return result return result
@ -2584,6 +2583,13 @@ class LOCalcRange(object):
d = (data.hour * 3600 + data.minute * 60 + data.second) / SECONDS_DAY d = (data.hour * 3600 + data.minute * 60 + data.second) / SECONDS_DAY
self.obj.setValue(d) self.obj.setValue(d)
@property
def str(self):
return self.obj.String
@str.setter
def str(self, value):
self.obj.setString(value)
@property @property
def date(self): def date(self):
value = int(self.obj.Value) value = int(self.obj.Value)
@ -3504,6 +3510,7 @@ class LOWriter(LODocument):
def __init__(self, obj): def __init__(self, obj):
super().__init__(obj) super().__init__(obj)
self._type = WRITER self._type = WRITER
self._settings = self._cc.ViewSettings
@property @property
def text(self): def text(self):
@ -3550,10 +3557,6 @@ class LOWriter(LODocument):
def draw_page(self): def draw_page(self):
return LODrawPage(self.obj.DrawPage) return LODrawPage(self.obj.DrawPage)
@property
def view_cursor(self):
return self._cc.ViewCursor
@property @property
def cursor(self): def cursor(self):
return self.obj.Text.createTextCursor() return self.obj.Text.createTextCursor()
@ -3581,10 +3584,17 @@ class LOWriter(LODocument):
@property @property
def zoom(self): def zoom(self):
return self._cc.ViewSettings.ZoomValue return self._settings.ZoomValue
@zoom.setter @zoom.setter
def zoom(self, value): def zoom(self, value):
self._cc.ViewSettings.ZoomValue = value self._settings.ZoomValue = value
@property
def view_web(self):
return self._settings.ShowOnlineLayout
@view_web.setter
def view_web(self, value):
self._settings.ShowOnlineLayout = value
def goto_start(self): def goto_start(self):
self.view_cursor.gotoStart(False) self.view_cursor.gotoStart(False)
@ -4377,6 +4387,7 @@ def _add_listeners(events, control, name=''):
'addItemListener': EventsItem, 'addItemListener': EventsItem,
'addKeyListener': EventsKey, 'addKeyListener': EventsKey,
'addTabListener': EventsTab, 'addTabListener': EventsTab,
'addSpinListener': EventsSpin,
} }
if hasattr(control, 'obj'): if hasattr(control, 'obj'):
control = control.obj control = control.obj
@ -4435,6 +4446,36 @@ class EventsListenerBase(unohelper.Base, XEventListener):
self._window.setMenuBar(None) self._window.setMenuBar(None)
class EventsSpin(EventsListenerBase, XSpinListener):
def __init__(self, controller, name):
super().__init__(controller, name)
def up(self, event):
event_name = f'{self.name}_up'
if hasattr(self._controller, event_name):
getattr(self._controller, event_name)(event)
return
def down(self, event):
event_name = f'{self.name}_up'
if hasattr(self._controller, event_name):
getattr(self._controller, event_name)(event)
return
def first(self, event):
event_name = f'{self.name}_first'
if hasattr(self._controller, event_name):
getattr(self._controller, event_name)(event)
return
def last(self, event):
event_name = f'{self.name}_last'
if hasattr(self._controller, event_name):
getattr(self._controller, event_name)(event)
return
class EventsMouse(EventsListenerBase, XMouseListener, XMouseMotionListener): class EventsMouse(EventsListenerBase, XMouseListener, XMouseMotionListener):
def __init__(self, controller, name): def __init__(self, controller, name):
@ -4449,7 +4490,10 @@ class EventsMouse(EventsListenerBase, XMouseListener, XMouseMotionListener):
return return
def mouseReleased(self, event): def mouseReleased(self, event):
pass event_name = '{}_after_click'.format(self._name)
if hasattr(self._controller, event_name):
getattr(self._controller, event_name)(event)
return
def mouseEntered(self, event): def mouseEntered(self, event):
pass pass
@ -4976,7 +5020,10 @@ class UnoBaseObject(object):
else: else:
self.x = origin.x self.x = origin.x
if y: if y:
self.y = origin.y + origin.height + y h = origin.height
if y < 0:
h = 0
self.y = origin.y + h + y
else: else:
self.y = origin.y self.y = origin.y
@ -5028,6 +5075,13 @@ class UnoButton(UnoBaseObject):
def value(self, value): def value(self, value):
self.model.Label = value self.model.Label = value
@property
def image(self):
return self.model.ImageURL
@image.setter
def image(self, value):
self.model.ImageURL = _P.to_url(value)
class UnoRadio(UnoBaseObject): class UnoRadio(UnoBaseObject):
@ -5099,7 +5153,10 @@ class UnoText(UnoBaseObject):
return chr(self.model.EchoChar) return chr(self.model.EchoChar)
@echochar.setter @echochar.setter
def echochar(self, value): def echochar(self, value):
self.model.EchoChar = ord(value[0]) if value:
self.model.EchoChar = ord(value[0])
else:
self.model.EchoChar = 0
def validate(self): def validate(self):
return return
@ -5635,6 +5692,44 @@ class UnoPages(UnoBaseObject):
return return
class UnoSpinButton(UnoBaseObject):
def __init__(self, obj):
super().__init__(obj)
@property
def type(self):
return 'spinbutton'
@property
def value(self):
return self.model.Label
@value.setter
def value(self, value):
self.model.Label = value
class UnoNumericField(UnoBaseObject):
def __init__(self, obj):
super().__init__(obj)
@property
def type(self):
return 'numeric'
@property
def int(self):
return int(self.value)
@property
def value(self):
return self.model.Value
@value.setter
def value(self, value):
self.model.Value = value
UNO_CLASSES = { UNO_CLASSES = {
'label': UnoLabel, 'label': UnoLabel,
'link': UnoLabelLink, 'link': UnoLabelLink,
@ -5648,6 +5743,8 @@ UNO_CLASSES = {
'tree': UnoTree, 'tree': UnoTree,
'grid': UnoGrid, 'grid': UnoGrid,
'pages': UnoPages, 'pages': UnoPages,
'spinbutton': UnoSpinButton,
'numeric': UnoNumericField,
} }
UNO_MODELS = { UNO_MODELS = {
@ -5665,17 +5762,17 @@ UNO_MODELS = {
'pages': 'com.sun.star.awt.UnoMultiPageModel', 'pages': 'com.sun.star.awt.UnoMultiPageModel',
'groupbox': 'com.sun.star.awt.UnoControlGroupBoxModel', 'groupbox': 'com.sun.star.awt.UnoControlGroupBoxModel',
'combobox': 'com.sun.star.awt.UnoControlComboBoxModel', 'combobox': 'com.sun.star.awt.UnoControlComboBoxModel',
'spinbutton': 'com.sun.star.awt.UnoControlSpinButtonModel',
'numeric': 'com.sun.star.awt.UnoControlNumericFieldModel',
} }
# ~ 'CurrencyField': 'com.sun.star.awt.UnoControlCurrencyFieldModel', # ~ 'CurrencyField': 'com.sun.star.awt.UnoControlCurrencyFieldModel',
# ~ 'DateField': 'com.sun.star.awt.UnoControlDateFieldModel', # ~ 'DateField': 'com.sun.star.awt.UnoControlDateFieldModel',
# ~ 'FileControl': 'com.sun.star.awt.UnoControlFileControlModel', # ~ 'FileControl': 'com.sun.star.awt.UnoControlFileControlModel',
# ~ 'FormattedField': 'com.sun.star.awt.UnoControlFormattedFieldModel', # ~ 'FormattedField': 'com.sun.star.awt.UnoControlFormattedFieldModel',
# ~ 'NumericField': 'com.sun.star.awt.UnoControlNumericFieldModel',
# ~ 'PatternField': 'com.sun.star.awt.UnoControlPatternFieldModel', # ~ 'PatternField': 'com.sun.star.awt.UnoControlPatternFieldModel',
# ~ 'ProgressBar': 'com.sun.star.awt.UnoControlProgressBarModel', # ~ 'ProgressBar': 'com.sun.star.awt.UnoControlProgressBarModel',
# ~ 'ScrollBar': 'com.sun.star.awt.UnoControlScrollBarModel', # ~ 'ScrollBar': 'com.sun.star.awt.UnoControlScrollBarModel',
# ~ 'SimpleAnimation': 'com.sun.star.awt.UnoControlSimpleAnimationModel', # ~ 'SimpleAnimation': 'com.sun.star.awt.UnoControlSimpleAnimationModel',
# ~ 'SpinButton': 'com.sun.star.awt.UnoControlSpinButtonModel',
# ~ 'Throbber': 'com.sun.star.awt.UnoControlThrobberModel', # ~ 'Throbber': 'com.sun.star.awt.UnoControlThrobberModel',
# ~ 'TimeField': 'com.sun.star.awt.UnoControlTimeFieldModel', # ~ 'TimeField': 'com.sun.star.awt.UnoControlTimeFieldModel',
@ -5697,6 +5794,8 @@ class LODialog(object):
'pages': 'com.sun.star.awt.UnoMultiPageModel', 'pages': 'com.sun.star.awt.UnoMultiPageModel',
'groupbox': 'com.sun.star.awt.UnoControlGroupBoxModel', 'groupbox': 'com.sun.star.awt.UnoControlGroupBoxModel',
'combobox': 'com.sun.star.awt.UnoControlComboBoxModel', 'combobox': 'com.sun.star.awt.UnoControlComboBoxModel',
'spinbutton': 'com.sun.star.awt.UnoControlSpinButtonModel',
'numeric': 'com.sun.star.awt.UnoControlNumericFieldModel',
} }
def __init__(self, args): def __init__(self, args):
@ -5776,6 +5875,9 @@ class LODialog(object):
def path(self): def path(self):
return self._path return self._path
@property @property
def path_images(self):
return _P.join(self.path, DIR['images'])
@property
def id(self): def id(self):
return self._id return self._id
@id.setter @id.setter
@ -6546,7 +6648,7 @@ class ClipBoard(object):
def __init__(self, text): def __init__(self, text):
df = DataFlavor() df = DataFlavor()
df.MimeType = ClipBoard.CLIPBOARD_FORMAT_TEXT df.MimeType = ClipBoard.CLIPBOARD_FORMAT_TEXT
df.HumanPresentableName = "encoded text utf-16" df.HumanPresentableName = 'encoded text utf-16'
self.flavors = (df,) self.flavors = (df,)
self._data = text self._data = text
@ -6556,7 +6658,6 @@ class ClipBoard(object):
def getTransferDataFlavors(self): def getTransferDataFlavors(self):
return self.flavors return self.flavors
@classmethod @classmethod
def set(cls, value): def set(cls, value):
ts = cls.TextTransferable(value) ts = cls.TextTransferable(value)