From 2b406c1ae8f1d2215b6b001767db0b68aeb94265 Mon Sep 17 00:00:00 2001 From: Just Wonder Date: Sat, 4 Apr 2020 19:06:01 -0700 Subject: [PATCH] WIP: worked on keva page. --- src/Makefile.qt.include | 1 + src/qt/bitcoin.qrc | 1 + src/qt/bitcoingui.cpp | 2 +- src/qt/forms/kevadialog.ui | 154 ++++++------------------------------- src/qt/kevadialog.cpp | 28 ++----- src/qt/res/icons/about.png | Bin 7521 -> 7792 bytes src/qt/res/icons/keva.png | Bin 0 -> 6421 bytes 7 files changed, 35 insertions(+), 151 deletions(-) create mode 100644 src/qt/res/icons/keva.png diff --git a/src/Makefile.qt.include b/src/Makefile.qt.include index efc149b0b..27ebd6ebb 100644 --- a/src/Makefile.qt.include +++ b/src/Makefile.qt.include @@ -304,6 +304,7 @@ RES_ICONS = \ qt/res/icons/history.png \ qt/res/icons/info.png \ qt/res/icons/key.png \ + qt/res/icons/keva.png \ qt/res/icons/litecoin_splash.png \ qt/res/icons/lock_closed.png \ qt/res/icons/lock_open.png \ diff --git a/src/qt/bitcoin.qrc b/src/qt/bitcoin.qrc index 5d4cee07c..6aae59014 100644 --- a/src/qt/bitcoin.qrc +++ b/src/qt/bitcoin.qrc @@ -39,6 +39,7 @@ res/icons/lock_closed.png res/icons/lock_open.png res/icons/key.png + res/icons/keva.png res/icons/filesave.png res/icons/debugwindow.png res/icons/open.png diff --git a/src/qt/bitcoingui.cpp b/src/qt/bitcoingui.cpp index 2a07ab6d9..53b34cea7 100644 --- a/src/qt/bitcoingui.cpp +++ b/src/qt/bitcoingui.cpp @@ -313,7 +313,7 @@ void BitcoinGUI::createActions() historyAction->setShortcut(QKeySequence(Qt::ALT + Qt::Key_4)); tabGroup->addAction(historyAction); - kevaAction = new QAction(platformStyle->SingleColorIcon(":/icons/key"), tr("&Keva"), this); + kevaAction = new QAction(platformStyle->SingleColorIcon(":/icons/keva"), tr("&Keva"), this); kevaAction->setStatusTip(tr("Keva related operations")); kevaAction->setToolTip(kevaAction->statusTip()); kevaAction->setCheckable(true); diff --git a/src/qt/forms/kevadialog.ui b/src/qt/forms/kevadialog.ui index 8a986bc19..b172a9c7a 100644 --- a/src/qt/forms/kevadialog.ui +++ b/src/qt/forms/kevadialog.ui @@ -28,38 +28,6 @@ - - - - An optional amount to request. Leave this empty or zero to not request a specific amount. - - - &Amount: - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - reqAmount - - - - - - - An optional message to attach to the payment request, which will be displayed when the request is opened. Note: The message will not be sent with the payment over the Kevacoin network. - - - &Message: - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - reqMessage - - - @@ -70,17 +38,17 @@ - Use this form to request payments. All fields are <b>optional</b>. + Use this form to perform Keva database operations. - An optional label to associate with the new receiving address. + The namespace ID, which has a prefix "N". - &Label: + &Namespace: Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter @@ -90,32 +58,8 @@ - - - - An optional message to attach to the payment request, which will be displayed when the request is opened. Note: The message will not be sent with the payment over the Kevacoin network. - - - - - - - - 150 - 0 - - - - &Request payment - - - - :/icons/receiving_addresses:/icons/receiving_addresses - - - @@ -125,14 +69,14 @@ - Clear all fields of the form. + Show content of the namespace. - Clear + Show content - :/icons/remove:/icons/remove + :/icons/eye:/icons/eye false @@ -140,94 +84,44 @@ - - - Qt::Horizontal - - - - 40 - 20 - - - - - - - - - - - - - - - - - - - - 0 - 0 - - + - 80 + 150 0 - - - 1000 - 100 - - - - An optional amount to request. Leave this empty or zero to not request a specific amount. - - - - - - - - 0 - 0 - - - - - 1000 - 16777215 - - - - Qt::StrongFocus - - - Native segwit addresses (aka Bech32 or BIP-173) reduce your transaction fees later on and offer better protection against typos, but old wallets don't support them. When unchecked, an address compatible with older wallets will be created instead. - - Generate native segwit (Bech32) address + &Previously used namespaces + + + + :/icons/address-book:/icons/address-book - + Qt::Horizontal - 0 - 0 + 40 + 20 + + + + + + + @@ -270,7 +164,7 @@ - Requested payments history + Content of namespace diff --git a/src/qt/kevadialog.cpp b/src/qt/kevadialog.cpp index c9ecaf0aa..0103d980d 100644 --- a/src/qt/kevadialog.cpp +++ b/src/qt/kevadialog.cpp @@ -37,8 +37,8 @@ KevaDialog::KevaDialog(const PlatformStyle *_platformStyle, QWidget *parent) : ui->showRequestButton->setIcon(QIcon()); ui->removeRequestButton->setIcon(QIcon()); } else { - ui->clearButton->setIcon(_platformStyle->SingleColorIcon(":/icons/remove")); - ui->receiveButton->setIcon(_platformStyle->SingleColorIcon(":/icons/receiving_addresses")); + ui->clearButton->setIcon(_platformStyle->SingleColorIcon(":/icons/eye")); + ui->receiveButton->setIcon(_platformStyle->SingleColorIcon(":/icons/address-book")); ui->showRequestButton->setIcon(_platformStyle->SingleColorIcon(":/icons/edit")); ui->removeRequestButton->setIcon(_platformStyle->SingleColorIcon(":/icons/remove")); } @@ -93,12 +93,6 @@ void KevaDialog::setModel(WalletModel *_model) SLOT(recentRequestsView_selectionChanged(QItemSelection, QItemSelection))); // Last 2 columns are set by the columnResizingFixer, when the table geometry is ready. columnResizingFixer = new GUIUtil::TableViewLastColumnResizingFixer(tableView, AMOUNT_MINIMUM_COLUMN_WIDTH, DATE_COLUMN_WIDTH, this); - - if (model->getDefaultAddressType() == OUTPUT_TYPE_BECH32) { - ui->useBech32->setCheckState(Qt::Checked); - } else { - ui->useBech32->setCheckState(Qt::Unchecked); - } } } @@ -109,9 +103,7 @@ KevaDialog::~KevaDialog() void KevaDialog::clear() { - ui->reqAmount->clear(); ui->reqLabel->setText(""); - ui->reqMessage->setText(""); updateDisplayUnit(); } @@ -129,7 +121,6 @@ void KevaDialog::updateDisplayUnit() { if(model && model->getOptionsModel()) { - ui->reqAmount->setDisplayUnit(model->getOptionsModel()->getDisplayUnit()); } } @@ -142,17 +133,14 @@ void KevaDialog::on_receiveButton_clicked() QString label = ui->reqLabel->text(); /* Generate new receiving address */ OutputType address_type; - if (ui->useBech32->isChecked()) { - address_type = OUTPUT_TYPE_BECH32; - } else { - address_type = model->getDefaultAddressType(); - if (address_type == OUTPUT_TYPE_BECH32) { - address_type = OUTPUT_TYPE_P2SH_SEGWIT; - } + address_type = model->getDefaultAddressType(); + if (address_type == OUTPUT_TYPE_BECH32) { + address_type = OUTPUT_TYPE_P2SH_SEGWIT; } + address = model->getAddressTableModel()->addRow(AddressTableModel::Receive, label, "", address_type); SendCoinsRecipient info(address, label, - ui->reqAmount->value(), ui->reqMessage->text()); + NULL, NULL); ReceiveRequestDialog *dialog = new ReceiveRequestDialog(this); dialog->setAttribute(Qt::WA_DeleteOnClose); dialog->setModel(model->getOptionsModel()); @@ -218,7 +206,7 @@ void KevaDialog::keyPressEvent(QKeyEvent *event) if (event->key() == Qt::Key_Return) { // press return -> submit form - if (ui->reqLabel->hasFocus() || ui->reqAmount->hasFocus() || ui->reqMessage->hasFocus()) + if (ui->reqLabel->hasFocus()) { event->ignore(); on_receiveButton_clicked(); diff --git a/src/qt/res/icons/about.png b/src/qt/res/icons/about.png index 473725b76a2d762b033288d446727ddb271f1a42..d034f477c2425a63e77d8b2c4b31e870b81f8478 100644 GIT binary patch literal 7792 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