Some tweaks, added initial WebFactory.

This commit is contained in:
Martin Rotter 2014-03-08 18:46:36 +01:00
parent dcdf404b28
commit 5b4f06aa7e
5 changed files with 75 additions and 14 deletions

View file

@ -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.

21
src/core/webfactory.cpp Normal file
View file

@ -0,0 +1,21 @@
#include "core/webfactory.h"
#include <QApplication>
QPointer<WebFactory> 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;
}

31
src/core/webfactory.h Normal file
View file

@ -0,0 +1,31 @@
#ifndef WEBFACTORY_H
#define WEBFACTORY_H
#include <QObject>
#include <QPointer>
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<WebFactory> s_instance;
};
#endif // WEBFACTORY_H

View file

@ -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<Qt::ToolButtonStyle>(Settings::instance()->value(APP_CFG_GUI,
"toolbar_style",
Qt::ToolButtonIconOnly).toInt()));
Qt::ToolButtonStyle button_style = static_cast<Qt::ToolButtonStyle>(Settings::instance()->value(APP_CFG_GUI,
"toolbar_style",
Qt::ToolButtonIconOnly).toInt());
m_toolBarFeeds->setToolButtonStyle(button_style);
m_toolBarMessages->setToolButtonStyle(button_style);
}

View file

@ -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;