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)
Esempio n. 2
0
    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)