2014-12-17 01:47:57 +00:00
// Copyright (c) 2011-2013 The Bitcoin Core developers
2014-12-13 04:09:33 +00:00
// Distributed under the MIT software license, see the accompanying
2013-11-04 15:20:43 +00:00
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
2014-11-03 15:16:40 +00:00
# ifndef BITCOIN_QT_SENDCOINSDIALOG_H
# define BITCOIN_QT_SENDCOINSDIALOG_H
2011-05-08 20:23:31 +00:00
2013-10-30 14:37:41 +00:00
# include "walletmodel.h"
2011-05-08 20:23:31 +00:00
# include <QDialog>
2013-08-12 15:03:03 +00:00
# include <QString>
2011-05-08 20:23:31 +00:00
2014-11-01 23:14:47 +00:00
class ClientModel ;
2013-04-13 05:13:08 +00:00
class OptionsModel ;
2015-07-28 13:20:14 +00:00
class PlatformStyle ;
2011-07-16 17:01:05 +00:00
class SendCoinsEntry ;
2011-08-07 14:04:48 +00:00
class SendCoinsRecipient ;
2013-04-13 05:13:08 +00:00
namespace Ui {
class SendCoinsDialog ;
}
2014-09-05 11:18:35 +00:00
QT_BEGIN_NAMESPACE
class QUrl ;
QT_END_NAMESPACE
2015-03-18 10:27:30 +00:00
const int defaultConfirmTarget = 25 ;
2011-11-13 12:19:52 +00:00
/** Dialog for sending bitcoins */
2011-05-08 20:23:31 +00:00
class SendCoinsDialog : public QDialog
{
Q_OBJECT
2011-05-12 12:44:52 +00:00
2011-05-08 20:23:31 +00:00
public :
2015-07-28 13:20:14 +00:00
explicit SendCoinsDialog ( const PlatformStyle * platformStyle , QWidget * parent = 0 ) ;
2011-05-12 12:44:52 +00:00
~ SendCoinsDialog ( ) ;
2011-05-08 20:23:31 +00:00
2014-11-01 23:14:47 +00:00
void setClientModel ( ClientModel * clientModel ) ;
2011-06-30 16:05:29 +00:00
void setModel ( WalletModel * model ) ;
2011-05-30 18:20:12 +00:00
2012-09-22 05:32:28 +00:00
/** 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).
2011-11-13 12:19:52 +00:00
*/
2011-07-16 17:01:05 +00:00
QWidget * setupTabChain ( QWidget * prev ) ;
2013-01-25 17:46:53 +00:00
void setAddress ( const QString & address ) ;
2011-08-07 14:04:48 +00:00
void pasteEntry ( const SendCoinsRecipient & rv ) ;
2013-07-22 06:50:39 +00:00
bool handlePaymentRequest ( const SendCoinsRecipient & recipient ) ;
2011-08-07 14:04:48 +00:00
2015-07-14 11:59:05 +00:00
public Q_SLOTS :
2011-07-07 15:33:15 +00:00
void clear ( ) ;
void reject ( ) ;
void accept ( ) ;
2011-08-07 14:04:48 +00:00
SendCoinsEntry * addEntry ( ) ;
2013-11-22 12:53:05 +00:00
void updateTabsAndLabels ( ) ;
2014-04-22 22:46:19 +00:00
void setBalance ( const CAmount & balance , const CAmount & unconfirmedBalance , const CAmount & immatureBalance ,
const CAmount & watchOnlyBalance , const CAmount & watchUnconfBalance , const CAmount & watchImmatureBalance ) ;
2011-07-07 15:33:15 +00:00
2011-05-12 12:44:52 +00:00
private :
Ui : : SendCoinsDialog * ui ;
2014-11-01 23:14:47 +00:00
ClientModel * clientModel ;
2011-06-30 16:05:29 +00:00
WalletModel * model ;
2011-12-24 04:27:12 +00:00
bool fNewRecipientAllowed ;
2014-11-01 23:14:47 +00:00
bool fFeeMinimized ;
2015-07-28 13:20:14 +00:00
const PlatformStyle * platformStyle ;
2011-05-12 15:55:24 +00:00
2013-10-30 14:37:41 +00:00
// Process WalletModel::SendCoinsReturn and generate a pair consisting
2015-07-14 11:59:05 +00:00
// of a message and message flags for use in Q_EMIT message().
2013-10-30 14:37:41 +00:00
// Additional parameter msgArg can be used via .arg(msgArg).
void processSendCoinsReturn ( const WalletModel : : SendCoinsReturn & sendCoinsReturn , const QString & msgArg = QString ( ) ) ;
2014-11-01 23:14:47 +00:00
void minimizeFeeSection ( bool fMinimize ) ;
void updateFeeMinimizedLabel ( ) ;
2013-10-30 14:37:41 +00:00
2015-07-14 11:59:05 +00:00
private Q_SLOTS :
2011-05-12 15:55:24 +00:00
void on_sendButton_clicked ( ) ;
2014-11-01 23:14:47 +00:00
void on_buttonChooseFee_clicked ( ) ;
void on_buttonMinimizeFee_clicked ( ) ;
2011-07-16 17:01:05 +00:00
void removeEntry ( SendCoinsEntry * entry ) ;
2012-06-09 13:41:21 +00:00
void updateDisplayUnit ( ) ;
2013-08-12 15:03:03 +00:00
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 ( ) ;
2014-11-01 23:14:47 +00:00
void setMinimumFee ( ) ;
void updateFeeSectionControls ( ) ;
void updateMinFeeLabel ( ) ;
void updateSmartFeeLabel ( ) ;
void updateGlobalFeeVariables ( ) ;
2013-10-24 13:49:13 +00:00
2015-07-14 11:59:05 +00:00
Q_SIGNALS :
2013-10-24 13:49:13 +00:00
// Fired when a message should be reported to the user
void message ( const QString & title , const QString & message , unsigned int style ) ;
2011-05-08 20:23:31 +00:00
} ;
2014-11-03 15:16:40 +00:00
# endif // BITCOIN_QT_SENDCOINSDIALOG_H