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