mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-01-27 11:43:26 -03:00
Disable unavailable context menu items in transactions tab
This commit is contained in:
parent
fe3b58b959
commit
2b18fd2242
4 changed files with 31 additions and 14 deletions
|
@ -230,7 +230,7 @@ QString HtmlEscape(const std::string& str, bool fMultiLine)
|
||||||
return HtmlEscape(QString::fromStdString(str), fMultiLine);
|
return HtmlEscape(QString::fromStdString(str), fMultiLine);
|
||||||
}
|
}
|
||||||
|
|
||||||
void copyEntryData(QAbstractItemView *view, int column, int role)
|
void copyEntryData(const QAbstractItemView *view, int column, int role)
|
||||||
{
|
{
|
||||||
if(!view || !view->selectionModel())
|
if(!view || !view->selectionModel())
|
||||||
return;
|
return;
|
||||||
|
@ -243,13 +243,20 @@ void copyEntryData(QAbstractItemView *view, int column, int role)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
QList<QModelIndex> getEntryData(QAbstractItemView *view, int column)
|
QList<QModelIndex> getEntryData(const QAbstractItemView *view, int column)
|
||||||
{
|
{
|
||||||
if(!view || !view->selectionModel())
|
if(!view || !view->selectionModel())
|
||||||
return QList<QModelIndex>();
|
return QList<QModelIndex>();
|
||||||
return view->selectionModel()->selectedRows(column);
|
return view->selectionModel()->selectedRows(column);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool hasEntryData(const QAbstractItemView *view, int column, int role)
|
||||||
|
{
|
||||||
|
QModelIndexList selection = getEntryData(view, column);
|
||||||
|
if (selection.isEmpty()) return false;
|
||||||
|
return !selection.at(0).data(role).toString().isEmpty();
|
||||||
|
}
|
||||||
|
|
||||||
QString getDefaultDataDirectory()
|
QString getDefaultDataDirectory()
|
||||||
{
|
{
|
||||||
return boostPathToQString(GetDefaultDataDir());
|
return boostPathToQString(GetDefaultDataDir());
|
||||||
|
|
|
@ -68,14 +68,21 @@ namespace GUIUtil
|
||||||
@param[in] role Data role to extract from the model
|
@param[in] role Data role to extract from the model
|
||||||
@see TransactionView::copyLabel, TransactionView::copyAmount, TransactionView::copyAddress
|
@see TransactionView::copyLabel, TransactionView::copyAmount, TransactionView::copyAddress
|
||||||
*/
|
*/
|
||||||
void copyEntryData(QAbstractItemView *view, int column, int role=Qt::EditRole);
|
void copyEntryData(const QAbstractItemView *view, int column, int role=Qt::EditRole);
|
||||||
|
|
||||||
/** Return a field of the currently selected entry as a QString. Does nothing if nothing
|
/** Return a field of the currently selected entry as a QString. Does nothing if nothing
|
||||||
is selected.
|
is selected.
|
||||||
@param[in] column Data column to extract from the model
|
@param[in] column Data column to extract from the model
|
||||||
@see TransactionView::copyLabel, TransactionView::copyAmount, TransactionView::copyAddress
|
@see TransactionView::copyLabel, TransactionView::copyAmount, TransactionView::copyAddress
|
||||||
*/
|
*/
|
||||||
QList<QModelIndex> getEntryData(QAbstractItemView *view, int column);
|
QList<QModelIndex> getEntryData(const QAbstractItemView *view, int column);
|
||||||
|
|
||||||
|
/** Returns true if the specified field of the currently selected view entry is not empty.
|
||||||
|
@param[in] column Data column to extract from the model
|
||||||
|
@param[in] role Data role to extract from the model
|
||||||
|
@see TransactionView::contextualMenu
|
||||||
|
*/
|
||||||
|
bool hasEntryData(const QAbstractItemView *view, int column, int role);
|
||||||
|
|
||||||
void setClipboard(const QString& str);
|
void setClipboard(const QString& str);
|
||||||
|
|
||||||
|
|
|
@ -36,8 +36,7 @@
|
||||||
#include <QVBoxLayout>
|
#include <QVBoxLayout>
|
||||||
|
|
||||||
TransactionView::TransactionView(const PlatformStyle *platformStyle, QWidget *parent) :
|
TransactionView::TransactionView(const PlatformStyle *platformStyle, QWidget *parent) :
|
||||||
QWidget(parent), model(nullptr), transactionProxyModel(nullptr),
|
QWidget(parent)
|
||||||
transactionView(nullptr), abandonAction(nullptr), bumpFeeAction(nullptr), columnResizingFixer(nullptr)
|
|
||||||
{
|
{
|
||||||
// Build filter row
|
// Build filter row
|
||||||
setContentsMargins(0,0,0,0);
|
setContentsMargins(0,0,0,0);
|
||||||
|
@ -152,8 +151,8 @@ TransactionView::TransactionView(const PlatformStyle *platformStyle, QWidget *pa
|
||||||
abandonAction = new QAction(tr("Abandon transaction"), this);
|
abandonAction = new QAction(tr("Abandon transaction"), this);
|
||||||
bumpFeeAction = new QAction(tr("Increase transaction fee"), this);
|
bumpFeeAction = new QAction(tr("Increase transaction fee"), this);
|
||||||
bumpFeeAction->setObjectName("bumpFeeAction");
|
bumpFeeAction->setObjectName("bumpFeeAction");
|
||||||
QAction *copyAddressAction = new QAction(tr("Copy address"), this);
|
copyAddressAction = new QAction(tr("Copy address"), this);
|
||||||
QAction *copyLabelAction = new QAction(tr("Copy label"), this);
|
copyLabelAction = new QAction(tr("Copy label"), this);
|
||||||
QAction *copyAmountAction = new QAction(tr("Copy amount"), this);
|
QAction *copyAmountAction = new QAction(tr("Copy amount"), this);
|
||||||
QAction *copyTxIDAction = new QAction(tr("Copy transaction ID"), this);
|
QAction *copyTxIDAction = new QAction(tr("Copy transaction ID"), this);
|
||||||
QAction *copyTxHexAction = new QAction(tr("Copy raw transaction"), this);
|
QAction *copyTxHexAction = new QAction(tr("Copy raw transaction"), this);
|
||||||
|
@ -395,6 +394,8 @@ void TransactionView::contextualMenu(const QPoint &point)
|
||||||
hash.SetHex(selection.at(0).data(TransactionTableModel::TxHashRole).toString().toStdString());
|
hash.SetHex(selection.at(0).data(TransactionTableModel::TxHashRole).toString().toStdString());
|
||||||
abandonAction->setEnabled(model->wallet().transactionCanBeAbandoned(hash));
|
abandonAction->setEnabled(model->wallet().transactionCanBeAbandoned(hash));
|
||||||
bumpFeeAction->setEnabled(model->wallet().transactionCanBeBumped(hash));
|
bumpFeeAction->setEnabled(model->wallet().transactionCanBeBumped(hash));
|
||||||
|
copyAddressAction->setEnabled(GUIUtil::hasEntryData(transactionView, 0, TransactionTableModel::AddressRole));
|
||||||
|
copyLabelAction->setEnabled(GUIUtil::hasEntryData(transactionView, 0, TransactionTableModel::LabelRole));
|
||||||
|
|
||||||
if(index.isValid())
|
if(index.isValid())
|
||||||
{
|
{
|
||||||
|
|
|
@ -60,9 +60,9 @@ public:
|
||||||
};
|
};
|
||||||
|
|
||||||
private:
|
private:
|
||||||
WalletModel *model;
|
WalletModel *model{nullptr};
|
||||||
TransactionFilterProxy *transactionProxyModel;
|
TransactionFilterProxy *transactionProxyModel{nullptr};
|
||||||
QTableView *transactionView;
|
QTableView *transactionView{nullptr};
|
||||||
|
|
||||||
QComboBox *dateWidget;
|
QComboBox *dateWidget;
|
||||||
QComboBox *typeWidget;
|
QComboBox *typeWidget;
|
||||||
|
@ -75,12 +75,14 @@ private:
|
||||||
QFrame *dateRangeWidget;
|
QFrame *dateRangeWidget;
|
||||||
QDateTimeEdit *dateFrom;
|
QDateTimeEdit *dateFrom;
|
||||||
QDateTimeEdit *dateTo;
|
QDateTimeEdit *dateTo;
|
||||||
QAction *abandonAction;
|
QAction *abandonAction{nullptr};
|
||||||
QAction *bumpFeeAction;
|
QAction *bumpFeeAction{nullptr};
|
||||||
|
QAction *copyAddressAction{nullptr};
|
||||||
|
QAction *copyLabelAction{nullptr};
|
||||||
|
|
||||||
QWidget *createDateRangeWidget();
|
QWidget *createDateRangeWidget();
|
||||||
|
|
||||||
GUIUtil::TableViewLastColumnResizingFixer *columnResizingFixer;
|
GUIUtil::TableViewLastColumnResizingFixer *columnResizingFixer{nullptr};
|
||||||
|
|
||||||
virtual void resizeEvent(QResizeEvent* event);
|
virtual void resizeEvent(QResizeEvent* event);
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue