// Copyright (c) 2011-2013 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 <QString>
class ClientModel ;
class OptionsModel ;
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 ( 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 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 ;
// Process WalletModel::SendCoinsReturn and generate a pair consisting
// of a message and message flags for use in 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 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 coinControlClipboardPriority ( ) ;
void coinControlClipboardLowOutput ( ) ;
void coinControlClipboardChange ( ) ;
void setMinimumFee ( ) ;
void updateFeeSectionControls ( ) ;
void updateMinFeeLabel ( ) ;
void updateSmartFeeLabel ( ) ;
void updateGlobalFeeVariables ( ) ;
signals :
// Fired when a message should be reported to the user
void message ( const QString & title , const QString & message , unsigned int style ) ;
} ;
# endif // BITCOIN_QT_SENDCOINSDIALOG_H