6 #include "ui_receivecoinsdialog.h"
19 #include <QItemSelection>
20 #include <QMessageBox>
22 #include <QTextDocument>
23 #include <QStylePainter>
24 #include <QDesktopWidget>
25 #include <QInputDialog>
36 QAction* copyLabelAction =
new QAction(tr(
"Copy label"),
this);
37 QAction* copyMessageAction =
new QAction(tr(
"Copy message"),
this);
38 QAction* copyAmountAction =
new QAction(tr(
"Copy amount"),
this);
39 QAction* copyAddressAction =
new QAction(tr(
"Copy address"),
this);
50 ui->lineEditAddress->setStyleSheet(
"border:none; background: transparent; text-align:center;");
51 ui->pushButtonCP->setStyleSheet(
"background:transparent;");
52 ui->pushButtonCP->setIcon(QIcon(
":/icons/editcopy"));
53 ui->pushButtonGenerate->setIcon(QIcon(
":/icons/add"));
54 ui->pushButtonGenerate->setStyleSheet(
"background:transparent;");
55 ui->pushButtonRemove->setIcon(QIcon(
":/icons/remove"));
56 ui->pushButtonRemove->setStyleSheet(
"background:transparent;");
57 connect(
ui->pushButtonCP, SIGNAL(clicked()),
this, SLOT(
copyAddress()));
58 connect(
ui->pushButtonGenerate, SIGNAL(clicked()),
this, SLOT(
generateAddress()));
59 connect(
ui->pushButtonRemove, SIGNAL(clicked()),
this, SLOT(
removeAddress()));
60 connect(
ui->reqAddress, SIGNAL(currentIndexChanged(
int)),
this, SLOT(
changeAddress(
int)));
69 QLocale lo(QLocale::C);
70 lo.setNumberOptions(QLocale::RejectGroupSeparator);
71 QDoubleValidator *dblVal =
new QDoubleValidator(0, MAX_MONEY_OUT, 8,
ui->reqAmount);
72 dblVal->setNotation(QDoubleValidator::StandardNotation);
73 dblVal->setLocale(lo);
74 ui->reqAmount->setValidator(dblVal);
77 static inline int64_t roundint64(
double d)
79 return (int64_t)(d > 0 ? d + 0.5 : d - 0.5);
83 double dAmount =
ui->reqAmount->text().toDouble();
84 CAmount nAmount = roundint64(dAmount * COIN);
101 QRect rec = QApplication::desktop()->availableGeometry();
102 int screenWidth = rec.width();
107 if (screenWidth <= 1280) {
109 addr =
"Master Account - " + QString(address.substr(0, 30).c_str()) +
"..." + QString(address.substr(address.length() - 30, 30).c_str());
111 addr =
"Master Account - " + QString(address.c_str());
113 ui->reqAddress->addItem(addr);
116 if (screenWidth <= 1024) {
118 ui->lineEditAddress->setText(QString(address.substr(0, 30).c_str()) +
"..." + QString(address.substr(address.length() - 30, 30).c_str()));
120 ui->lineEditAddress->setText(QString(address.c_str()));
191 double dAmount =
ui->reqAmount->text().toDouble();
192 if (dAmount < 0.0 || dAmount > MAX_MONEY_OUT) {
194 msgBox.setWindowTitle(
"Invalid Amount");
195 msgBox.setText(
"Invalid amount entered. Please enter an amount less than 2.1B PRCY.");
197 msgBox.setIcon(QMessageBox::Warning);
204 QString str =
ui->reqAddress->currentText();
205 QStringList list = str.split(
"-");
207 QString address = list[1].trimmed();
208 QString label = list[0].trimmed();
209 QString reqMes =
ui->reqID->text();
213 dialog->setAttribute(Qt::WA_DeleteOnClose);
224 QWidget::resizeEvent(event);
229 if (event->key() == Qt::Key_Return) {
231 if (
ui->reqAddress->hasFocus() ||
ui->reqAmount->hasFocus() ||
ui->reqID->hasFocus()) {
238 this->QDialog::keyPressEvent(event);
242 QClipboard *clipboard = QApplication::clipboard();
243 if (
ui->lineEditAddress->text().contains(
".")) {
248 clipboard->setText(QString(address.c_str()));
250 clipboard->setText(
ui->lineEditAddress->text());
256 uint64_t paymentID = 0;
257 QClipboard *clipboard = QApplication::clipboard();
258 QString addAccountString;
263 QString label = QInputDialog::getText(
this, tr(
"Enter Label"),
264 tr(
"Label (Payment ID is added by default)"), QLineEdit::Normal,
265 QString::number(paymentID), &ok);
267 if (ok && !label.isEmpty()) {
268 if (label.contains(QString::number(paymentID))) {
269 addAccountString = label.append(
" - ").append(QString(address.c_str()));
271 addAccountString = label.append(
" (").append(QString::number(paymentID)).append(
") - ").append(QString(address.c_str()));
277 ui->reqAddress->addItem(addAccountString);
278 ui->reqAddress->setCurrentIndex(
ui->reqAddress->count() - 1);
279 clipboard->setText(QString(address.c_str()));
284 if (
ui->reqAddress->currentText().contains(
"Master Account"))
return;
285 ui->reqAddress->removeItem(
ui->reqAddress->currentIndex());
290 QString str =
ui->reqAddress->currentText();
291 QStringList list = str.split(
"-");
292 QString address = list[1].trimmed();
294 ui->lineEditAddress->setText(address);