Browse Source

Custom fees

import_zecw
Aditya Kulkarni 6 years ago
parent
commit
448b2ceca8
  1. 16
      src/mainwindow.ui
  2. 2
      src/rpc.cpp
  3. 32
      src/sendtab.cpp
  4. 12
      src/settings.cpp
  5. 1
      src/settings.h

16
src/mainwindow.ui

@ -503,23 +503,29 @@
<item>
<layout class="QHBoxLayout" name="horizontalLayout_6">
<item>
<widget class="QLabel" name="label_7">
<widget class="QLabel" name="minerFeeLabel">
<property name="text">
<string>Miner Fee:</string>
<string>Miner Fee</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="lblMinerFee">
<widget class="QLineEdit" name="minerFeeAmt">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>TextLabel</string>
<string>0</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="lblMinerFeeUSD">
<property name="text">
<string>TextLabel</string>
<string> </string>
</property>
</widget>
</item>

2
src/rpc.cpp

@ -326,6 +326,8 @@ void RPC::fillTxJsonParams(json& params, Tx tx) {
// Add sender
params.push_back(tx.fromAddr.toStdString());
params.push_back(allRecepients);
params.push_back(1); // minconf
params.push_back(QString::number(tx.fee, 'f', 8).toDouble());
}

32
src/sendtab.cpp

@ -56,29 +56,30 @@ void MainWindow::setupSendTab() {
AddressBook::open(this, ui->Address1);
});
// The first Amount button
QObject::connect(ui->Amount1, &QLineEdit::textChanged, [=] (auto text) {
this->amountChanged(1, text);
});
// Font for the first Memo label
QFont f = ui->Address1->font();
f.setPointSize(f.pointSize() - 1);
ui->MemoTxt1->setFont(f);
// Fee amount changed
QObject::connect(ui->minerFeeAmt, &QLineEdit::textChanged, [=](auto txt) {
ui->lblMinerFeeUSD->setText(Settings::getUSDFormat(txt.toDouble()));
});
ui->minerFeeAmt->setText(Settings::getDecimalString(Settings::getMinerFee()));
// Set up focus enter to set fees
// Set up focus enter to set fees
QObject::connect(ui->tabWidget, &QTabWidget::currentChanged, [=] (int pos) {
if (pos == 1) {
// Set the fees
ui->lblMinerFee->setText(QString::number(Settings::getMinerFee(), 'g', 8) %
" " % Settings::getTokenName());
ui->lblMinerFeeUSD->setText(Settings::getUSDFormat(Settings::getMinerFee()));
// Set focus to the first address box
ui->Address1->setFocus();
QString txt = ui->minerFeeAmt->text();
ui->lblMinerFeeUSD->setText(Settings::getUSDFormat(txt.toDouble()));
}
});
// Font for the first Memo label
QFont f = ui->Address1->font();
f.setPointSize(f.pointSize() - 1);
ui->MemoTxt1->setFont(f);
}
void MainWindow::updateLabelsAutoComplete() {
@ -318,6 +319,9 @@ void MainWindow::removeExtraAddresses() {
// Disable first memo btn
setMemoEnabled(1, false);
// Reset the fee
ui->minerFeeAmt->setText(Settings::getDecimalString(Settings::getMinerFee()));
// Start the deletion after the first item, since we want to keep 1 send field there all there
for (int i=1; i < totalItems; i++) {
auto addressGroupBox = ui->sendToWidgets->findChild<QGroupBox*>(QString("AddressGroupBox") % QString::number(i+1));
@ -374,7 +378,7 @@ Tx MainWindow::createTxFromSendPage() {
tx.toAddrs.push_back( ToFields{addr, amt, memo, memo.toUtf8().toHex()} );
}
tx.fee = Settings::getMinerFee();
tx.fee = ui->minerFeeAmt->text().toDouble();
return tx;
}

12
src/settings.cpp

@ -109,14 +109,18 @@ QString Settings::getUSDFormat(double bal) {
return QString();
}
QString Settings::getZECDisplayFormat(double bal) {
// This is idiotic. Why doesn't QString have a way to do this?
QString f = QString::number(bal, 'f', 8);
QString Settings::getDecimalString(double amt) {
QString f = QString::number(amt, 'f', 8);
while (f.contains(".") && (f.right(1) == "0" || f.right(1) == ".")) {
f = f.left(f.length() - 1);
}
return f % " " % Settings::getTokenName();
return f;
}
QString Settings::getZECDisplayFormat(double bal) {
// This is idiotic. Why doesn't QString have a way to do this?
return getDecimalString(bal) % " " % Settings::getTokenName();
}
QString Settings::getZECUSDDisplayFormat(double bal) {

1
src/settings.h

@ -57,6 +57,7 @@ public:
// Static stuff
static const QString txidStatusMessage;
static QString getDecimalString(double amt);
static QString getUSDFormat(double bal);
static QString getZECDisplayFormat(double bal);
static QString getZECUSDDisplayFormat(double bal);

Loading…
Cancel
Save