diff --git a/res/ui/transactions_tab.ui b/res/ui/transactions_tab.ui index d61b34cdd48b1ff9f6b34832899252ed1a157ab7..c610144a4d775e588be3924997a0088f029d1b75 100644 --- a/res/ui/transactions_tab.ui +++ b/res/ui/transactions_tab.ui @@ -6,8 +6,8 @@ <rect> <x>0</x> <y>0</y> - <width>400</width> - <height>300</height> + <width>481</width> + <height>456</height> </rect> </property> <property name="windowTitle"> @@ -43,6 +43,31 @@ </item> </layout> </item> + <item> + <layout class="QHBoxLayout" name="horizontalLayout"> + <item> + <widget class="QLabel" name="label_balance"> + <property name="text"> + <string>Balance:</string> + </property> + </widget> + </item> + <item> + <widget class="QLabel" name="label_payment"> + <property name="text"> + <string>Payment:</string> + </property> + </widget> + </item> + <item> + <widget class="QLabel" name="label_deposit"> + <property name="text"> + <string>Deposit:</string> + </property> + </widget> + </item> + </layout> + </item> <item> <widget class="QTableView" name="table_history"> <property name="contextMenuPolicy"> diff --git a/src/cutecoin/core/account.py b/src/cutecoin/core/account.py index de8f903ac8a5afe7bc3ce09ea7e4b8b4786e2e8f..dd87965787a959291bd3f8c54a3708dd841f57c0 100644 --- a/src/cutecoin/core/account.py +++ b/src/cutecoin/core/account.py @@ -259,8 +259,7 @@ class Account(QObject): ''' sent = [] for w in self.wallets: - for transfer in w.transfers(community): - sent.append(transfer) + sent.extend(w.transfers(community)) return sent def amount(self, community): diff --git a/src/cutecoin/gui/currency_tab.py b/src/cutecoin/gui/currency_tab.py index f162c2ce92ff48471371474313da99273612fdc5..e5d633154b221185c169d09b3629307196b3ba15 100644 --- a/src/cutecoin/gui/currency_tab.py +++ b/src/cutecoin/gui/currency_tab.py @@ -173,6 +173,7 @@ class CurrencyTabWidget(QWidget, Ui_CurrencyTabWidget): QModelIndex(), QModelIndex(), []) + self.tab_history.refresh_balance() if self.tab_wallets: self.tab_wallets.refresh() diff --git a/src/cutecoin/gui/transactions_tab.py b/src/cutecoin/gui/transactions_tab.py index 43e61eec393520f446feb37150603e4fb5113f59..46324b5fa6dbf598e56297d6b9b8bc75b44be67e 100644 --- a/src/cutecoin/gui/transactions_tab.py +++ b/src/cutecoin/gui/transactions_tab.py @@ -1,6 +1,6 @@ from PyQt5.QtWidgets import QWidget, QAbstractItemView, QHeaderView, QDialog, \ QMenu, QAction, QApplication, QMessageBox -from PyQt5.QtCore import Qt, QDateTime, QModelIndex +from PyQt5.QtCore import Qt, QDateTime, QModelIndex, QLocale from PyQt5.QtGui import QCursor from ..gen_resources.transactions_tab_uic import Ui_transactionsTabWidget from ..models.txhistory import HistoryTableModel, TxFilterProxyModel @@ -62,6 +62,40 @@ class TransactionsTabWidget(QWidget, Ui_transactionsTabWidget): self.table_history.setSortingEnabled(True) self.table_history.horizontalHeader().setSectionResizeMode(QHeaderView.ResizeToContents) + self.refresh_balance() + + def refresh_balance(self): + proxy = self.table_history.model() + balance = proxy.deposits - proxy.payments + if isinstance(proxy.deposits, int): + localized_deposits = QLocale().toString( + self.app.current_account.units_to_ref(proxy.deposits, self.community)) + localized_payments = QLocale().toString( + self.app.current_account.units_to_ref(proxy.payments, self.community)) + localized_balance = QLocale().toString( + self.app.current_account.units_to_diff_ref(balance, self.community)) + + else: + localized_deposits = QLocale().toString( + self.app.current_account.units_to_ref(proxy.deposits, self.community), 'f', 2) + localized_payments = QLocale().toString( + self.app.current_account.units_to_ref(proxy.payments, self.community), 'f', 2) + localized_balance = QLocale().toString( + self.app.current_account.units_to_diff_ref(balance, self.community), 'f', 2) + + self.label_deposit.setText("Deposits: {:} {:}".format( + localized_deposits, + self.app.current_account.ref_name(self.community.short_currency) + )) + self.label_payment.setText("Payments: {:} {:}".format( + localized_payments, + self.app.current_account.ref_name(self.community.short_currency) + )) + self.label_balance.setText("Balance: {:} {:}".format( + localized_balance, + self.app.current_account.ref_name(self.community.short_currency) + )) + def history_context_menu(self, point): index = self.table_history.indexAt(point) model = self.table_history.model() diff --git a/src/cutecoin/main.py b/src/cutecoin/main.py index d92b85ca2d26863bb85399373fc89c685e5916c0..93b00b457cce58fcf944793d88f19c7d3eab58da 100755 --- a/src/cutecoin/main.py +++ b/src/cutecoin/main.py @@ -31,6 +31,6 @@ if __name__ == '__main__': app = Application(sys.argv) QLocale.setDefault(QLocale("en_GB")) window = MainWindow(app) - window.show() + window.showMaximized() sys.exit(cutecoin.exec_()) pass diff --git a/src/cutecoin/models/txhistory.py b/src/cutecoin/models/txhistory.py index 97dc590eb1b5c740ea52431652a6c0c1b92debc1..cdb28b918a64660c1760366cbca61751cc6534a9 100644 --- a/src/cutecoin/models/txhistory.py +++ b/src/cutecoin/models/txhistory.py @@ -20,6 +20,9 @@ class TxFilterProxyModel(QSortFilterProxyModel): self.account = None self.ts_from = ts_from self.ts_to = ts_to + #Â total by column + self.payments = 0 + self.deposits = 0 def set_period(self, ts_from, ts_to): """ @@ -31,11 +34,27 @@ class TxFilterProxyModel(QSortFilterProxyModel): def filterAcceptsRow(self, sourceRow, sourceParent): def in_period(date_ts): - return (date_ts in range(self.ts_from, self.ts_to)) + return date_ts in range(self.ts_from, self.ts_to) date_col = self.sourceModel().column_types.index('date') source_index = self.sourceModel().index(sourceRow, date_col) date = self.sourceModel().data(source_index, Qt.DisplayRole) + if in_period(date): + # calculate sum total payments + payment = self.sourceModel().data( + self.sourceModel().index(sourceRow, self.sourceModel().column_types.index('payment')), + Qt.DisplayRole + ) + if payment: + self.payments += int(payment) + # calculate sum total deposits + deposit = self.sourceModel().data( + self.sourceModel().index(sourceRow, self.sourceModel().column_types.index('deposit')), + Qt.DisplayRole + ) + if deposit: + self.deposits += int(deposit) + return in_period(date) def columnCount(self, parent):