From bb257ceda6a075e1a9d523c2d7b7743d5d1d1a54 Mon Sep 17 00:00:00 2001 From: fsb4000 Date: Fri, 23 Jan 2015 16:20:04 +0600 Subject: [PATCH] =?utf8?q?=D0=B8=D0=B7=D0=BC=D0=B5=D0=BD=D0=B5=D0=BD=D0=B8=D1=8F=20=D0=B1=D0=B0=D0=B7=D0=BE=D0=B2=D0=BE=D0=B3=D0=BE=20=D0=BA=D0=BB=D0=B0=D1=81=D1=81=D0=B0=20=D0=B4=D0=BB=D1=8F=20CoinControl?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- src/qt/coincontroldialog.cpp | 25 ++++++++++++++++++++----- src/qt/coincontroldialog.h | 10 ++++++---- src/qt/coincontroltreewidget.cpp | 6 +++++- src/qt/forms/coincontroldialog.ui | 2 +- src/qt/sendcoinsdialog.cpp | 15 ++++++++++----- src/qt/sendcoinsdialog.h | 2 ++ 6 files changed, 44 insertions(+), 16 deletions(-) diff --git a/src/qt/coincontroldialog.cpp b/src/qt/coincontroldialog.cpp index f5a8c6a..8c85814 100644 --- a/src/qt/coincontroldialog.cpp +++ b/src/qt/coincontroldialog.cpp @@ -21,13 +21,14 @@ #include #include #include +#include using namespace std; QList CoinControlDialog::payAmounts; CCoinControl* CoinControlDialog::coinControl = new CCoinControl(); CoinControlDialog::CoinControlDialog(QWidget *parent) : - QDialog(parent, DIALOGWINDOWHINTS), + QWidget(parent, DIALOGWINDOWHINTS), ui(new Ui::CoinControlDialog), model(0) { @@ -153,10 +154,9 @@ QString CoinControlDialog::strPad(QString s, int nPadLength, QString sPadding) } // ok button -void CoinControlDialog::buttonBoxClicked(QAbstractButton* button) +void CoinControlDialog::on_buttonBox_accepted() { - if (ui->buttonBox->buttonRole(button) == QDialogButtonBox::AcceptRole) - done(QDialog::Accepted); // closes the dialog + close(); // closes the dialog } // (un)select all @@ -416,7 +416,7 @@ QString CoinControlDialog::getPriorityLabel(double dPriority) else ui->labelLocked->setVisible(false); }*/ -void CoinControlDialog::updateLabels(WalletModel *model, QDialog* dialog) +void CoinControlDialog::updateLabels(WalletModel *model, QWidget* dialog) { if (!model) return; @@ -737,3 +737,18 @@ void CoinControlDialog::updateView() sortView(sortColumn, sortOrder); ui->treeWidget->setEnabled(true); } + +void CoinControlDialog::keyPressEvent(QKeyEvent *event) +{ +#ifdef ANDROID + if(event->key() == Qt::Key_Back) + { + close(); + } +#else + if(event->key() == Qt::Key_Escape) + { + close(); + } +#endif +} \ No newline at end of file diff --git a/src/qt/coincontroldialog.h b/src/qt/coincontroldialog.h index 28d8f4a..1301fb9 100644 --- a/src/qt/coincontroldialog.h +++ b/src/qt/coincontroldialog.h @@ -3,7 +3,7 @@ #include #include -#include +#include #include #include #include @@ -16,7 +16,7 @@ namespace Ui { class WalletModel; class CCoinControl; -class CoinControlDialog : public QDialog +class CoinControlDialog : public QWidget { Q_OBJECT @@ -27,7 +27,7 @@ public: void setModel(WalletModel *model); // static because also called from sendcoinsdialog - static void updateLabels(WalletModel*, QDialog*); + static void updateLabels(WalletModel*, QWidget*); static QString getPriorityLabel(double); static QList payAmounts; @@ -49,6 +49,8 @@ private: void sortView(int, Qt::SortOrder); void updateView(); + void keyPressEvent(QKeyEvent *); + enum { COLUMN_CHECKBOX, @@ -85,7 +87,7 @@ private slots: void radioListMode(bool); void viewItemChanged(QTreeWidgetItem*, int); void headerSectionClicked(int); - void buttonBoxClicked(QAbstractButton*); + void on_buttonBox_accepted(); void buttonSelectAllClicked(); //void updateLabelLocked(); }; diff --git a/src/qt/coincontroltreewidget.cpp b/src/qt/coincontroltreewidget.cpp index 2b7e6ef..f1f177e 100644 --- a/src/qt/coincontroltreewidget.cpp +++ b/src/qt/coincontroltreewidget.cpp @@ -16,11 +16,15 @@ void CoinControlTreeWidget::keyPressEvent(QKeyEvent *event) if(this->currentItem()) this->currentItem()->setCheckState(COLUMN_CHECKBOX, ((this->currentItem()->checkState(COLUMN_CHECKBOX) == Qt::Checked) ? Qt::Unchecked : Qt::Checked)); } +#ifdef ANDROID + else if (event->key() == Qt::Key_Back) // press back -> close dialog +#else else if (event->key() == Qt::Key_Escape) // press esc -> close dialog +#endif { event->ignore(); CoinControlDialog *coinControlDialog = (CoinControlDialog*)this->parentWidget(); - coinControlDialog->done(QDialog::Accepted); + coinControlDialog->close(); } else { diff --git a/src/qt/forms/coincontroldialog.ui b/src/qt/forms/coincontroldialog.ui index 0e5e999..b1cd268 100644 --- a/src/qt/forms/coincontroldialog.ui +++ b/src/qt/forms/coincontroldialog.ui @@ -1,7 +1,7 @@ CoinControlDialog - + 0 diff --git a/src/qt/sendcoinsdialog.cpp b/src/qt/sendcoinsdialog.cpp index 5dee144..b1b59eb 100644 --- a/src/qt/sendcoinsdialog.cpp +++ b/src/qt/sendcoinsdialog.cpp @@ -26,7 +26,8 @@ SendCoinsDialog::SendCoinsDialog(QWidget *parent) : QDialog(parent, DIALOGWINDOWHINTS), ui(new Ui::SendCoinsDialog), - model(0) + model(0), + coinControl(0) { ui->setupUi(this); @@ -78,6 +79,10 @@ SendCoinsDialog::SendCoinsDialog(QWidget *parent) : ui->labelCoinControlChange->addAction(clipboardChangeAction); fNewRecipientAllowed = true; + + coinControl = new CoinControlDialog(0); + QAction *updateLabes = new QAction(coinControl); + connect(updateLabes, SIGNAL(close()), this, SLOT(coinControlUpdateLabels())); } void SendCoinsDialog::setModel(WalletModel *model) @@ -109,6 +114,7 @@ void SendCoinsDialog::setModel(WalletModel *model) SendCoinsDialog::~SendCoinsDialog() { + delete coinControl; delete ui; } @@ -444,10 +450,9 @@ void SendCoinsDialog::coinControlFeatureChanged(bool checked) // Coin Control: button inputs -> show actual coin control dialog void SendCoinsDialog::coinControlButtonClicked() { - CoinControlDialog dlg; - dlg.setModel(model); - dlg.exec(); - coinControlUpdateLabels(); + coinControl->setModel(model); + coinControl->setWindowModality(Qt::ApplicationModal); + coinControl->show(); } // Coin Control: checkbox custom change address diff --git a/src/qt/sendcoinsdialog.h b/src/qt/sendcoinsdialog.h index 6810ff4..73e42e4 100644 --- a/src/qt/sendcoinsdialog.h +++ b/src/qt/sendcoinsdialog.h @@ -10,6 +10,7 @@ namespace Ui { class WalletModel; class SendCoinsEntry; class SendCoinsRecipient; +class CoinControlDialog; QT_BEGIN_NAMESPACE class QUrl; @@ -48,6 +49,7 @@ private: Ui::SendCoinsDialog *ui; WalletModel *model; bool fNewRecipientAllowed; + CoinControlDialog *coinControl; private slots: void on_sendButton_clicked(); -- 1.7.1