X-Git-Url: https://git.novaco.in/?a=blobdiff_plain;f=src%2Fqt%2Fsendcoinsdialog.cpp;h=b0e73825e32fddc368a7d6b0af04147085aa81e1;hb=1ebe5b92ef18395cdae9b88fc38b0ed6166c3243;hp=34ad759df9c1c3030cd486a407f33a88f3bc585e;hpb=b0368da0e15b5506548da3462e14b038ca21ae69;p=novacoin.git diff --git a/src/qt/sendcoinsdialog.cpp b/src/qt/sendcoinsdialog.cpp index 34ad759..b0e7382 100644 --- a/src/qt/sendcoinsdialog.cpp +++ b/src/qt/sendcoinsdialog.cpp @@ -2,6 +2,7 @@ #include "ui_sendcoinsdialog.h" #include "init.h" +#include "base58.h" #include "walletmodel.h" #include "addresstablemodel.h" #include "addressbookpage.h" @@ -11,6 +12,7 @@ #include "optionsmodel.h" #include "sendcoinsentry.h" #include "guiutil.h" +#include "dialogwindowflags.h" #include "askpassphrasedialog.h" #include "coincontrol.h" @@ -23,9 +25,10 @@ #include SendCoinsDialog::SendCoinsDialog(QWidget *parent) : - QDialog(parent), + QDialog(parent, DIALOGWINDOWHINTS), ui(new Ui::SendCoinsDialog), - model(0) + model(0), + coinControl(0) { ui->setupUi(this); @@ -77,6 +80,9 @@ SendCoinsDialog::SendCoinsDialog(QWidget *parent) : ui->labelCoinControlChange->addAction(clipboardChangeAction); fNewRecipientAllowed = true; + + coinControl = new CoinControlDialog(0); + connect(coinControl, SIGNAL(beforeClose()), this, SLOT(coinControlUpdateLabels())); } void SendCoinsDialog::setModel(WalletModel *model) @@ -93,9 +99,7 @@ void SendCoinsDialog::setModel(WalletModel *model) } if(model && model->getOptionsModel()) { - qint64 nTotal=0, nWatchOnly=0; - model->getBalance(nTotal, nWatchOnly); - setBalance(nTotal, nWatchOnly, model->getStake(), model->getUnconfirmedBalance(), model->getImmatureBalance()); + setBalance(model->getBalance(), model->getBalanceWatchOnly(), model->getStake(), model->getUnconfirmedBalance(), model->getImmatureBalance()); connect(model, SIGNAL(balanceChanged(qint64, qint64, qint64, qint64, qint64)), this, SLOT(setBalance(qint64, qint64, qint64, qint64, qint64))); connect(model->getOptionsModel(), SIGNAL(displayUnitChanged(int)), this, SLOT(updateDisplayUnit())); @@ -110,6 +114,7 @@ void SendCoinsDialog::setModel(WalletModel *model) SendCoinsDialog::~SendCoinsDialog() { + delete coinControl; delete ui; } @@ -126,12 +131,12 @@ void SendCoinsDialog::on_sendButton_clicked() if(!ui->lineEditCoinControlChange->hasAcceptableInput() || (model && !model->validateAddress(ui->lineEditCoinControlChange->text()))) { - CoinControlDialog::coinControl->destChange = CNoDestination(); + CoinControlDialog::coinControl->destChange = CBitcoinAddress(); ui->lineEditCoinControlChange->setValid(false); valid = false; } else - CoinControlDialog::coinControl->destChange = CBitcoinAddress(ui->lineEditCoinControlChange->text().toStdString()).Get(); + CoinControlDialog::coinControl->destChange = CBitcoinAddress(ui->lineEditCoinControlChange->text().toStdString()); } for(int i = 0; i < ui->entries->count(); ++i) @@ -159,7 +164,11 @@ void SendCoinsDialog::on_sendButton_clicked() QStringList formatted; foreach(const SendCoinsRecipient &rcp, recipients) { +#if QT_VERSION < 0x050000 formatted.append(tr("%1 to %2 (%3)").arg(BitcoinUnits::formatWithUnit(BitcoinUnits::BTC, rcp.amount), Qt::escape(rcp.label), rcp.address)); +#else + formatted.append(tr("%1 to %2 (%3)").arg(BitcoinUnits::formatWithUnit(BitcoinUnits::BTC, rcp.amount), rcp.label.toHtmlEscaped(), rcp.address)); +#endif } fNewRecipientAllowed = false; @@ -377,9 +386,7 @@ void SendCoinsDialog::updateDisplayUnit() if(model && model->getOptionsModel()) { // Update labelBalance with the current balance and the current unit - qint64 total=0, watchOnly=0; - model->getBalance(total, watchOnly); - ui->labelBalance->setText(BitcoinUnits::formatWithUnit(model->getOptionsModel()->getDisplayUnit(), total - watchOnly)); + ui->labelBalance->setText(BitcoinUnits::formatWithUnit(model->getOptionsModel()->getDisplayUnit(), model->getBalance() - model->getBalanceWatchOnly())); } } @@ -443,10 +450,9 @@ void SendCoinsDialog::coinControlFeatureChanged(bool checked) // Coin Control: button inputs -> show actual coin control dialog void SendCoinsDialog::coinControlButtonClicked() { - CoinControlDialog dlg; - dlg.setModel(model); - dlg.exec(); - coinControlUpdateLabels(); + coinControl->setModel(model); + coinControl->setWindowModality(Qt::ApplicationModal); + coinControl->show(); } // Coin Control: checkbox custom change address @@ -455,9 +461,9 @@ void SendCoinsDialog::coinControlChangeChecked(int state) if (model) { if (state == Qt::Checked) - CoinControlDialog::coinControl->destChange = CBitcoinAddress(ui->lineEditCoinControlChange->text().toStdString()).Get(); + CoinControlDialog::coinControl->destChange = CBitcoinAddress(ui->lineEditCoinControlChange->text().toStdString()); else - CoinControlDialog::coinControl->destChange = CNoDestination(); + CoinControlDialog::coinControl->destChange = CBitcoinAddress(); } ui->lineEditCoinControlChange->setEnabled((state == Qt::Checked)); @@ -476,7 +482,7 @@ void SendCoinsDialog::on_addressBookButton_clicked() { if(!model) return; - AddressBookPage dlg(AddressBookPage::ForSending, AddressBookPage::SendingTab, this); + AddressBookPage dlg(AddressBookPage::ForSending, AddressBookPage::ReceivingTab, this); dlg.setModel(model->getAddressTableModel()); if(dlg.exec()) {