Add range selection
This commit is contained in:
parent
4d62aef1b8
commit
51afb264fb
|
@ -1443,7 +1443,6 @@ class LOCalc(LODocument):
|
|||
self._sheets = obj.Sheets
|
||||
self._events = None
|
||||
self._listener_range_selection = None
|
||||
self._range_selection = ''
|
||||
|
||||
def __getitem__(self, index):
|
||||
return LOCalcSheet(self._sheets[index])
|
||||
|
@ -1513,7 +1512,7 @@ class LOCalc(LODocument):
|
|||
return LOCalcRanges(obj)
|
||||
|
||||
def _connect_listeners(self):
|
||||
# ~ self._cc.addRangeSelectionListener(EventsRangeSelectionListener(self.events))
|
||||
|
||||
return
|
||||
|
||||
@property
|
||||
|
@ -1524,26 +1523,22 @@ class LOCalc(LODocument):
|
|||
self._events = controllers(self)
|
||||
self._connect_listeners()
|
||||
|
||||
@property
|
||||
def range_selection(self):
|
||||
return self._range_selection
|
||||
|
||||
@run_in_thread
|
||||
def _start_range_selection(self, args):
|
||||
properties = dict_to_property(args)
|
||||
self._cc.startRangeSelection(properties)
|
||||
return
|
||||
|
||||
def start_range_selection(self, args={}):
|
||||
def start_range_selection(self, controllers, args={}):
|
||||
if not args:
|
||||
args = dict(
|
||||
Title = 'Please select a range',
|
||||
CloseOnMouseRelease = True)
|
||||
properties = dict_to_property(args)
|
||||
|
||||
self._listener_range_selection = EventsRangeSelectionListener(self)
|
||||
self._listener_range_selection = EventsRangeSelectionListener(controllers(self))
|
||||
self._cc.addRangeSelectionListener(self._listener_range_selection)
|
||||
self._start_range_selection(args)
|
||||
# ~ self._cc.removeRangeSelectionListener(listener)
|
||||
self._cc.startRangeSelection(properties)
|
||||
return
|
||||
|
||||
def remove_range_selection_listener(self):
|
||||
if not self._listener_range_selection is None:
|
||||
self._cc.removeRangeSelectionListener(self._listener_range_selection)
|
||||
return
|
||||
|
||||
def get_ranges(self, address: str):
|
||||
|
@ -4874,23 +4869,21 @@ class EventsWindow(EventsListenerBase, XTopWindowListener, XWindowListener):
|
|||
|
||||
class EventsRangeSelectionListener(EventsListenerBase, XRangeSelectionListener):
|
||||
|
||||
def __init__(self, doc):
|
||||
super().__init__(None, '')
|
||||
self._doc = doc
|
||||
def __init__(self, controller):
|
||||
super().__init__(controller, '')
|
||||
|
||||
def done(self, event):
|
||||
range_name = event.RangeDescriptor
|
||||
self.doc.range_selection = range_name
|
||||
# ~ event_name = 'range_selection_done'
|
||||
# ~ if hasattr(self._controller, event_name):
|
||||
# ~ getattr(self._controller, event_name)(event)
|
||||
range_selection = event.RangeDescriptor
|
||||
event_name = 'range_selection_done'
|
||||
if hasattr(self._controller, event_name):
|
||||
getattr(self._controller, event_name)(range_selection)
|
||||
return
|
||||
|
||||
def aborted(self, event):
|
||||
range_name = ''
|
||||
# ~ event_name = 'range_selection_aborted'
|
||||
# ~ if hasattr(self._controller, event_name):
|
||||
# ~ getattr(self._controller, event_name)(event)
|
||||
range_selection = event.RangeDescriptor
|
||||
event_name = 'range_selection_aborted'
|
||||
if hasattr(self._controller, event_name):
|
||||
getattr(self._controller, event_name)()
|
||||
return
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue