mirror of
https://github.com/feather-wallet/feather.git
synced 2024-12-23 03:59:29 +00:00
Coins: add key image icons for view only wallets
This commit is contained in:
parent
ffa8c3e5bf
commit
ebde5a1cb7
7 changed files with 42 additions and 1 deletions
|
@ -33,6 +33,7 @@
|
|||
<file>assets/images/expired.png</file>
|
||||
<file>assets/images/expired_icon.png</file>
|
||||
<file>assets/images/eye1.png</file>
|
||||
<file>assets/images/eye_blind.png</file>
|
||||
<file>assets/images/feather.png</file>
|
||||
<file>assets/images/file.png</file>
|
||||
<file>assets/images/ghost.png</file>
|
||||
|
@ -44,6 +45,7 @@
|
|||
<file>assets/images/ledger_unpaired.png</file>
|
||||
<file>assets/images/lightning.png</file>
|
||||
<file>assets/images/lock.png</file>
|
||||
<file>assets/images/lock_icon.png</file>
|
||||
<file>assets/images/lock.svg</file>
|
||||
<file>assets/images/microphone.png</file>
|
||||
<file>assets/images/network.png</file>
|
||||
|
|
BIN
src/assets/images/eye_blind.png
Normal file
BIN
src/assets/images/eye_blind.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 4.8 KiB |
BIN
src/assets/images/lock_icon.png
Normal file
BIN
src/assets/images/lock_icon.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.3 KiB |
|
@ -7,6 +7,7 @@
|
|||
#include "utils/utils.h"
|
||||
#include "dialog/outputinfodialog.h"
|
||||
#include "dialog/outputsweepdialog.h"
|
||||
#include "mainwindow.h"
|
||||
|
||||
#include <QClipboard>
|
||||
#include <QDebug>
|
||||
|
@ -21,6 +22,7 @@ CoinsWidget::CoinsWidget(QWidget *parent)
|
|||
, m_copyMenu(new QMenu("Copy",this))
|
||||
{
|
||||
ui->setupUi(this);
|
||||
m_ctx = MainWindow::getContext();
|
||||
|
||||
// header context menu
|
||||
ui->coins->header()->setContextMenuPolicy(Qt::CustomContextMenu);
|
||||
|
@ -70,6 +72,12 @@ void CoinsWidget::setModel(CoinsModel * model, Coins * coins) {
|
|||
ui->coins->setColumnHidden(CoinsModel::SpentHeight, true);
|
||||
ui->coins->setColumnHidden(CoinsModel::Frozen, true);
|
||||
|
||||
if (!m_ctx->currentWallet->viewOnly()) {
|
||||
ui->coins->setColumnHidden(CoinsModel::KeyImageKnown, true);
|
||||
} else {
|
||||
ui->coins->setColumnHidden(CoinsModel::KeyImageKnown, false);
|
||||
}
|
||||
|
||||
ui->coins->header()->setSectionResizeMode(QHeaderView::ResizeToContents);
|
||||
ui->coins->header()->setSectionResizeMode(CoinsModel::AddressLabel, QHeaderView::Stretch);
|
||||
ui->coins->header()->setSortIndicator(CoinsModel::BlockHeight, Qt::DescendingOrder);
|
||||
|
|
|
@ -67,6 +67,7 @@ private:
|
|||
Coins *m_coins;
|
||||
CoinsModel * m_model;
|
||||
CoinsProxyModel * m_proxyModel;
|
||||
AppContext *m_ctx;
|
||||
|
||||
void showContextMenu(const QPoint & point);
|
||||
void copy(copyField field);
|
||||
|
|
|
@ -19,6 +19,9 @@ CoinsModel::CoinsModel(QObject *parent, Coins *coins)
|
|||
{
|
||||
connect(m_coins, &Coins::refreshStarted, this, &CoinsModel::startReset);
|
||||
connect(m_coins, &Coins::refreshFinished, this, &CoinsModel::endReset);
|
||||
|
||||
m_eye = QIcon(":/assets/images/eye1.png");
|
||||
m_eyeBlind = QIcon(":/assets/images/eye_blind.png");
|
||||
}
|
||||
|
||||
void CoinsModel::startReset(){
|
||||
|
@ -82,6 +85,19 @@ QVariant CoinsModel::data(const QModelIndex &index, int role) const
|
|||
result = Qt::AlignRight;
|
||||
}
|
||||
}
|
||||
else if (role == Qt::DecorationRole) {
|
||||
switch (index.column()) {
|
||||
case KeyImageKnown:
|
||||
{
|
||||
if (cInfo.keyImageKnown()) {
|
||||
result = QVariant(m_eye);
|
||||
}
|
||||
else {
|
||||
result = QVariant(m_eyeBlind);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (role == Qt::FontRole) {
|
||||
switch(index.column()) {
|
||||
case PubKey:
|
||||
|
@ -91,6 +107,16 @@ QVariant CoinsModel::data(const QModelIndex &index, int role) const
|
|||
}
|
||||
}
|
||||
else if (role == Qt::ToolTipRole) {
|
||||
switch(index.column()) {
|
||||
case KeyImageKnown:
|
||||
{
|
||||
if (cInfo.keyImageKnown()) {
|
||||
result = "Key image known";
|
||||
} else {
|
||||
result = "Key image unknown. Outgoing transactions that include this output will not be detected.";
|
||||
}
|
||||
}
|
||||
}
|
||||
if (cInfo.frozen()) {
|
||||
result = "Output is frozen.";
|
||||
}
|
||||
|
|
|
@ -9,6 +9,7 @@
|
|||
#include <QAbstractTableModel>
|
||||
#include <QSortFilterProxyModel>
|
||||
#include <QDebug>
|
||||
#include <QIcon>
|
||||
|
||||
class Coins;
|
||||
class CoinsInfo;
|
||||
|
@ -20,7 +21,8 @@ Q_OBJECT
|
|||
public:
|
||||
enum ModelColumn
|
||||
{
|
||||
PubKey = 0,
|
||||
KeyImageKnown = 0,
|
||||
PubKey,
|
||||
OutputPoint,
|
||||
Address,
|
||||
AddressLabel,
|
||||
|
@ -49,6 +51,8 @@ private:
|
|||
QVariant parseTransactionInfo(const CoinsInfo &cInfo, int column, int role) const;
|
||||
|
||||
Coins *m_coins;
|
||||
QIcon m_eye;
|
||||
QIcon m_eyeBlind;
|
||||
};
|
||||
|
||||
#endif //FEATHER_COINSMODEL_H
|
||||
|
|
Loading…
Reference in a new issue