From ef04b4b888e13de69c473f303215c2fa79076a44 Mon Sep 17 00:00:00 2001 From: Aditya Kulkarni Date: Fri, 26 Oct 2018 10:19:46 -0700 Subject: [PATCH] Limit memo size --- src/memodialog.ui | 97 +++++++++++++++++++++++++++++++++++++++++++++ src/rpc.cpp | 3 +- src/sendtab.cpp | 30 +++++++++++--- src/ui_memodialog.h | 90 +++++++++++++++++++++++++++++++++++++++++ zec-qt-wallet.pro | 3 +- 5 files changed, 214 insertions(+), 9 deletions(-) create mode 100644 src/memodialog.ui create mode 100644 src/ui_memodialog.h diff --git a/src/memodialog.ui b/src/memodialog.ui new file mode 100644 index 0000000..0cbe59a --- /dev/null +++ b/src/memodialog.ui @@ -0,0 +1,97 @@ + + + MemoDialog + + + + 0 + 0 + 618 + 115 + + + + Dialog + + + + + + + + + Memo + + + + + + + 6 / 512 + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + Qt::Horizontal + + + QDialogButtonBox::Cancel|QDialogButtonBox::Ok + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + + + buttonBox + accepted() + MemoDialog + accept() + + + 248 + 254 + + + 157 + 274 + + + + + buttonBox + rejected() + MemoDialog + reject() + + + 316 + 260 + + + 286 + 274 + + + + + diff --git a/src/rpc.cpp b/src/rpc.cpp index ceb60b0..5837697 100644 --- a/src/rpc.cpp +++ b/src/rpc.cpp @@ -615,8 +615,7 @@ void RPC::refreshTransactions() { QString::fromStdString(it["txid"]), it["amount"].get() + fee, it["confirmations"].get(), - "", "" - }; + "", "" }; txdata.push_back(tx); } diff --git a/src/sendtab.cpp b/src/sendtab.cpp index 5a3c623..c7be3b8 100644 --- a/src/sendtab.cpp +++ b/src/sendtab.cpp @@ -1,6 +1,7 @@ #include "mainwindow.h" #include "ui_mainwindow.h" #include "ui_confirm.h" +#include "ui_memodialog.h" #include "settings.h" #include "rpc.h" #include "utils.h" @@ -238,13 +239,30 @@ void MainWindow::memoButtonClicked(int number) { QString currentMemo = memoTxt->text(); // Ref to see if the button was clicked - bool ok; - QString newMemo = QInputDialog::getText(this, "Memo", - "Please type a memo to include with the amount. The memo will be visible to the recepient", - QLineEdit::Normal, currentMemo, &ok); - if (ok) { - memoTxt->setText(newMemo); + // bool ok; + // QString newMemo = QInputDialog::getText(this, "Memo", + // "Please type a memo to include with the amount. The memo will be visible to the recepient", + // QLineEdit::Normal, currentMemo, &ok); + Ui_MemoDialog memoDialog; + QDialog dialog(this); + memoDialog.setupUi(&dialog); + + QObject::connect(memoDialog.memoTxt, &QLineEdit::textChanged, [=] (QString txt) { + memoDialog.memoSize->setText(QString::number(txt.toUtf8().size()) + "/512"); + + memoDialog.buttonBox->button(QDialogButtonBox::Ok)->setEnabled(txt.toUtf8().size() <= 512); + if (txt.toUtf8().size() > 512) { + memoDialog.memoSize->setStyleSheet("color: red;"); + } else { + memoDialog.memoSize->setStyleSheet(""); + } + }); + memoDialog.memoTxt->setText(currentMemo); + + if (dialog.exec() == QDialog::Accepted) { + memoTxt->setText(memoDialog.memoTxt->text()); } + } void MainWindow::removeExtraAddresses() { diff --git a/src/ui_memodialog.h b/src/ui_memodialog.h new file mode 100644 index 0000000..bd00d49 --- /dev/null +++ b/src/ui_memodialog.h @@ -0,0 +1,90 @@ +/******************************************************************************** +** Form generated from reading UI file 'memodialog.ui' +** +** Created by: Qt User Interface Compiler version 5.11.2 +** +** WARNING! All changes made in this file will be lost when recompiling UI file! +********************************************************************************/ + +#ifndef UI_MEMODIALOG_H +#define UI_MEMODIALOG_H + +#include +#include +#include +#include +#include +#include +#include +#include + +QT_BEGIN_NAMESPACE + +class Ui_MemoDialog +{ +public: + QGridLayout *gridLayout; + QLineEdit *memoTxt; + QLabel *label; + QLabel *memoSize; + QDialogButtonBox *buttonBox; + QSpacerItem *verticalSpacer; + + void setupUi(QDialog *MemoDialog) + { + if (MemoDialog->objectName().isEmpty()) + MemoDialog->setObjectName(QStringLiteral("MemoDialog")); + MemoDialog->resize(618, 115); + gridLayout = new QGridLayout(MemoDialog); + gridLayout->setObjectName(QStringLiteral("gridLayout")); + memoTxt = new QLineEdit(MemoDialog); + memoTxt->setObjectName(QStringLiteral("memoTxt")); + + gridLayout->addWidget(memoTxt, 1, 0, 1, 2); + + label = new QLabel(MemoDialog); + label->setObjectName(QStringLiteral("label")); + + gridLayout->addWidget(label, 0, 0, 1, 1); + + memoSize = new QLabel(MemoDialog); + memoSize->setObjectName(QStringLiteral("memoSize")); + memoSize->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter); + + gridLayout->addWidget(memoSize, 0, 1, 1, 1); + + buttonBox = new QDialogButtonBox(MemoDialog); + buttonBox->setObjectName(QStringLiteral("buttonBox")); + buttonBox->setOrientation(Qt::Horizontal); + buttonBox->setStandardButtons(QDialogButtonBox::Cancel|QDialogButtonBox::Ok); + + gridLayout->addWidget(buttonBox, 3, 0, 1, 2); + + verticalSpacer = new QSpacerItem(20, 40, QSizePolicy::Minimum, QSizePolicy::Expanding); + + gridLayout->addItem(verticalSpacer, 2, 0, 1, 2); + + + retranslateUi(MemoDialog); + QObject::connect(buttonBox, SIGNAL(accepted()), MemoDialog, SLOT(accept())); + QObject::connect(buttonBox, SIGNAL(rejected()), MemoDialog, SLOT(reject())); + + QMetaObject::connectSlotsByName(MemoDialog); + } // setupUi + + void retranslateUi(QDialog *MemoDialog) + { + MemoDialog->setWindowTitle(QApplication::translate("MemoDialog", "Dialog", nullptr)); + label->setText(QApplication::translate("MemoDialog", "Memo", nullptr)); + memoSize->setText(QApplication::translate("MemoDialog", "6 / 512", nullptr)); + } // retranslateUi + +}; + +namespace Ui { + class MemoDialog: public Ui_MemoDialog {}; +} // namespace Ui + +QT_END_NAMESPACE + +#endif // UI_MEMODIALOG_H diff --git a/zec-qt-wallet.pro b/zec-qt-wallet.pro index c483f19..61763b5 100644 --- a/zec-qt-wallet.pro +++ b/zec-qt-wallet.pro @@ -71,7 +71,8 @@ FORMS += \ src/mainwindow.ui \ src/settings.ui \ src/about.ui \ - src/confirm.ui + src/confirm.ui \ + src/memodialog.ui # Default rules for deployment. qnx: target.path = /tmp/$${TARGET}/bin