diff --git a/CMakeLists.txt b/CMakeLists.txt index 14b4a0d2a..13e388609 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -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 diff --git a/src/gui/feedmessageviewer.cpp b/src/gui/feedmessageviewer.cpp index 07c5a5717..ead1a8613 100644 --- a/src/gui/feedmessageviewer.cpp +++ b/src/gui/feedmessageviewer.cpp @@ -1,9 +1,53 @@ +#include +#include +#include +#include + #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; } diff --git a/src/gui/feedmessageviewer.h b/src/gui/feedmessageviewer.h index f43e6afc7..f26e94c62 100644 --- a/src/gui/feedmessageviewer.h +++ b/src/gui/feedmessageviewer.h @@ -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 diff --git a/src/gui/feedsview.cpp b/src/gui/feedsview.cpp new file mode 100644 index 000000000..bdcd42129 --- /dev/null +++ b/src/gui/feedsview.cpp @@ -0,0 +1,9 @@ +#include "gui/feedsview.h" + + +FeedsView::FeedsView(QWidget *parent) : QTreeView(parent) { +} + +FeedsView::~FeedsView() { + qDebug("Destroying FeedsView instance."); +} diff --git a/src/gui/feedsview.h b/src/gui/feedsview.h new file mode 100644 index 000000000..536ddd677 --- /dev/null +++ b/src/gui/feedsview.h @@ -0,0 +1,20 @@ +#ifndef FEEDSVIEW_H +#define FEEDSVIEW_H + +#include + + +class FeedsView : public QTreeView { + Q_OBJECT + + public: + explicit FeedsView(QWidget *parent = 0); + virtual ~FeedsView(); + + signals: + + public slots: + +}; + +#endif // FEEDSVIEW_H diff --git a/src/gui/messagesview.cpp b/src/gui/messagesview.cpp new file mode 100644 index 000000000..dbdf6ccea --- /dev/null +++ b/src/gui/messagesview.cpp @@ -0,0 +1,9 @@ +#include "gui/messagesview.h" + + +MessagesView::MessagesView(QWidget *parent) : QTreeView(parent) { +} + +MessagesView::~MessagesView() { + qDebug("Destroying MessagesView instance."); +} diff --git a/src/gui/messagesview.h b/src/gui/messagesview.h new file mode 100644 index 000000000..a4b88639b --- /dev/null +++ b/src/gui/messagesview.h @@ -0,0 +1,20 @@ +#ifndef MESSAGESVIEW_H +#define MESSAGESVIEW_H + +#include + + +class MessagesView : public QTreeView { + Q_OBJECT + + public: + explicit MessagesView(QWidget *parent = 0); + virtual ~MessagesView(); + + signals: + + public slots: + +}; + +#endif // MESSAGESVIEW_H diff --git a/src/gui/skinfactory.cpp b/src/gui/skinfactory.cpp index e86de57fa..4be44a61e 100644 --- a/src/gui/skinfactory.cpp +++ b/src/gui/skinfactory.cpp @@ -12,7 +12,6 @@ QPointer 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."); diff --git a/src/gui/tabwidget.cpp b/src/gui/tabwidget.cpp index 3be9a1322..41eef3a01 100644 --- a/src/gui/tabwidget.cpp +++ b/src/gui/tabwidget.cpp @@ -42,7 +42,7 @@ TabBar *TabWidget::tabBar() { return static_cast(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(browser), diff --git a/src/gui/webbrowser.cpp b/src/gui/webbrowser.cpp index 3dbe8fd29..17656c5e2 100644 --- a/src/gui/webbrowser.cpp +++ b/src/gui/webbrowser.cpp @@ -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() {