diff options
author | Wladimir J. van der Laan <laanwj@gmail.com> | 2013-12-01 10:26:15 +0100 |
---|---|---|
committer | Wladimir J. van der Laan <laanwj@gmail.com> | 2013-12-01 13:02:14 +0100 |
commit | 40ad6e7f35b539d06d328082b17878f18f0fc22e (patch) | |
tree | e1579f86fedc92ce8a07a789373261a2d8e4c2c5 /src | |
parent | b78d1cdf82fb12cc0c8eb9049074b359b9589b7c (diff) | |
parent | 84b695cc9d4dc90b1ccb99e2d92e1e76e138d911 (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.ui | 240 | ||||
-rw-r--r-- | src/qt/sendcoinsdialog.cpp | 33 | ||||
-rw-r--r-- | src/qt/sendcoinsdialog.h | 2 | ||||
-rw-r--r-- | src/qt/sendcoinsentry.cpp | 10 | ||||
-rw-r--r-- | src/qt/sendcoinsentry.h | 3 |
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&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 &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>&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>&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&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&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&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(); |