mirror of
https://github.com/Retropex/bitcoin.git
synced 2025-05-12 19:20:42 +02:00
Merge gui_payreq_textedit
This commit is contained in:
commit
b487f357bb
@ -6,17 +6,14 @@
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>413</width>
|
||||
<height>229</height>
|
||||
<width>487</width>
|
||||
<height>597</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>Request payment to …</string>
|
||||
</property>
|
||||
<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">
|
||||
<widget class="QRImageWidget" name="qr_code">
|
||||
<property name="text">
|
||||
|
@ -12,7 +12,9 @@
|
||||
#include <qt/walletmodel.h>
|
||||
|
||||
#include <QDialog>
|
||||
#include <QLayoutItem>
|
||||
#include <QString>
|
||||
#include <QTextEdit>
|
||||
|
||||
#include <config/bitcoin-config.h> // IWYU pragma: keep
|
||||
|
||||
@ -21,14 +23,62 @@ ReceiveRequestDialog::ReceiveRequestDialog(QWidget* parent)
|
||||
ui(new Ui::ReceiveRequestDialog)
|
||||
{
|
||||
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);
|
||||
}
|
||||
|
||||
ReceiveRequestDialog::~ReceiveRequestDialog()
|
||||
{
|
||||
for (auto& widget : m_info_grid) {
|
||||
delete widget;
|
||||
}
|
||||
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)
|
||||
{
|
||||
this->model = _model;
|
||||
@ -90,6 +140,8 @@ void ReceiveRequestDialog::setInfo(const SendCoinsRecipient &_info)
|
||||
ui->wallet_content->hide();
|
||||
}
|
||||
|
||||
updateInfoWidget();
|
||||
|
||||
ui->btnVerify->setVisible(model->wallet().hasExternalSigner());
|
||||
|
||||
connect(ui->btnVerify, &QPushButton::clicked, [this] {
|
||||
@ -101,6 +153,7 @@ void ReceiveRequestDialog::updateDisplayUnit()
|
||||
{
|
||||
if (!model) return;
|
||||
ui->amount_content->setText(BitcoinUnits::formatWithUnit(model->getOptionsModel()->getDisplayUnit(), info.amount));
|
||||
updateInfoWidget();
|
||||
}
|
||||
|
||||
void ReceiveRequestDialog::on_btnCopyURI_clicked()
|
||||
|
@ -8,6 +8,9 @@
|
||||
#include <qt/sendcoinsrecipient.h>
|
||||
|
||||
#include <QDialog>
|
||||
#include <QList>
|
||||
#include <QTextEdit>
|
||||
#include <QWidget>
|
||||
|
||||
class WalletModel;
|
||||
|
||||
@ -33,6 +36,9 @@ private Q_SLOTS:
|
||||
|
||||
private:
|
||||
Ui::ReceiveRequestDialog *ui;
|
||||
void updateInfoWidget();
|
||||
QTextEdit *m_info_widget;
|
||||
QList<QWidget*> m_info_grid;
|
||||
WalletModel* model{nullptr};
|
||||
SendCoinsRecipient info;
|
||||
};
|
||||
|
Loading…
Reference in New Issue
Block a user