You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
122 lines
3.5 KiB
122 lines
3.5 KiB
// Copyright (c) 2011-2016 The Bitcoin Core developers |
|
// Distributed under the MIT software license, see the accompanying |
|
// file COPYING or http://www.opensource.org/licenses/mit-license.php. |
|
|
|
#ifndef BITCOIN_QT_SENDCOINSDIALOG_H |
|
#define BITCOIN_QT_SENDCOINSDIALOG_H |
|
|
|
#include "walletmodel.h" |
|
|
|
#include <QDialog> |
|
#include <QMessageBox> |
|
#include <QString> |
|
#include <QTimer> |
|
|
|
class ClientModel; |
|
class OptionsModel; |
|
class PlatformStyle; |
|
class SendCoinsEntry; |
|
class SendCoinsRecipient; |
|
|
|
namespace Ui { |
|
class SendCoinsDialog; |
|
} |
|
|
|
QT_BEGIN_NAMESPACE |
|
class QUrl; |
|
QT_END_NAMESPACE |
|
|
|
/** Dialog for sending bitcoins */ |
|
class SendCoinsDialog : public QDialog |
|
{ |
|
Q_OBJECT |
|
|
|
public: |
|
explicit SendCoinsDialog(const PlatformStyle *platformStyle, QWidget *parent = 0); |
|
~SendCoinsDialog(); |
|
|
|
void setClientModel(ClientModel *clientModel); |
|
void setModel(WalletModel *model); |
|
|
|
/** Set up the tab chain manually, as Qt messes up the tab chain by default in some cases (issue https://bugreports.qt-project.org/browse/QTBUG-10907). |
|
*/ |
|
QWidget *setupTabChain(QWidget *prev); |
|
|
|
void setAddress(const QString &address); |
|
void pasteEntry(const SendCoinsRecipient &rv); |
|
bool handlePaymentRequest(const SendCoinsRecipient &recipient); |
|
|
|
public Q_SLOTS: |
|
void clear(); |
|
void reject(); |
|
void accept(); |
|
SendCoinsEntry *addEntry(); |
|
void updateTabsAndLabels(); |
|
void setBalance(const CAmount& balance, const CAmount& unconfirmedBalance, const CAmount& immatureBalance, |
|
const CAmount& watchOnlyBalance, const CAmount& watchUnconfBalance, const CAmount& watchImmatureBalance); |
|
|
|
private: |
|
Ui::SendCoinsDialog *ui; |
|
ClientModel *clientModel; |
|
WalletModel *model; |
|
bool fNewRecipientAllowed; |
|
bool fFeeMinimized; |
|
const PlatformStyle *platformStyle; |
|
|
|
// Process WalletModel::SendCoinsReturn and generate a pair consisting |
|
// of a message and message flags for use in Q_EMIT message(). |
|
// Additional parameter msgArg can be used via .arg(msgArg). |
|
void processSendCoinsReturn(const WalletModel::SendCoinsReturn &sendCoinsReturn, const QString &msgArg = QString()); |
|
void minimizeFeeSection(bool fMinimize); |
|
void updateFeeMinimizedLabel(); |
|
|
|
private Q_SLOTS: |
|
void on_sendButton_clicked(); |
|
void on_buttonChooseFee_clicked(); |
|
void on_buttonMinimizeFee_clicked(); |
|
void removeEntry(SendCoinsEntry* entry); |
|
void updateDisplayUnit(); |
|
void coinControlFeatureChanged(bool); |
|
void coinControlButtonClicked(); |
|
void coinControlChangeChecked(int); |
|
void coinControlChangeEdited(const QString &); |
|
void coinControlUpdateLabels(); |
|
void coinControlClipboardQuantity(); |
|
void coinControlClipboardAmount(); |
|
void coinControlClipboardFee(); |
|
void coinControlClipboardAfterFee(); |
|
void coinControlClipboardBytes(); |
|
void coinControlClipboardLowOutput(); |
|
void coinControlClipboardChange(); |
|
void setMinimumFee(); |
|
void updateFeeSectionControls(); |
|
void updateMinFeeLabel(); |
|
void updateSmartFeeLabel(); |
|
void updateGlobalFeeVariables(); |
|
|
|
Q_SIGNALS: |
|
// Fired when a message should be reported to the user |
|
void message(const QString &title, const QString &message, unsigned int style); |
|
}; |
|
|
|
|
|
|
|
class SendConfirmationDialog : public QMessageBox |
|
{ |
|
Q_OBJECT |
|
|
|
public: |
|
SendConfirmationDialog(const QString &title, const QString &text, int secDelay = 0, QWidget *parent = 0); |
|
int exec(); |
|
|
|
private Q_SLOTS: |
|
void countDown(); |
|
void updateYesButton(); |
|
|
|
private: |
|
QAbstractButton *yesButton; |
|
QTimer countDownTimer; |
|
int secDelay; |
|
}; |
|
|
|
#endif // BITCOIN_QT_SENDCOINSDIALOG_H
|
|
|