def onConfigChange(self, *a, **kw): ud.BaseCalObj.onConfigChange(self, *a, **kw) ### if not self.isLoaded: if self.get_property("visible"): self.waitingDo(self.reloadEvents)## FIXME return ### for action, eid, gid, path in ui.eventDiff: if action == "-": eventIter = self.eventsIter.get(eid) if eventIter is None: if gid in self.loadedGroupIds: print( "trying to delete non-existing event row, " + "eid=%s, path=%s" % (eid, path) ) else: self.trees.remove(eventIter) elif action == "+": if gid in self.loadedGroupIds: try: parentIndex, eventIndex = path except ValueError as e: raise RuntimeError("invalid path = %r" % path) #print(gid, self.loadedGroupIds, parentIndex) parentIter = self.trees.get_iter((parentIndex,)) event = ui.getEvent(gid, eid) self.insertEventRow(parentIter, eventIndex, event) elif action == "e": eventIter = self.eventsIter.get(eid) if eventIter is None: if gid in self.loadedGroupIds: print( "trying to edit non-existing event row, " + "eid=%s, path=%s" % (eid, path) ) else: event = ui.getEvent(gid, eid) self.updateEventRowByIter(event, eventIter) ui.eventDiff.clear() ### for gid in ui.changedGroups: group = ui.eventGroups[gid] groupIter = self.groupIterById[gid] for i, value in enumerate(self.getGroupRow(group)): self.trees.set_value(groupIter, i, value) ui.changedGroups = [] ### for gid in ui.reloadGroups: self.reloadGroupEvents(gid) ui.reloadGroups = [] ### if ui.reloadTrash: if self.trashIter: self.trees.remove(self.trashIter) self.appendTrash() ui.reloadTrash = False
def onConfigChange(self, *a, **kw): ud.BaseCalObj.onConfigChange(self, *a, **kw) ### if not self.isLoaded: if self.get_property('visible'): self.waitingDo(self.reloadEvents)## FIXME return ### for action, eid, gid, path in ui.eventDiff: if action == '-': try: eventIter = self.eventsIter[eid] except KeyError: if gid in self.loadedGroupIds: print('trying to delete non-existing event row, eid=%s, path=%s'%(eid, path)) else: self.trees.remove(eventIter) elif action == '+': if gid in self.loadedGroupIds: parentIndex, eventIndex = path #print(gid, self.loadedGroupIds, parentIndex) parentIter = self.trees.get_iter((parentIndex,)) event = ui.getEvent(gid, eid) self.insertEventRow(parentIter, eventIndex, event) elif action == 'e': try: eventIter = self.eventsIter[eid] except KeyError: if gid in self.loadedGroupIds: print('trying to edit non-existing event row, eid=%s, path=%s'%(eid, path)) else: event = ui.getEvent(gid, eid) self.updateEventRowByIter(event, eventIter) ### for gid in ui.changedGroups: group = ui.eventGroups[gid] groupIter = self.groupIterById[gid] for i, value in enumerate(self.getGroupRow(group)): self.trees.set_value(groupIter, i, value) ui.changedGroups = [] ### for gid in ui.reloadGroups: self.reloadGroupEvents(gid) ui.reloadGroups = [] ### if ui.reloadTrash: if self.trashIter: self.trees.remove(self.trashIter) self.appendTrash() ui.reloadTrash = False
def editEventFromMenu(self, item, groupId, eventId): from scal3.ui_gtk.event.editor import EventEditorDialog event = ui.getEvent(groupId, eventId) group = ui.eventGroups[groupId] parent = self event = EventEditorDialog( event, title=_("Edit ") + event.desc, parent=parent, ).run() if event is None: return ui.eventDiff.add("e", event) self.onConfigChange()
def editEventFromMenu(self, item, groupId, eventId): from scal3.ui_gtk.event.editor import EventEditorDialog event = ui.getEvent(groupId, eventId) group = ui.eventGroups[groupId] parent = self event = EventEditorDialog( event, title=_("Edit ") + event.desc, transient_for=parent, ).run() if event is None: return ui.eventDiff.add("e", event) self.onConfigChange()
def onEventLabelPopup(self, label, menu, occurData): from scal3.ui_gtk.event.utils import menuItemFromEventGroup if event_lib.readOnly: return # instead of creating a new menu, we should remove the current items from current menu # but here we will keep the items from ReadOnlyLabel #### groupId, eventId = occurData['ids'] event = ui.getEvent(groupId, eventId) group = ui.eventGroups[groupId] if not event.readOnly: menu.add(gtk.SeparatorMenuItem()) ### winTitle = _('Edit ') + event.desc menu.add( labelStockMenuItem( winTitle, gtk.STOCK_EDIT, self.editEventClicked, winTitle, event, groupId, )) ### moveToItem = labelStockMenuItem( _('Move to %s') % '...', None, ## FIXME ) moveToMenu = gtk.Menu() for newGroup in ui.eventGroups: if newGroup.id == group.id: continue if not newGroup.enable: continue if event.name in newGroup.acceptsEventTypes: newGroupItem = menuItemFromEventGroup(newGroup) newGroupItem.connect( 'activate', self.moveEventToGroupFromMenu, event, group, newGroup, ) moveToMenu.add(newGroupItem) moveToItem.set_submenu(moveToMenu) menu.add(moveToItem) ### if not event.isSingleOccur: newEventType = 'allDayTask' if occurData[ 'is_allday'] else 'task' copyOccurItem = labelStockMenuItem( _('Copy as %s to...') % event_lib.classes.event. byName[newEventType].desc, ## FIXME None, ) copyOccurMenu = gtk.Menu() for newGroup in ui.eventGroups: if not newGroup.enable: continue if newEventType in newGroup.acceptsEventTypes: newGroupItem = menuItemFromEventGroup(newGroup) newGroupItem.connect( 'activate', self.copyOccurToGroupFromMenu, newGroup, newEventType, event, occurData, ) copyOccurMenu.add(newGroupItem) copyOccurItem.set_submenu(copyOccurMenu) menu.add(copyOccurItem) ### menu.add(gtk.SeparatorMenuItem()) ### menu.add( labelImageMenuItem( _('Move to %s') % ui.eventTrash.title, ui.eventTrash.icon, self.moveEventToTrash, event, groupId, )) #### menu.show_all() label.tmpMenu = menu ui.updateFocusTime()
def onEventLabelPopup(self, label, menu, occurData): from scal3.ui_gtk.event.utils import menuItemFromEventGroup if event_lib.allReadOnly: return # instead of creating a new menu, we should remove the current items from current menu # but here we will keep the items from ReadOnlyLabel #### groupId, eventId = occurData["ids"] event = ui.getEvent(groupId, eventId) group = ui.eventGroups[groupId] if not event.readOnly: menu.add(gtk.SeparatorMenuItem()) ### winTitle = _("Edit ") + event.desc menu.add(labelStockMenuItem( winTitle, gtk.STOCK_EDIT, self.editEventClicked, winTitle, event, groupId, )) ### moveToItem = labelStockMenuItem( _("Move to %s") % "...", None, # FIXME ) moveToMenu = gtk.Menu() disabledGroupsMenu = gtk.Menu() for newGroup in ui.eventGroups: if newGroup.id == group.id: continue if event.name not in newGroup.acceptsEventTypes: continue newGroupItem = menuItemFromEventGroup(newGroup) newGroupItem.connect( "activate", self.moveEventToGroupFromMenu, event, group, newGroup, ) if newGroup.enable: moveToMenu.add(newGroupItem) else: disabledGroupsMenu.add(newGroupItem) ### disabledGroupsItem = gtk.MenuItem() disabledGroupsItem.set_label(_("Disabled")) disabledGroupsItem.set_submenu(disabledGroupsMenu) moveToMenu.add(disabledGroupsItem) ### moveToItem.set_submenu(moveToMenu) menu.add(moveToItem) ### if not event.isSingleOccur: newEventType = "allDayTask" if occurData["is_allday"] else "task" copyOccurItem = labelStockMenuItem( _( # FIXME "Copy as %s to..." ) % event_lib.classes.event.byName[newEventType].desc, None, ) copyOccurMenu = gtk.Menu() for newGroup in ui.eventGroups: if not newGroup.enable: continue if newEventType in newGroup.acceptsEventTypes: newGroupItem = menuItemFromEventGroup(newGroup) newGroupItem.connect( "activate", self.copyOccurToGroupFromMenu, newGroup, newEventType, event, occurData, ) copyOccurMenu.add(newGroupItem) copyOccurItem.set_submenu(copyOccurMenu) menu.add(copyOccurItem) ### menu.add(gtk.SeparatorMenuItem()) ### menu.add(labelImageMenuItem( _("Move to %s") % ui.eventTrash.title, ui.eventTrash.icon, self.moveEventToTrash, event, groupId, )) #### menu.show_all() label.tmpMenu = menu ui.updateFocusTime()
def onEventLabelPopup(self, label, menu, occurData): from scal3.ui_gtk.event.utils import menuItemFromEventGroup if event_lib.readOnly: return menu = gtk.Menu() label.labelMenuAddCopyItems(menu) #### groupId, eventId = occurData['ids'] event = ui.getEvent(groupId, eventId) group = ui.eventGroups[groupId] if not event.readOnly: menu.add(gtk.SeparatorMenuItem()) ### winTitle = _('Edit ') + event.desc menu.add(labelStockMenuItem( winTitle, gtk.STOCK_EDIT, self.editEventClicked, winTitle, event, groupId, )) ### moveToItem = labelStockMenuItem( _('Move to %s')%'...', None,## FIXME ) moveToMenu = gtk.Menu() for newGroup in ui.eventGroups: if newGroup.id == group.id: continue if not newGroup.enable: continue if event.name in newGroup.acceptsEventTypes: newGroupItem = menuItemFromEventGroup(newGroup) newGroupItem.connect( 'activate', self.moveEventToGroupFromMenu, event, group, newGroup, ) moveToMenu.add(newGroupItem) moveToItem.set_submenu(moveToMenu) menu.add(moveToItem) ### if not event.isSingleOccur: newEventType = 'allDayTask' if occurData['is_allday'] else 'task' copyOccurItem = labelStockMenuItem( _('Copy as %s to...') % event_lib.classes.event.byName[newEventType].desc,## FIXME None, ) copyOccurMenu = gtk.Menu() for newGroup in ui.eventGroups: if not newGroup.enable: continue if newEventType in newGroup.acceptsEventTypes: newGroupItem = menuItemFromEventGroup(newGroup) newGroupItem.connect( 'activate', self.copyOccurToGroupFromMenu, newGroup, newEventType, event, occurData, ) copyOccurMenu.add(newGroupItem) copyOccurItem.set_submenu(copyOccurMenu) menu.add(copyOccurItem) ### menu.add(gtk.SeparatorMenuItem()) ### menu.add(labelImageMenuItem( _('Move to %s') % ui.eventTrash.title, ui.eventTrash.icon, self.moveEventToTrash, event, groupId, )) #### menu.show_all() label.tmpMenu = menu menu.popup(None, None, None, None, 3, 0) ui.updateFocusTime()