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)
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)))