QVBoxLayout *vbox = new QVBoxLayout();
transactionView = new TransactionView(this);
- connect(transactionView, SIGNAL(doubleClicked(const QModelIndex&)), transactionView, SLOT(transactionDetails()));
+ connect(transactionView, SIGNAL(doubleClicked(const QModelIndex&)), transactionView, SLOT(showDetails()));
vbox->addWidget(transactionView);
transactionsPage = new QWidget(this);
connect(optionsAction, SIGNAL(triggered()), this, SLOT(optionsClicked()));
connect(aboutAction, SIGNAL(triggered()), this, SLOT(aboutClicked()));
connect(openBitcoinAction, SIGNAL(triggered()), this, SLOT(show()));
- connect(exportAction, SIGNAL(triggered()), this, SLOT(exportClicked()));
}
void BitcoinGUI::setClientModel(ClientModel *clientModel)
{
this->walletModel = walletModel;
- // Keep up to date with wallet
- setBalance(walletModel->getBalance());
- connect(walletModel, SIGNAL(balanceChanged(qint64)), this, SLOT(setBalance(qint64)));
-
- setNumTransactions(walletModel->getNumTransactions());
- connect(walletModel, SIGNAL(numTransactionsChanged(int)), this, SLOT(setNumTransactions(int)));
-
// Report errors from wallet thread
connect(walletModel, SIGNAL(error(QString,QString)), this, SLOT(error(QString,QString)));
// Put transaction list in tabs
transactionView->setModel(walletModel);
+ overviewPage->setModel(walletModel);
addressBookPage->setModel(walletModel->getAddressTableModel());
receiveCoinsPage->setModel(walletModel->getAddressTableModel());
sendCoinsPage->setModel(walletModel);
dlg.exec();
}
-void BitcoinGUI::setBalance(qint64 balance)
-{
- overviewPage->setBalance(balance);
-}
-
void BitcoinGUI::setNumConnections(int count)
{
QString icon;
void BitcoinGUI::setNumBlocks(int count)
{
int total = clientModel->getTotalBlocksEstimate();
+ QString tooltip;
+
if(count < total)
{
progressBarLabel->setVisible(true);
progressBar->setVisible(true);
progressBar->setMaximum(total);
progressBar->setValue(count);
+ tooltip = tr("Downloaded %1 of %2 blocks of transaction history.").arg(count).arg(total);
}
else
{
progressBarLabel->setVisible(false);
progressBar->setVisible(false);
+ tooltip = tr("Downloaded %1 blocks of transaction history.").arg(count);
}
QDateTime now = QDateTime::currentDateTime();
{
text = tr("%n day(s) ago","",secs/(60*60*24));
}
+ tooltip += QString("\n");
+ tooltip += tr("Last block was generated %1.").arg(QLocale::system().toString(lastBlockDate));
labelBlocks->setText("<img src=\""+icon+"\"> " + text);
- labelBlocks->setToolTip(tr("%n block(s) in total, last block was generated %1", "", count)
- .arg(QLocale::system().toString(lastBlockDate)));
-}
-
-void BitcoinGUI::setNumTransactions(int count)
-{
- overviewPage->setNumTransactions(count);
+ labelBlocks->setToolTip(tooltip);
+ progressBarLabel->setToolTip(tooltip);
+ progressBar->setToolTip(tooltip);
}
void BitcoinGUI::error(const QString &title, const QString &message)
TransactionTableModel *ttm = walletModel->getTransactionTableModel();
qint64 amount = ttm->index(start, TransactionTableModel::Amount, parent)
.data(Qt::EditRole).toULongLong();
- if(amount>0 && !clientModel->inInitialBlockDownload())
+ if(!clientModel->inInitialBlockDownload())
{
// On incoming transaction, make an info balloon
// Unless the initial block download is in progress, to prevent balloon-spam
QString address = ttm->index(start, TransactionTableModel::ToAddress, parent)
.data().toString();
- trayIcon->showMessage(tr("Incoming transaction"),
+ trayIcon->showMessage((amount)<0 ? tr("Sent transaction") :
+ tr("Incoming transaction"),
tr("Date: ") + date + "\n" +
tr("Amount: ") + GUIUtil::formatMoney(amount, true) + "\n" +
tr("Type: ") + type + "\n" +
{
overviewAction->setChecked(true);
centralWidget->setCurrentWidget(overviewPage);
+
exportAction->setEnabled(false);
+ disconnect(exportAction, SIGNAL(triggered()), 0, 0);
}
void BitcoinGUI::gotoHistoryPage()
{
historyAction->setChecked(true);
centralWidget->setCurrentWidget(transactionsPage);
+
exportAction->setEnabled(true);
+ disconnect(exportAction, SIGNAL(triggered()), 0, 0);
+ connect(exportAction, SIGNAL(triggered()), transactionView, SLOT(exportClicked()));
}
void BitcoinGUI::gotoAddressBookPage()
{
addressBookAction->setChecked(true);
centralWidget->setCurrentWidget(addressBookPage);
- exportAction->setEnabled(false); // TODO
+
+ exportAction->setEnabled(true);
+ disconnect(exportAction, SIGNAL(triggered()), 0, 0);
+ connect(exportAction, SIGNAL(triggered()), addressBookPage, SLOT(exportClicked()));
}
void BitcoinGUI::gotoReceiveCoinsPage()
{
receiveCoinsAction->setChecked(true);
centralWidget->setCurrentWidget(receiveCoinsPage);
- exportAction->setEnabled(false); // TODO
+
+ exportAction->setEnabled(true);
+ disconnect(exportAction, SIGNAL(triggered()), 0, 0);
+ connect(exportAction, SIGNAL(triggered()), receiveCoinsPage, SLOT(exportClicked()));
}
void BitcoinGUI::gotoSendCoinsPage()
sendCoinsAction->setChecked(true);
sendCoinsPage->clear();
centralWidget->setCurrentWidget(sendCoinsPage);
- exportAction->setEnabled(false);
-}
-void BitcoinGUI::exportClicked()
-{
- // Redirect to the right view, as soon as export for other views
- // (such as address book) is implemented.
- transactionView->exportClicked();
+ exportAction->setEnabled(false);
+ disconnect(exportAction, SIGNAL(triggered()), 0, 0);
}