mirror of
https://github.com/Retropex/bitcoin.git
synced 2025-05-13 11:40:42 +02:00
Merge gui_payreq_textedit
This commit is contained in:
commit
b487f357bb
@ -6,17 +6,14 @@
|
|||||||
<rect>
|
<rect>
|
||||||
<x>0</x>
|
<x>0</x>
|
||||||
<y>0</y>
|
<y>0</y>
|
||||||
<width>413</width>
|
<width>487</width>
|
||||||
<height>229</height>
|
<height>597</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
<property name="windowTitle">
|
<property name="windowTitle">
|
||||||
<string>Request payment to …</string>
|
<string>Request payment to …</string>
|
||||||
</property>
|
</property>
|
||||||
<layout class="QGridLayout" name="gridLayout" columnstretch="0,1">
|
<layout class="QGridLayout" name="gridLayout" columnstretch="0,1">
|
||||||
<property name="sizeConstraint">
|
|
||||||
<enum>QLayout::SetFixedSize</enum>
|
|
||||||
</property>
|
|
||||||
<item row="0" column="0" colspan="2" alignment="Qt::AlignHCenter">
|
<item row="0" column="0" colspan="2" alignment="Qt::AlignHCenter">
|
||||||
<widget class="QRImageWidget" name="qr_code">
|
<widget class="QRImageWidget" name="qr_code">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
|
@ -12,7 +12,9 @@
|
|||||||
#include <qt/walletmodel.h>
|
#include <qt/walletmodel.h>
|
||||||
|
|
||||||
#include <QDialog>
|
#include <QDialog>
|
||||||
|
#include <QLayoutItem>
|
||||||
#include <QString>
|
#include <QString>
|
||||||
|
#include <QTextEdit>
|
||||||
|
|
||||||
#include <config/bitcoin-config.h> // IWYU pragma: keep
|
#include <config/bitcoin-config.h> // IWYU pragma: keep
|
||||||
|
|
||||||
@ -21,14 +23,62 @@ ReceiveRequestDialog::ReceiveRequestDialog(QWidget* parent)
|
|||||||
ui(new Ui::ReceiveRequestDialog)
|
ui(new Ui::ReceiveRequestDialog)
|
||||||
{
|
{
|
||||||
ui->setupUi(this);
|
ui->setupUi(this);
|
||||||
|
|
||||||
|
while (QLayoutItem * const child = ui->gridLayout->itemAt(1)) {
|
||||||
|
if (child == ui->horizontalLayout) break; // stop at buttons
|
||||||
|
ui->gridLayout->removeItem(child);
|
||||||
|
auto child_widget = child->widget();
|
||||||
|
// NOTE: Unparenting causes isHidden to be unconditionally true, so just make it sizeless and exclude it from the layout
|
||||||
|
child_widget->setMaximumSize(0, 0);
|
||||||
|
m_info_grid.append(child_widget);
|
||||||
|
delete child;
|
||||||
|
}
|
||||||
|
m_info_widget = new QTextEdit(this);
|
||||||
|
m_info_widget->setMinimumSize(0, 50);
|
||||||
|
m_info_widget->setFrameShape(QFrame::NoFrame);
|
||||||
|
m_info_widget->setFrameShadow(QFrame::Plain);
|
||||||
|
m_info_widget->setTabChangesFocus(true);
|
||||||
|
m_info_widget->setTextInteractionFlags(Qt::TextSelectableByKeyboard | Qt::TextSelectableByMouse);
|
||||||
|
ui->gridLayout->addWidget(m_info_widget, 1, 0, 1, 2);
|
||||||
|
|
||||||
GUIUtil::handleCloseWindowShortcut(this);
|
GUIUtil::handleCloseWindowShortcut(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
ReceiveRequestDialog::~ReceiveRequestDialog()
|
ReceiveRequestDialog::~ReceiveRequestDialog()
|
||||||
{
|
{
|
||||||
|
for (auto& widget : m_info_grid) {
|
||||||
|
delete widget;
|
||||||
|
}
|
||||||
delete ui;
|
delete ui;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ReceiveRequestDialog::updateInfoWidget()
|
||||||
|
{
|
||||||
|
QString html;
|
||||||
|
html += "<html><font face='verdana, arial, helvetica, sans-serif'>";
|
||||||
|
int i = 0;
|
||||||
|
for (auto& widget : m_info_grid) {
|
||||||
|
++i;
|
||||||
|
QLabel * const label = dynamic_cast<QLabel*>(widget);
|
||||||
|
assert(label);
|
||||||
|
QString text = label->text();
|
||||||
|
|
||||||
|
if (!label->isHidden()) {
|
||||||
|
if (i == 1) {
|
||||||
|
html += "<b>" + text + "</b><br>";
|
||||||
|
} else if (i % 2 == 0) {
|
||||||
|
assert(text.endsWith(":"));
|
||||||
|
text.chop(1);
|
||||||
|
html += "<b>" + text + "</b>: ";
|
||||||
|
} else {
|
||||||
|
html += text + "<br>";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
html += "</font></html>";
|
||||||
|
m_info_widget->setText(html);
|
||||||
|
}
|
||||||
|
|
||||||
void ReceiveRequestDialog::setModel(WalletModel *_model)
|
void ReceiveRequestDialog::setModel(WalletModel *_model)
|
||||||
{
|
{
|
||||||
this->model = _model;
|
this->model = _model;
|
||||||
@ -90,6 +140,8 @@ void ReceiveRequestDialog::setInfo(const SendCoinsRecipient &_info)
|
|||||||
ui->wallet_content->hide();
|
ui->wallet_content->hide();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
updateInfoWidget();
|
||||||
|
|
||||||
ui->btnVerify->setVisible(model->wallet().hasExternalSigner());
|
ui->btnVerify->setVisible(model->wallet().hasExternalSigner());
|
||||||
|
|
||||||
connect(ui->btnVerify, &QPushButton::clicked, [this] {
|
connect(ui->btnVerify, &QPushButton::clicked, [this] {
|
||||||
@ -101,6 +153,7 @@ void ReceiveRequestDialog::updateDisplayUnit()
|
|||||||
{
|
{
|
||||||
if (!model) return;
|
if (!model) return;
|
||||||
ui->amount_content->setText(BitcoinUnits::formatWithUnit(model->getOptionsModel()->getDisplayUnit(), info.amount));
|
ui->amount_content->setText(BitcoinUnits::formatWithUnit(model->getOptionsModel()->getDisplayUnit(), info.amount));
|
||||||
|
updateInfoWidget();
|
||||||
}
|
}
|
||||||
|
|
||||||
void ReceiveRequestDialog::on_btnCopyURI_clicked()
|
void ReceiveRequestDialog::on_btnCopyURI_clicked()
|
||||||
|
@ -8,6 +8,9 @@
|
|||||||
#include <qt/sendcoinsrecipient.h>
|
#include <qt/sendcoinsrecipient.h>
|
||||||
|
|
||||||
#include <QDialog>
|
#include <QDialog>
|
||||||
|
#include <QList>
|
||||||
|
#include <QTextEdit>
|
||||||
|
#include <QWidget>
|
||||||
|
|
||||||
class WalletModel;
|
class WalletModel;
|
||||||
|
|
||||||
@ -33,6 +36,9 @@ private Q_SLOTS:
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
Ui::ReceiveRequestDialog *ui;
|
Ui::ReceiveRequestDialog *ui;
|
||||||
|
void updateInfoWidget();
|
||||||
|
QTextEdit *m_info_widget;
|
||||||
|
QList<QWidget*> m_info_grid;
|
||||||
WalletModel* model{nullptr};
|
WalletModel* model{nullptr};
|
||||||
SendCoinsRecipient info;
|
SendCoinsRecipient info;
|
||||||
};
|
};
|
||||||
|
Loading…
Reference in New Issue
Block a user