c04bbf600884568d8357f00ac2dcb586a33b8547
[novacoin.git] / src / qt / overviewpage.cpp
1 #include "overviewpage.h"
2 #include "ui_overviewpage.h"
3
4 #include "walletmodel.h"
5 #include "bitcoinunits.h"
6 #include "optionsmodel.h"
7
8 #include <QDebug>
9
10 OverviewPage::OverviewPage(QWidget *parent) :
11     QWidget(parent),
12     ui(new Ui::OverviewPage),
13     currentBalance(-1),
14     currentUnconfirmedBalance(-1)
15 {
16     ui->setupUi(this);
17
18     // Balance: <balance>
19     ui->labelBalance->setFont(QFont("Monospace", -1, QFont::Bold));
20     ui->labelBalance->setToolTip(tr("Your current balance"));
21     ui->labelBalance->setTextInteractionFlags(Qt::TextSelectableByMouse|Qt::TextSelectableByKeyboard);
22
23     // Balance: <balance>
24     ui->labelUnconfirmed->setFont(QFont("Monospace", -1, QFont::Bold));
25     ui->labelUnconfirmed->setToolTip(tr("Balance of transactions that have yet to be confirmed"));
26     ui->labelUnconfirmed->setTextInteractionFlags(Qt::TextSelectableByMouse|Qt::TextSelectableByKeyboard);
27
28     ui->labelNumTransactions->setToolTip(tr("Total number of transactions in wallet"));
29
30     // Overview page should show:
31     // Last received transaction(s)
32     // Last sent transaction(s)
33 }
34
35 OverviewPage::~OverviewPage()
36 {
37     delete ui;
38 }
39
40 void OverviewPage::setBalance(qint64 balance, qint64 unconfirmedBalance)
41 {
42     int unit = model->getOptionsModel()->getDisplayUnit();
43     currentBalance = balance;
44     currentUnconfirmedBalance = unconfirmedBalance;
45     ui->labelBalance->setText(BitcoinUnits::formatWithUnit(unit, balance));
46     ui->labelUnconfirmed->setText(BitcoinUnits::formatWithUnit(unit, unconfirmedBalance));
47 }
48
49 void OverviewPage::setNumTransactions(int count)
50 {
51     ui->labelNumTransactions->setText(QLocale::system().toString(count));
52 }
53
54 void OverviewPage::setModel(WalletModel *model)
55 {
56     this->model = model;
57
58     // Keep up to date with wallet
59     setBalance(model->getBalance(), model->getUnconfirmedBalance());
60     connect(model, SIGNAL(balanceChanged(qint64, qint64)), this, SLOT(setBalance(qint64, qint64)));
61
62     setNumTransactions(model->getNumTransactions());
63     connect(model, SIGNAL(numTransactionsChanged(int)), this, SLOT(setNumTransactions(int)));
64
65     connect(model->getOptionsModel(), SIGNAL(displayUnitChanged(int)), this, SLOT(displayUnitChanged()));
66 }
67
68 void OverviewPage::displayUnitChanged()
69 {
70     if(currentBalance != -1)
71         setBalance(currentBalance, currentUnconfirmedBalance);
72 }