mirror of
https://github.com/LBRYFoundation/LBRY-Vault.git
synced 2025-09-12 13:39:52 +00:00
qt address dialog: HistoryModel needs reference to correct HistoryList
refresh() was hiding/showing the headers of the main HistoryList
This commit is contained in:
parent
a99b92f613
commit
0d755b86ab
3 changed files with 18 additions and 15 deletions
|
@ -89,6 +89,7 @@ class AddressDialog(WindowModalDialog):
|
||||||
vbox.addWidget(QLabel(_("History")))
|
vbox.addWidget(QLabel(_("History")))
|
||||||
addr_hist_model = AddressHistoryModel(self.parent, self.address)
|
addr_hist_model = AddressHistoryModel(self.parent, self.address)
|
||||||
self.hw = HistoryList(self.parent, addr_hist_model)
|
self.hw = HistoryList(self.parent, addr_hist_model)
|
||||||
|
addr_hist_model.view = self.hw
|
||||||
vbox.addWidget(self.hw)
|
vbox.addWidget(self.hw)
|
||||||
|
|
||||||
vbox.addLayout(Buttons(CloseButton(self)))
|
vbox.addLayout(Buttons(CloseButton(self)))
|
||||||
|
|
|
@ -76,6 +76,7 @@ class HistoryModel(QAbstractItemModel, PrintError):
|
||||||
def __init__(self, parent):
|
def __init__(self, parent):
|
||||||
super().__init__(parent)
|
super().__init__(parent)
|
||||||
self.parent = parent
|
self.parent = parent
|
||||||
|
self.view = None # type: HistoryList # set by caller! FIXME...
|
||||||
self.transactions = OrderedDictWithIndex()
|
self.transactions = OrderedDictWithIndex()
|
||||||
self.tx_status_cache = {} # type: Dict[str, Tuple[int, str]]
|
self.tx_status_cache = {} # type: Dict[str, Tuple[int, str]]
|
||||||
|
|
||||||
|
@ -121,7 +122,7 @@ class HistoryModel(QAbstractItemModel, PrintError):
|
||||||
return QVariant(d[col])
|
return QVariant(d[col])
|
||||||
if role not in (Qt.DisplayRole, Qt.EditRole):
|
if role not in (Qt.DisplayRole, Qt.EditRole):
|
||||||
if col == 0 and role == Qt.DecorationRole:
|
if col == 0 and role == Qt.DecorationRole:
|
||||||
return QVariant(self.parent.history_list.icon_cache.get(":icons/" + TX_ICONS[status]))
|
return QVariant(self.view.icon_cache.get(":icons/" + TX_ICONS[status]))
|
||||||
elif col == 0 and role == Qt.ToolTipRole:
|
elif col == 0 and role == Qt.ToolTipRole:
|
||||||
return QVariant(str(conf) + _(" confirmation" + ("s" if conf != 1 else "")))
|
return QVariant(str(conf) + _(" confirmation" + ("s" if conf != 1 else "")))
|
||||||
elif col > 2 and role == Qt.TextAlignmentRole:
|
elif col > 2 and role == Qt.TextAlignmentRole:
|
||||||
|
@ -130,7 +131,7 @@ class HistoryModel(QAbstractItemModel, PrintError):
|
||||||
monospace_font = QFont(MONOSPACE_FONT)
|
monospace_font = QFont(MONOSPACE_FONT)
|
||||||
return QVariant(monospace_font)
|
return QVariant(monospace_font)
|
||||||
elif col == 2 and role == Qt.DecorationRole and self.parent.wallet.invoices.paid.get(tx_hash):
|
elif col == 2 and role == Qt.DecorationRole and self.parent.wallet.invoices.paid.get(tx_hash):
|
||||||
return QVariant(self.parent.history_list.icon_cache.get(":icons/seal"))
|
return QVariant(self.view.icon_cache.get(":icons/seal"))
|
||||||
elif col in (2, 3) and role == Qt.ForegroundRole and tx_item['value'].value < 0:
|
elif col in (2, 3) and role == Qt.ForegroundRole and tx_item['value'].value < 0:
|
||||||
red_brush = QBrush(QColor("#BC1E1E"))
|
red_brush = QBrush(QColor("#BC1E1E"))
|
||||||
return QVariant(red_brush)
|
return QVariant(red_brush)
|
||||||
|
@ -181,7 +182,8 @@ class HistoryModel(QAbstractItemModel, PrintError):
|
||||||
def refresh(self, reason: str):
|
def refresh(self, reason: str):
|
||||||
self.print_error(f"refreshing... reason: {reason}")
|
self.print_error(f"refreshing... reason: {reason}")
|
||||||
assert self.parent.gui_thread == threading.current_thread(), 'must be called from GUI thread'
|
assert self.parent.gui_thread == threading.current_thread(), 'must be called from GUI thread'
|
||||||
selected = self.parent.history_list.selectionModel().currentIndex()
|
assert self.view, 'view not set'
|
||||||
|
selected = self.view.selectionModel().currentIndex()
|
||||||
selected_row = None
|
selected_row = None
|
||||||
if selected:
|
if selected:
|
||||||
selected_row = selected.row()
|
selected_row = selected.row()
|
||||||
|
@ -201,20 +203,20 @@ class HistoryModel(QAbstractItemModel, PrintError):
|
||||||
self.transactions[txid] = tx_item
|
self.transactions[txid] = tx_item
|
||||||
self.endInsertRows()
|
self.endInsertRows()
|
||||||
if selected_row:
|
if selected_row:
|
||||||
self.parent.history_list.selectionModel().select(self.createIndex(selected_row, 0), QItemSelectionModel.Rows | QItemSelectionModel.SelectCurrent)
|
self.view.selectionModel().select(self.createIndex(selected_row, 0), QItemSelectionModel.Rows | QItemSelectionModel.SelectCurrent)
|
||||||
f = self.parent.history_list.current_filter
|
f = self.view.current_filter
|
||||||
if f:
|
if f:
|
||||||
self.parent.history_list.filter(f)
|
self.view.filter(f)
|
||||||
# update summary
|
# update summary
|
||||||
self.summary = r['summary']
|
self.summary = r['summary']
|
||||||
if not self.parent.history_list.years and self.transactions:
|
if not self.view.years and self.transactions:
|
||||||
start_date = date.today()
|
start_date = date.today()
|
||||||
end_date = date.today()
|
end_date = date.today()
|
||||||
if len(self.transactions) > 0:
|
if len(self.transactions) > 0:
|
||||||
start_date = self.transactions.value_from_pos(0).get('date') or start_date
|
start_date = self.transactions.value_from_pos(0).get('date') or start_date
|
||||||
end_date = self.transactions.value_from_pos(len(self.transactions) - 1).get('date') or end_date
|
end_date = self.transactions.value_from_pos(len(self.transactions) - 1).get('date') or end_date
|
||||||
self.parent.history_list.years = [str(i) for i in range(start_date.year, end_date.year + 1)]
|
self.view.years = [str(i) for i in range(start_date.year, end_date.year + 1)]
|
||||||
self.parent.history_list.period_combo.insertItems(1, self.parent.history_list.years)
|
self.view.period_combo.insertItems(1, self.view.years)
|
||||||
# update tx_status_cache
|
# update tx_status_cache
|
||||||
self.tx_status_cache.clear()
|
self.tx_status_cache.clear()
|
||||||
for txid, tx_item in self.transactions.items():
|
for txid, tx_item in self.transactions.items():
|
||||||
|
@ -223,8 +225,8 @@ class HistoryModel(QAbstractItemModel, PrintError):
|
||||||
|
|
||||||
history = self.parent.fx.show_history()
|
history = self.parent.fx.show_history()
|
||||||
cap_gains = self.parent.fx.get_history_capital_gains_config()
|
cap_gains = self.parent.fx.get_history_capital_gains_config()
|
||||||
hide = self.parent.history_list.hideColumn
|
hide = self.view.hideColumn
|
||||||
show = self.parent.history_list.showColumn
|
show = self.view.showColumn
|
||||||
if history and cap_gains:
|
if history and cap_gains:
|
||||||
show(5)
|
show(5)
|
||||||
show(6)
|
show(6)
|
||||||
|
@ -276,9 +278,8 @@ class HistoryModel(QAbstractItemModel, PrintError):
|
||||||
fiat_cg_title = 'n/a fiat capital gains'
|
fiat_cg_title = 'n/a fiat capital gains'
|
||||||
if fx and fx.show_history():
|
if fx and fx.show_history():
|
||||||
fiat_title = '%s '%fx.ccy + _('Value')
|
fiat_title = '%s '%fx.ccy + _('Value')
|
||||||
if fx.get_history_capital_gains_config():
|
fiat_acq_title = '%s '%fx.ccy + _('Acquisition price')
|
||||||
fiat_acq_title = '%s '%fx.ccy + _('Acquisition price')
|
fiat_cg_title = '%s '%fx.ccy + _('Capital Gains')
|
||||||
fiat_cg_title = '%s '%fx.ccy + _('Capital Gains')
|
|
||||||
return {
|
return {
|
||||||
0: '',
|
0: '',
|
||||||
1: _('Date'),
|
1: _('Date'),
|
||||||
|
@ -292,7 +293,7 @@ class HistoryModel(QAbstractItemModel, PrintError):
|
||||||
|
|
||||||
def flags(self, idx):
|
def flags(self, idx):
|
||||||
extra_flags = Qt.NoItemFlags # type: Qt.ItemFlag
|
extra_flags = Qt.NoItemFlags # type: Qt.ItemFlag
|
||||||
if idx.column() in self.parent.history_list.editable_columns:
|
if idx.column() in self.view.editable_columns:
|
||||||
extra_flags |= Qt.ItemIsEditable
|
extra_flags |= Qt.ItemIsEditable
|
||||||
return super().flags(idx) | extra_flags
|
return super().flags(idx) | extra_flags
|
||||||
|
|
||||||
|
|
|
@ -812,6 +812,7 @@ class ElectrumWindow(QMainWindow, MessageBoxMixin, PrintError):
|
||||||
def create_history_tab(self):
|
def create_history_tab(self):
|
||||||
self.history_model = HistoryModel(self)
|
self.history_model = HistoryModel(self)
|
||||||
self.history_list = l = HistoryList(self, self.history_model)
|
self.history_list = l = HistoryList(self, self.history_model)
|
||||||
|
self.history_model.view = self.history_list
|
||||||
l.searchable_list = l
|
l.searchable_list = l
|
||||||
toolbar = l.create_toolbar(self.config)
|
toolbar = l.create_toolbar(self.config)
|
||||||
toolbar_shown = self.config.get('show_toolbar_history', False)
|
toolbar_shown = self.config.get('show_toolbar_history', False)
|
||||||
|
|
Loading…
Add table
Reference in a new issue