def getMoveToGroupSubMenu(self, path, group, event): ## returns a MenuItem instance item = labelStockMenuItem( _('Move to %s')%'...', None,## FIXME ) subMenu = gtk.Menu() ### for new_group in ui.eventGroups: if new_group.id == group.id: continue #if not new_group.enable:## FIXME # continue if event.name in new_group.acceptsEventTypes: new_groupItem = ImageMenuItem() new_groupItem.set_label(new_group.title) ## image = gtk.Image() image.set_from_pixbuf(newColorCheckPixbuf(new_group.color, 20, True)) new_groupItem.set_image(image) ## new_groupItem.connect( 'activate', self.moveEventToGroupFromMenu, path, event, group, new_group, ) ## subMenu.add(new_groupItem) ## item.set_submenu(subMenu) return item
def getCopyToGroupSubMenu(self, path, event): ## returns a MenuItem instance item = labelStockMenuItem( _("Copy to %s") % "...", None, ## FIXME ) subMenu = gtk.Menu() ### for new_group in ui.eventGroups: #if not new_group.enable:## FIXME # continue if event.name in new_group.acceptsEventTypes: new_groupItem = ImageMenuItem() new_groupItem.set_label(new_group.title) ## image = gtk.Image() image.set_from_pixbuf( newColorCheckPixbuf(new_group.color, 20, True)) new_groupItem.set_image(image) ## new_groupItem.connect( "activate", self.copyEventToGroupFromMenu, path, event, new_group, ) ## subMenu.add(new_groupItem) ## item.set_submenu(subMenu) return item
def getMoveToGroupSubMenu(self, path, group, event): ## returns a MenuItem instance item = labelStockMenuItem( _('Move to %s') % '...', None, ## FIXME ) subMenu = gtk.Menu() ### for new_group in ui.eventGroups: if new_group.id == group.id: continue #if not new_group.enable:## FIXME # continue if event.name in new_group.acceptsEventTypes: new_groupItem = ImageMenuItem() new_groupItem.set_label(new_group.title) ## image = gtk.Image() image.set_from_pixbuf( newColorCheckPixbuf(new_group.color, 20, True)) new_groupItem.set_image(image) ## new_groupItem.connect( 'activate', self.moveEventToGroupFromMenu, path, event, group, new_group, ) ## subMenu.add(new_groupItem) ## item.set_submenu(subMenu) return item
def getCopyToGroupSubMenu(self, path, event): ## returns a MenuItem instance item = labelStockMenuItem( _("Copy to %s") % "...", None,## FIXME ) subMenu = gtk.Menu() ### for new_group in ui.eventGroups: #if not new_group.enable:## FIXME # continue if event.name in new_group.acceptsEventTypes: new_groupItem = ImageMenuItem() new_groupItem.set_label(new_group.title) ## image = gtk.Image() image.set_from_pixbuf(newColorCheckPixbuf(new_group.color, 20, True)) new_groupItem.set_image(image) ## new_groupItem.connect( "activate", self.copyEventToGroupFromMenu, path, event, new_group, ) ## subMenu.add(new_groupItem) ## item.set_submenu(subMenu) return item
def menuItemFromEventGroup(group): item = ImageMenuItem() item.set_label(group.title) ## image = gtk.Image() image.set_from_pixbuf(newColorCheckPixbuf(group.color, 20, True)) item.set_image(image) return item
def getEventAddToMenuItem(self): from scal3.ui_gtk.drawing import newColorCheckPixbuf addToItem = labelStockMenuItem("_Add to", gtk.STOCK_ADD) if event_lib.allReadOnly: addToItem.set_sensitive(False) return addToItem menu2 = gtk.Menu() ## for group in ui.eventGroups: if not group.enable: continue if not group.showInCal(): ## FIXME continue eventTypes = group.acceptsEventTypes if not eventTypes: continue item2 = ImageMenuItem() item2.set_label(group.title) ## image = gtk.Image() if group.icon: image.set_from_file(group.icon) else: image.set_from_pixbuf( newColorCheckPixbuf(group.color, 20, True)) item2.set_image(image) ## if len(eventTypes) == 1: item2.connect("activate", self.addToGroupFromMenu, group, eventTypes[0]) else: menu3 = gtk.Menu() for eventType in eventTypes: eventClass = event_lib.classes.event.byName[eventType] item3 = ImageMenuItem() item3.set_label(eventClass.desc) icon = eventClass.getDefaultIcon() if icon: item3.set_image(imageFromFile(icon)) item3.connect("activate", self.addToGroupFromMenu, group, eventType) menu3.add(item3) menu3.show_all() item2.set_submenu(menu3) menu2.add(item2) ## menu2.show_all() addToItem.set_submenu(menu2) return addToItem
def getEventAddToMenuItem(self): from scal3.ui_gtk.drawing import newColorCheckPixbuf addToItem = labelStockMenuItem('_Add to', gtk.STOCK_ADD) if event_lib.readOnly: addToItem.set_sensitive(False) return addToItem menu2 = gtk.Menu() ## for group in ui.eventGroups: if not group.enable: continue if not group.showInCal():## FIXME continue eventTypes = group.acceptsEventTypes if not eventTypes: continue item2 = ImageMenuItem() item2.set_label(group.title) ## image = gtk.Image() if group.icon: image.set_from_file(group.icon) else: image.set_from_pixbuf(newColorCheckPixbuf(group.color, 20, True)) item2.set_image(image) ## if len(eventTypes)==1: item2.connect('activate', self.addToGroupFromMenu, group, eventTypes[0]) else: menu3 = gtk.Menu() for eventType in eventTypes: eventClass = event_lib.classes.event.byName[eventType] item3 = ImageMenuItem() item3.set_label(eventClass.desc) icon = eventClass.getDefaultIcon() if icon: item3.set_image(imageFromFile(icon)) item3.connect('activate', self.addToGroupFromMenu, group, eventType) menu3.add(item3) menu3.show_all() item2.set_submenu(menu3) menu2.add(item2) ## menu2.show_all() addToItem.set_submenu(menu2) return addToItem
from scal3.ui_gtk import * from scal3.ui_gtk.utils import toolButtonFromStock, set_tooltip, labelStockMenuItem from scal3.ui_gtk.utils import dialog_add_button, getStyleColor from scal3.ui_gtk.drawing import newColorCheckPixbuf from scal3.ui_gtk.mywidgets import TextFrame from scal3.ui_gtk.mywidgets.icon import IconSelectButton from scal3.ui_gtk.mywidgets.multi_spin.integer import IntSpinButton from scal3.ui_gtk.mywidgets.multi_spin.float_num import FloatSpinButton from scal3.ui_gtk.event import makeWidget from scal3.ui_gtk.event.utils import * getGroupPixbuf = lambda group: newColorCheckPixbuf( group.color, 20, group.enable, ) getGroupRow = lambda group: ( group.id, getGroupPixbuf(group), group.title ) class WidgetClass(gtk.VBox): def __init__(self, event): from scal3.ui_gtk.mywidgets.cal_type_combo import CalTypeCombo from scal3.ui_gtk.mywidgets.tz_combo import TimeZoneComboBoxEntry gtk.VBox.__init__(self)
def genRightClickMenu(self, path): ## how about multi-selection? FIXME ## and Select _All menu item obj_list = self.getObjsByPath(path) #print(len(obj_list)) menu = gtk.Menu() if len(obj_list) == 1: group = obj_list[0] if group.name == "trash": #print("right click on trash", group.title) menu.add(eventWriteMenuItem( "Edit", gtk.STOCK_EDIT, self.editTrash, )) menu.add(eventWriteMenuItem( "Empty Trash",## or use group.title FIXME gtk.STOCK_CLEAR, self.emptyTrash, )) #menu.add(gtk.SeparatorMenuItem()) #menu.add(eventWriteMenuItem( # "Add New Group", # gtk.STOCK_NEW, # self.addGroupBeforeSelection, #))## FIXME else: #print("right click on group", group.title) menu.add(eventWriteMenuItem( "Edit", gtk.STOCK_EDIT, self.editGroupFromMenu, path, )) eventTypes = group.acceptsEventTypes if eventTypes is None: eventTypes = event_lib.classes.event.names if len(eventTypes) > 3: menu.add(eventWriteMenuItem( _("Add Event"), gtk.STOCK_ADD, self.addGenericEventToGroupFromMenu, path, group, )) else: for eventType in eventTypes: #if eventType == "custom":## FIXME # desc = _("Add ") + _("Event") #else: label = _("Add ") + event_lib.classes.event.byName[eventType].desc menu.add(eventWriteMenuItem( label, gtk.STOCK_ADD, self.addEventToGroupFromMenu, path, group, eventType, label, )) pasteItem = eventWriteMenuItem( "Paste Event", gtk.STOCK_PASTE, self.pasteEventFromMenu, path, ) menu.add(pasteItem) pasteItem.set_sensitive(self.canPasteToGroup(group)) ## if group.remoteIds: aid, remoteGid = group.remoteIds try: account = ui.eventAccounts[aid] except KeyError: myRaise() else: if account.enable: menu.add(gtk.SeparatorMenuItem()) menu.add(eventWriteMenuItem( "Synchronize", gtk.STOCK_CONNECT,## or gtk.STOCK_REFRESH FIXME self.syncGroupFromMenu, path, account, )) #else:## FIXME ## menu.add(gtk.SeparatorMenuItem()) #menu.add(eventWriteMenuItem( # "Add New Group", # gtk.STOCK_NEW, # self.addGroupBeforeGroup, # path, #))## FIXME menu.add(eventWriteMenuItem( "Duplicate", gtk.STOCK_COPY, self.duplicateGroupFromMenu, path, )) ### dupAllItem = labelStockMenuItem( "Duplicate with All Events", gtk.STOCK_COPY, self.duplicateGroupWithEventsFromMenu, path, ) menu.add(dupAllItem) dupAllItem.set_sensitive( not group.isReadOnly() and bool(group.idList) ) ### menu.add(gtk.SeparatorMenuItem()) menu.add(eventWriteMenuItem( "Delete Group", gtk.STOCK_DELETE, self.deleteGroupFromMenu, path, )) menu.add(gtk.SeparatorMenuItem()) ## #menu.add(eventWriteMenuItem( # "Move Up", # gtk.STOCK_GO_UP, # self.moveUpFromMenu, # path, #)) #menu.add(eventWriteMenuItem( # "Move Down", # gtk.STOCK_GO_DOWN, # self.moveDownFromMenu, # path, #)) ## menu.add(labelStockMenuItem( _("Export"), gtk.STOCK_CONVERT, self.groupExportFromMenu, group, )) ### sortItem = labelStockMenuItem( _("Sort Events"), gtk.STOCK_SORT_ASCENDING, self.groupSortFromMenu, path, ) menu.add(sortItem) sortItem.set_sensitive( not group.isReadOnly() and bool(group.idList) ) ### convertItem = labelStockMenuItem( _("Convert Calendar Type"), gtk.STOCK_CONVERT, self.groupConvertModeFromMenu, group, ) menu.add(convertItem) convertItem.set_sensitive( not group.isReadOnly() and bool(group.idList) ) ### for newGroupType in group.canConvertTo: menu.add(eventWriteMenuItem( _( "Convert to %s" ) % event_lib.classes.group.byName[newGroupType].desc, None, self.groupConvertTo, group, newGroupType, )) ### bulkItem = labelStockMenuItem( _("Bulk Edit Events"), gtk.STOCK_EDIT, self.groupBulkEditFromMenu, group, path, ) menu.add(bulkItem) bulkItem.set_sensitive( not group.isReadOnly() and bool(group.idList) ) ### for actionName, actionFuncName in group.actions: menu.add(eventWriteMenuItem( _(actionName), None, self.groupActionClicked, group, actionFuncName, )) elif len(obj_list) == 2: group, event = obj_list #print("right click on event", event.summary) if group.name != "trash": menu.add(eventWriteMenuItem( "Edit", gtk.STOCK_EDIT, self.editEventFromMenu, path, )) #### menu.add(eventWriteImageMenuItem( "History", "history-24.png", self.historyOfEventFromMenu, path, )) #### moveToItem = eventWriteMenuItem( _("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:## FIXME # continue new_groupPath = self.trees.get_path(self.groupIterById[new_group.id]) if event.name in new_group.acceptsEventTypes: new_groupItem = ImageMenuItem() new_groupItem.set_label(new_group.title) ## image = gtk.Image() image.set_from_pixbuf(newColorCheckPixbuf(new_group.color, 20, True)) new_groupItem.set_image(image) ## new_groupItem.connect( "activate", self.moveEventToPathFromMenu, path, new_groupPath, ) ## moveToMenu.add(new_groupItem) moveToItem.set_submenu(moveToMenu) menu.add(moveToItem) #### menu.add(gtk.SeparatorMenuItem()) #### menu.add(eventWriteMenuItem( "Cut", gtk.STOCK_CUT, self.cutEvent, path, )) menu.add(eventWriteMenuItem( "Copy", gtk.STOCK_COPY, self.copyEvent, path, )) ## if group.name == "trash": menu.add(gtk.SeparatorMenuItem()) menu.add(eventWriteMenuItem( "Delete", gtk.STOCK_DELETE, self.deleteEventFromTrash, path, )) else: pasteItem = eventWriteMenuItem( "Paste", gtk.STOCK_PASTE, self.pasteEventFromMenu, path, ) menu.add(pasteItem) pasteItem.set_sensitive(self.canPasteToGroup(group)) ## menu.add(gtk.SeparatorMenuItem()) menu.add(labelImageMenuItem( _("Move to %s") % ui.eventTrash.title, ui.eventTrash.icon, self.moveEventToTrashFromMenu, path, )) else: return menu.show_all() return menu
def getGroupPixbuf(group): return newColorCheckPixbuf( group.color, 20, group.enable, )
def genRightClickMenu(self, path): ## how about multi-selection? FIXME ## and Select _All menu item obj_list = self.getObjsByPath(path) #print(len(obj_list)) menu = gtk.Menu() if len(obj_list)==1: group = obj_list[0] if group.name == 'trash': #print('right click on trash', group.title) menu.add(eventWriteMenuItem( 'Edit', gtk.STOCK_EDIT, self.editTrash, )) menu.add(eventWriteMenuItem( 'Empty Trash', gtk.STOCK_CLEAR, self.emptyTrash, )) #menu.add(gtk.SeparatorMenuItem()) #menu.add(eventWriteMenuItem( # 'Add New Group', # gtk.STOCK_NEW, # self.addGroupBeforeSelection, #))## FIXME else: #print('right click on group', group.title) menu.add(eventWriteMenuItem( 'Edit', gtk.STOCK_EDIT, self.editGroupFromMenu, path, )) eventTypes = group.acceptsEventTypes if eventTypes is None: eventTypes = event_lib.classes.event.names if len(eventTypes) > 3: menu.add(eventWriteMenuItem( _('Add Event'), gtk.STOCK_ADD, self.addGenericEventToGroupFromMenu, path, group, )) else: for eventType in eventTypes: #if eventType == 'custom':## FIXME # desc = _('Add ') + _('Event') #else: label = _('Add ') + event_lib.classes.event.byName[eventType].desc menu.add(eventWriteMenuItem( label, gtk.STOCK_ADD, self.addEventToGroupFromMenu, path, group, eventType, label, )) pasteItem = eventWriteMenuItem( 'Paste Event', gtk.STOCK_PASTE, self.pasteEventFromMenu, path, ) menu.add(pasteItem) pasteItem.set_sensitive(self.canPasteToGroup(group)) ## if group.remoteIds: aid, remoteGid = group.remoteIds try: account = ui.eventAccounts[aid] except KeyError: myRaise() else: if account.enable: menu.add(gtk.SeparatorMenuItem()) menu.add(eventWriteMenuItem( 'Synchronize', gtk.STOCK_CONNECT,## or gtk.STOCK_REFRESH FIXME self.syncGroupFromMenu, path, account, )) #else:## FIXME ## menu.add(gtk.SeparatorMenuItem()) #menu.add(eventWriteMenuItem( # 'Add New Group', # gtk.STOCK_NEW, # self.addGroupBeforeGroup, # path, #))## FIXME menu.add(eventWriteMenuItem( 'Duplicate', gtk.STOCK_COPY, self.duplicateGroupFromMenu, path, )) ### dupAllItem = labelStockMenuItem( 'Duplicate with All Events', gtk.STOCK_COPY, self.duplicateGroupWithEventsFromMenu, path, ) menu.add(dupAllItem) dupAllItem.set_sensitive(not event_lib.readOnly and bool(group.idList)) ### menu.add(gtk.SeparatorMenuItem()) menu.add(eventWriteMenuItem( 'Delete Group', gtk.STOCK_DELETE, self.deleteGroupFromMenu, path, )) menu.add(gtk.SeparatorMenuItem()) ## #menu.add(eventWriteMenuItem( # 'Move Up', # gtk.STOCK_GO_UP, # self.moveUpFromMenu, # path, #)) #menu.add(eventWriteMenuItem( # 'Move Down', # gtk.STOCK_GO_DOWN, # self.moveDownFromMenu, # path, #)) ## menu.add(labelStockMenuItem( _('Export'), gtk.STOCK_CONVERT, self.groupExportFromMenu, group, )) ### sortItem = labelStockMenuItem( _('Sort Events'), gtk.STOCK_SORT_ASCENDING, self.groupSortFromMenu, path, ) menu.add(sortItem) sortItem.set_sensitive(not event_lib.readOnly and bool(group.idList)) ### convertItem = labelStockMenuItem( _('Convert Calendar Type'), gtk.STOCK_CONVERT, self.groupConvertModeFromMenu, group, ) menu.add(convertItem) convertItem.set_sensitive(not event_lib.readOnly and bool(group.idList)) ### for newGroupType in group.canConvertTo: menu.add(eventWriteMenuItem( _('Convert to %s')%event_lib.classes.group.byName[newGroupType].desc, None, self.groupConvertTo, group, newGroupType, )) ### bulkItem = labelStockMenuItem( _('Bulk Edit Events'), gtk.STOCK_EDIT, self.groupBulkEditFromMenu, group, path, ) menu.add(bulkItem) bulkItem.set_sensitive(not event_lib.readOnly and bool(group.idList)) ### for actionName, actionFuncName in group.actions: menu.add(eventWriteMenuItem( _(actionName), None, self.groupActionClicked, group, actionFuncName, )) elif len(obj_list) == 2: group, event = obj_list #print('right click on event', event.summary) if group.name != 'trash': menu.add(eventWriteMenuItem( 'Edit', gtk.STOCK_EDIT, self.editEventFromMenu, path, )) #### moveToItem = eventWriteMenuItem( _('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:## FIXME # continue new_groupPath = self.trees.get_path(self.groupIterById[new_group.id]) if event.name in new_group.acceptsEventTypes: new_groupItem = ImageMenuItem() new_groupItem.set_label(new_group.title) ## image = gtk.Image() image.set_from_pixbuf(newColorCheckPixbuf(new_group.color, 20, True)) new_groupItem.set_image(image) ## new_groupItem.connect( 'activate', self.moveEventToPathFromMenu, path, new_groupPath, ) ## moveToMenu.add(new_groupItem) moveToItem.set_submenu(moveToMenu) menu.add(moveToItem) #### menu.add(gtk.SeparatorMenuItem()) #### menu.add(eventWriteMenuItem( 'Cut', gtk.STOCK_CUT, self.cutEvent, path, )) menu.add(eventWriteMenuItem( 'Copy', gtk.STOCK_COPY, self.copyEvent, path, )) ## if group.name == 'trash': menu.add(gtk.SeparatorMenuItem()) menu.add(eventWriteMenuItem( 'Delete', gtk.STOCK_DELETE, self.deleteEventFromTrash, path, )) else: pasteItem = eventWriteMenuItem( 'Paste', gtk.STOCK_PASTE, self.pasteEventFromMenu, path, ) menu.add(pasteItem) pasteItem.set_sensitive(self.canPasteToGroup(group)) ## menu.add(gtk.SeparatorMenuItem()) menu.add(labelImageMenuItem( _('Move to %s')%ui.eventTrash.title, ui.eventTrash.icon, self.moveEventToTrashFromMenu, path, )) else: return menu.show_all() return menu