Skip to content

Commit 5d6ecc3

Browse files
committed
key creation time connected.
1 parent 9698481 commit 5d6ecc3

File tree

2 files changed

+21
-5
lines changed

2 files changed

+21
-5
lines changed

src/qt/pivx/receivewidget.cpp

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
#include <QFile>
2121
#include <QClipboard>
2222
#include <QColor>
23+
#include <QDateTime>
2324

2425
#include <iostream>
2526

@@ -148,13 +149,16 @@ ReceiveWidget::ReceiveWidget(PIVXGUI* _window, QWidget *parent) :
148149
connect(ui->pushButtonLabel, SIGNAL(clicked()), this, SLOT(onLabelClicked()));
149150
connect(ui->pushButtonCopy, SIGNAL(clicked()), this, SLOT(onCopyClicked()));
150151
connect(ui->pushButtonNewAddress, SIGNAL(clicked()), this, SLOT(onNewAddressClicked()));
152+
connect(ui->listViewAddress, SIGNAL(clicked(QModelIndex)), this, SLOT(handleAddressClicked(QModelIndex)));
151153
}
152154

153155
void ReceiveWidget::setWalletModel(WalletModel* model){
154156
this->walletModel = model;
155157
if(walletModel) {
156158
this->addressTableModel = model->getAddressTableModel();
157-
ui->listViewAddress->setModel(this->addressTableModel);
159+
this->filter = new AddressFilterProxyModel(AddressTableModel::Receive, this);
160+
this->filter->setSourceModel(addressTableModel);
161+
ui->listViewAddress->setModel(this->filter);
158162
ui->listViewAddress->setModelColumn(AddressTableModel::Address);
159163

160164
if(!info) info = new SendCoinsRecipient();
@@ -165,9 +169,13 @@ void ReceiveWidget::setWalletModel(WalletModel* model){
165169
}
166170
}
167171

168-
void ReceiveWidget::refreshView(){
169-
QString latestAddress = this->addressTableModel->getLastUnusedAddress();
170-
ui->labelAddress->setText(!latestAddress.isEmpty() ? latestAddress : tr("No address"));
172+
void ReceiveWidget::refreshView(QString refreshAddress){
173+
QString latestAddress = (refreshAddress.isEmpty()) ? this->addressTableModel->getLastUnusedAddress() : refreshAddress;
174+
if (latestAddress.isEmpty()) // new default address
175+
latestAddress = QString::fromStdString(walletModel->getNewAddress("Default").ToString());
176+
ui->labelAddress->setText(latestAddress);
177+
int64_t time = walletModel->getKeyCreationTime(CBitcoinAddress(latestAddress.toStdString()));
178+
ui->labelDate->setText(GUIUtil::dateTimeStr(QDateTime::fromTime_t(static_cast<uint>(time))));
171179
updateQr(latestAddress);
172180
updateLabel();
173181
}
@@ -203,6 +211,11 @@ void ReceiveWidget::updateQr(QString address){
203211
}
204212
}
205213

214+
void ReceiveWidget::handleAddressClicked(const QModelIndex &index){
215+
QModelIndex rIndex = filter->mapToSource(index);
216+
refreshView(rIndex.data(Qt::DisplayRole).toString());
217+
}
218+
206219
void ReceiveWidget::onLabelClicked(){
207220
if(walletModel) {
208221
window->showHide(true);

src/qt/pivx/receivewidget.h

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33

44
#include "addresstablemodel.h"
55
#include "qt/pivx/furabstractlistitemdelegate.h"
6+
#include "qt/pivx/AddressFilterProxyModel.h"
67

78
#include <QSpacerItem>
89
#include <QWidget>
@@ -39,14 +40,16 @@ private slots:
3940
void changeTheme(bool isLightTheme, QString &theme);
4041
void onLabelClicked();
4142
void onCopyClicked();
42-
void refreshView();
43+
void refreshView(QString refreshAddress = QString());
44+
void handleAddressClicked(const QModelIndex &index);
4345
private:
4446
Ui::ReceiveWidget *ui;
4547
PIVXGUI* window;
4648

4749
FurAbstractListItemDelegate *delegate;
4850
WalletModel *walletModel = nullptr;
4951
AddressTableModel* addressTableModel = nullptr;
52+
AddressFilterProxyModel *filter = nullptr;
5053

5154
QSpacerItem *spacer = nullptr;
5255

0 commit comments

Comments
 (0)