mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-01-12 04:42:36 -03:00
qt: move export button to tabs
Having the export button at the top was confusing people into thinking the entire wallet was exported. This commit moves the export button to the address book, receiving addresses and transaction tabs separately.
This commit is contained in:
parent
2aa462ec30
commit
45155d3010
6 changed files with 31 additions and 30 deletions
|
@ -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(
|
||||||
|
|
|
@ -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();
|
||||||
|
|
|
@ -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)
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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>&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">
|
||||||
|
|
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue