diff options
author | Wladimir J. van der Laan <laanwj@gmail.com> | 2011-05-13 22:00:27 +0200 |
---|---|---|
committer | Wladimir J. van der Laan <laanwj@gmail.com> | 2011-05-13 22:00:27 +0200 |
commit | 4d1bb15e31d850776d13266262c37aedc8a68d72 (patch) | |
tree | 1856dcc7806356cce091b853af48f00fac83a910 | |
parent | b8e302eb538fd7f4131452c92d22300928f19a5a (diff) |
more improvements
-rw-r--r-- | addressbookdialog.cpp | 52 | ||||
-rw-r--r-- | addressbookdialog.h | 12 | ||||
-rw-r--r-- | addressbookdialog.ui | 33 | ||||
-rw-r--r-- | addresstablemodel.cpp | 2 | ||||
-rw-r--r-- | bitcoin.pro | 6 | ||||
-rw-r--r-- | bitcoinaddressvalidator.cpp | 8 | ||||
-rw-r--r-- | bitcoinaddressvalidator.h | 19 | ||||
-rw-r--r-- | bitcoingui.h | 3 | ||||
-rw-r--r-- | optionsdialog.cpp | 2 | ||||
-rw-r--r-- | optionsdialog.h | 8 | ||||
-rw-r--r-- | sendcoinsdialog.cpp | 14 | ||||
-rw-r--r-- | sendcoinsdialog.h | 2 | ||||
-rw-r--r-- | sendcoinsdialog.ui | 45 |
13 files changed, 178 insertions, 28 deletions
diff --git a/addressbookdialog.cpp b/addressbookdialog.cpp index 72b0da35f1..71543f11a7 100644 --- a/addressbookdialog.cpp +++ b/addressbookdialog.cpp @@ -5,6 +5,7 @@ #include "editaddressdialog.h" #include <QSortFilterProxyModel> +#include <QDebug> AddressBookDialog::AddressBookDialog(QWidget *parent) : QDialog(parent), @@ -62,14 +63,23 @@ void AddressBookDialog::setTab(int tab) ui->tabWidget->setCurrentIndex(tab); } -void AddressBookDialog::on_OKButton_clicked() +QTableView *AddressBookDialog::getCurrentTable() { - accept(); + switch(ui->tabWidget->currentIndex()) + { + case SendingTab: + return ui->sendTableView; + case ReceivingTab: + return ui->receiveTableView; + default: + return 0; + } } void AddressBookDialog::on_copyToClipboard_clicked() { - /* Copy currently selected address to clipboard */ + /* Copy currently selected address to clipboard */ + } void AddressBookDialog::on_editButton_clicked() @@ -84,3 +94,39 @@ void AddressBookDialog::on_newAddressButton_clicked() EditAddressDialog dlg; dlg.exec(); } + +void AddressBookDialog::on_tabWidget_currentChanged(int index) +{ + switch(index) + { + case SendingTab: + ui->deleteButton->show(); + break; + case ReceivingTab: + ui->deleteButton->hide(); + break; + } +} + +void AddressBookDialog::on_deleteButton_clicked() +{ + QTableView *table = getCurrentTable(); + QModelIndexList indexes = table->selectionModel()->selectedRows(); + + foreach (QModelIndex index, indexes) { + table->model()->removeRow(index.row()); + } +} + +void AddressBookDialog::on_buttonBox_accepted() +{ + QTableView *table = getCurrentTable(); + QModelIndexList indexes = table->selectionModel()->selectedRows(AddressTableModel::Address); + + foreach (QModelIndex index, indexes) { + QVariant address = table->model()->data(index); + returnValue = address.toString(); + } + + accept(); +} diff --git a/addressbookdialog.h b/addressbookdialog.h index d075c9ba08..bf7c2a65a6 100644 --- a/addressbookdialog.h +++ b/addressbookdialog.h @@ -8,6 +8,10 @@ namespace Ui { } class AddressTableModel; +QT_BEGIN_NAMESPACE +class QTableView; +QT_END_NAMESPACE + class AddressBookDialog : public QDialog { Q_OBJECT @@ -23,15 +27,21 @@ public: void setModel(AddressTableModel *model); void setTab(int tab); + const QString &getReturnValue() const { return returnValue; } private: Ui::AddressBookDialog *ui; AddressTableModel *model; + QString returnValue; + + QTableView *getCurrentTable(); private slots: + void on_buttonBox_accepted(); + void on_deleteButton_clicked(); + void on_tabWidget_currentChanged(int index); void on_newAddressButton_clicked(); void on_editButton_clicked(); void on_copyToClipboard_clicked(); - void on_OKButton_clicked(); }; #endif // ADDRESSBOOKDIALOG_H diff --git a/addressbookdialog.ui b/addressbookdialog.ui index 0aa093e056..d66962a2be 100644 --- a/addressbookdialog.ui +++ b/addressbookdialog.ui @@ -26,6 +26,9 @@ <layout class="QVBoxLayout" name="verticalLayout_2"> <item> <widget class="QTableView" name="sendTableView"> + <property name="selectionMode"> + <enum>QAbstractItemView::SingleSelection</enum> + </property> <property name="selectionBehavior"> <enum>QAbstractItemView::SelectRows</enum> </property> @@ -56,6 +59,9 @@ </item> <item> <widget class="QTableView" name="receiveTableView"> + <property name="selectionMode"> + <enum>QAbstractItemView::SingleSelection</enum> + </property> <property name="selectionBehavior"> <enum>QAbstractItemView::SelectRows</enum> </property> @@ -84,30 +90,43 @@ </spacer> </item> <item> + <widget class="QPushButton" name="newAddressButton"> + <property name="text"> + <string>&New Address...</string> + </property> + </widget> + </item> + <item> <widget class="QPushButton" name="copyToClipboard"> <property name="text"> - <string>Copy to Clipboard</string> + <string>&Copy to Clipboard</string> </property> </widget> </item> <item> <widget class="QPushButton" name="editButton"> <property name="text"> - <string>Edit...</string> + <string>&Edit...</string> </property> </widget> </item> <item> - <widget class="QPushButton" name="newAddressButton"> + <widget class="QPushButton" name="deleteButton"> <property name="text"> - <string>New Address...</string> + <string>&Delete</string> </property> </widget> </item> <item> - <widget class="QPushButton" name="OKButton"> - <property name="text"> - <string>OK</string> + <widget class="QDialogButtonBox" name="buttonBox"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Maximum" vsizetype="Fixed"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="standardButtons"> + <set>QDialogButtonBox::Ok</set> </property> </widget> </item> diff --git a/addresstablemodel.cpp b/addresstablemodel.cpp index e8746c2b81..d985bcee3c 100644 --- a/addresstablemodel.cpp +++ b/addresstablemodel.cpp @@ -29,7 +29,7 @@ QVariant AddressTableModel::data(const QModelIndex &index, int role) const /* index.row(), index.column() */ /* Return QString */ if(index.column() == Address) - return "1PC9aZC4hNX2rmmrt7uHTfYAS3hRbph4UN"; + return "1PC9aZC4hNX2rmmrt7uHTfYAS3hRbph4UN" + QString::number(index.row()); else return "Description"; } else if (role == Qt::UserRole) diff --git a/bitcoin.pro b/bitcoin.pro index d0b9512b95..b34f562fd8 100644 --- a/bitcoin.pro +++ b/bitcoin.pro @@ -16,7 +16,8 @@ HEADERS += bitcoingui.h \ sendcoinsdialog.h \ addressbookdialog.h \ aboutdialog.h \ - editaddressdialog.h + editaddressdialog.h \ + bitcoinaddressvalidator.h SOURCES += bitcoin.cpp bitcoingui.cpp \ transactiontablemodel.cpp \ addresstablemodel.cpp \ @@ -25,7 +26,8 @@ SOURCES += bitcoin.cpp bitcoingui.cpp \ sendcoinsdialog.cpp \ addressbookdialog.cpp \ aboutdialog.cpp \ - editaddressdialog.cpp + editaddressdialog.cpp \ + bitcoinaddressvalidator.cpp RESOURCES += \ bitcoin.qrc diff --git a/bitcoinaddressvalidator.cpp b/bitcoinaddressvalidator.cpp new file mode 100644 index 0000000000..408027b4d5 --- /dev/null +++ b/bitcoinaddressvalidator.cpp @@ -0,0 +1,8 @@ +#include "bitcoinaddressvalidator.h" + +const QString BitcoinAddressValidator::valid_chars = "123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"; + +BitcoinAddressValidator::BitcoinAddressValidator(QObject *parent) : + QRegExpValidator(QRegExp("^["+valid_chars+"]+"), parent) +{ +} diff --git a/bitcoinaddressvalidator.h b/bitcoinaddressvalidator.h new file mode 100644 index 0000000000..f6a2ac02bf --- /dev/null +++ b/bitcoinaddressvalidator.h @@ -0,0 +1,19 @@ +#ifndef BITCOINADDRESSVALIDATOR_H +#define BITCOINADDRESSVALIDATOR_H + +#include <QRegExpValidator> + +class BitcoinAddressValidator : public QRegExpValidator +{ + Q_OBJECT +public: + explicit BitcoinAddressValidator(QObject *parent = 0); + + static const QString valid_chars; +signals: + +public slots: + +}; + +#endif // BITCOINADDRESSVALIDATOR_H diff --git a/bitcoingui.h b/bitcoingui.h index 12bbf58ba5..9142b6b84b 100644 --- a/bitcoingui.h +++ b/bitcoingui.h @@ -6,8 +6,11 @@ /* Forward declarations */ class TransactionTableModel; + +QT_BEGIN_NAMESPACE class QLabel; class QLineEdit; +QT_END_NAMESPACE class BitcoinGUI : public QMainWindow { diff --git a/optionsdialog.cpp b/optionsdialog.cpp index e609e54420..70dd86323e 100644 --- a/optionsdialog.cpp +++ b/optionsdialog.cpp @@ -4,6 +4,8 @@ #include <QHBoxLayout> #include <QVBoxLayout> #include <QPushButton> +#include <QListWidget> +#include <QStackedWidget> OptionsDialog::OptionsDialog(QWidget *parent) : QDialog(parent), contents_widget(0), pages_widget(0) diff --git a/optionsdialog.h b/optionsdialog.h index 2a4beaccea..501c82e9f3 100644 --- a/optionsdialog.h +++ b/optionsdialog.h @@ -2,8 +2,12 @@ #define OPTIONSDIALOG_H #include <QDialog> -#include <QStackedWidget> -#include <QListWidget> + +QT_BEGIN_NAMESPACE +class QStackedWidget; +class QListWidget; +class QListWidgetItem; +QT_END_NAMESPACE class OptionsDialog : public QDialog { diff --git a/sendcoinsdialog.cpp b/sendcoinsdialog.cpp index d8ef781290..6f459fb669 100644 --- a/sendcoinsdialog.cpp +++ b/sendcoinsdialog.cpp @@ -2,6 +2,7 @@ #include "ui_sendcoinsdialog.h" #include "addressbookdialog.h" +#include "bitcoinaddressvalidator.h" #include <QApplication> #include <QClipboard> @@ -11,6 +12,8 @@ SendCoinsDialog::SendCoinsDialog(QWidget *parent) : ui(new Ui::SendCoinsDialog) { ui->setupUi(this); + ui->payTo->setValidator(new BitcoinAddressValidator(this)); + ui->payAmount->setValidator(new QDoubleValidator(this)); } SendCoinsDialog::~SendCoinsDialog() @@ -23,11 +26,6 @@ void SendCoinsDialog::on_sendButton_clicked() accept(); } -void SendCoinsDialog::on_cancelButton_clicked() -{ - reject(); -} - void SendCoinsDialog::on_pasteButton_clicked() { /* Paste text from clipboard into recipient field */ @@ -38,4 +36,10 @@ void SendCoinsDialog::on_addressBookButton_clicked() { AddressBookDialog dlg; dlg.exec(); + ui->payTo->setText(dlg.getReturnValue()); +} + +void SendCoinsDialog::on_buttonBox_rejected() +{ + reject(); } diff --git a/sendcoinsdialog.h b/sendcoinsdialog.h index e3ffd1d33d..a2fcdd0762 100644 --- a/sendcoinsdialog.h +++ b/sendcoinsdialog.h @@ -19,9 +19,9 @@ private: Ui::SendCoinsDialog *ui; private slots: + void on_buttonBox_rejected(); void on_addressBookButton_clicked(); void on_pasteButton_clicked(); - void on_cancelButton_clicked(); void on_sendButton_clicked(); }; diff --git a/sendcoinsdialog.ui b/sendcoinsdialog.ui index ef7eaf37c4..f14ec2af1b 100644 --- a/sendcoinsdialog.ui +++ b/sendcoinsdialog.ui @@ -43,7 +43,11 @@ </widget> </item> <item row="3" column="1"> - <widget class="QLineEdit" name="payTo"/> + <widget class="QLineEdit" name="payTo"> + <property name="maxLength"> + <number>34</number> + </property> + </widget> </item> <item row="4" column="1"> <widget class="QLineEdit" name="payAmount"> @@ -116,12 +120,22 @@ <property name="text"> <string>&Send</string> </property> + <property name="icon"> + <iconset resource="bitcoin.qrc"> + <normaloff>:/icons/send</normaloff>:/icons/send</iconset> + </property> </widget> </item> <item> - <widget class="QPushButton" name="cancelButton"> - <property name="text"> - <string>Cancel</string> + <widget class="QDialogButtonBox" name="buttonBox"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Maximum" vsizetype="Fixed"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="standardButtons"> + <set>QDialogButtonBox::Cancel</set> </property> </widget> </item> @@ -129,6 +143,25 @@ </item> </layout> </widget> - <resources/> - <connections/> + <resources> + <include location="bitcoin.qrc"/> + </resources> + <connections> + <connection> + <sender>payAmount</sender> + <signal>returnPressed()</signal> + <receiver>sendButton</receiver> + <slot>click()</slot> + <hints> + <hint type="sourcelabel"> + <x>191</x> + <y>65</y> + </hint> + <hint type="destinationlabel"> + <x>570</x> + <y>121</y> + </hint> + </hints> + </connection> + </connections> </ui> |