src/qt/transactionfilterproxy.h \
src/qt/transactionview.h \
src/qt/walletmodel.h \
- src/bitcoinrpc.h
+ src/bitcoinrpc.h \
+ src/qt/overviewpage.h
SOURCES += src/qt/bitcoin.cpp src/qt/bitcoingui.cpp \
src/qt/transactiontablemodel.cpp \
src/qt/addresstablemodel.cpp \
src/qt/transactionfilterproxy.cpp \
src/qt/transactionview.cpp \
src/qt/walletmodel.cpp \
- src/bitcoinrpc.cpp
+ src/bitcoinrpc.cpp \
+ src/qt/overviewpage.cpp
RESOURCES += \
src/qt/bitcoin.qrc
src/qt/forms/addressbookdialog.ui \
src/qt/forms/aboutdialog.ui \
src/qt/forms/editaddressdialog.ui \
- src/qt/forms/transactiondescdialog.ui
+ src/qt/forms/transactiondescdialog.ui \
+ src/qt/forms/overviewpage.ui
CODECFORTR = UTF-8
TRANSLATIONS = src/qt/locale/bitcoin_nl.ts
Icon Pack: Crystal SVG
License: LGPL
-Icon: src/qt/res/icons/receive.png
+Icon: src/qt/res/icons/receive.png, src/qt/res/icons/history.png
Designer: Oxygen team
Icon Pack: Oxygen
License: Creative Common Attribution-ShareAlike 3.0 License or LGPL
License: Public Domain
Site: http://forum.bitcoin.org/?topic=1756.0
+Icon: src/qt/res/icons/overview.png
+Icon Pack: Primo
+Designer: Jack Cai
+License: Creative Commons Attribution No Derivatives (by-nd)
+Site: http://findicons.com/icon/175944/home?id=176221#
+
<file alias="toolbar_testnet">res/icons/toolbar_testnet.png</file>
<file alias="edit">res/icons/edit.png</file>
<file alias="editdelete">res/icons/editdelete.png</file>
+ <file alias="history">res/icons/history.png</file>
+ <file alias="overview">res/icons/overview.png</file>
</qresource>
<qresource prefix="/images">
<file alias="about">res/images/about.png</file>
#include "transactiondescdialog.h"
#include "addresstablemodel.h"
#include "transactionview.h"
+#include "overviewpage.h"
#include <QApplication>
#include <QMainWindow>
#include <QLocale>
#include <QMessageBox>
#include <QProgressBar>
+#include <QStackedWidget>
#include <QDebug>
// Toolbar
QToolBar *toolbar = addToolBar("Main toolbar");
toolbar->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);
+ toolbar->addAction(overviewAction);
+ toolbar->addAction(historyAction);
+ toolbar->addSeparator();
toolbar->addAction(sendCoins);
toolbar->addAction(receiveCoins);
toolbar->addAction(addressbook);
- // Balance: <balance>
- QHBoxLayout *hbox_balance = new QHBoxLayout();
- hbox_balance->addWidget(new QLabel(tr("Balance:")));
- hbox_balance->addSpacing(5);/* Add some spacing between the label and the text */
-
- labelBalance = new QLabel();
- labelBalance->setFont(QFont("Monospace", -1, QFont::Bold));
- labelBalance->setToolTip(tr("Your current balance"));
- labelBalance->setTextInteractionFlags(Qt::TextSelectableByMouse|Qt::TextSelectableByKeyboard);
- hbox_balance->addWidget(labelBalance);
- hbox_balance->addStretch(1);
-
+ overviewPage = new OverviewPage();
+
QVBoxLayout *vbox = new QVBoxLayout();
- vbox->addLayout(hbox_balance);
transactionView = new TransactionView(this);
connect(transactionView, SIGNAL(doubleClicked(const QModelIndex&)), this, SLOT(transactionDetails(const QModelIndex&)));
vbox->addWidget(transactionView);
- QWidget *centralwidget = new QWidget(this);
- centralwidget->setLayout(vbox);
- setCentralWidget(centralwidget);
+ transactionsPage = new QWidget(this);
+ transactionsPage->setLayout(vbox);
+
+ centralWidget = new QStackedWidget(this);
+ centralWidget->addWidget(overviewPage);
+ centralWidget->addWidget(transactionsPage);
+ setCentralWidget(centralWidget);
// Create status bar
statusBar();
statusBar()->addPermanentWidget(labelTransactions);
createTrayIcon();
+
+ gotoOverviewTab();
}
void BitcoinGUI::createActions()
{
+ QActionGroup *tabGroup = new QActionGroup(this);
+ overviewAction = new QAction(QIcon(":/icons/overview"), tr("&Overview"), this);
+ overviewAction->setCheckable(true);
+ tabGroup->addAction(overviewAction);
+ historyAction = new QAction(QIcon(":/icons/history"), tr("&History"), this);
+ historyAction->setCheckable(true);
+ tabGroup->addAction(historyAction);
+
+ connect(overviewAction, SIGNAL(triggered()), this, SLOT(gotoOverviewTab()));
+ connect(historyAction, SIGNAL(triggered()), this, SLOT(gotoHistoryTab()));
+
quit = new QAction(QIcon(":/icons/quit"), tr("&Exit"), this);
quit->setToolTip(tr("Quit application"));
sendCoins = new QAction(QIcon(":/icons/send"), tr("&Send coins"), this);
void BitcoinGUI::setBalance(qint64 balance)
{
- labelBalance->setText(GUIUtil::formatMoney(balance) + QString(" BTC"));
+ overviewPage->setBalance(balance);
}
void BitcoinGUI::setNumConnections(int count)
QSystemTrayIcon::Information);
}
}
+
+void BitcoinGUI::gotoOverviewTab()
+{
+ overviewAction->setChecked(true);
+ centralWidget->setCurrentWidget(overviewPage);
+}
+
+void BitcoinGUI::gotoHistoryTab()
+{
+ historyAction->setChecked(true);
+ centralWidget->setCurrentWidget(transactionsPage);
+}
class ClientModel;
class WalletModel;
class TransactionView;
+class OverviewPage;
QT_BEGIN_NAMESPACE
class QLabel;
class QAbstractItemModel;
class QModelIndex;
class QProgressBar;
+class QStackedWidget;
QT_END_NAMESPACE
class BitcoinGUI : public QMainWindow
ClientModel *clientModel;
WalletModel *walletModel;
- QLabel *labelBalance;
+ QStackedWidget *centralWidget;
+ OverviewPage *overviewPage;
+ QWidget *transactionsPage;
+
QLabel *labelConnections;
QLabel *labelConnectionsIcon;
QLabel *labelBlocks;
QLabel *progressBarLabel;
QProgressBar *progressBar;
+ QAction *overviewAction;
+ QAction *historyAction;
QAction *quit;
QAction *sendCoins;
QAction *addressbook;
void trayIconActivated(QSystemTrayIcon::ActivationReason reason);
void transactionDetails(const QModelIndex& idx);
void incomingTransaction(const QModelIndex & parent, int start, int end);
+
+ void gotoOverviewTab();
+ void gotoHistoryTab();
};
#endif
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>OverviewPage</class>
+ <widget class="QWidget" name="OverviewPage">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>552</width>
+ <height>342</height>
+ </rect>
+ </property>
+ <property name="windowTitle">
+ <string>Form</string>
+ </property>
+ <layout class="QVBoxLayout" name="verticalLayout_2">
+ <item>
+ <widget class="QFrame" name="frame">
+ <property name="frameShape">
+ <enum>QFrame::StyledPanel</enum>
+ </property>
+ <property name="frameShadow">
+ <enum>QFrame::Raised</enum>
+ </property>
+ <layout class="QFormLayout" name="formLayout_2">
+ <property name="fieldGrowthPolicy">
+ <enum>QFormLayout::AllNonFixedFieldsGrow</enum>
+ </property>
+ <item row="0" column="0">
+ <widget class="QLabel" name="label">
+ <property name="text">
+ <string>Balance</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="1">
+ <widget class="QLabel" name="labelBalance">
+ <property name="text">
+ <string>123.456 BTC</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item>
+ <spacer name="verticalSpacer">
+ <property name="orientation">
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>20</width>
+ <height>40</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ </layout>
+ </widget>
+ <resources/>
+ <connections/>
+</ui>
--- /dev/null
+#include "overviewpage.h"
+#include "ui_overviewpage.h"
+
+#include "guiutil.h"
+
+OverviewPage::OverviewPage(QWidget *parent) :
+ QWidget(parent),
+ ui(new Ui::OverviewPage)
+{
+ ui->setupUi(this);
+
+ // Balance: <balance>
+ ui->labelBalance->setFont(QFont("Monospace", -1, QFont::Bold));
+ ui->labelBalance->setToolTip(tr("Your current balance"));
+ ui->labelBalance->setTextInteractionFlags(Qt::TextSelectableByMouse|Qt::TextSelectableByKeyboard);
+
+ // Overview page should show:
+ // Balance
+ // Unconfirmed balance
+ // Last received transaction(s)
+ // Last sent transaction(s)
+}
+
+OverviewPage::~OverviewPage()
+{
+ delete ui;
+}
+
+void OverviewPage::setBalance(qint64 balance)
+{
+ ui->labelBalance->setText(GUIUtil::formatMoney(balance) + QString(" BTC"));
+}
--- /dev/null
+#ifndef OVERVIEWPAGE_H
+#define OVERVIEWPAGE_H
+
+#include <QWidget>
+
+namespace Ui {
+ class OverviewPage;
+}
+
+class OverviewPage : public QWidget
+{
+ Q_OBJECT
+
+public:
+ explicit OverviewPage(QWidget *parent = 0);
+ ~OverviewPage();
+
+public slots:
+ void setBalance(qint64 balance);
+
+private:
+ Ui::OverviewPage *ui;
+
+};
+
+#endif // OVERVIEWPAGE_H