From fed3f95f4e488fcd2451d18bcee7d0ac2bc81885 Mon Sep 17 00:00:00 2001 From: Inso <insomniak.fr@gmail.com> Date: Mon, 10 Mar 2014 19:26:48 +0100 Subject: [PATCH] Delete node from community --- res/ui/communityConfigurationDialog.ui | 23 +++++++++++++++++++- src/cutecoin/gui/configureCommunityDialog.py | 16 +++++++++++++- 2 files changed, 37 insertions(+), 2 deletions(-) diff --git a/res/ui/communityConfigurationDialog.ui b/res/ui/communityConfigurationDialog.ui index 01a077de..2d023375 100644 --- a/res/ui/communityConfigurationDialog.ui +++ b/res/ui/communityConfigurationDialog.ui @@ -24,7 +24,11 @@ </property> <layout class="QVBoxLayout" name="verticalLayout_3"> <item> - <widget class="QTreeView" name="communityView"/> + <widget class="QTreeView" name="communityView"> + <property name="contextMenuPolicy"> + <enum>Qt::CustomContextMenu</enum> + </property> + </widget> </item> <item> <layout class="QHBoxLayout" name="horizontalLayout_3"> @@ -125,8 +129,25 @@ </hint> </hints> </connection> + <connection> + <sender>communityView</sender> + <signal>customContextMenuRequested(QPoint)</signal> + <receiver>CommunityConfigurationDialog</receiver> + <slot>showContextMenu(QPoint)</slot> + <hints> + <hint type="sourcelabel"> + <x>199</x> + <y>128</y> + </hint> + <hint type="destinationlabel"> + <x>199</x> + <y>149</y> + </hint> + </hints> + </connection> </connections> <slots> <slot>addNode()</slot> + <slot>showContextMenu(QPoint)</slot> </slots> </ui> diff --git a/src/cutecoin/gui/configureCommunityDialog.py b/src/cutecoin/gui/configureCommunityDialog.py index 1ca0b7a8..bd1f6cf1 100644 --- a/src/cutecoin/gui/configureCommunityDialog.py +++ b/src/cutecoin/gui/configureCommunityDialog.py @@ -4,7 +4,7 @@ Created on 8 mars 2014 @author: inso ''' from cutecoin.gen_resources.communityConfigurationDialog_uic import Ui_CommunityConfigurationDialog -from PyQt5.QtWidgets import QDialog, QErrorMessage +from PyQt5.QtWidgets import QDialog, QErrorMessage, QMenu from cutecoin.models.community.treeModel import CommunityTreeModel from cutecoin.models.node import TrustedNode from cutecoin.core.exceptions import NotMemberOfCommunityError @@ -52,6 +52,20 @@ class ConfigureCommunityDialog(QDialog, Ui_CommunityConfigurationDialog): self.community.addTrustedNode( TrustedNode(server, port )) self.communityView.setModel( CommunityTreeModel(self.community )) + def showContextMenu(self, point): + menu = QMenu() + action = menu.addAction("Delete", self.removeNode) + if self.community is not None: + if len(self.community.trustedNodes) == 1: + action.setEnabled(False) + menu.exec_(self.communityView.mapToGlobal(point)) + + def removeNode(self): + for index in self.communityView.selectedIndexes(): + self.community.trustedNodes.pop(index.row()) + + self.communityView.setModel( CommunityTreeModel(self.community )) + def accept(self): self.close() -- GitLab