From 5b4f06aa7efc1f79644d270c2f4b7692a5aeb352 Mon Sep 17 00:00:00 2001 From: Martin Rotter Date: Sat, 8 Mar 2014 18:46:36 +0100 Subject: [PATCH] Some tweaks, added initial WebFactory. --- CMakeLists.txt | 2 ++ src/core/webfactory.cpp | 21 +++++++++++++++++++++ src/core/webfactory.h | 31 +++++++++++++++++++++++++++++++ src/gui/feedmessageviewer.cpp | 31 ++++++++++++++++++------------- src/gui/feedmessageviewer.h | 4 +++- 5 files changed, 75 insertions(+), 14 deletions(-) create mode 100644 src/core/webfactory.cpp create mode 100644 src/core/webfactory.h diff --git a/CMakeLists.txt b/CMakeLists.txt index 3533fb2b9..b0913a17e 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -326,6 +326,7 @@ set(APP_SOURCES src/core/parsingfactory.cpp src/core/feeddownloader.cpp src/core/networkfactory.cpp + src/core/webfactory.cpp # Basic application sources. src/main.cpp @@ -386,6 +387,7 @@ set(APP_HEADERS src/core/feedsmodel.h src/core/feedsproxymodel.h src/core/feeddownloader.h + src/core/webfactory.h ) # Add form files. diff --git a/src/core/webfactory.cpp b/src/core/webfactory.cpp new file mode 100644 index 000000000..6e515ad9d --- /dev/null +++ b/src/core/webfactory.cpp @@ -0,0 +1,21 @@ +#include "core/webfactory.h" + +#include + + +QPointer WebFactory::s_instance; + +WebFactory::WebFactory(QObject *parent) : QObject(parent) { +} + +WebFactory::~WebFactory() { + qDebug("Destroying WebFactory instance."); +} + +WebFactory *WebFactory::instance() { + if (s_instance.isNull()) { + s_instance = new WebFactory(qApp); + } + + return s_instance; +} diff --git a/src/core/webfactory.h b/src/core/webfactory.h new file mode 100644 index 000000000..41d5b1b7f --- /dev/null +++ b/src/core/webfactory.h @@ -0,0 +1,31 @@ +#ifndef WEBFACTORY_H +#define WEBFACTORY_H + +#include +#include + + +class WebFactory : public QObject { + Q_OBJECT + + public: + // Destructor. + virtual ~WebFactory(); + + // Singleton getter. + static WebFactory *instance(); + + signals: + void javascriptSwitched(bool enabled); + void pluginsSwitched(bool enabled); + void imagesLoadingSwitched(bool enabled); + + private: + // Constructor. + explicit WebFactory(QObject *parent = 0); + + // Singleton. + static QPointer s_instance; +}; + +#endif // WEBFACTORY_H diff --git a/src/gui/feedmessageviewer.cpp b/src/gui/feedmessageviewer.cpp index 4771ed9ab..138a6a67f 100644 --- a/src/gui/feedmessageviewer.cpp +++ b/src/gui/feedmessageviewer.cpp @@ -49,7 +49,7 @@ FeedMessageViewer::FeedMessageViewer(QWidget *parent) : TabContent(parent), - m_toolBar(new QToolBar(tr("Toolbar for feeds"), this)), + m_toolBarFeeds(new QToolBar(tr("Toolbar for feeds"), this)), m_toolBarMessages(new QToolBar(tr("Toolbar for messages"), this)), m_messagesView(new MessagesView(this)), m_feedsView(new FeedsView(this)), @@ -275,10 +275,10 @@ void FeedMessageViewer::createConnections() { void FeedMessageViewer::initialize() { // Initialize/populate toolbars. - m_toolBar->setFloatable(false); - m_toolBar->setMovable(false); - m_toolBar->setAllowedAreas(Qt::TopToolBarArea); - m_toolBar->setToolButtonStyle(Qt::ToolButtonIconOnly); + m_toolBarFeeds->setFloatable(false); + m_toolBarFeeds->setMovable(false); + m_toolBarFeeds->setAllowedAreas(Qt::TopToolBarArea); + m_toolBarFeeds->setToolButtonStyle(Qt::ToolButtonIconOnly); m_toolBarMessages->setFloatable(false); m_toolBarMessages->setMovable(false); @@ -286,14 +286,15 @@ void FeedMessageViewer::initialize() { m_toolBarMessages->setToolButtonStyle(Qt::ToolButtonIconOnly); // Add everything to toolbar. - m_toolBar->addAction(FormMain::instance()->m_ui->m_actionUpdateAllFeeds); - m_toolBar->addAction(FormMain::instance()->m_ui->m_actionMarkAllFeedsRead); - m_toolBar->addAction(FormMain::instance()->m_ui->m_actionClearAllFeeds); + m_toolBarFeeds->addAction(FormMain::instance()->m_ui->m_actionUpdateAllFeeds); + m_toolBarFeeds->addAction(FormMain::instance()->m_ui->m_actionMarkAllFeedsRead); + m_toolBarFeeds->addAction(FormMain::instance()->m_ui->m_actionClearAllFeeds); - m_toolBar->setToolButtonStyle(Qt::ToolButtonTextUnderIcon); + m_toolBarFeeds->setToolButtonStyle(Qt::ToolButtonTextUnderIcon); m_toolBarMessages->addAction(FormMain::instance()->m_ui->m_actionMarkSelectedMessagesAsRead); m_toolBarMessages->addAction(FormMain::instance()->m_ui->m_actionMarkSelectedMessagesAsUnread); + m_toolBarMessages->addAction(FormMain::instance()->m_ui->m_actionSwitchImportanceOfSelectedMessages); // Finish web/message browser setup. m_messagesBrowser->setNavigationBarVisible(false); @@ -311,6 +312,7 @@ void FeedMessageViewer::initializeViews() { QVBoxLayout *feed_layout = new QVBoxLayout(this); QVBoxLayout *message_layout = new QVBoxLayout(this); QWidget *message_widget = new QWidget(this); + m_feedsWidget = new QWidget(this); m_feedSplitter = new QSplitter(Qt::Horizontal, this); m_messageSplitter = new QSplitter(Qt::Vertical, this); @@ -340,7 +342,7 @@ void FeedMessageViewer::initializeViews() { message_widget->setLayout(message_layout); // Assemble feed-related components to another widget. - feed_layout->addWidget(m_toolBar); + feed_layout->addWidget(m_toolBarFeeds); feed_layout->addWidget(m_feedsView); m_feedsWidget->setLayout(feed_layout); @@ -413,7 +415,10 @@ void FeedMessageViewer::vacuumDatabase() { } void FeedMessageViewer::refreshVisualProperties() { - m_toolBar->setToolButtonStyle(static_cast(Settings::instance()->value(APP_CFG_GUI, - "toolbar_style", - Qt::ToolButtonIconOnly).toInt())); + Qt::ToolButtonStyle button_style = static_cast(Settings::instance()->value(APP_CFG_GUI, + "toolbar_style", + Qt::ToolButtonIconOnly).toInt()); + + m_toolBarFeeds->setToolButtonStyle(button_style); + m_toolBarMessages->setToolButtonStyle(button_style); } diff --git a/src/gui/feedmessageviewer.h b/src/gui/feedmessageviewer.h index 7d1073987..a36c209e0 100644 --- a/src/gui/feedmessageviewer.h +++ b/src/gui/feedmessageviewer.h @@ -76,6 +76,8 @@ class FeedMessageViewer : public TabContent { void onFeedUpdatesProgress(FeedsModelFeed *feed, int current, int total); void onFeedUpdatesFinished(); + // Switches visibility of feed list and related + // toolbar. void switchFeedComponentVisibility(); protected: @@ -89,7 +91,7 @@ class FeedMessageViewer : public TabContent { void createConnections(); private: - QToolBar *m_toolBar; + QToolBar *m_toolBarFeeds; QToolBar *m_toolBarMessages; QSplitter *m_feedSplitter;