Merge pull request #2515 from laanwj/2013_04_move_exportbutton

qt: move export button to tabs
This commit is contained in:
Wladimir J. van der Laan 2013-04-13 05:39:30 -07:00
commit f81b67829d
6 changed files with 31 additions and 30 deletions

View File

@ -33,6 +33,7 @@ AddressBookPage::AddressBookPage(Mode mode, Tabs tab, QWidget *parent) :
ui->deleteAddress->setIcon(QIcon()); ui->deleteAddress->setIcon(QIcon());
ui->verifyMessage->setIcon(QIcon()); ui->verifyMessage->setIcon(QIcon());
ui->signMessage->setIcon(QIcon()); ui->signMessage->setIcon(QIcon());
ui->exportButton->setIcon(QIcon());
#endif #endif
#ifndef USE_QRCODE #ifndef USE_QRCODE
@ -45,6 +46,7 @@ AddressBookPage::AddressBookPage(Mode mode, Tabs tab, QWidget *parent) :
connect(ui->tableView, SIGNAL(doubleClicked(QModelIndex)), this, SLOT(accept())); connect(ui->tableView, SIGNAL(doubleClicked(QModelIndex)), this, SLOT(accept()));
ui->tableView->setEditTriggers(QAbstractItemView::NoEditTriggers); ui->tableView->setEditTriggers(QAbstractItemView::NoEditTriggers);
ui->tableView->setFocus(); ui->tableView->setFocus();
ui->exportButton->hide();
break; break;
case ForEditing: case ForEditing:
ui->buttonBox->setVisible(false); ui->buttonBox->setVisible(false);
@ -323,7 +325,7 @@ void AddressBookPage::done(int retval)
QDialog::done(retval); QDialog::done(retval);
} }
void AddressBookPage::exportClicked() void AddressBookPage::on_exportButton_clicked()
{ {
// CSV is currently the only supported format // CSV is currently the only supported format
QString filename = GUIUtil::getSaveFileName( QString filename = GUIUtil::getSaveFileName(

View File

@ -43,7 +43,6 @@ public:
public slots: public slots:
void done(int retval); void done(int retval);
void exportClicked();
private: private:
Ui::AddressBookPage *ui; Ui::AddressBookPage *ui;
@ -76,6 +75,8 @@ private slots:
void onCopyLabelAction(); void onCopyLabelAction();
/** Edit currently selected address entry (no button) */ /** Edit currently selected address entry (no button) */
void onEditAction(); void onEditAction();
/** Export button clicked */
void on_exportButton_clicked();
/** Set button states based on selected tab and selection */ /** Set button states based on selected tab and selection */
void selectionChanged(); void selectionChanged();

View File

@ -236,9 +236,6 @@ void BitcoinGUI::createActions()
verifyMessageAction = new QAction(QIcon(":/icons/transaction_0"), tr("&Verify message..."), this); 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")); 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 = new QAction(QIcon(":/icons/debugwindow"), tr("&Debug window"), this);
openRPCConsoleAction->setStatusTip(tr("Open debugging and diagnostic console")); openRPCConsoleAction->setStatusTip(tr("Open debugging and diagnostic console"));
@ -267,7 +264,6 @@ void BitcoinGUI::createMenuBar()
// Configure the menus // Configure the menus
QMenu *file = appMenuBar->addMenu(tr("&File")); QMenu *file = appMenuBar->addMenu(tr("&File"));
file->addAction(backupWalletAction); file->addAction(backupWalletAction);
file->addAction(exportAction);
file->addAction(signMessageAction); file->addAction(signMessageAction);
file->addAction(verifyMessageAction); file->addAction(verifyMessageAction);
file->addSeparator(); file->addSeparator();
@ -295,10 +291,6 @@ void BitcoinGUI::createToolBars()
toolbar->addAction(receiveCoinsAction); toolbar->addAction(receiveCoinsAction);
toolbar->addAction(historyAction); toolbar->addAction(historyAction);
toolbar->addAction(addressBookAction); toolbar->addAction(addressBookAction);
QToolBar *toolbar2 = addToolBar(tr("Actions toolbar"));
toolbar2->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);
toolbar2->addAction(exportAction);
} }
void BitcoinGUI::setClientModel(ClientModel *clientModel) void BitcoinGUI::setClientModel(ClientModel *clientModel)

View File

@ -67,7 +67,6 @@ public:
QAction * getAddressBookAction() { return addressBookAction; } QAction * getAddressBookAction() { return addressBookAction; }
QAction * getReceiveCoinsAction() { return receiveCoinsAction; } QAction * getReceiveCoinsAction() { return receiveCoinsAction; }
QAction * getSendCoinsAction() { return sendCoinsAction; } QAction * getSendCoinsAction() { return sendCoinsAction; }
QAction * getExportAction() { return exportAction; }
protected: protected:
void changeEvent(QEvent *e); void changeEvent(QEvent *e);
@ -98,7 +97,6 @@ private:
QAction *receiveCoinsAction; QAction *receiveCoinsAction;
QAction *optionsAction; QAction *optionsAction;
QAction *toggleHideAction; QAction *toggleHideAction;
QAction *exportAction;
QAction *encryptWalletAction; QAction *encryptWalletAction;
QAction *backupWalletAction; QAction *backupWalletAction;
QAction *changePassphraseAction; QAction *changePassphraseAction;

View File

@ -148,6 +148,20 @@
</property> </property>
</spacer> </spacer>
</item> </item>
<item>
<widget class="QPushButton" name="exportButton">
<property name="toolTip">
<string>Export the data in the current tab to a file</string>
</property>
<property name="text">
<string>&amp;Export</string>
</property>
<property name="icon">
<iconset resource="../bitcoin.qrc">
<normaloff>:/icons/export</normaloff>:/icons/export</iconset>
</property>
</widget>
</item>
<item> <item>
<widget class="QDialogButtonBox" name="buttonBox"> <widget class="QDialogButtonBox" name="buttonBox">
<property name="sizePolicy"> <property name="sizePolicy">

View File

@ -23,6 +23,7 @@
#include <QAction> #include <QAction>
#include <QDesktopServices> #include <QDesktopServices>
#include <QFileDialog> #include <QFileDialog>
#include <QPushButton>
WalletView::WalletView(QWidget *parent, BitcoinGUI *_gui): WalletView::WalletView(QWidget *parent, BitcoinGUI *_gui):
QStackedWidget(parent), QStackedWidget(parent),
@ -35,8 +36,17 @@ WalletView::WalletView(QWidget *parent, BitcoinGUI *_gui):
transactionsPage = new QWidget(this); transactionsPage = new QWidget(this);
QVBoxLayout *vbox = new QVBoxLayout(); QVBoxLayout *vbox = new QVBoxLayout();
QHBoxLayout *hbox_buttons = new QHBoxLayout();
transactionView = new TransactionView(this); transactionView = new TransactionView(this);
vbox->addWidget(transactionView); 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); transactionsPage->setLayout(vbox);
addressBookPage = new AddressBookPage(AddressBookPage::ForEditing, AddressBookPage::SendingTab); 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))); 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 // 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))); 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(); gotoOverviewPage();
} }
@ -142,39 +154,24 @@ void WalletView::gotoOverviewPage()
{ {
gui->getOverviewAction()->setChecked(true); gui->getOverviewAction()->setChecked(true);
setCurrentWidget(overviewPage); setCurrentWidget(overviewPage);
gui->getExportAction()->setEnabled(false);
disconnect(gui->getExportAction(), SIGNAL(triggered()), 0, 0);
} }
void WalletView::gotoHistoryPage() void WalletView::gotoHistoryPage()
{ {
gui->getHistoryAction()->setChecked(true); gui->getHistoryAction()->setChecked(true);
setCurrentWidget(transactionsPage); setCurrentWidget(transactionsPage);
gui->getExportAction()->setEnabled(true);
disconnect(gui->getExportAction(), SIGNAL(triggered()), 0, 0);
connect(gui->getExportAction(), SIGNAL(triggered()), transactionView, SLOT(exportClicked()));
} }
void WalletView::gotoAddressBookPage() void WalletView::gotoAddressBookPage()
{ {
gui->getAddressBookAction()->setChecked(true); gui->getAddressBookAction()->setChecked(true);
setCurrentWidget(addressBookPage); setCurrentWidget(addressBookPage);
gui->getExportAction()->setEnabled(true);
disconnect(gui->getExportAction(), SIGNAL(triggered()), 0, 0);
connect(gui->getExportAction(), SIGNAL(triggered()), addressBookPage, SLOT(exportClicked()));
} }
void WalletView::gotoReceiveCoinsPage() void WalletView::gotoReceiveCoinsPage()
{ {
gui->getReceiveCoinsAction()->setChecked(true); gui->getReceiveCoinsAction()->setChecked(true);
setCurrentWidget(receiveCoinsPage); 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) void WalletView::gotoSendCoinsPage(QString addr)
@ -182,9 +179,6 @@ void WalletView::gotoSendCoinsPage(QString addr)
gui->getSendCoinsAction()->setChecked(true); gui->getSendCoinsAction()->setChecked(true);
setCurrentWidget(sendCoinsPage); setCurrentWidget(sendCoinsPage);
gui->getExportAction()->setEnabled(false);
disconnect(gui->getExportAction(), SIGNAL(triggered()), 0, 0);
if (!addr.isEmpty()) if (!addr.isEmpty())
sendCoinsPage->setAddress(addr); sendCoinsPage->setAddress(addr);
} }