diff --git a/src/cutecoin/gui/community_tab.py b/src/cutecoin/gui/community_tab.py index 909fd84fe22ac8d7513a7063bc8577d8b9000350..13aa6875aabe63592b330ebf6b4348ab64dcb568 100644 --- a/src/cutecoin/gui/community_tab.py +++ b/src/cutecoin/gui/community_tab.py @@ -7,7 +7,8 @@ Created on 2 févr. 2014 import logging from PyQt5.QtCore import Qt from PyQt5.QtGui import QIcon -from PyQt5.QtWidgets import QWidget, QMessageBox, QAction, QMenu, QDialog, QLineEdit +from PyQt5.QtWidgets import QWidget, QMessageBox, QAction, QMenu, QDialog, \ + QAbstractItemView from ..models.members import MembersFilterProxyModel, MembersTableModel from ..gen_resources.community_tab_uic import Ui_CommunityTabWidget from .add_contact import AddContactDialog @@ -15,6 +16,7 @@ from .wot_tab import WotTabWidget from .transfer import TransferMoneyDialog from .password_asker import PasswordAskerDialog from .certification import CertificationDialog +from ..core.person import Person from ..tools.exceptions import PersonNotFoundError, NoPeerAvailable @@ -37,6 +39,8 @@ class CommunityTabWidget(QWidget, Ui_CommunityTabWidget): proxy_members = MembersFilterProxyModel() proxy_members.setSourceModel(members_model) self.table_community_members.setModel(proxy_members) + self.table_community_members.setSelectionBehavior(QAbstractItemView.SelectRows) + self.table_community_members.customContextMenuRequested.connect(self.member_context_menu) if self.account.member_of(self.community): self.button_membership.setText("Renew membership") @@ -52,9 +56,13 @@ class CommunityTabWidget(QWidget, Ui_CommunityTabWidget): def member_context_menu(self, point): index = self.table_community_members.indexAt(point) model = self.table_community_members.model() - if index.row() < model.rowCount(None): - member = model.members[index.row()] - logging.debug(member) + if index.row() < model.rowCount(): + source_index = model.mapToSource(index) + pubkey_col = model.sourceModel().columns.index('Pubkey') + pubkey_index = model.sourceModel().index(source_index.row(), + pubkey_col) + pubkey = model.sourceModel().data(pubkey_index, Qt.DisplayRole) + member = Person.lookup(pubkey, self.community) menu = QMenu(model.data(index, Qt.DisplayRole), self) add_contact = QAction("Add as contact", self) diff --git a/src/cutecoin/gui/currency_tab.py b/src/cutecoin/gui/currency_tab.py index 23adfab1562afe77665b444c8a1d8505a3a891b1..cb69632a3e9f5e581154f99e08805858fa640f68 100644 --- a/src/cutecoin/gui/currency_tab.py +++ b/src/cutecoin/gui/currency_tab.py @@ -10,7 +10,7 @@ import requests from ucoinpy.api import bma from PyQt5.QtWidgets import QWidget, QMenu, QAction, QApplication, \ - QMessageBox, QDialog + QMessageBox, QDialog, QAbstractItemView from PyQt5.QtCore import QModelIndex, Qt, pyqtSlot, QObject, \ QThread, pyqtSignal, QDateTime from PyQt5.QtGui import QIcon @@ -119,6 +119,7 @@ class CurrencyTabWidget(QWidget, Ui_CurrencyTabWidget): proxy.setSortRole(Qt.DisplayRole) self.table_history.setModel(proxy) + self.table_history.setSelectionBehavior(QAbstractItemView.SelectRows) self.table_history.setSortingEnabled(True) self.tab_community = CommunityTabWidget(self.app.current_account, @@ -202,7 +203,7 @@ class CurrencyTabWidget(QWidget, Ui_CurrencyTabWidget): index = self.table_history.indexAt(point) model = self.table_history.model() if index.row() < model.rowCount(QModelIndex()): - menu = QMenu(model.data(index, Qt.DisplayRole), self) + menu = QMenu("Actions", self) source_index = model.mapToSource(index) state_col = model.sourceModel().columns.index('State') state_index = model.sourceModel().index(source_index.row(),