mirror of
https://github.com/wownero/wowlet.git
synced 2026-10-29 20:28:53 +01:00
TxConfAdv: remove unlock time, add fiat amounts, make description editable
This commit is contained in:
@@ -7,6 +7,7 @@
|
||||
#include <QFileDialog>
|
||||
#include <QMessageBox>
|
||||
|
||||
#include "constants.h"
|
||||
#include "dialog/QrCodeDialog.h"
|
||||
#include "libwalletqt/Input.h"
|
||||
#include "libwalletqt/Transfer.h"
|
||||
@@ -35,12 +36,16 @@ TxConfAdvDialog::TxConfAdvDialog(QSharedPointer<AppContext> ctx, const QString &
|
||||
m_exportTxKeyMenu->addAction("Copy to clipboard", this, &TxConfAdvDialog::txKeyCopy);
|
||||
ui->btn_exportTxKey->setMenu(m_exportTxKeyMenu);
|
||||
|
||||
ui->label_description->setText(QString("Description: %1").arg(description));
|
||||
ui->line_description->setText(description);
|
||||
|
||||
connect(ui->btn_sign, &QPushButton::clicked, this, &TxConfAdvDialog::signTransaction);
|
||||
connect(ui->btn_send, &QPushButton::clicked, this, &TxConfAdvDialog::broadcastTransaction);
|
||||
connect(ui->btn_close, &QPushButton::clicked, this, &TxConfAdvDialog::closeDialog);
|
||||
|
||||
ui->amount->setFont(ModelUtils::getMonospaceFont());
|
||||
ui->fee->setFont(ModelUtils::getMonospaceFont());
|
||||
ui->total->setFont(ModelUtils::getMonospaceFont());
|
||||
|
||||
ui->inputs->setFont(ModelUtils::getMonospaceFont());
|
||||
ui->outputs->setFont(ModelUtils::getMonospaceFont());
|
||||
|
||||
@@ -64,11 +69,10 @@ void TxConfAdvDialog::setTransaction(PendingTransaction *tx, bool isSigned) {
|
||||
ui->btn_exportTxKey->hide();
|
||||
}
|
||||
|
||||
ui->txid->setText(tx->txid().first());
|
||||
m_txid = tx->txid().first();
|
||||
ui->txid->setText(m_txid);
|
||||
|
||||
ui->amount->setText(WalletManager::displayAmount(tx->amount()));
|
||||
ui->fee->setText(WalletManager::displayAmount(ptx->fee()));
|
||||
ui->total->setText(WalletManager::displayAmount(tx->amount() + ptx->fee()));
|
||||
this->setAmounts(tx->amount(), tx->fee());
|
||||
|
||||
auto size_str = [this, isSigned]{
|
||||
if (isSigned) {
|
||||
@@ -97,14 +101,38 @@ void TxConfAdvDialog::setUnsignedTransaction(UnsignedTransaction *utx) {
|
||||
ui->txid->setText("n/a");
|
||||
ui->label_size->setText("Size: n/a");
|
||||
|
||||
ui->amount->setText(WalletManager::displayAmount(utx->amount(0)));
|
||||
ui->fee->setText(WalletManager::displayAmount(utx->fee(0)));
|
||||
ui->total->setText(WalletManager::displayAmount(utx->amount(0) + utx->fee(0)));
|
||||
this->setAmounts(utx->amount(0), utx->fee(0));
|
||||
|
||||
ConstructionInfo *ci = m_utx->constructionInfo(0);
|
||||
this->setupConstructionData(ci);
|
||||
}
|
||||
|
||||
void TxConfAdvDialog::setAmounts(quint64 amount, quint64 fee) {
|
||||
QString preferredCur = config()->get(Config::preferredFiatCurrency).toString();
|
||||
|
||||
auto convert = [preferredCur](double amount){
|
||||
return QString::number(appData()->prices.convert("XMR", preferredCur, amount), 'f', 2);
|
||||
};
|
||||
|
||||
QString amount_str = WalletManager::displayAmount(amount);
|
||||
QString fee_str = WalletManager::displayAmount(fee);
|
||||
QString total = WalletManager::displayAmount(amount + fee);
|
||||
QVector<QString> amounts = {amount_str, fee_str, total};
|
||||
int maxLength = Utils::maxLength(amounts);
|
||||
std::for_each(amounts.begin(), amounts.end(), [maxLength](QString& amount){amount = amount.rightJustified(maxLength, ' ');});
|
||||
|
||||
QString amount_fiat = convert(amount / constants::cdiv);
|
||||
QString fee_fiat = convert(fee / constants::cdiv);
|
||||
QString total_fiat = convert((amount + fee) / constants::cdiv);
|
||||
QVector<QString> amounts_fiat = {amount_fiat, fee_fiat, total_fiat};
|
||||
int maxLengthFiat = Utils::maxLength(amounts_fiat);
|
||||
std::for_each(amounts_fiat.begin(), amounts_fiat.end(), [maxLengthFiat](QString& amount){amount = amount.rightJustified(maxLengthFiat, ' ');});
|
||||
|
||||
ui->amount->setText(QString("%1 (%2 %3)").arg(amounts[0], amounts_fiat[0], preferredCur));
|
||||
ui->fee->setText(QString("%1 (%2 %3)").arg(amounts[1], amounts_fiat[1], preferredCur));
|
||||
ui->total->setText(QString("%1 (%2 %3)").arg(amounts[2], amounts_fiat[2], preferredCur));
|
||||
}
|
||||
|
||||
void TxConfAdvDialog::setupConstructionData(ConstructionInfo *ci) {
|
||||
QString inputs_str;
|
||||
auto inputs = ci->inputs();
|
||||
@@ -128,7 +156,6 @@ void TxConfAdvDialog::setupConstructionData(ConstructionInfo *ci) {
|
||||
ui->label_outputs->setText(QString("Outputs (%1)").arg(QString::number(outputs.size())));
|
||||
|
||||
ui->label_ringSize->setText(QString("Ring size: %1").arg(QString::number(ci->minMixinCount() + 1)));
|
||||
ui->label_unlockTime->setText(QString("Unlock time: %1 (height)").arg(QString::number(ci->unlockTime())));
|
||||
}
|
||||
|
||||
void TxConfAdvDialog::signTransaction() {
|
||||
@@ -186,7 +213,7 @@ void TxConfAdvDialog::signedQrCode() {
|
||||
|
||||
void TxConfAdvDialog::broadcastTransaction() {
|
||||
if (m_tx == nullptr) return;
|
||||
m_ctx->commitTransaction(m_tx);
|
||||
m_ctx->commitTransaction(m_tx, ui->line_description->text());
|
||||
QDialog::accept();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user