aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorWladimir J. van der Laan <laanwj@gmail.com>2013-12-01 10:26:15 +0100
committerWladimir J. van der Laan <laanwj@gmail.com>2013-12-01 13:02:14 +0100
commit40ad6e7f35b539d06d328082b17878f18f0fc22e (patch)
treee1579f86fedc92ce8a07a789373261a2d8e4c2c5 /src
parentb78d1cdf82fb12cc0c8eb9049074b359b9589b7c (diff)
parent84b695cc9d4dc90b1ccb99e2d92e1e76e138d911 (diff)
Merge pull request #3306
84b695c [Qt] allow deletion of payment-requests in sendcoins (Philip Kaufmann)
Diffstat (limited to 'src')
-rw-r--r--src/qt/forms/sendcoinsentry.ui240
-rw-r--r--src/qt/sendcoinsdialog.cpp33
-rw-r--r--src/qt/sendcoinsdialog.h2
-rw-r--r--src/qt/sendcoinsentry.cpp10
-rw-r--r--src/qt/sendcoinsentry.h3
5 files changed, 158 insertions, 130 deletions
diff --git a/src/qt/forms/sendcoinsentry.ui b/src/qt/forms/sendcoinsentry.ui
index 051c3fb35b..b6cec5baf0 100644
--- a/src/qt/forms/sendcoinsentry.ui
+++ b/src/qt/forms/sendcoinsentry.ui
@@ -16,9 +16,6 @@
<property name="autoFillBackground">
<bool>false</bool>
</property>
- <property name="currentIndex">
- <number>0</number>
- </property>
<widget class="QFrame" name="SendCoins">
<property name="toolTip">
<string>This is a normal payment.</string>
@@ -33,20 +30,7 @@
<property name="spacing">
<number>12</number>
</property>
- <item row="5" column="0">
- <widget class="QLabel" name="amountLabel">
- <property name="text">
- <string>A&amp;mount:</string>
- </property>
- <property name="alignment">
- <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
- </property>
- <property name="buddy">
- <cstring>payAmount</cstring>
- </property>
- </widget>
- </item>
- <item row="3" column="0">
+ <item row="0" column="0">
<widget class="QLabel" name="payToLabel">
<property name="text">
<string>Pay &amp;To:</string>
@@ -59,23 +43,7 @@
</property>
</widget>
</item>
- <item row="5" column="1">
- <widget class="BitcoinAmountField" name="payAmount"/>
- </item>
- <item row="4" column="0">
- <widget class="QLabel" name="labellLabel">
- <property name="text">
- <string>&amp;Label:</string>
- </property>
- <property name="alignment">
- <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
- </property>
- <property name="buddy">
- <cstring>addAsLabel</cstring>
- </property>
- </widget>
- </item>
- <item row="3" column="1">
+ <item row="0" column="1">
<layout class="QHBoxLayout" name="payToLayout">
<property name="spacing">
<number>0</number>
@@ -85,9 +53,6 @@
<property name="toolTip">
<string>The address to send the payment to (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</string>
</property>
- <property name="maxLength">
- <number>34</number>
- </property>
</widget>
</item>
<item>
@@ -127,7 +92,7 @@
<item>
<widget class="QToolButton" name="deleteButton">
<property name="toolTip">
- <string>Remove this recipient</string>
+ <string>Remove this entry</string>
</property>
<property name="text">
<string/>
@@ -140,13 +105,42 @@
</item>
</layout>
</item>
- <item row="4" column="1">
+ <item row="1" column="0">
+ <widget class="QLabel" name="labellLabel">
+ <property name="text">
+ <string>&amp;Label:</string>
+ </property>
+ <property name="alignment">
+ <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+ </property>
+ <property name="buddy">
+ <cstring>addAsLabel</cstring>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="1">
<widget class="QLineEdit" name="addAsLabel">
<property name="toolTip">
<string>Enter a label for this address to add it to the list of used addresses</string>
</property>
</widget>
</item>
+ <item row="2" column="0">
+ <widget class="QLabel" name="amountLabel">
+ <property name="text">
+ <string>A&amp;mount:</string>
+ </property>
+ <property name="alignment">
+ <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+ </property>
+ <property name="buddy">
+ <cstring>payAmount</cstring>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="1">
+ <widget class="BitcoinAmountField" name="payAmount"/>
+ </item>
</layout>
</widget>
<widget class="QFrame" name="SendCoins_InsecurePaymentRequest">
@@ -581,60 +575,77 @@
<property name="spacing">
<number>12</number>
</property>
- <item row="4" column="0">
- <widget class="QLabel" name="memoLabel_is">
+ <item row="0" column="0">
+ <widget class="QLabel" name="payToLabel_is">
<property name="text">
- <string>Memo:</string>
+ <string>Pay To:</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
- <item row="5" column="0">
- <widget class="QLabel" name="amountLabel_is">
+ <item row="0" column="1">
+ <layout class="QHBoxLayout" name="payToLayout_is">
+ <property name="spacing">
+ <number>0</number>
+ </property>
+ <item>
+ <widget class="QLabel" name="payTo_is"/>
+ </item>
+ <item>
+ <widget class="QToolButton" name="deleteButton_is">
+ <property name="toolTip">
+ <string>Remove this entry</string>
+ </property>
+ <property name="text">
+ <string/>
+ </property>
+ <property name="icon">
+ <iconset resource="../bitcoin.qrc">
+ <normaloff>:/icons/remove</normaloff>:/icons/remove</iconset>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item row="1" column="0">
+ <widget class="QLabel" name="memoLabel_is">
<property name="text">
- <string>Amount:</string>
+ <string>Memo:</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
- <item row="3" column="0">
- <widget class="QLabel" name="payToLabel_is">
+ <item row="1" column="1">
+ <widget class="QLabel" name="memoTextLabel_is">
+ <property name="textFormat">
+ <enum>Qt::PlainText</enum>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="0">
+ <widget class="QLabel" name="amountLabel_is">
<property name="text">
- <string>Pay To:</string>
+ <string>A&amp;mount:</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
+ <property name="buddy">
+ <cstring>payAmount_is</cstring>
+ </property>
</widget>
</item>
- <item row="5" column="2">
+ <item row="2" column="1">
<widget class="BitcoinAmountField" name="payAmount_is">
<property name="acceptDrops">
<bool>false</bool>
</property>
</widget>
</item>
- <item row="3" column="2">
- <layout class="QHBoxLayout" name="payToLayout_is">
- <property name="spacing">
- <number>0</number>
- </property>
- <item>
- <widget class="QLabel" name="payTo_is"/>
- </item>
- </layout>
- </item>
- <item row="4" column="2">
- <widget class="QLabel" name="memoTextLabel_is">
- <property name="textFormat">
- <enum>Qt::PlainText</enum>
- </property>
- </widget>
- </item>
</layout>
</widget>
<widget class="QFrame" name="SendCoins_SecurePaymentRequest">
@@ -1096,27 +1107,7 @@
<property name="spacing">
<number>12</number>
</property>
- <item row="4" column="0">
- <widget class="QLabel" name="memoLabel_s">
- <property name="text">
- <string>Memo:</string>
- </property>
- <property name="alignment">
- <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
- </property>
- </widget>
- </item>
- <item row="5" column="0">
- <widget class="QLabel" name="amountLabel_s">
- <property name="text">
- <string>Amount:</string>
- </property>
- <property name="alignment">
- <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
- </property>
- </widget>
- </item>
- <item row="3" column="0">
+ <item row="0" column="0">
<widget class="QLabel" name="payToLabel_s">
<property name="text">
<string>Pay To:</string>
@@ -1126,14 +1117,7 @@
</property>
</widget>
</item>
- <item row="5" column="2">
- <widget class="BitcoinAmountField" name="payAmount_s">
- <property name="acceptDrops">
- <bool>false</bool>
- </property>
- </widget>
- </item>
- <item row="3" column="2">
+ <item row="0" column="1">
<layout class="QHBoxLayout" name="payToLayout_s">
<property name="spacing">
<number>0</number>
@@ -1145,30 +1129,86 @@
</property>
</widget>
</item>
+ <item>
+ <widget class="QToolButton" name="deleteButton_s">
+ <property name="toolTip">
+ <string>Remove this entry</string>
+ </property>
+ <property name="text">
+ <string/>
+ </property>
+ <property name="icon">
+ <iconset resource="../bitcoin.qrc">
+ <normaloff>:/icons/remove</normaloff>:/icons/remove</iconset>
+ </property>
+ </widget>
+ </item>
</layout>
</item>
- <item row="4" column="2">
+ <item row="1" column="0">
+ <widget class="QLabel" name="memoLabel_s">
+ <property name="text">
+ <string>Memo:</string>
+ </property>
+ <property name="alignment">
+ <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="1">
<widget class="QLabel" name="memoTextLabel_s">
<property name="textFormat">
<enum>Qt::PlainText</enum>
</property>
</widget>
</item>
+ <item row="2" column="0">
+ <widget class="QLabel" name="amountLabel_s">
+ <property name="text">
+ <string>A&amp;mount:</string>
+ </property>
+ <property name="alignment">
+ <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+ </property>
+ <property name="buddy">
+ <cstring>payAmount_s</cstring>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="1">
+ <widget class="BitcoinAmountField" name="payAmount_s">
+ <property name="acceptDrops">
+ <bool>false</bool>
+ </property>
+ </widget>
+ </item>
</layout>
</widget>
</widget>
<customwidgets>
<customwidget>
- <class>BitcoinAmountField</class>
+ <class>QValidatedLineEdit</class>
<extends>QLineEdit</extends>
- <header>bitcoinamountfield.h</header>
+ <header>qvalidatedlineedit.h</header>
</customwidget>
<customwidget>
- <class>QValidatedLineEdit</class>
+ <class>BitcoinAmountField</class>
<extends>QLineEdit</extends>
- <header>qvalidatedlineedit.h</header>
+ <header>bitcoinamountfield.h</header>
</customwidget>
</customwidgets>
+ <tabstops>
+ <tabstop>payTo</tabstop>
+ <tabstop>addressBookButton</tabstop>
+ <tabstop>pasteButton</tabstop>
+ <tabstop>deleteButton</tabstop>
+ <tabstop>addAsLabel</tabstop>
+ <tabstop>payAmount</tabstop>
+ <tabstop>payAmount_is</tabstop>
+ <tabstop>deleteButton_is</tabstop>
+ <tabstop>payAmount_s</tabstop>
+ <tabstop>deleteButton_s</tabstop>
+ </tabstops>
<resources>
<include location="../bitcoin.qrc"/>
</resources>
diff --git a/src/qt/sendcoinsdialog.cpp b/src/qt/sendcoinsdialog.cpp
index fa8da1c8dd..6c3535b2fb 100644
--- a/src/qt/sendcoinsdialog.cpp
+++ b/src/qt/sendcoinsdialog.cpp
@@ -227,8 +227,8 @@ void SendCoinsDialog::on_sendButton_clicked()
alternativeUnits.append(BitcoinUnits::formatWithUnit(u, totalAmount));
}
questionString.append(tr("Total Amount %1 (= %2)")
- .arg(BitcoinUnits::formatWithUnit(model->getOptionsModel()->getDisplayUnit(), totalAmount))
- .arg(alternativeUnits.join(" "+tr("or")+" ")));
+ .arg(BitcoinUnits::formatWithUnit(model->getOptionsModel()->getDisplayUnit(), totalAmount))
+ .arg(alternativeUnits.join(" " + tr("or") + " ")));
QMessageBox::StandardButton retval = QMessageBox::question(this, tr("Confirm send coins"),
questionString.arg(formatted.join("<br />")),
@@ -264,9 +264,7 @@ void SendCoinsDialog::clear()
}
addEntry();
- updateRemoveEnabled();
-
- ui->sendButton->setDefault(true);
+ updateTabsAndLabels();
}
void SendCoinsDialog::reject()
@@ -287,7 +285,7 @@ SendCoinsEntry *SendCoinsDialog::addEntry()
connect(entry, SIGNAL(removeEntry(SendCoinsEntry*)), this, SLOT(removeEntry(SendCoinsEntry*)));
connect(entry, SIGNAL(payAmountChanged()), this, SLOT(coinControlUpdateLabels()));
- updateRemoveEnabled();
+ updateTabsAndLabels();
// Focus the field, so that entry can start immediately
entry->clear();
@@ -300,27 +298,21 @@ SendCoinsEntry *SendCoinsDialog::addEntry()
return entry;
}
-void SendCoinsDialog::updateRemoveEnabled()
+void SendCoinsDialog::updateTabsAndLabels()
{
- // Remove buttons are enabled as soon as there is more than one send-entry
- bool enabled = (ui->entries->count() > 1);
- for(int i = 0; i < ui->entries->count(); ++i)
- {
- SendCoinsEntry *entry = qobject_cast<SendCoinsEntry*>(ui->entries->itemAt(i)->widget());
- if(entry)
- {
- entry->setRemoveEnabled(enabled);
- }
- }
setupTabChain(0);
-
coinControlUpdateLabels();
}
void SendCoinsDialog::removeEntry(SendCoinsEntry* entry)
{
delete entry;
- updateRemoveEnabled();
+
+ // If the last entry was removed add an empty one
+ if (!ui->entries->count())
+ addEntry();
+
+ updateTabsAndLabels();
}
QWidget *SendCoinsDialog::setupTabChain(QWidget *prev)
@@ -379,7 +371,7 @@ void SendCoinsDialog::pasteEntry(const SendCoinsRecipient &rv)
}
entry->setValue(rv);
- coinControlUpdateLabels();
+ updateTabsAndLabels();
}
bool SendCoinsDialog::handlePaymentRequest(const SendCoinsRecipient &rv)
@@ -619,4 +611,3 @@ void SendCoinsDialog::coinControlUpdateLabels()
ui->labelCoinControlInsuffFunds->hide();
}
}
-
diff --git a/src/qt/sendcoinsdialog.h b/src/qt/sendcoinsdialog.h
index 4327e8e382..fcae26c720 100644
--- a/src/qt/sendcoinsdialog.h
+++ b/src/qt/sendcoinsdialog.h
@@ -46,7 +46,7 @@ public slots:
void reject();
void accept();
SendCoinsEntry *addEntry();
- void updateRemoveEnabled();
+ void updateTabsAndLabels();
void setBalance(qint64 balance, qint64 unconfirmedBalance, qint64 immatureBalance);
private:
diff --git a/src/qt/sendcoinsentry.cpp b/src/qt/sendcoinsentry.cpp
index 2641a66af4..4be8bf9ebf 100644
--- a/src/qt/sendcoinsentry.cpp
+++ b/src/qt/sendcoinsentry.cpp
@@ -75,15 +75,13 @@ void SendCoinsEntry::setModel(WalletModel *model)
connect(model->getOptionsModel(), SIGNAL(displayUnitChanged(int)), this, SLOT(updateDisplayUnit()));
connect(ui->payAmount, SIGNAL(textChanged()), this, SIGNAL(payAmountChanged()));
+ connect(ui->deleteButton, SIGNAL(clicked()), this, SLOT(deleteClicked()));
+ connect(ui->deleteButton_is, SIGNAL(clicked()), this, SLOT(deleteClicked()));
+ connect(ui->deleteButton_s, SIGNAL(clicked()), this, SLOT(deleteClicked()));
clear();
}
-void SendCoinsEntry::setRemoveEnabled(bool enabled)
-{
- ui->deleteButton->setEnabled(enabled);
-}
-
void SendCoinsEntry::clear()
{
// clear UI elements for normal payment
@@ -105,7 +103,7 @@ void SendCoinsEntry::clear()
updateDisplayUnit();
}
-void SendCoinsEntry::on_deleteButton_clicked()
+void SendCoinsEntry::deleteClicked()
{
emit removeEntry(this);
}
diff --git a/src/qt/sendcoinsentry.h b/src/qt/sendcoinsentry.h
index 1c4ddaa8ef..2b696c77fb 100644
--- a/src/qt/sendcoinsentry.h
+++ b/src/qt/sendcoinsentry.h
@@ -46,7 +46,6 @@ public:
void setFocus();
public slots:
- void setRemoveEnabled(bool enabled);
void clear();
signals:
@@ -54,7 +53,7 @@ signals:
void payAmountChanged();
private slots:
- void on_deleteButton_clicked();
+ void deleteClicked();
void on_payTo_textChanged(const QString &address);
void on_addressBookButton_clicked();
void on_pasteButton_clicked();