From 3cdb69902fc38a2c41f76fac3f972484cf6263ce Mon Sep 17 00:00:00 2001 From: Inso <insomniak.fr@gmail.com> Date: Wed, 4 Feb 2015 08:44:45 +0100 Subject: [PATCH] Better proxying --- src/cutecoin/gui/currency_tab.py | 4 +-- src/cutecoin/models/txhistory.py | 54 ++++++++++++++++++-------------- 2 files changed, 33 insertions(+), 25 deletions(-) diff --git a/src/cutecoin/gui/currency_tab.py b/src/cutecoin/gui/currency_tab.py index 5fa02a66..0f7e70e7 100644 --- a/src/cutecoin/gui/currency_tab.py +++ b/src/cutecoin/gui/currency_tab.py @@ -199,10 +199,10 @@ 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) + source_index = model.mapToSource(index) if index.column() == model.sourceModel().columns.index('UID/Public key'): - source_index = model.mapToSource(index) person = model.sourceModel().data(source_index, Qt.DisplayRole) - menu = QMenu(model.data(index, Qt.DisplayRole), self) copy_pubkey = QAction("Copy pubkey to clipboard", self) copy_pubkey.triggered.connect(self.copy_pubkey_to_clipboard) diff --git a/src/cutecoin/models/txhistory.py b/src/cutecoin/models/txhistory.py index d7065ff0..94eca650 100644 --- a/src/cutecoin/models/txhistory.py +++ b/src/cutecoin/models/txhistory.py @@ -29,14 +29,17 @@ class TxFilterProxyModel(QSortFilterProxyModel): self.ts_to = ts_to def filterAcceptsRow(self, sourceRow, sourceParent): - def in_period(date): - return (QDateTime(date).toTime_t() in range(self.ts_from, self.ts_to)) + def in_period(date_ts): + return (date_ts in range(self.ts_from, self.ts_to)) date_col = self.sourceModel().columns.index('Date') source_index = self.sourceModel().index(sourceRow, date_col) date = self.sourceModel().data(source_index, Qt.DisplayRole) return in_period(date) + def columnCount(self, parent): + return self.sourceModel().columnCount(None) - 1 + def lessThan(self, left, right): """ Sort table by given column number. @@ -48,6 +51,9 @@ class TxFilterProxyModel(QSortFilterProxyModel): def data(self, index, role): source_index = self.mapToSource(index) source_data = self.sourceModel().data(source_index, role) + state_col = self.sourceModel().columns.index('State') + state_index = self.sourceModel().index(source_index.row(), state_col) + state_data = self.sourceModel().data(state_index, Qt.DisplayRole) if role == Qt.DisplayRole: if source_index.column() == self.sourceModel().columns.index('UID/Public key'): if source_data.__class__ == Person: @@ -56,6 +62,23 @@ class TxFilterProxyModel(QSortFilterProxyModel): tx_person = "pub:{0}".format(source_data[:5]) source_data = tx_person return source_data + if source_index.column() == self.sourceModel().columns.index('Date'): + date = QDateTime.fromTime_t(source_data) + return date.date() + + if role == Qt.FontRole: + font = QFont() + if state_data == Transfer.AWAITING: + font.setItalic(True) + elif state_data == Transfer.REFUSED: + font.setItalic(True) + else: + font.setItalic(False) + return font + + if role == Qt.ForegroundRole: + if state_data == Transfer.REFUSED: + return QColor(Qt.red) return source_data @@ -72,7 +95,8 @@ class HistoryTableModel(QAbstractTableModel): super().__init__(parent) self.account = account self.community = community - self.columns = ('Date', 'UID/Public key', 'Payment', 'Deposit', 'Comment') + self.columns = ('Date', 'UID/Public key', 'Payment', + 'Deposit', 'Comment', 'State') @property def transfers(self): @@ -100,13 +124,12 @@ class HistoryTableModel(QAbstractTableModel): sender = pubkey date_ts = transfer.metadata['time'] - date = QDateTime.fromTime_t(date_ts) amount_ref = self.account.units_to_ref(amount, self.community) ref_name = self.account.ref_name(self.community.short_currency) - return (date.date(), sender, "", "{0:.2f} {1}".format(amount_ref, ref_name), - comment) + return (date_ts, sender, "", "{0:.2f} {1}".format(amount_ref, ref_name), + comment, transfer.state) def data_sent(self, transfer): amount = transfer.metadata['amount'] @@ -121,13 +144,12 @@ class HistoryTableModel(QAbstractTableModel): receiver = pubkey date_ts = transfer.metadata['time'] - date = QDateTime.fromTime_t(date_ts) amount_ref = self.account.units_to_ref(-amount, self.community) ref_name = self.account.ref_name(self.community.short_currency) - return (date.date(), receiver, "{0:.2f} {1}".format(amount_ref, ref_name), - "", comment) + return (date_ts, receiver, "{0:.2f} {1}".format(amount_ref, ref_name), + "", comment, transfer.state) def data(self, index, role): row = index.row() @@ -143,19 +165,5 @@ class HistoryTableModel(QAbstractTableModel): else: return self.data_sent(transfer)[col] - if role == Qt.FontRole: - font = QFont() - if transfer.state == Transfer.AWAITING: - font.setItalic(True) - elif transfer.state == Transfer.REFUSED: - font.setItalic(True) - else: - font.setItalic(False) - return font - - if role == Qt.ForegroundRole: - if transfer.state == Transfer.REFUSED: - return QColor(Qt.red) - def flags(self, index): return Qt.ItemIsSelectable | Qt.ItemIsEnabled -- GitLab