update QRCodeDialog
- remove unused #include <QDebug> and lblBTC label - update Bitcoin input field to a BitcoinAmountField to allow Bitcoin unit selection - use BitcoinUnits::format for the resulting amount parameter in the generated URI (always use BTC as per BIP21) - move MAX_URI_LENGTH and EXPORT_IMAGE_SIZE to guiconstants.h - add OptionsModel in AddressBookPage and use it in on_showQRCode_clicked() to pass it to QRCodeDialog - add OptionsModel in QRCodeDialog to enable display unit updates - add updateDisplayUnit() slot to be able to imediately update currently set bitcoin unit - make all labels in the UI-file plain text - resize dialog to match for an updated layout (fields are now stacked and new field) - remove unused parameters from private slots - only enable save button, when QR Code was generated - show message when entered amound is invalid - add read-only QPlainTextEdit field to output generated URI
This commit is contained in:
parent
2a919e396d
commit
5c83f797c5
7 changed files with 217 additions and 154 deletions
|
@ -2,6 +2,7 @@
|
||||||
#include "ui_addressbookpage.h"
|
#include "ui_addressbookpage.h"
|
||||||
|
|
||||||
#include "addresstablemodel.h"
|
#include "addresstablemodel.h"
|
||||||
|
#include "optionsmodel.h"
|
||||||
#include "bitcoingui.h"
|
#include "bitcoingui.h"
|
||||||
#include "editaddressdialog.h"
|
#include "editaddressdialog.h"
|
||||||
#include "csvmodelwriter.h"
|
#include "csvmodelwriter.h"
|
||||||
|
@ -20,6 +21,7 @@ AddressBookPage::AddressBookPage(Mode mode, Tabs tab, QWidget *parent) :
|
||||||
QDialog(parent),
|
QDialog(parent),
|
||||||
ui(new Ui::AddressBookPage),
|
ui(new Ui::AddressBookPage),
|
||||||
model(0),
|
model(0),
|
||||||
|
optionsModel(0),
|
||||||
mode(mode),
|
mode(mode),
|
||||||
tab(tab)
|
tab(tab)
|
||||||
{
|
{
|
||||||
|
@ -139,6 +141,11 @@ void AddressBookPage::setModel(AddressTableModel *model)
|
||||||
selectionChanged();
|
selectionChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void AddressBookPage::setOptionsModel(OptionsModel *optionsModel)
|
||||||
|
{
|
||||||
|
this->optionsModel = optionsModel;
|
||||||
|
}
|
||||||
|
|
||||||
void AddressBookPage::on_copyToClipboard_clicked()
|
void AddressBookPage::on_copyToClipboard_clicked()
|
||||||
{
|
{
|
||||||
GUIUtil::copyEntryData(ui->tableView, AddressTableModel::Address);
|
GUIUtil::copyEntryData(ui->tableView, AddressTableModel::Address);
|
||||||
|
@ -314,6 +321,8 @@ void AddressBookPage::on_showQRCode_clicked()
|
||||||
QString address = index.data().toString(), label = index.sibling(index.row(), 0).data(Qt::EditRole).toString();
|
QString address = index.data().toString(), label = index.sibling(index.row(), 0).data(Qt::EditRole).toString();
|
||||||
|
|
||||||
QRCodeDialog *dialog = new QRCodeDialog(address, label, tab == ReceivingTab, this);
|
QRCodeDialog *dialog = new QRCodeDialog(address, label, tab == ReceivingTab, this);
|
||||||
|
if(optionsModel)
|
||||||
|
dialog->setModel(optionsModel);
|
||||||
dialog->setAttribute(Qt::WA_DeleteOnClose);
|
dialog->setAttribute(Qt::WA_DeleteOnClose);
|
||||||
dialog->show();
|
dialog->show();
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,6 +7,7 @@ namespace Ui {
|
||||||
class AddressBookPage;
|
class AddressBookPage;
|
||||||
}
|
}
|
||||||
class AddressTableModel;
|
class AddressTableModel;
|
||||||
|
class OptionsModel;
|
||||||
|
|
||||||
QT_BEGIN_NAMESPACE
|
QT_BEGIN_NAMESPACE
|
||||||
class QTableView;
|
class QTableView;
|
||||||
|
@ -37,6 +38,7 @@ public:
|
||||||
~AddressBookPage();
|
~AddressBookPage();
|
||||||
|
|
||||||
void setModel(AddressTableModel *model);
|
void setModel(AddressTableModel *model);
|
||||||
|
void setOptionsModel(OptionsModel *optionsModel);
|
||||||
const QString &getReturnValue() const { return returnValue; }
|
const QString &getReturnValue() const { return returnValue; }
|
||||||
|
|
||||||
public slots:
|
public slots:
|
||||||
|
@ -46,6 +48,7 @@ public slots:
|
||||||
private:
|
private:
|
||||||
Ui::AddressBookPage *ui;
|
Ui::AddressBookPage *ui;
|
||||||
AddressTableModel *model;
|
AddressTableModel *model;
|
||||||
|
OptionsModel *optionsModel;
|
||||||
Mode mode;
|
Mode mode;
|
||||||
Tabs tab;
|
Tabs tab;
|
||||||
QString returnValue;
|
QString returnValue;
|
||||||
|
|
|
@ -357,6 +357,8 @@ void BitcoinGUI::setClientModel(ClientModel *clientModel)
|
||||||
connect(clientModel, SIGNAL(error(QString,QString,bool)), this, SLOT(error(QString,QString,bool)));
|
connect(clientModel, SIGNAL(error(QString,QString,bool)), this, SLOT(error(QString,QString,bool)));
|
||||||
|
|
||||||
rpcConsole->setClientModel(clientModel);
|
rpcConsole->setClientModel(clientModel);
|
||||||
|
addressBookPage->setOptionsModel(clientModel->getOptionsModel());
|
||||||
|
receiveCoinsPage->setOptionsModel(clientModel->getOptionsModel());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -6,8 +6,8 @@
|
||||||
<rect>
|
<rect>
|
||||||
<x>0</x>
|
<x>0</x>
|
||||||
<y>0</y>
|
<y>0</y>
|
||||||
<width>334</width>
|
<width>340</width>
|
||||||
<height>425</height>
|
<height>530</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
<property name="windowTitle">
|
<property name="windowTitle">
|
||||||
|
@ -28,8 +28,8 @@
|
||||||
<height>300</height>
|
<height>300</height>
|
||||||
</size>
|
</size>
|
||||||
</property>
|
</property>
|
||||||
<property name="text">
|
<property name="textFormat">
|
||||||
<string>QR Code</string>
|
<enum>Qt::PlainText</enum>
|
||||||
</property>
|
</property>
|
||||||
<property name="alignment">
|
<property name="alignment">
|
||||||
<set>Qt::AlignCenter</set>
|
<set>Qt::AlignCenter</set>
|
||||||
|
@ -39,13 +39,31 @@
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QPlainTextEdit" name="outUri">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Expanding" vsizetype="Minimum">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="minimumSize">
|
||||||
|
<size>
|
||||||
|
<width>0</width>
|
||||||
|
<height>50</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="tabChangesFocus">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
<property name="textInteractionFlags">
|
||||||
|
<set>Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse</set>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<widget class="QWidget" name="widget" native="true">
|
<widget class="QWidget" name="widget" native="true">
|
||||||
<layout class="QVBoxLayout" name="verticalLayout_2">
|
<layout class="QVBoxLayout" name="verticalLayout_2">
|
||||||
<item>
|
|
||||||
<layout class="QHBoxLayout" name="horizontalLayout_2">
|
|
||||||
<item>
|
|
||||||
<layout class="QVBoxLayout" name="verticalLayout">
|
|
||||||
<item>
|
<item>
|
||||||
<widget class="QCheckBox" name="chkReqPayment">
|
<widget class="QCheckBox" name="chkReqPayment">
|
||||||
<property name="enabled">
|
<property name="enabled">
|
||||||
|
@ -57,8 +75,49 @@
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<layout class="QHBoxLayout" name="horizontalLayout">
|
<layout class="QFormLayout" name="formLayout">
|
||||||
<item>
|
<property name="fieldGrowthPolicy">
|
||||||
|
<enum>QFormLayout::AllNonFixedFieldsGrow</enum>
|
||||||
|
</property>
|
||||||
|
<item row="1" column="0">
|
||||||
|
<widget class="QLabel" name="lblLabel">
|
||||||
|
<property name="text">
|
||||||
|
<string>Label:</string>
|
||||||
|
</property>
|
||||||
|
<property name="textFormat">
|
||||||
|
<enum>Qt::PlainText</enum>
|
||||||
|
</property>
|
||||||
|
<property name="alignment">
|
||||||
|
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||||
|
</property>
|
||||||
|
<property name="buddy">
|
||||||
|
<cstring>lnLabel</cstring>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="1">
|
||||||
|
<widget class="QLineEdit" name="lnLabel"/>
|
||||||
|
</item>
|
||||||
|
<item row="2" column="0">
|
||||||
|
<widget class="QLabel" name="lblMessage">
|
||||||
|
<property name="text">
|
||||||
|
<string>Message:</string>
|
||||||
|
</property>
|
||||||
|
<property name="textFormat">
|
||||||
|
<enum>Qt::PlainText</enum>
|
||||||
|
</property>
|
||||||
|
<property name="alignment">
|
||||||
|
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||||
|
</property>
|
||||||
|
<property name="buddy">
|
||||||
|
<cstring>lnMessage</cstring>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="2" column="1">
|
||||||
|
<widget class="QLineEdit" name="lnMessage"/>
|
||||||
|
</item>
|
||||||
|
<item row="0" column="0">
|
||||||
<widget class="QLabel" name="lblAmount">
|
<widget class="QLabel" name="lblAmount">
|
||||||
<property name="sizePolicy">
|
<property name="sizePolicy">
|
||||||
<sizepolicy hsizetype="Preferred" vsizetype="Maximum">
|
<sizepolicy hsizetype="Preferred" vsizetype="Maximum">
|
||||||
|
@ -69,6 +128,9 @@
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Amount:</string>
|
<string>Amount:</string>
|
||||||
</property>
|
</property>
|
||||||
|
<property name="textFormat">
|
||||||
|
<enum>Qt::PlainText</enum>
|
||||||
|
</property>
|
||||||
<property name="alignment">
|
<property name="alignment">
|
||||||
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||||
</property>
|
</property>
|
||||||
|
@ -77,85 +139,14 @@
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item row="0" column="1">
|
||||||
<widget class="QLineEdit" name="lnReqAmount">
|
<widget class="BitcoinAmountField" name="lnReqAmount">
|
||||||
<property name="enabled">
|
<property name="enabled">
|
||||||
<bool>false</bool>
|
<bool>false</bool>
|
||||||
</property>
|
</property>
|
||||||
<property name="minimumSize">
|
<property name="minimumSize">
|
||||||
<size>
|
<size>
|
||||||
<width>60</width>
|
<width>80</width>
|
||||||
<height>0</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
|
||||||
<property name="alignment">
|
|
||||||
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<widget class="QLabel" name="lblBTC">
|
|
||||||
<property name="sizePolicy">
|
|
||||||
<sizepolicy hsizetype="Preferred" vsizetype="Maximum">
|
|
||||||
<horstretch>0</horstretch>
|
|
||||||
<verstretch>0</verstretch>
|
|
||||||
</sizepolicy>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>BTC</string>
|
|
||||||
</property>
|
|
||||||
<property name="buddy">
|
|
||||||
<cstring>lnReqAmount</cstring>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<layout class="QGridLayout" name="gridLayout">
|
|
||||||
<item row="0" column="0">
|
|
||||||
<widget class="QLabel" name="lblLabel">
|
|
||||||
<property name="text">
|
|
||||||
<string>Label:</string>
|
|
||||||
</property>
|
|
||||||
<property name="alignment">
|
|
||||||
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
|
||||||
</property>
|
|
||||||
<property name="buddy">
|
|
||||||
<cstring>lnLabel</cstring>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="0" column="1">
|
|
||||||
<widget class="QLineEdit" name="lnLabel">
|
|
||||||
<property name="minimumSize">
|
|
||||||
<size>
|
|
||||||
<width>100</width>
|
|
||||||
<height>0</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="1" column="0">
|
|
||||||
<widget class="QLabel" name="lblMessage">
|
|
||||||
<property name="text">
|
|
||||||
<string>Message:</string>
|
|
||||||
</property>
|
|
||||||
<property name="alignment">
|
|
||||||
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
|
||||||
</property>
|
|
||||||
<property name="buddy">
|
|
||||||
<cstring>lnMessage</cstring>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="1" column="1">
|
|
||||||
<widget class="QLineEdit" name="lnMessage">
|
|
||||||
<property name="minimumSize">
|
|
||||||
<size>
|
|
||||||
<width>100</width>
|
|
||||||
<height>0</height>
|
<height>0</height>
|
||||||
</size>
|
</size>
|
||||||
</property>
|
</property>
|
||||||
|
@ -163,10 +154,8 @@
|
||||||
</item>
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
</item>
|
</item>
|
||||||
</layout>
|
|
||||||
</item>
|
|
||||||
<item>
|
<item>
|
||||||
<layout class="QHBoxLayout" name="horizontalLayout_3">
|
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||||
<item>
|
<item>
|
||||||
<spacer name="horizontalSpacer">
|
<spacer name="horizontalSpacer">
|
||||||
<property name="orientation">
|
<property name="orientation">
|
||||||
|
@ -194,6 +183,13 @@
|
||||||
</item>
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
</widget>
|
</widget>
|
||||||
|
<customwidgets>
|
||||||
|
<customwidget>
|
||||||
|
<class>BitcoinAmountField</class>
|
||||||
|
<extends>QSpinBox</extends>
|
||||||
|
<header>bitcoinamountfield.h</header>
|
||||||
|
</customwidget>
|
||||||
|
</customwidgets>
|
||||||
<resources/>
|
<resources/>
|
||||||
<connections>
|
<connections>
|
||||||
<connection>
|
<connection>
|
||||||
|
|
|
@ -25,4 +25,10 @@ static const int STATUSBAR_ICONSIZE = 16;
|
||||||
*/
|
*/
|
||||||
static const int TOOLTIP_WRAP_THRESHOLD = 80;
|
static const int TOOLTIP_WRAP_THRESHOLD = 80;
|
||||||
|
|
||||||
|
/* Maximum allowed URI length */
|
||||||
|
static const int MAX_URI_LENGTH = 255;
|
||||||
|
|
||||||
|
/* QRCodeDialog -- size of exported QR Code image */
|
||||||
|
#define EXPORT_IMAGE_SIZE 256
|
||||||
|
|
||||||
#endif // GUICONSTANTS_H
|
#endif // GUICONSTANTS_H
|
||||||
|
|
|
@ -1,28 +1,34 @@
|
||||||
#include "qrcodedialog.h"
|
#include "qrcodedialog.h"
|
||||||
#include "ui_qrcodedialog.h"
|
#include "ui_qrcodedialog.h"
|
||||||
|
|
||||||
|
#include "bitcoinunits.h"
|
||||||
|
#include "guiconstants.h"
|
||||||
#include "guiutil.h"
|
#include "guiutil.h"
|
||||||
|
#include "optionsmodel.h"
|
||||||
|
|
||||||
#include <QPixmap>
|
#include <QPixmap>
|
||||||
#include <QUrl>
|
#include <QUrl>
|
||||||
#include <QDebug>
|
|
||||||
|
|
||||||
#include <qrencode.h>
|
#include <qrencode.h>
|
||||||
|
|
||||||
#define EXPORT_IMAGE_SIZE 256
|
|
||||||
|
|
||||||
QRCodeDialog::QRCodeDialog(const QString &addr, const QString &label, bool enableReq, QWidget *parent) :
|
QRCodeDialog::QRCodeDialog(const QString &addr, const QString &label, bool enableReq, QWidget *parent) :
|
||||||
QDialog(parent), ui(new Ui::QRCodeDialog), address(addr)
|
QDialog(parent),
|
||||||
|
ui(new Ui::QRCodeDialog),
|
||||||
|
model(0),
|
||||||
|
address(addr)
|
||||||
{
|
{
|
||||||
ui->setupUi(this);
|
ui->setupUi(this);
|
||||||
|
|
||||||
setWindowTitle(QString("%1").arg(address));
|
setWindowTitle(QString("%1").arg(address));
|
||||||
|
|
||||||
ui->chkReqPayment->setVisible(enableReq);
|
ui->chkReqPayment->setVisible(enableReq);
|
||||||
ui->lnReqAmount->setVisible(enableReq);
|
|
||||||
ui->lblAmount->setVisible(enableReq);
|
ui->lblAmount->setVisible(enableReq);
|
||||||
ui->lblBTC->setVisible(enableReq);
|
ui->lnReqAmount->setVisible(enableReq);
|
||||||
|
|
||||||
ui->lnLabel->setText(label);
|
ui->lnLabel->setText(label);
|
||||||
|
|
||||||
|
ui->btnSaveAs->setEnabled(false);
|
||||||
|
|
||||||
genCode();
|
genCode();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -31,6 +37,17 @@ QRCodeDialog::~QRCodeDialog()
|
||||||
delete ui;
|
delete ui;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void QRCodeDialog::setModel(OptionsModel *model)
|
||||||
|
{
|
||||||
|
this->model = model;
|
||||||
|
|
||||||
|
if (model)
|
||||||
|
connect(model, SIGNAL(displayUnitChanged(int)), this, SLOT(updateDisplayUnit()));
|
||||||
|
|
||||||
|
// update the display unit, to not use the default ("BTC")
|
||||||
|
updateDisplayUnit();
|
||||||
|
}
|
||||||
|
|
||||||
void QRCodeDialog::genCode()
|
void QRCodeDialog::genCode()
|
||||||
{
|
{
|
||||||
QString uri = getURI();
|
QString uri = getURI();
|
||||||
|
@ -57,26 +74,34 @@ void QRCodeDialog::genCode()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
QRcode_free(code);
|
QRcode_free(code);
|
||||||
|
|
||||||
ui->lblQRCode->setPixmap(QPixmap::fromImage(myImage).scaled(300, 300));
|
ui->lblQRCode->setPixmap(QPixmap::fromImage(myImage).scaled(300, 300));
|
||||||
|
|
||||||
|
ui->outUri->setPlainText(uri);
|
||||||
}
|
}
|
||||||
else
|
|
||||||
ui->lblQRCode->setText(tr("Resulting URI too long, try to reduce the text for label / message."));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
QString QRCodeDialog::getURI()
|
QString QRCodeDialog::getURI()
|
||||||
{
|
{
|
||||||
QString ret = QString("bitcoin:%1").arg(address);
|
QString ret = QString("bitcoin:%1").arg(address);
|
||||||
|
|
||||||
int paramCount = 0;
|
int paramCount = 0;
|
||||||
if (ui->chkReqPayment->isChecked() && !ui->lnReqAmount->text().isEmpty())
|
|
||||||
|
ui->outUri->clear();
|
||||||
|
|
||||||
|
if (ui->chkReqPayment->isChecked())
|
||||||
{
|
{
|
||||||
bool ok = false;
|
if (ui->lnReqAmount->validate())
|
||||||
ui->lnReqAmount->text().toDouble(&ok);
|
|
||||||
if (ok)
|
|
||||||
{
|
{
|
||||||
ret += QString("?amount=%1").arg(ui->lnReqAmount->text());
|
// even if we allow a non BTC unit input in lnReqAmount, we generate the URI with BTC as unit (as defined in BIP21)
|
||||||
|
ret += QString("?amount=%1").arg(BitcoinUnits::format(BitcoinUnits::BTC, ui->lnReqAmount->value()));
|
||||||
paramCount++;
|
paramCount++;
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
ui->btnSaveAs->setEnabled(false);
|
||||||
|
ui->lblQRCode->setText(tr("The entered amount is invalid, please check."));
|
||||||
|
return QString("");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!ui->lnLabel->text().isEmpty())
|
if (!ui->lnLabel->text().isEmpty())
|
||||||
|
@ -93,24 +118,29 @@ QString QRCodeDialog::getURI()
|
||||||
paramCount++;
|
paramCount++;
|
||||||
}
|
}
|
||||||
|
|
||||||
// limit URI length to 255 chars, to prevent a DoS against the QR-Code dialog
|
// limit URI length to prevent a DoS against the QR-Code dialog
|
||||||
if (ret.length() < 256)
|
if (ret.length() > MAX_URI_LENGTH)
|
||||||
return ret;
|
{
|
||||||
else
|
ui->btnSaveAs->setEnabled(false);
|
||||||
|
ui->lblQRCode->setText(tr("Resulting URI too long, try to reduce the text for label / message."));
|
||||||
return QString("");
|
return QString("");
|
||||||
}
|
}
|
||||||
|
|
||||||
void QRCodeDialog::on_lnReqAmount_textChanged(const QString &arg1)
|
ui->btnSaveAs->setEnabled(true);
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
void QRCodeDialog::on_lnReqAmount_textChanged()
|
||||||
{
|
{
|
||||||
genCode();
|
genCode();
|
||||||
}
|
}
|
||||||
|
|
||||||
void QRCodeDialog::on_lnLabel_textChanged(const QString &arg1)
|
void QRCodeDialog::on_lnLabel_textChanged()
|
||||||
{
|
{
|
||||||
genCode();
|
genCode();
|
||||||
}
|
}
|
||||||
|
|
||||||
void QRCodeDialog::on_lnMessage_textChanged(const QString &arg1)
|
void QRCodeDialog::on_lnMessage_textChanged()
|
||||||
{
|
{
|
||||||
genCode();
|
genCode();
|
||||||
}
|
}
|
||||||
|
@ -122,7 +152,20 @@ void QRCodeDialog::on_btnSaveAs_clicked()
|
||||||
myImage.scaled(EXPORT_IMAGE_SIZE, EXPORT_IMAGE_SIZE).save(fn);
|
myImage.scaled(EXPORT_IMAGE_SIZE, EXPORT_IMAGE_SIZE).save(fn);
|
||||||
}
|
}
|
||||||
|
|
||||||
void QRCodeDialog::on_chkReqPayment_toggled(bool)
|
void QRCodeDialog::on_chkReqPayment_toggled(bool fChecked)
|
||||||
{
|
{
|
||||||
|
if (!fChecked)
|
||||||
|
// if chkReqPayment is not active, don't display lnReqAmount as invalid
|
||||||
|
ui->lnReqAmount->setValid(true);
|
||||||
|
|
||||||
genCode();
|
genCode();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void QRCodeDialog::updateDisplayUnit()
|
||||||
|
{
|
||||||
|
if (model)
|
||||||
|
{
|
||||||
|
// Update lnReqAmount with the current unit
|
||||||
|
ui->lnReqAmount->setDisplayUnit(model->getDisplayUnit());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -7,6 +7,7 @@
|
||||||
namespace Ui {
|
namespace Ui {
|
||||||
class QRCodeDialog;
|
class QRCodeDialog;
|
||||||
}
|
}
|
||||||
|
class OptionsModel;
|
||||||
|
|
||||||
class QRCodeDialog : public QDialog
|
class QRCodeDialog : public QDialog
|
||||||
{
|
{
|
||||||
|
@ -16,22 +17,25 @@ public:
|
||||||
explicit QRCodeDialog(const QString &addr, const QString &label, bool enableReq, QWidget *parent = 0);
|
explicit QRCodeDialog(const QString &addr, const QString &label, bool enableReq, QWidget *parent = 0);
|
||||||
~QRCodeDialog();
|
~QRCodeDialog();
|
||||||
|
|
||||||
private slots:
|
void setModel(OptionsModel *model);
|
||||||
void on_lnReqAmount_textChanged(const QString &arg1);
|
|
||||||
void on_lnLabel_textChanged(const QString &arg1);
|
|
||||||
void on_lnMessage_textChanged(const QString &arg1);
|
|
||||||
void on_btnSaveAs_clicked();
|
|
||||||
|
|
||||||
void on_chkReqPayment_toggled(bool checked);
|
private slots:
|
||||||
|
void on_lnReqAmount_textChanged();
|
||||||
|
void on_lnLabel_textChanged();
|
||||||
|
void on_lnMessage_textChanged();
|
||||||
|
void on_btnSaveAs_clicked();
|
||||||
|
void on_chkReqPayment_toggled(bool fChecked);
|
||||||
|
|
||||||
|
void updateDisplayUnit();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
Ui::QRCodeDialog *ui;
|
Ui::QRCodeDialog *ui;
|
||||||
|
OptionsModel *model;
|
||||||
|
QString address;
|
||||||
QImage myImage;
|
QImage myImage;
|
||||||
|
|
||||||
QString getURI();
|
|
||||||
QString address;
|
|
||||||
|
|
||||||
void genCode();
|
void genCode();
|
||||||
|
QString getURI();
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // QRCODEDIALOG_H
|
#endif // QRCODEDIALOG_H
|
||||||
|
|
Loading…
Reference in a new issue