HOLD_TIMEOUT = 1000
MOVE_THRESHHOLD = 10
- def __init__(self, actionWidget, activationTarget = coroutines.null_sink()):
+ def __init__(self, actionWidget, eventTarget = coroutines.null_sink()):
self._actionWidget = actionWidget
- self._activationTarget = activationTarget
+ self._eventTarget = eventTarget
self._actionPressId = None
self._actionReleaseId = None
widgetPosition[0] + position[0],
widgetPosition[1] + position[1],
)
- self._activationTarget.send((self._actionWidget, responsePosition))
+ self._eventTarget.send((self._actionWidget, responsePosition))
def _clear(self):
if self._holdTimerId is not None:
class PopupCalendar(object):
- def __init__(self, parent):
+ def __init__(self, parent, eventTarget = coroutines.null_sink()):
+ self._eventTarget = eventTarget
+
self.__calendar = gtk.Calendar()
self.__calendar.connect("day-selected-double-click", self._on_date_select)
self.__popupWindow.set_transient_for(parent)
self.__popupWindow.set_modal(True)
- self.callback = lambda: None
-
def get_date(self):
year, month, day = self.__calendar.get_date()
month += 1 # Seems to be 0 indexed
def _on_date_select(self, *args):
self.__popupWindow.hide()
- self.callback()
-
- def callback(self):
- pass
+ self._eventTarget.send((self, self.get_date()))
class EditTaskDialog(object):
self._addButton = widgetTree.get_widget("edit-commitEditTaskButton")
self._cancelButton = widgetTree.get_widget("edit-cancelEditTaskButton")
- self._popupCalendar = PopupCalendar(self._dialog)
+ self._popupCalendar = PopupCalendar(self._dialog, coroutines.func_sink(self._update_duedate))
def enable(self, todoManager):
self._populate_projects(todoManager)
self._addButton.connect("clicked", self._on_add_clicked)
self._cancelButton.connect("clicked", self._on_cancel_clicked)
- self._popupCalendar.callback = self._update_duedate
-
def disable(self):
- self._popupCalendar.callback = lambda: None
-
self._pasteTaskNameButton.disconnect("clicked", self._on_name_paste)
self._dueDateProperties.disconnect("clicked", self._on_choose_duedate)
self._clearDueDate.disconnect("clicked", self._on_clear_duedate)
else:
return str(index)
- def _update_duedate(self):
- date = self._popupCalendar.get_date()
+ def _update_duedate(self, eventData):
+ widget, date = eventData
time = datetime.time()
dueDate = datetime.datetime.combine(date, time)