Added some widgets.

This commit is contained in:
Martin Rotter 2013-10-13 16:12:15 +02:00
parent db554557bf
commit e95956cca6
10 changed files with 129 additions and 16 deletions

View File

@ -192,6 +192,8 @@ set(APP_SOURCES
src/gui/tabcontent.cpp
src/gui/cornerbutton.cpp
src/gui/feedmessageviewer.cpp
src/gui/feedsview.cpp
src/gui/messagesview.cpp
# CORE sources.
src/core/debugging.cpp
@ -239,6 +241,8 @@ set(APP_HEADERS
src/gui/tabcontent.h
src/gui/cornerbutton.h
src/gui/feedmessageviewer.h
src/gui/feedsview.h
src/gui/messagesview.h
# CORE headers.
src/core/settings.h

View File

@ -1,9 +1,53 @@
#include <QVBoxLayout>
#include <QHBoxLayout>
#include <QSplitter>
#include <QApplication>
#include "gui/feedmessageviewer.h"
#include "gui/webbrowser.h"
#include "gui/messagesview.h"
#include "gui/feedsview.h"
FeedMessageViewer::FeedMessageViewer(QWidget *parent) : TabContent(parent)
FeedMessageViewer::FeedMessageViewer(QWidget *parent)
: TabContent(parent),
m_messagesView(new MessagesView(this)),
m_feedsView(new FeedsView(this)),
m_messagesBrowser(new WebBrowser(this))
{
initializeViews();
}
void FeedMessageViewer::initializeViews() {
// Instantiate needed components.
QHBoxLayout *vertical_layout = new QHBoxLayout(this);
QSplitter *vertical_splitter = new QSplitter(Qt::Horizontal, this);
QSplitter *message_splitter = new QSplitter(Qt::Vertical, this);
// Set layout properties.
vertical_layout->setMargin(0);
vertical_layout->setSpacing(0);
// Set views.
m_feedsView->setFrameStyle(QFrame::NoFrame);
m_messagesView->setFrameStyle(QFrame::NoFrame);
// setup splitters.
message_splitter->setHandleWidth(1);
message_splitter->setChildrenCollapsible(false);
message_splitter->setStretchFactor(0, 1);
message_splitter->addWidget(m_messagesView);
message_splitter->addWidget(m_messagesBrowser);
vertical_splitter->setHandleWidth(1);
vertical_splitter->setChildrenCollapsible(false);
vertical_splitter->setStretchFactor(0, 1);
vertical_splitter->addWidget(m_feedsView);
vertical_splitter->addWidget(message_splitter);
vertical_layout->addWidget(vertical_splitter);
// Set layout as active.
setLayout(vertical_layout);
}
FeedMessageViewer::~FeedMessageViewer() {
@ -11,5 +55,5 @@ FeedMessageViewer::~FeedMessageViewer() {
}
WebBrowser *FeedMessageViewer::webBrowser() {
return NULL;
return m_messagesBrowser;
}

View File

@ -5,6 +5,8 @@
class WebBrowser;
class FeedsView;
class MessagesView;
class FeedMessageViewer : public TabContent {
Q_OBJECT
@ -13,12 +15,15 @@ class FeedMessageViewer : public TabContent {
explicit FeedMessageViewer(QWidget *parent = 0);
virtual ~FeedMessageViewer();
WebBrowser *webBrowser();
WebBrowser *webBrowser();
signals:
public slots:
protected:
void initializeViews();
private:
MessagesView *m_messagesView;
FeedsView *m_feedsView;
WebBrowser *m_messagesBrowser;
};
#endif // FEEDMESSAGEVIEWER_H

9
src/gui/feedsview.cpp Normal file
View File

@ -0,0 +1,9 @@
#include "gui/feedsview.h"
FeedsView::FeedsView(QWidget *parent) : QTreeView(parent) {
}
FeedsView::~FeedsView() {
qDebug("Destroying FeedsView instance.");
}

20
src/gui/feedsview.h Normal file
View File

@ -0,0 +1,20 @@
#ifndef FEEDSVIEW_H
#define FEEDSVIEW_H
#include <QTreeView>
class FeedsView : public QTreeView {
Q_OBJECT
public:
explicit FeedsView(QWidget *parent = 0);
virtual ~FeedsView();
signals:
public slots:
};
#endif // FEEDSVIEW_H

9
src/gui/messagesview.cpp Normal file
View File

@ -0,0 +1,9 @@
#include "gui/messagesview.h"
MessagesView::MessagesView(QWidget *parent) : QTreeView(parent) {
}
MessagesView::~MessagesView() {
qDebug("Destroying MessagesView instance.");
}

20
src/gui/messagesview.h Normal file
View File

@ -0,0 +1,20 @@
#ifndef MESSAGESVIEW_H
#define MESSAGESVIEW_H
#include <QTreeView>
class MessagesView : public QTreeView {
Q_OBJECT
public:
explicit MessagesView(QWidget *parent = 0);
virtual ~MessagesView();
signals:
public slots:
};
#endif // MESSAGESVIEW_H

View File

@ -12,7 +12,6 @@
QPointer<SkinFactory> SkinFactory::s_instance;
SkinFactory::SkinFactory(QObject *parent) : QObject(parent) {
m_currentSkin = generateDefaultSkin();
}
SkinFactory::~SkinFactory() {
@ -31,6 +30,8 @@ void SkinFactory::loadCurrentSkin() {
QString skin_name_from_settings = getSelectedSkinName();
if (skin_name_from_settings == APP_THEME_SYSTEM) {
m_currentSkin = generateDefaultSkin();
// User selected default skin for loading.
// NOTE: No need to do anything here.
qDebug("'Default system skin' loaded.");

View File

@ -42,7 +42,7 @@ TabBar *TabWidget::tabBar() {
return static_cast<TabBar*>(QTabWidget::tabBar());
}
void TabWidget::initializeTabs() {
void TabWidget::initializeTabs() {
// Create widget for "Feeds" page and add it.
FeedMessageViewer *browser = new FeedMessageViewer(this);
int index_of_browser = addTab(static_cast<TabContent*>(browser),

View File

@ -90,8 +90,11 @@ void WebBrowser::initializeZoomWidget() {
// Set texts.
button_decrease->setText("-");
button_decrease->setToolTip(tr("Decrease zoom."));
m_btnResetZoom->setText("100%");
m_btnResetZoom->setToolTip(tr("Reset zoom to default."));
button_increase->setText("+");
button_increase->setToolTip(tr("Increase zoom."));
// Setup layout.
layout->addWidget(zoom_label);
@ -131,8 +134,6 @@ void WebBrowser::createConnections() {
// Forward title/icon changes.
connect(m_webView, SIGNAL(titleChanged(QString)), this, SLOT(onTitleChanged(QString)));
connect(m_webView, SIGNAL(iconChanged()), this, SLOT(onIconChanged()));
// Misc connections.
}
void WebBrowser::onIconChanged() {
@ -162,16 +163,16 @@ void WebBrowser::navigateToUrl(const QUrl &url) {
void WebBrowser::increaseZoom() {
m_webView->increaseWebPageZoom();
m_btnResetZoom->setText(
QString("%1%").arg(QString::number(m_webView->zoomFactor() * 100, 'f', 0))
);
m_btnResetZoom->setText(QString("%1%").arg(QString::number(m_webView->zoomFactor() * 100,
'f',
0)));
}
void WebBrowser::decreaseZoom() {
m_webView->decreaseWebPageZoom();
m_btnResetZoom->setText(
QString("%1%").arg(QString::number(m_webView->zoomFactor() * 100, 'f', 0))
);
m_btnResetZoom->setText(QString("%1%").arg(QString::number(m_webView->zoomFactor() * 100,
'f',
0)));
}
void WebBrowser::resetZoom() {