コード例 #1
0
    def _show_menu(self, colleague, pos):
        if not self._is_owner and not colleague.is_you or colleague.is_deleting:
            return

        menu = QMenu(self._ui.colleagues_list)
        menu.setStyleSheet("background-color: #EFEFF4; ")
        if colleague.is_you:
            if colleague.is_owner:
                action = menu.addAction(tr("Quit collaboration"))
                action.triggered.connect(self._on_quit_collaboration)
            else:
                action = menu.addAction(tr("Leave collaboration"))
                action.triggered.connect(self._on_leave_collaboration)
        else:
            rights_group = QActionGroup(menu)
            rights_group.setExclusive(True)

            menu.addSection(tr("Access rights"))
            action = menu.addAction(tr("Can view"))
            action.setCheckable(True)
            rights_action = rights_group.addAction(action)
            rights_action.setData(False)
            rights_action.setChecked(not colleague.can_edit)
            action = menu.addAction(tr("Can edit"))
            action.setCheckable(True)
            rights_action = rights_group.addAction(action)
            rights_action.setChecked(colleague.can_edit)
            rights_action.setData(True)
            rights_group.triggered.connect(
                lambda a: self._on_grant_edit(colleague, a))
            menu.addSeparator()

            action = menu.addAction(tr("Remove user"))
            action.triggered.connect(lambda: self._on_remove_user(colleague))

        pos_to_show = QPoint(pos.x(), pos.y() + 10)
        menu.exec_(pos_to_show)
コード例 #2
0
 def leftClickLayerMenu(self, x, y, widget):
     old_layer_name = ""
     if isinstance(widget, QListWidget):
         item = widget.itemAt(QPoint(x, y))
         old_layer_name = self.getLayerNameFromItem(item)
     elif isinstance(widget, QTabBar):
         index = self._layer_tabs.tabAt(QPoint(x, y))
         if index > -1:
             old_layer_name = self.getLayerName(index)
     layer_key_name = self.getLayerKeyName(old_layer_name)
     menu = QMenu(self._parent)
     rename_action = QAction("Rename Layer", self._parent)
     rename_action.triggered.connect(self._changeLayerName(old_layer_name))
     change_color_action = QAction("Change Tab Color", self._parent)
     change_color_action.triggered.connect(
         self._changeTabColor(layer_key_name))
     reset_color_action = QAction("Reset Tab Color", self._parent)
     reset_color_action.triggered.connect(
         self._resetTabColor(layer_key_name))
     menu.addSection("Layer Options")
     menu.addAction(rename_action)
     menu.addAction(change_color_action)
     menu.addAction(reset_color_action)
     menu.exec_(widget.mapToGlobal(QPoint(x, y)))