def _show_filters(self, UI_filters_action): """ Initialized filter menu and selected default action or previous action :param UI_filters_action: previous selected filter """ filters_menu = QtGui.QMenu() filters_group = QtGui.QActionGroup(self) project_filter = QtGui.QAction('Current Project Tasks', filters_menu, checkable=True) project_filter.setData([['project', 'is', '{context.project}']]) filters_group.addAction(project_filter) filters_menu.addAction(project_filter) all_filter = QtGui.QAction('All Tasks', filters_menu, checkable=True) all_filter.setData([]) filters_group.addAction(all_filter) filters_menu.addAction(all_filter) facility_filter = QtGui.QAction('Facility Tasks', filters_menu, checkable=True) facility_filter.setData([['project.Project.name', 'is', 'Facility']]) filters_group.addAction(facility_filter) filters_menu.addAction(facility_filter) if UI_filters_action: for filter_action in filters_menu.findChildren(QtGui.QAction): if filter_action.text() == UI_filters_action.text(): filter_action.setChecked(True) else: project_filter.setChecked(True) self._ui.filter_btn.setMenu(filters_menu) filters_group.triggered.connect(self._on_filter_changed)
def _setup_version_sort_by_menu(self): """ Sets up the sort-by menu in the Versions tab. """ self._version_sort_menu = ShotgunMenu(self) self._version_sort_menu.setObjectName("version_sort_menu") ascending = QtGui.QAction("Ascending", self) descending = QtGui.QAction("Descending", self) ascending.setCheckable(True) descending.setCheckable(True) descending.setChecked(True) self._version_sort_menu_directions = QtGui.QActionGroup(self) self._version_sort_menu_fields = QtGui.QActionGroup(self) self._version_sort_menu_directions.setExclusive(True) self._version_sort_menu_fields.setExclusive(True) self._version_sort_menu_directions.addAction(ascending) self._version_sort_menu_directions.addAction(descending) self._version_sort_menu.add_group([ascending, descending], title="Direction") field_actions = [] for field_name in self._version_list_sort_by_fields: display_name = shotgun_globals.get_field_display_name( "Version", field_name, ) action = QtGui.QAction(display_name, self) # We store the database field name on the action, but # display the "pretty" name for users. action.setData(field_name) action.setCheckable(True) action.setChecked((field_name == "id")) self._version_sort_menu_fields.addAction(action) field_actions.append(action) self._version_sort_menu.add_group(field_actions, title="By Field") self._version_sort_menu_directions.triggered.connect( self._toggle_sort_order) self._version_sort_menu_fields.triggered.connect( self._sort_version_list) self.ui.version_sort_button.setMenu(self._version_sort_menu)
def mousePressEvent (self, event ): if event.button() == QtCore.Qt.LeftButton: if QtGui.QApplication.keyboardModifiers() == QtCore.Qt.ShiftModifier : print "add to selection", self.notification elif QtGui.QApplication.keyboardModifiers() == QtCore.Qt.ControlModifier : print "next" self.myfinished() else : print "select", self.notification if event.button() == QtCore.Qt.RightButton: globalPos = self.mapToGlobal(event.pos()); menu = QtGui.QMenu() ag = QtGui.QActionGroup(menu, exclusive=True) docAction = QtGui.QAction("Show news", menu , triggered=lambda: self.radioButtonClicked(0)) docAction.setCheckable( True ) if self.radioChecked == 0 : docAction.setChecked( True ) a = ag.addAction(docAction) menu.addAction(a) notiAction = QtGui.QAction("Show notification", menu , triggered=lambda: self.radioButtonClicked(1)) notiAction.setCheckable( True ) if self.radioChecked == 1 : notiAction.setChecked( True ) a = ag.addAction(notiAction) menu.addAction(a) muteAction = QtGui.QAction("Mute", menu , triggered = lambda: self.radioButtonClicked(2) ) muteAction.setCheckable( True ) if self.radioChecked == 2 : muteAction.setChecked( True ) a = ag.addAction(muteAction) menu.addAction(a) """ notificationMenu = menu.addAction(QtGui.QIcon(getRessources("notification.png")),"Notify somebody", self.writeNotification ) menu.addAction(notificationMenu) """ #menu.addAction( QtGui.QAction("Remove", menu) ) #menu.addAction( QtGui.QAction("Answer", menu) ) #menu.addAction( QtGui.QAction("Status", menu) ) self.animate.pause() menu.exec_(globalPos) if self.notificationList : print "resume !" self.animate.resume() else : print self.animate.state() self.menu = menu
def add_group(self, items, title=None, separator=True, exclusive=False): """ Adds a group of items to the menu. The list of items can include :class:`~PySide.QtGui.QAction` or :class:`~PySide.QtGui.QMenu` instances. If a ``title`` is supplied, a non-clickable label will be added with the supplied text at the top of the list of items in the menu. By default, a separator will be added above the group unless ``False`` is supplied for the optional ``separator`` argument. A separator will not be included if the group is added to an empty menu. A list of all actions, including separator, label, and menu actions, in the order added, will be returned. :param list items: A list of actions and/or menus to add to this menu. :param str title: Optional text to use in a label at the top of the group. :param bool separator: Add a separator if ``True`` (default), don't add if ``False``. :param bool exclusive: If exclusive is set to ``True``, the added items will be an exclusive group. If the items are checkable, only one will be checkable at any given time. The default is ``False``. :returns: A list of added :class:`~PySide.QtGui.QAction` objects :rtype: :obj:`list` """ action_group = QtGui.QActionGroup(self) action_group.setExclusive(exclusive) added_actions = [] if not self.isEmpty() and separator: added_actions.append(self.addSeparator()) if title: added_actions.append(self.add_label(title)) for item in items: if isinstance(item, QtGui.QMenu): added_actions.append(self.addMenu(item)) else: self.addAction(item) added_actions.append(item) action_group.addAction(item) return added_actions
def _show_filters(self, UI_filters_action): """ Initialized filter menu and selected default action or previous action :param UI_filters_action: previous selected filter """ filters_menu = QtGui.QMenu() filters_group = QtGui.QActionGroup(self) project_filter = QtGui.QAction('Current Project Tasks', filters_menu, checkable=True) project_filter.setData([['project', 'is', '{context.project}']]) filters_group.addAction(project_filter) filters_menu.addAction(project_filter) #all_filter = QtGui.QAction('All Tasks', filters_menu, # checkable=True) #all_filter.setData([]) #filters_group.addAction(all_filter) #filters_menu.addAction(all_filter) #facility_filter = QtGui.QAction('Facility Tasks', filters_menu, # checkable=True) #facility_filter.setData([['project.Project.name', 'is', 'Facility']]) #filters_group.addAction(facility_filter) #filters_menu.addAction(facility_filter) self._app = sgtk.platform.current_bundle() sg = self._app.context.tank.shotgun project_list = sg.find("Project", [ ['name', 'not_contains', '_'], ['sg_status', 'is', 'Active'], ['id', 'is_not', self._app.context.project['id']], ], ['name']) for project_ent in project_list: temp_filter = QtGui.QAction(project_ent['name'], filters_menu, checkable=True) temp_filter.setData([['project', 'is', project_ent]]) filters_group.addAction(temp_filter) filters_menu.addAction(temp_filter) if UI_filters_action: for filter_action in filters_menu.findChildren(QtGui.QAction): if filter_action.text() == UI_filters_action.text(): filter_action.setChecked(True) else: project_filter.setChecked(True) self._ui.filter_btn.setMenu(filters_menu) filters_group.triggered.connect(self._on_filter_changed)