Пример #1
0
 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
Пример #2
0
 def onEventLabelPopup(self, label, menu, ids):
     menu = gtk.Menu()
     self.labelMenuAddCopyItems(label, menu)
     ####
     groupId, eventId = ids
     event = ui.getEvent(groupId, eventId)
     if not event.readOnly:
         menu.add(gtk.SeparatorMenuItem())
         ###
         winTitle = _('Edit ') + event.desc
         menu.add(labelStockMenuItem(
             winTitle,
             gtk.STOCK_EDIT,
             self.editEventClicked,
             winTitle,
             event,
             groupId,
         ))
         ###
         menu.add(gtk.SeparatorMenuItem())
         ###
         menu.add(labelImageMenuItem(
             _('Move to %s') % ui.eventTrash.title,
             ui.eventTrash.icon,
             self.moveEventToTrash,
             event,
             groupId,
         ))
     ####
     menu.show_all()
     menu.popup(None, None, None, 3, 0)
     ui.updateFocusTime()
Пример #3
0
 def onConfigChange(self, *a, **kw):
     ud.IntegratedCalObj.onConfigChange(self, *a, **kw)
     ###
     if not self.isLoaded:
         if self.get_property('visible'):
             self.waitingDo(self.reloadEvents)## FIXME
         return
     ###
     for gid in ui.newGroups:
         self.showNewGroup(ui.eventGroups[gid])
     ui.newGroups = []
     ###
     for gid in ui.changedGroups:
         groupIndex = ui.eventGroups.index(gid)
         group = ui.eventGroups[gid]
         try:
             groupIter = self.trees.get_iter((groupIndex,))
         except:
             print 'changed group: invalid tree path: (%s,)'%groupIndex
         else:
             for i, value in enumerate(self.getGroupRow(group)):
                 self.trees.set_value(groupIter, i, value)
     ui.changedGroups = []
     ###
     for gid, eid in ui.newEvents:
         groupIndex = ui.eventGroups.index(gid)
         self.trees.append(
             self.trees.get_iter((groupIndex,)),
             self.getEventRow(ui.getEvent(gid, eid)),
         )
     ui.newEvents = []
     ###
     for gid, eid in ui.changedEvents:
         groupIndex = ui.eventGroups.index(gid)
         group = ui.eventGroups[gid]
         eventIndex = group.index(eid)
         try:
             eventIter = self.trees.get_iter((groupIndex, eventIndex))
         except:
             print 'changed event: invalid tree path: (%s, %s)'%(groupIndex, eventIndex)
         else:
             for i, value in enumerate(self.getEventRow(group[eid])):
                 self.trees.set_value(eventIter, i, value)
     ui.changedEvents = []
     ###
     for gid, eid, eventIndex in ui.trashedEvents:
         groupIndex = ui.eventGroups.index(gid)
         try:
             eventIter = self.trees.get_iter((groupIndex, eventIndex))
         except:
             print 'trashed event: invalid tree path: (%s, %s)'%(groupIndex, eventIndex)
         else:
             self.trees.remove(eventIter)
             self.trees.insert(
                 self.trashIter,
                 0,
                 self.getEventRow(ui.eventTrash[eid]),
             )
     ui.trashedEvents = []
Пример #4
0
 def onEventLabelPopup(self, label, menu, ids):
     menu = gtk.Menu()
     self.labelMenuAddCopyItems(label, menu)
     ####
     groupId, eventId = 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 new_group in ui.eventGroups:
             if new_group.id == group.id:
                 continue
             if not new_group.enable:
                 continue
             if event.name in new_group.acceptsEventTypes:
                 new_groupItem = gtk.ImageMenuItem()
                 new_groupItem.set_label(new_group.title)
                 ##
                 image = gtk.Image()
                 image.set_from_pixbuf(newOutlineSquarePixbuf(new_group.color, 20))
                 new_groupItem.set_image(image)
                 ##
                 new_groupItem.connect('activate', self.moveEventToGroupFromMenu, event, group, new_group)
                 ##
                 moveToMenu.add(new_groupItem)
         moveToItem.set_submenu(moveToMenu)
         menu.add(moveToItem)
         ###
         menu.add(gtk.SeparatorMenuItem())
         ###
         menu.add(labelImageMenuItem(
             _('Move to %s') % ui.eventTrash.title,
             ui.eventTrash.icon,
             self.moveEventToTrash,
             event,
             groupId,
         ))
     ####
     menu.show_all()
     menu.popup(None, None, None, 3, 0)
     ui.updateFocusTime()
Пример #5
0
 def onLabelPopupPopulate(self, label, menu, ids):
     menu = gtk.Menu()
     ####
     itemCopyAll = gtk.ImageMenuItem(_('Copy _All'))
     itemCopyAll.set_image(gtk.image_new_from_stock(gtk.STOCK_COPY, gtk.ICON_SIZE_MENU))
     itemCopyAll.connect('activate', self.copyAll, label)
     menu.add(itemCopyAll)
     ####
     itemCopy = gtk.ImageMenuItem(_('_Copy'))
     itemCopy.set_image(gtk.image_new_from_stock(gtk.STOCK_COPY, gtk.ICON_SIZE_MENU))
     if label.get_property('cursor-position') != label.get_property('selection-bound'):
         itemCopy.connect('activate', self.copy, label)
     else:
         itemCopy.set_sensitive(False)
     menu.add(itemCopy)
     ####
     menu.add(gtk.SeparatorMenuItem())
     ####
     (groupId, eventId) = ids
     event = ui.getEvent(groupId, eventId)
     ###
     winTitle = _('Edit ') + event.desc
     menu.add(labelStockMenuItem(
         winTitle,
         gtk.STOCK_EDIT,
         self.editEventClicked,
         winTitle,
         event,
         groupId,
     ))
     ###
     menu.add(gtk.SeparatorMenuItem())
     ###
     menu.add(labelImageMenuItem(
         _('Move to %s')%ui.eventTrash.title,
         ui.eventTrash.icon,
         self.moveEventToTrash,
         event,
         groupId,
     ))
     ####
     menu.show_all()
     menu.popup(None, None, None, 3, 0)
Пример #6
0
 def onEventLabelPopup(self, label, menu, occurData):
     from scal2.ui_gtk.event.utils import menuItemFromEventGroup
     menu = gtk.Menu()
     self.labelMenuAddCopyItems(label, 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()
     menu.popup(None, None, None, 3, 0)
     ui.updateFocusTime()
Пример #7
0
 def onEventLabelPopup(self, label, menu, occurData):
     from scal2.ui_gtk.event.utils import menuItemFromEventGroup
     menu = gtk.Menu()
     self.labelMenuAddCopyItems(label, 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()
     menu.popup(None, None, None, 3, 0)
     ui.updateFocusTime()