</widget>
</item>
<item>
- <widget class="QLineEdit" name="lineEditCoinControlChange">
+ <widget class="QValidatedLineEdit" name="lineEditCoinControlChange">
<property name="enabled">
<bool>false</bool>
</property>
</property>
</widget>
</item>
- <item>
- <widget class="QLabel" name="labelCoinControlChangeLabel">
- <property name="sizePolicy">
- <sizepolicy hsizetype="Preferred" vsizetype="Expanding">
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="minimumSize">
- <size>
- <width>0</width>
- <height>0</height>
- </size>
- </property>
- <property name="text">
- <string/>
- </property>
- <property name="margin">
- <number>3</number>
- </property>
- </widget>
- </item>
+ <item>
+ <widget class="QToolButton" name="addressBookButton">
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ <property name="toolTip">
+ <string>Choose address from address book</string>
+ </property>
+ <property name="text">
+ <string/>
+ </property>
+ <property name="icon">
+ <iconset resource="../bitcoin.qrc">
+ <normaloff>:/icons/address-book</normaloff>:/icons/address-book</iconset>
+ </property>
+ <property name="shortcut">
+ <string>Alt+A</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QToolButton" name="pasteButton">
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ <property name="toolTip">
+ <string>Paste address from clipboard</string>
+ </property>
+ <property name="text">
+ <string/>
+ </property>
+ <property name="icon">
+ <iconset resource="../bitcoin.qrc">
+ <normaloff>:/icons/editpaste</normaloff>:/icons/editpaste</iconset>
+ </property>
+ <property name="shortcut">
+ <string>Alt+P</string>
+ </property>
+ </widget>
+ </item>
</layout>
</item>
<item>
ui->lineEditCoinControlChange->setFont(GUIUtil::bitcoinAddressFont());
connect(ui->pushButtonCoinControl, SIGNAL(clicked()), this, SLOT(coinControlButtonClicked()));
connect(ui->checkBoxCoinControlChange, SIGNAL(stateChanged(int)), this, SLOT(coinControlChangeChecked(int)));
- connect(ui->lineEditCoinControlChange, SIGNAL(textEdited(const QString &)), this, SLOT(coinControlChangeEdited(const QString &)));
// Coin Control: clipboard actions
QAction *clipboardQuantityAction = new QAction(tr("Copy quantity"), this);
if(!model)
return;
+ if (ui->lineEditCoinControlChange->isEnabled())
+ {
+ if(!ui->lineEditCoinControlChange->hasAcceptableInput() ||
+ (model && !model->validateAddress(ui->lineEditCoinControlChange->text())))
+ {
+ ui->lineEditCoinControlChange->setValid(false);
+ valid = false;
+ }
+ }
+
for(int i = 0; i < ui->entries->count(); ++i)
{
SendCoinsEntry *entry = qobject_cast<SendCoinsEntry*>(ui->entries->itemAt(i)->widget());
}
ui->lineEditCoinControlChange->setEnabled((state == Qt::Checked));
- ui->labelCoinControlChangeLabel->setEnabled((state == Qt::Checked));
+// ui->labelCoinControlChangeLabel->setEnabled((state == Qt::Checked));
+ ui->addressBookButton->setEnabled((state == Qt::Checked));
+ ui->pasteButton->setEnabled((state == Qt::Checked));
}
-// Coin Control: custom change address changed
-void SendCoinsDialog::coinControlChangeEdited(const QString & text)
+void SendCoinsDialog::on_pasteButton_clicked()
{
- if (model)
- {
- CoinControlDialog::coinControl->destChange = CBitcoinAddress(text.toStdString()).Get();
+ // Paste text from clipboard into recipient field
+ ui->lineEditCoinControlChange->setText(QApplication::clipboard()->text());
+}
- // label for the change address
- ui->labelCoinControlChangeLabel->setStyleSheet("QLabel{color:black;}");
- if (text.isEmpty())
- ui->labelCoinControlChangeLabel->setText("");
- else if (!CBitcoinAddress(text.toStdString()).IsValid())
- {
- ui->labelCoinControlChangeLabel->setStyleSheet("QLabel{color:red;}");
- ui->labelCoinControlChangeLabel->setText(tr("WARNING: Invalid NovaCoin address"));
- }
- else
- {
- QString associatedLabel = model->getAddressTableModel()->labelForAddress(text);
- if (!associatedLabel.isEmpty())
- ui->labelCoinControlChangeLabel->setText(associatedLabel);
- else
- {
- CPubKey pubkey;
- CKeyID keyid;
- CBitcoinAddress(text.toStdString()).GetKeyID(keyid);
- if (model->getPubKey(keyid, pubkey))
- ui->labelCoinControlChangeLabel->setText(tr("(no label)"));
- else
- {
- ui->labelCoinControlChangeLabel->setStyleSheet("QLabel{color:red;}");
- ui->labelCoinControlChangeLabel->setText(tr("WARNING: unknown change address"));
- }
- }
- }
+void SendCoinsDialog::on_addressBookButton_clicked()
+{
+ if(!model)
+ return;
+ AddressBookPage dlg(AddressBookPage::ForSending, AddressBookPage::SendingTab, this);
+ dlg.setModel(model->getAddressTableModel());
+ if(dlg.exec())
+ {
+ ui->lineEditCoinControlChange->setText(dlg.getReturnValue());
}
}
void updateRemoveEnabled();
void setBalance(qint64 balance, qint64 stake, qint64 unconfirmedBalance, qint64 immatureBalance);
+ void on_addressBookButton_clicked();
+ void on_pasteButton_clicked();
+
private:
Ui::SendCoinsDialog *ui;
WalletModel *model;
void coinControlFeatureChanged(bool);
void coinControlButtonClicked();
void coinControlChangeChecked(int);
- void coinControlChangeEdited(const QString &);
void coinControlUpdateLabels();
void coinControlClipboardQuantity();
void coinControlClipboardAmount();