2013-11-04 12:20:43 -03:00
// Copyright (c) 2011-2013 The Bitcoin developers
// Distributed under the MIT/X11 software license, see the accompanying
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
2011-05-08 16:23:31 -04:00
# ifndef SENDCOINSDIALOG_H
# define SENDCOINSDIALOG_H
2013-10-30 11:37:41 -03:00
# include "walletmodel.h"
2011-05-08 16:23:31 -04:00
# include <QDialog>
2013-08-12 11:03:03 -04:00
# include <QString>
2011-05-08 16:23:31 -04:00
2013-04-13 02:13:08 -03:00
class OptionsModel ;
2011-07-16 13:01:05 -04:00
class SendCoinsEntry ;
2011-08-07 10:04:48 -04:00
class SendCoinsRecipient ;
QT_BEGIN_NAMESPACE
class QUrl ;
QT_END_NAMESPACE
2011-05-12 08:44:52 -04:00
2013-04-13 02:13:08 -03:00
namespace Ui {
class SendCoinsDialog ;
}
2011-11-13 09:19:52 -03:00
/** Dialog for sending bitcoins */
2011-05-08 16:23:31 -04:00
class SendCoinsDialog : public QDialog
{
Q_OBJECT
2011-05-12 08:44:52 -04:00
2011-05-08 16:23:31 -04:00
public :
2011-07-16 13:01:05 -04:00
explicit SendCoinsDialog ( QWidget * parent = 0 ) ;
2011-05-12 08:44:52 -04:00
~ SendCoinsDialog ( ) ;
2011-05-08 16:23:31 -04:00
2011-06-30 12:05:29 -04:00
void setModel ( WalletModel * model ) ;
2011-05-30 14:20:12 -04:00
2012-09-22 02:32:28 -03: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 09:19:52 -03:00
*/
2011-07-16 13:01:05 -04:00
QWidget * setupTabChain ( QWidget * prev ) ;
2013-01-25 14:46:53 -03:00
void setAddress ( const QString & address ) ;
2011-08-07 10:04:48 -04:00
void pasteEntry ( const SendCoinsRecipient & rv ) ;
2013-07-22 02:50:39 -04:00
bool handlePaymentRequest ( const SendCoinsRecipient & recipient ) ;
2011-08-07 10:04:48 -04:00
2011-07-07 11:33:15 -04:00
public slots :
void clear ( ) ;
void reject ( ) ;
void accept ( ) ;
2011-08-07 10:04:48 -04:00
SendCoinsEntry * addEntry ( ) ;
2011-07-16 13:01:05 -04:00
void updateRemoveEnabled ( ) ;
2012-02-14 08:08:00 -03:00
void setBalance ( qint64 balance , qint64 unconfirmedBalance , qint64 immatureBalance ) ;
2011-07-07 11:33:15 -04:00
2011-05-12 08:44:52 -04:00
private :
Ui : : SendCoinsDialog * ui ;
2011-06-30 12:05:29 -04:00
WalletModel * model ;
2011-12-24 01:27:12 -03:00
bool fNewRecipientAllowed ;
2011-05-12 11:55:24 -04:00
2013-10-30 11:37:41 -03:00
// 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 ( ) ) ;
2011-05-12 11:55:24 -04:00
private slots :
void on_sendButton_clicked ( ) ;
2011-07-16 13:01:05 -04:00
void removeEntry ( SendCoinsEntry * entry ) ;
2012-06-09 09:41:21 -04:00
void updateDisplayUnit ( ) ;
2013-08-12 11:03:03 -04: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 ( ) ;
2013-10-24 10:49:13 -03:00
signals :
// Fired when a message should be reported to the user
void message ( const QString & title , const QString & message , unsigned int style ) ;
2011-05-08 16:23:31 -04:00
} ;
# endif // SENDCOINSDIALOG_H