diff --git a/src/qt/addressbookpage.cpp b/src/qt/addressbookpage.cpp
index 23c69fef..8529c88b 100644
--- a/src/qt/addressbookpage.cpp
+++ b/src/qt/addressbookpage.cpp
@@ -33,6 +33,7 @@ AddressBookPage::AddressBookPage(Mode mode, Tabs tab, QWidget *parent) :
ui->deleteAddress->setIcon(QIcon());
ui->verifyMessage->setIcon(QIcon());
ui->signMessage->setIcon(QIcon());
+ ui->exportButton->setIcon(QIcon());
#endif
#ifndef USE_QRCODE
@@ -45,6 +46,7 @@ AddressBookPage::AddressBookPage(Mode mode, Tabs tab, QWidget *parent) :
connect(ui->tableView, SIGNAL(doubleClicked(QModelIndex)), this, SLOT(accept()));
ui->tableView->setEditTriggers(QAbstractItemView::NoEditTriggers);
ui->tableView->setFocus();
+ ui->exportButton->hide();
break;
case ForEditing:
ui->buttonBox->setVisible(false);
@@ -323,7 +325,7 @@ void AddressBookPage::done(int retval)
QDialog::done(retval);
}
-void AddressBookPage::exportClicked()
+void AddressBookPage::on_exportButton_clicked()
{
// CSV is currently the only supported format
QString filename = GUIUtil::getSaveFileName(
diff --git a/src/qt/addressbookpage.h b/src/qt/addressbookpage.h
index 06317816..34465aa6 100644
--- a/src/qt/addressbookpage.h
+++ b/src/qt/addressbookpage.h
@@ -43,7 +43,6 @@ public:
public slots:
void done(int retval);
- void exportClicked();
private:
Ui::AddressBookPage *ui;
@@ -76,6 +75,8 @@ private slots:
void onCopyLabelAction();
/** Edit currently selected address entry (no button) */
void onEditAction();
+ /** Export button clicked */
+ void on_exportButton_clicked();
/** Set button states based on selected tab and selection */
void selectionChanged();
diff --git a/src/qt/bitcoingui.cpp b/src/qt/bitcoingui.cpp
index 27272e69..ada55c45 100644
--- a/src/qt/bitcoingui.cpp
+++ b/src/qt/bitcoingui.cpp
@@ -236,9 +236,6 @@ void BitcoinGUI::createActions()
verifyMessageAction = new QAction(QIcon(":/icons/transaction_0"), tr("&Verify message..."), this);
verifyMessageAction->setStatusTip(tr("Verify messages to ensure they were signed with specified Bitcoin addresses"));
- exportAction = new QAction(QIcon(":/icons/export"), tr("&Export..."), this);
- exportAction->setStatusTip(tr("Export the data in the current tab to a file"));
- exportAction->setToolTip(exportAction->statusTip());
openRPCConsoleAction = new QAction(QIcon(":/icons/debugwindow"), tr("&Debug window"), this);
openRPCConsoleAction->setStatusTip(tr("Open debugging and diagnostic console"));
@@ -267,7 +264,6 @@ void BitcoinGUI::createMenuBar()
// Configure the menus
QMenu *file = appMenuBar->addMenu(tr("&File"));
file->addAction(backupWalletAction);
- file->addAction(exportAction);
file->addAction(signMessageAction);
file->addAction(verifyMessageAction);
file->addSeparator();
@@ -295,10 +291,6 @@ void BitcoinGUI::createToolBars()
toolbar->addAction(receiveCoinsAction);
toolbar->addAction(historyAction);
toolbar->addAction(addressBookAction);
-
- QToolBar *toolbar2 = addToolBar(tr("Actions toolbar"));
- toolbar2->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);
- toolbar2->addAction(exportAction);
}
void BitcoinGUI::setClientModel(ClientModel *clientModel)
diff --git a/src/qt/bitcoingui.h b/src/qt/bitcoingui.h
index 5f7ef746..f361a62a 100644
--- a/src/qt/bitcoingui.h
+++ b/src/qt/bitcoingui.h
@@ -67,7 +67,6 @@ public:
QAction * getAddressBookAction() { return addressBookAction; }
QAction * getReceiveCoinsAction() { return receiveCoinsAction; }
QAction * getSendCoinsAction() { return sendCoinsAction; }
- QAction * getExportAction() { return exportAction; }
protected:
void changeEvent(QEvent *e);
@@ -98,7 +97,6 @@ private:
QAction *receiveCoinsAction;
QAction *optionsAction;
QAction *toggleHideAction;
- QAction *exportAction;
QAction *encryptWalletAction;
QAction *backupWalletAction;
QAction *changePassphraseAction;
diff --git a/src/qt/forms/addressbookpage.ui b/src/qt/forms/addressbookpage.ui
index 3cf30738..a2a7da34 100644
--- a/src/qt/forms/addressbookpage.ui
+++ b/src/qt/forms/addressbookpage.ui
@@ -148,6 +148,20 @@
+ -
+
+
+ Export the data in the current tab to a file
+
+
+ &Export
+
+
+
+ :/icons/export:/icons/export
+
+
+
-
diff --git a/src/qt/walletview.cpp b/src/qt/walletview.cpp
index 1d02b81f..727b48de 100644
--- a/src/qt/walletview.cpp
+++ b/src/qt/walletview.cpp
@@ -23,6 +23,7 @@
#include
#include
#include
+#include
WalletView::WalletView(QWidget *parent, BitcoinGUI *_gui):
QStackedWidget(parent),
@@ -35,8 +36,17 @@ WalletView::WalletView(QWidget *parent, BitcoinGUI *_gui):
transactionsPage = new QWidget(this);
QVBoxLayout *vbox = new QVBoxLayout();
+ QHBoxLayout *hbox_buttons = new QHBoxLayout();
transactionView = new TransactionView(this);
vbox->addWidget(transactionView);
+ QPushButton *exportButton = new QPushButton("&Export", this);
+ exportButton->setToolTip(tr("Export the data in the current tab to a file"));
+#ifndef Q_OS_MAC // Icons on push buttons are very uncommon on Mac
+ exportButton->setIcon(QIcon(":/icons/export"));
+#endif
+ hbox_buttons->addStretch();
+ hbox_buttons->addWidget(exportButton);
+ vbox->addLayout(hbox_buttons);
transactionsPage->setLayout(vbox);
addressBookPage = new AddressBookPage(AddressBookPage::ForEditing, AddressBookPage::SendingTab);
@@ -66,6 +76,8 @@ WalletView::WalletView(QWidget *parent, BitcoinGUI *_gui):
connect(addressBookPage, SIGNAL(verifyMessage(QString)), this, SLOT(gotoVerifyMessageTab(QString)));
// Clicking on "Sign Message" in the receive coins page opens the sign message tab in the Sign/Verify Message dialog
connect(receiveCoinsPage, SIGNAL(signMessage(QString)), this, SLOT(gotoSignMessageTab(QString)));
+ // Clicking on "Export" allows to export the transaction list
+ connect(exportButton, SIGNAL(clicked()), transactionView, SLOT(exportClicked()));
gotoOverviewPage();
}
@@ -142,39 +154,24 @@ void WalletView::gotoOverviewPage()
{
gui->getOverviewAction()->setChecked(true);
setCurrentWidget(overviewPage);
-
- gui->getExportAction()->setEnabled(false);
- disconnect(gui->getExportAction(), SIGNAL(triggered()), 0, 0);
}
void WalletView::gotoHistoryPage()
{
gui->getHistoryAction()->setChecked(true);
setCurrentWidget(transactionsPage);
-
- gui->getExportAction()->setEnabled(true);
- disconnect(gui->getExportAction(), SIGNAL(triggered()), 0, 0);
- connect(gui->getExportAction(), SIGNAL(triggered()), transactionView, SLOT(exportClicked()));
}
void WalletView::gotoAddressBookPage()
{
gui->getAddressBookAction()->setChecked(true);
setCurrentWidget(addressBookPage);
-
- gui->getExportAction()->setEnabled(true);
- disconnect(gui->getExportAction(), SIGNAL(triggered()), 0, 0);
- connect(gui->getExportAction(), SIGNAL(triggered()), addressBookPage, SLOT(exportClicked()));
}
void WalletView::gotoReceiveCoinsPage()
{
gui->getReceiveCoinsAction()->setChecked(true);
setCurrentWidget(receiveCoinsPage);
-
- gui->getExportAction()->setEnabled(true);
- disconnect(gui->getExportAction(), SIGNAL(triggered()), 0, 0);
- connect(gui->getExportAction(), SIGNAL(triggered()), receiveCoinsPage, SLOT(exportClicked()));
}
void WalletView::gotoSendCoinsPage(QString addr)
@@ -182,9 +179,6 @@ void WalletView::gotoSendCoinsPage(QString addr)
gui->getSendCoinsAction()->setChecked(true);
setCurrentWidget(sendCoinsPage);
- gui->getExportAction()->setEnabled(false);
- disconnect(gui->getExportAction(), SIGNAL(triggered()), 0, 0);
-
if (!addr.isEmpty())
sendCoinsPage->setAddress(addr);
}