Refactoring, new shortcuts, fixing.

This commit is contained in:
Martin Rotter 2014-08-22 09:27:01 +02:00
parent ca766c9bc5
commit 959f4e04af
32 changed files with 154 additions and 130 deletions

View File

@ -354,6 +354,7 @@ set(APP_SOURCES
src/dynamic-shortcuts/dynamicshortcuts.cpp src/dynamic-shortcuts/dynamicshortcuts.cpp
# MISCELLANEOUS sources. # MISCELLANEOUS sources.
src/miscellaneous/application.cpp
src/miscellaneous/debugging.cpp src/miscellaneous/debugging.cpp
src/miscellaneous/settings.cpp src/miscellaneous/settings.cpp
src/miscellaneous/systemfactory.cpp src/miscellaneous/systemfactory.cpp
@ -387,7 +388,6 @@ set(APP_SOURCES
src/network-web/downloader.cpp src/network-web/downloader.cpp
# MAIN sources. # MAIN sources.
src/application.cpp
src/main.cpp src/main.cpp
) )
@ -436,6 +436,7 @@ set(APP_HEADERS
src/dynamic-shortcuts/shortcutbutton.h src/dynamic-shortcuts/shortcutbutton.h
# MISCELLANEOUS headers. # MISCELLANEOUS headers.
src/miscellaneous/application.h
src/miscellaneous/settings.h src/miscellaneous/settings.h
src/miscellaneous/localization.h src/miscellaneous/localization.h
src/miscellaneous/systemfactory.h src/miscellaneous/systemfactory.h
@ -459,9 +460,6 @@ set(APP_HEADERS
src/network-web/webbrowser.h src/network-web/webbrowser.h
src/network-web/webview.h src/network-web/webview.h
src/network-web/downloader.h src/network-web/downloader.h
# MAIN headers.
src/application.h
) )
# APP form files. # APP form files.

View File

@ -56,6 +56,7 @@ RSS Guard is written in C++. It is pretty fast even with tons of messages loaded
* MySQL. * MySQL.
* “portable” mode support, * “portable” mode support,
* feed categorization, * feed categorization,
* can be fully controlled via keyboard,
* feed authentication (Digest-MD5, BASIC, NTLM-2), * feed authentication (Digest-MD5, BASIC, NTLM-2),
* handles tons of messages & feeds, * handles tons of messages & feeds,
* sweet look & feel, * sweet look & feel,

View File

@ -3,7 +3,7 @@
Fixed: Fixed:
<ul> <ul>
<li>/li> <li>Improved behavior of updater.</li>
</ul> </ul>
Added: Added:

View File

@ -17,7 +17,7 @@
#include "core/feedsmodelrootitem.h" #include "core/feedsmodelrootitem.h"
#include "application.h" #include "miscellaneous/application.h"
#include <QVariant> #include <QVariant>

2
src/core/messagesmodel.cpp Normal file → Executable file
View File

@ -18,10 +18,10 @@
#include "core/messagesmodel.h" #include "core/messagesmodel.h"
#include "definitions/definitions.h" #include "definitions/definitions.h"
#include "miscellaneous/application.h"
#include "miscellaneous/textfactory.h" #include "miscellaneous/textfactory.h"
#include "miscellaneous/databasefactory.h" #include "miscellaneous/databasefactory.h"
#include "miscellaneous/iconfactory.h" #include "miscellaneous/iconfactory.h"
#include "application.h"
#include <QSqlRecord> #include <QSqlRecord>
#include <QSqlError> #include <QSqlError>

2
src/dynamic-shortcuts/dynamicshortcuts.cpp Normal file → Executable file
View File

@ -18,8 +18,8 @@
#include "dynamic-shortcuts/dynamicshortcuts.h" #include "dynamic-shortcuts/dynamicshortcuts.h"
#include "definitions/definitions.h" #include "definitions/definitions.h"
#include "miscellaneous/application.h"
#include "miscellaneous/settings.h" #include "miscellaneous/settings.h"
#include "application.h"
#include <QAction> #include <QAction>

8
src/gui/feedmessageviewer.cpp Normal file → Executable file
View File

@ -163,7 +163,7 @@ void FeedMessageViewer::updateTrayIconStatus(int unread_messages,
void FeedMessageViewer::onFeedUpdatesStarted() { void FeedMessageViewer::onFeedUpdatesStarted() {
//: Text display in status bar when feed update is started. //: Text display in status bar when feed update is started.
FormMain::instance()->statusBar()->showProgress(0, tr("Feed update started")); qApp->mainForm()->statusBar()->showProgress(0, tr("Feed update started"));
} }
void FeedMessageViewer::onFeedUpdatesProgress(FeedsModelFeed *feed, void FeedMessageViewer::onFeedUpdatesProgress(FeedsModelFeed *feed,
@ -171,7 +171,7 @@ void FeedMessageViewer::onFeedUpdatesProgress(FeedsModelFeed *feed,
int total) { int total) {
// Some feed got updated. // Some feed got updated.
m_feedsView->updateCountsOfParticularFeed(feed, true); m_feedsView->updateCountsOfParticularFeed(feed, true);
FormMain::instance()->statusBar()->showProgress((current * 100.0) / total, qApp->mainForm()->statusBar()->showProgress((current * 100.0) / total,
//: Text display in status bar when particular feed is updated. //: Text display in status bar when particular feed is updated.
tr("Updated feed '%1'").arg(feed->title())); tr("Updated feed '%1'").arg(feed->title()));
} }
@ -181,7 +181,7 @@ void FeedMessageViewer::onFeedUpdatesFinished() {
qApp->closeLock()->unlock(); qApp->closeLock()->unlock();
// And also hide progress bar. // And also hide progress bar.
FormMain::instance()->statusBar()->clearProgress(); qApp->mainForm()->statusBar()->clearProgress();
// TODO: Check integrity and conformance of this. // TODO: Check integrity and conformance of this.
m_messagesView->reloadSelections(1); m_messagesView->reloadSelections(1);
@ -192,7 +192,7 @@ void FeedMessageViewer::switchFeedComponentVisibility() {
} }
void FeedMessageViewer::createConnections() { void FeedMessageViewer::createConnections() {
FormMain *form_main = FormMain::instance(); FormMain *form_main = qApp->mainForm();
// Filtering & searching. // Filtering & searching.
connect(m_toolBarMessages, SIGNAL(messageSearchPatternChanged(QString)), connect(m_toolBarMessages, SIGNAL(messageSearchPatternChanged(QString)),

12
src/gui/feedstoolbar.cpp Normal file → Executable file
View File

@ -17,8 +17,9 @@
#include "gui/feedstoolbar.h" #include "gui/feedstoolbar.h"
#include "gui/formmain.h" #include "miscellaneous/application.h"
#include "miscellaneous/settings.h" #include "miscellaneous/settings.h"
#include "miscellaneous/iconfactory.h"
FeedsToolBar::FeedsToolBar(const QString &title, QWidget *parent) : BaseToolBar(title, parent) { FeedsToolBar::FeedsToolBar(const QString &title, QWidget *parent) : BaseToolBar(title, parent) {
@ -32,7 +33,14 @@ FeedsToolBar::~FeedsToolBar() {
} }
QHash<QString, QAction*> FeedsToolBar::availableActions() const { QHash<QString, QAction*> FeedsToolBar::availableActions() const {
return FormMain::instance()->allActions();; QList<QAction*> application_actions = qApp->userActions();
QHash<QString, QAction*> available_actions;
foreach (QAction *application_action, application_actions) {
available_actions.insert(application_action->objectName(), application_action);
}
return available_actions;
} }
QList<QAction*> FeedsToolBar::changeableActions() const { QList<QAction*> FeedsToolBar::changeableActions() const {

16
src/gui/feedsview.cpp Normal file → Executable file
View File

@ -470,19 +470,19 @@ void FeedsView::selectPreviousItem() {
void FeedsView::initializeContextMenuCategoriesFeeds() { void FeedsView::initializeContextMenuCategoriesFeeds() {
m_contextMenuCategoriesFeeds = new QMenu(tr("Context menu for feeds"), this); m_contextMenuCategoriesFeeds = new QMenu(tr("Context menu for feeds"), this);
m_contextMenuCategoriesFeeds->addActions(QList<QAction*>() << m_contextMenuCategoriesFeeds->addActions(QList<QAction*>() <<
FormMain::instance()->m_ui->m_actionUpdateSelectedFeedsCategories << qApp->mainForm()->m_ui->m_actionUpdateSelectedFeedsCategories <<
FormMain::instance()->m_ui->m_actionEditSelectedFeedCategory << qApp->mainForm()->m_ui->m_actionEditSelectedFeedCategory <<
FormMain::instance()->m_ui->m_actionViewSelectedItemsNewspaperMode << qApp->mainForm()->m_ui->m_actionViewSelectedItemsNewspaperMode <<
FormMain::instance()->m_ui->m_actionMarkSelectedFeedsAsRead << qApp->mainForm()->m_ui->m_actionMarkSelectedFeedsAsRead <<
FormMain::instance()->m_ui->m_actionMarkSelectedFeedsAsUnread); qApp->mainForm()->m_ui->m_actionMarkSelectedFeedsAsUnread);
} }
void FeedsView::initializeContextMenuEmptySpace() { void FeedsView::initializeContextMenuEmptySpace() {
m_contextMenuEmptySpace = new QMenu(tr("Context menu for feeds"), this); m_contextMenuEmptySpace = new QMenu(tr("Context menu for feeds"), this);
m_contextMenuEmptySpace->addActions(QList<QAction*>() << m_contextMenuEmptySpace->addActions(QList<QAction*>() <<
FormMain::instance()->m_ui->m_actionUpdateAllFeeds << qApp->mainForm()->m_ui->m_actionUpdateAllFeeds <<
FormMain::instance()->m_ui->m_actionAddCategory << qApp->mainForm()->m_ui->m_actionAddCategory <<
FormMain::instance()->m_ui->m_actionAddFeed); qApp->mainForm()->m_ui->m_actionAddFeed);
} }
void FeedsView::setupAppearance() { void FeedsView::setupAppearance() {

View File

@ -19,6 +19,7 @@
#include "definitions/definitions.h" #include "definitions/definitions.h"
#include "miscellaneous/settings.h" #include "miscellaneous/settings.h"
#include "miscellaneous/application.h"
#include "miscellaneous/systemfactory.h" #include "miscellaneous/systemfactory.h"
#include "miscellaneous/databasefactory.h" #include "miscellaneous/databasefactory.h"
#include "miscellaneous/iconfactory.h" #include "miscellaneous/iconfactory.h"
@ -33,7 +34,6 @@
#include "gui/statusbar.h" #include "gui/statusbar.h"
#include "gui/feedmessageviewer.h" #include "gui/feedmessageviewer.h"
#include "gui/formupdate.h" #include "gui/formupdate.h"
#include "application.h"
#include <QCloseEvent> #include <QCloseEvent>
#include <QSessionManager> #include <QSessionManager>
@ -43,14 +43,10 @@
#include <QTimer> #include <QTimer>
FormMain *FormMain::s_instance;
FormMain::FormMain(QWidget *parent, Qt::WindowFlags f) FormMain::FormMain(QWidget *parent, Qt::WindowFlags f)
: QMainWindow(parent, f), m_ui(new Ui::FormMain) { : QMainWindow(parent, f), m_ui(new Ui::FormMain) {
m_ui->setupUi(this); m_ui->setupUi(this);
qApp->setMainForm(this);
// Initialize singleton.
s_instance = this;
m_statusBar = new StatusBar(this); m_statusBar = new StatusBar(this);
setStatusBar(m_statusBar); setStatusBar(m_statusBar);
@ -64,7 +60,7 @@ FormMain::FormMain(QWidget *parent, Qt::WindowFlags f)
// Add these actions to the list of actions of the main window. // Add these actions to the list of actions of the main window.
// This allows to use actions via shortcuts // This allows to use actions via shortcuts
// even if main menu is not visible. // even if main menu is not visible.
addActions(allActions().values()); addActions(allActions());
// Prepare tabs. // Prepare tabs.
m_ui->m_tabWidget->initializeTabs(); m_ui->m_tabWidget->initializeTabs();
@ -81,58 +77,51 @@ FormMain::~FormMain() {
delete m_ui; delete m_ui;
} }
FormMain *FormMain::instance() { QList<QAction*> FormMain::allActions() {
return s_instance; QList<QAction*> actions;
}
QHash<QString, QAction*> FormMain::allActions() {
// TODO: nevytvaret pokazde novej hash ale udelat jeden
// a ten pak pouzivat.
// tohle by mohl bejt kandidat
QHash<QString, QAction*> actions;
// Add basic actions. // Add basic actions.
actions.insert(m_ui->m_actionSettings->objectName(), m_ui->m_actionSettings); actions << m_ui->m_actionSettings;
actions.insert(m_ui->m_actionImportFeeds->objectName(), m_ui->m_actionImportFeeds); actions << m_ui->m_actionImportFeeds;
actions.insert(m_ui->m_actionExportFeeds->objectName(), m_ui->m_actionExportFeeds); actions << m_ui->m_actionExportFeeds;
actions.insert(m_ui->m_actionQuit->objectName(), m_ui->m_actionQuit); actions << m_ui->m_actionQuit;
actions.insert(m_ui->m_actionFullscreen->objectName(), m_ui->m_actionFullscreen); actions << m_ui->m_actionFullscreen;
actions.insert(m_ui->m_actionAboutGuard->objectName(), m_ui->m_actionAboutGuard); actions << m_ui->m_actionAboutGuard;
actions.insert(m_ui->m_actionSwitchFeedsList->objectName(), m_ui->m_actionSwitchFeedsList); actions << m_ui->m_actionSwitchFeedsList;
actions.insert(m_ui->m_actionSwitchMainWindow->objectName(), m_ui->m_actionSwitchMainWindow); actions << m_ui->m_actionSwitchMainWindow;
actions.insert(m_ui->m_actionSwitchMainMenu->objectName(), m_ui->m_actionSwitchMainMenu); actions << m_ui->m_actionSwitchMainMenu;
actions.insert(m_ui->m_actionSwitchToolBars->objectName(), m_ui->m_actionSwitchToolBars); actions << m_ui->m_actionSwitchToolBars;
actions.insert(m_ui->m_actionSwitchListHeaders->objectName(), m_ui->m_actionSwitchListHeaders); actions << m_ui->m_actionSwitchListHeaders;
// Add web browser actions // Add web browser actions
actions.insert(m_ui->m_actionAddBrowser->objectName(), m_ui->m_actionAddBrowser); actions << m_ui->m_actionAddBrowser;
actions.insert(m_ui->m_actionCloseCurrentTab->objectName(), m_ui->m_actionCloseCurrentTab); actions << m_ui->m_actionCloseCurrentTab;
actions.insert(m_ui->m_actionCloseAllTabs->objectName(), m_ui->m_actionCloseAllTabs); actions << m_ui->m_actionCloseAllTabs;
// Add feeds/messages actions. // Add feeds/messages actions.
actions.insert(m_ui->m_actionOpenSelectedSourceArticlesExternally->objectName(), m_ui->m_actionOpenSelectedSourceArticlesExternally); actions << m_ui->m_actionOpenSelectedSourceArticlesExternally;
actions.insert(m_ui->m_actionOpenSelectedSourceArticlesInternally->objectName(), m_ui->m_actionOpenSelectedSourceArticlesInternally); actions << m_ui->m_actionOpenSelectedSourceArticlesInternally;
actions.insert(m_ui->m_actionOpenSelectedMessagesInternally->objectName(), m_ui->m_actionOpenSelectedMessagesInternally); actions << m_ui->m_actionOpenSelectedMessagesInternally;
actions.insert(m_ui->m_actionMarkAllFeedsRead->objectName(), m_ui->m_actionMarkAllFeedsRead); actions << m_ui->m_actionMarkAllFeedsRead;
actions.insert(m_ui->m_actionMarkSelectedFeedsAsRead->objectName(), m_ui->m_actionMarkSelectedFeedsAsRead); actions << m_ui->m_actionMarkSelectedFeedsAsRead;
actions.insert(m_ui->m_actionMarkSelectedFeedsAsUnread->objectName(), m_ui->m_actionMarkSelectedFeedsAsUnread); actions << m_ui->m_actionMarkSelectedFeedsAsUnread;
actions.insert(m_ui->m_actionClearSelectedFeeds->objectName(), m_ui->m_actionClearSelectedFeeds); actions << m_ui->m_actionClearSelectedFeeds;
actions.insert(m_ui->m_actionMarkSelectedMessagesAsRead->objectName(), m_ui->m_actionMarkSelectedMessagesAsRead); actions << m_ui->m_actionMarkSelectedMessagesAsRead;
actions.insert(m_ui->m_actionMarkSelectedMessagesAsUnread->objectName(), m_ui->m_actionMarkSelectedMessagesAsUnread); actions << m_ui->m_actionMarkSelectedMessagesAsUnread;
actions.insert(m_ui->m_actionSwitchImportanceOfSelectedMessages->objectName(), m_ui->m_actionSwitchImportanceOfSelectedMessages); actions << m_ui->m_actionSwitchImportanceOfSelectedMessages;
actions.insert(m_ui->m_actionDeleteSelectedMessages->objectName(), m_ui->m_actionDeleteSelectedMessages); actions << m_ui->m_actionDeleteSelectedMessages;
actions.insert(m_ui->m_actionUpdateAllFeeds->objectName(), m_ui->m_actionUpdateAllFeeds); actions << m_ui->m_actionUpdateAllFeeds;
actions.insert(m_ui->m_actionUpdateSelectedFeedsCategories->objectName(), m_ui->m_actionUpdateSelectedFeedsCategories); actions << m_ui->m_actionUpdateSelectedFeedsCategories;
actions.insert(m_ui->m_actionEditSelectedFeedCategory->objectName(), m_ui->m_actionEditSelectedFeedCategory); actions << m_ui->m_actionEditSelectedFeedCategory;
actions.insert(m_ui->m_actionDeleteSelectedFeedCategory->objectName(), m_ui->m_actionDeleteSelectedFeedCategory); actions << m_ui->m_actionDeleteSelectedFeedCategory;
actions.insert(m_ui->m_actionViewSelectedItemsNewspaperMode->objectName(), m_ui->m_actionViewSelectedItemsNewspaperMode); actions << m_ui->m_actionViewSelectedItemsNewspaperMode;
actions.insert(m_ui->m_actionAddCategory->objectName(), m_ui->m_actionAddCategory); actions << m_ui->m_actionAddCategory;
actions.insert(m_ui->m_actionAddFeed->objectName(), m_ui->m_actionAddFeed); actions << m_ui->m_actionAddFeed;
actions.insert(m_ui->m_actionSelectNextFeedCategory->objectName(), m_ui->m_actionSelectNextFeedCategory); actions << m_ui->m_actionSelectNextFeedCategory;
actions.insert(m_ui->m_actionSelectPreviousFeedCategory->objectName(), m_ui->m_actionSelectPreviousFeedCategory); actions << m_ui->m_actionSelectPreviousFeedCategory;
actions.insert(m_ui->m_actionSelectNextMessage->objectName(), m_ui->m_actionSelectNextMessage); actions << m_ui->m_actionSelectNextMessage;
actions.insert(m_ui->m_actionSelectPreviousMessage->objectName(), m_ui->m_actionSelectPreviousMessage); actions << m_ui->m_actionSelectPreviousMessage;
actions.insert(m_ui->m_actionDefragmentDatabase->objectName(), m_ui->m_actionDefragmentDatabase); actions << m_ui->m_actionDefragmentDatabase;
return actions; return actions;
} }

7
src/gui/formmain.h Normal file → Executable file
View File

@ -58,10 +58,7 @@ class FormMain : public QMainWindow {
// Returns list of all globally available actions. // Returns list of all globally available actions.
// NOTE: This is used for setting dynamic shortcuts // NOTE: This is used for setting dynamic shortcuts
// for given actions. // for given actions.
QHash<QString, QAction*> allActions(); QList<QAction*> allActions();
// Singleton accessor.
static FormMain *instance();
protected: protected:
// Creates all needed menus and sets them up. // Creates all needed menus and sets them up.
@ -120,8 +117,6 @@ class FormMain : public QMainWindow {
Ui::FormMain *m_ui; Ui::FormMain *m_ui;
QMenu *m_trayMenu; QMenu *m_trayMenu;
StatusBar *m_statusBar; StatusBar *m_statusBar;
static FormMain *s_instance;
}; };
#endif // FORMMAIN_H #endif // FORMMAIN_H

24
src/gui/formmain.ui Normal file → Executable file
View File

@ -178,7 +178,7 @@
<string>Quit the application.</string> <string>Quit the application.</string>
</property> </property>
<property name="shortcut"> <property name="shortcut">
<string notr="true">Ctrl+Shift+Q</string> <string notr="true">Ctrl+Q</string>
</property> </property>
<property name="menuRole"> <property name="menuRole">
<enum>QAction::QuitRole</enum> <enum>QAction::QuitRole</enum>
@ -228,7 +228,7 @@
<string>Add new web browser tab.</string> <string>Add new web browser tab.</string>
</property> </property>
<property name="shortcut"> <property name="shortcut">
<string notr="true">Ctrl+Shift+T</string> <string notr="true">Ctrl+T</string>
</property> </property>
</action> </action>
<action name="m_actionCloseAllTabs"> <action name="m_actionCloseAllTabs">
@ -259,6 +259,9 @@
<property name="text"> <property name="text">
<string>Update &amp;selected feeds</string> <string>Update &amp;selected feeds</string>
</property> </property>
<property name="shortcut">
<string notr="true">Ctrl+U</string>
</property>
</action> </action>
<action name="m_actionEditSelectedFeedCategory"> <action name="m_actionEditSelectedFeedCategory">
<property name="text"> <property name="text">
@ -421,7 +424,7 @@
<string>Select &amp;next feed/category</string> <string>Select &amp;next feed/category</string>
</property> </property>
<property name="shortcut"> <property name="shortcut">
<string notr="true">Ctrl+Down</string> <string notr="true">S</string>
</property> </property>
</action> </action>
<action name="m_actionSelectPreviousFeedCategory"> <action name="m_actionSelectPreviousFeedCategory">
@ -429,7 +432,7 @@
<string>Select &amp;previous feed/category</string> <string>Select &amp;previous feed/category</string>
</property> </property>
<property name="shortcut"> <property name="shortcut">
<string notr="true">Ctrl+Up</string> <string notr="true">A</string>
</property> </property>
</action> </action>
<action name="m_actionSelectNextMessage"> <action name="m_actionSelectNextMessage">
@ -437,7 +440,7 @@
<string>Select &amp;next message</string> <string>Select &amp;next message</string>
</property> </property>
<property name="shortcut"> <property name="shortcut">
<string notr="true">Alt+Down</string> <string notr="true">W</string>
</property> </property>
</action> </action>
<action name="m_actionSelectPreviousMessage"> <action name="m_actionSelectPreviousMessage">
@ -445,7 +448,7 @@
<string>Select &amp;previous message</string> <string>Select &amp;previous message</string>
</property> </property>
<property name="shortcut"> <property name="shortcut">
<string notr="true">Alt+Up</string> <string notr="true">Q</string>
</property> </property>
</action> </action>
<action name="m_actionCheckForUpdates"> <action name="m_actionCheckForUpdates">
@ -480,6 +483,9 @@
<property name="text"> <property name="text">
<string>Enable &amp;JavaScript</string> <string>Enable &amp;JavaScript</string>
</property> </property>
<property name="shortcut">
<string notr="true">J</string>
</property>
</action> </action>
<action name="m_actionWebEnableExternalPlugins"> <action name="m_actionWebEnableExternalPlugins">
<property name="checkable"> <property name="checkable">
@ -488,6 +494,9 @@
<property name="text"> <property name="text">
<string>Enable external &amp;plugins</string> <string>Enable external &amp;plugins</string>
</property> </property>
<property name="shortcut">
<string notr="true">P</string>
</property>
</action> </action>
<action name="m_actionWebAutoloadImages"> <action name="m_actionWebAutoloadImages">
<property name="checkable"> <property name="checkable">
@ -496,6 +505,9 @@
<property name="text"> <property name="text">
<string>Auto-load &amp;images</string> <string>Auto-load &amp;images</string>
</property> </property>
<property name="shortcut">
<string notr="true">I</string>
</property>
</action> </action>
<action name="m_actionReportBug"> <action name="m_actionReportBug">
<property name="text"> <property name="text">

View File

@ -20,6 +20,7 @@
#include "definitions/definitions.h" #include "definitions/definitions.h"
#include "core/feeddownloader.h" #include "core/feeddownloader.h"
#include "core/feedsmodel.h" #include "core/feedsmodel.h"
#include "miscellaneous/application.h"
#include "miscellaneous/settings.h" #include "miscellaneous/settings.h"
#include "miscellaneous/databasefactory.h" #include "miscellaneous/databasefactory.h"
#include "miscellaneous/localization.h" #include "miscellaneous/localization.h"
@ -39,7 +40,6 @@
#include "gui/basetoolbar.h" #include "gui/basetoolbar.h"
#include "gui/messagestoolbar.h" #include "gui/messagestoolbar.h"
#include "dynamic-shortcuts/dynamicshortcuts.h" #include "dynamic-shortcuts/dynamicshortcuts.h"
#include "application.h"
#include <QProcess> #include <QProcess>
#include <QNetworkProxy> #include <QNetworkProxy>
@ -221,8 +221,8 @@ void FormSettings::saveFeedsMessages() {
settings->setValue(APP_CFG_FEEDS, "feeds_update_on_startup", m_ui->m_checkUpdateAllFeedsOnStartup->isChecked()); settings->setValue(APP_CFG_FEEDS, "feeds_update_on_startup", m_ui->m_checkUpdateAllFeedsOnStartup->isChecked());
settings->setValue(APP_CFG_FEEDS, "count_format", m_ui->m_cmbCountsFeedList->currentText()); settings->setValue(APP_CFG_FEEDS, "count_format", m_ui->m_cmbCountsFeedList->currentText());
FormMain::instance()->tabWidget()->feedMessageViewer()->feedsView()->updateAutoUpdateStatus(); qApp->mainForm()->tabWidget()->feedMessageViewer()->feedsView()->updateAutoUpdateStatus();
FormMain::instance()->tabWidget()->feedMessageViewer()->feedsView()->sourceModel()->reloadWholeLayout(); qApp->mainForm()->tabWidget()->feedMessageViewer()->feedsView()->sourceModel()->reloadWholeLayout();
} }
void FormSettings::displayProxyPassword(int state) { void FormSettings::displayProxyPassword(int state) {
@ -472,7 +472,7 @@ void FormSettings::saveLanguage() {
} }
void FormSettings::loadShortcuts() { void FormSettings::loadShortcuts() {
m_ui->m_shortcuts->populate(FormMain::instance()->allActions().values()); m_ui->m_shortcuts->populate(qApp->mainForm()->allActions());
} }
void FormSettings::saveShortcuts() { void FormSettings::saveShortcuts() {
@ -480,7 +480,7 @@ void FormSettings::saveShortcuts() {
m_ui->m_shortcuts->updateShortcuts(); m_ui->m_shortcuts->updateShortcuts();
// Save new shortcuts to the settings. // Save new shortcuts to the settings.
DynamicShortcuts::save(FormMain::instance()->allActions().values()); DynamicShortcuts::save(qApp->mainForm()->allActions());
} }
void FormSettings::loadDataStorage() { void FormSettings::loadDataStorage() {
@ -759,8 +759,8 @@ void FormSettings::loadInterface() {
Qt::ToolButtonIconOnly).toInt())); Qt::ToolButtonIconOnly).toInt()));
// Load toolbars. // Load toolbars.
m_ui->m_editorFeedsToolbar->loadFromToolBar(FormMain::instance()->tabWidget()->feedMessageViewer()->feedsToolBar()); m_ui->m_editorFeedsToolbar->loadFromToolBar(qApp->mainForm()->tabWidget()->feedMessageViewer()->feedsToolBar());
m_ui->m_editorMessagesToolbar->loadFromToolBar(FormMain::instance()->tabWidget()->feedMessageViewer()->messagesToolBar()); m_ui->m_editorMessagesToolbar->loadFromToolBar(qApp->mainForm()->tabWidget()->feedMessageViewer()->messagesToolBar());
} }
void FormSettings::saveInterface() { void FormSettings::saveInterface() {
@ -823,6 +823,6 @@ void FormSettings::saveInterface() {
m_ui->m_editorFeedsToolbar->saveToolBar(); m_ui->m_editorFeedsToolbar->saveToolBar();
m_ui->m_editorMessagesToolbar->saveToolBar(); m_ui->m_editorMessagesToolbar->saveToolBar();
FormMain::instance()->tabWidget()->checkTabBarVisibility(); qApp->mainForm()->tabWidget()->checkTabBarVisibility();
FormMain::instance()->tabWidget()->feedMessageViewer()->refreshVisualProperties(); qApp->mainForm()->tabWidget()->feedMessageViewer()->refreshVisualProperties();
} }

2
src/gui/messagebox.cpp Normal file → Executable file
View File

@ -17,8 +17,8 @@
#include "gui/messagebox.h" #include "gui/messagebox.h"
#include "miscellaneous/application.h"
#include "miscellaneous/iconfactory.h" #include "miscellaneous/iconfactory.h"
#include "application.h"
#include <QtGlobal> #include <QtGlobal>
#include <QDialogButtonBox> #include <QDialogButtonBox>

9
src/gui/messagestoolbar.cpp Normal file → Executable file
View File

@ -39,9 +39,16 @@ MessagesToolBar::~MessagesToolBar() {
} }
QHash<QString, QAction*> MessagesToolBar::availableActions() const { QHash<QString, QAction*> MessagesToolBar::availableActions() const {
QHash<QString, QAction*> available_actions = FormMain::instance()->allActions(); QList<QAction*> application_actions = qApp->mainForm()->allActions();
QHash<QString, QAction*> available_actions;
foreach (QAction *application_action, application_actions) {
available_actions.insert(application_action->objectName(), application_action);
}
available_actions.insert(SEACRH_MESSAGES_ACTION_NAME, m_actionSearchMessages); available_actions.insert(SEACRH_MESSAGES_ACTION_NAME, m_actionSearchMessages);
available_actions.insert(HIGHLIGHTER_ACTION_NAME, m_actionMessageHighlighter); available_actions.insert(HIGHLIGHTER_ACTION_NAME, m_actionMessageHighlighter);
return available_actions; return available_actions;
} }

14
src/gui/messagesview.cpp Normal file → Executable file
View File

@ -147,13 +147,13 @@ void MessagesView::contextMenuEvent(QContextMenuEvent *event) {
void MessagesView::initializeContextMenu() { void MessagesView::initializeContextMenu() {
m_contextMenu = new QMenu(tr("Context menu for messages"), this); m_contextMenu = new QMenu(tr("Context menu for messages"), this);
m_contextMenu->addActions(QList<QAction*>() << m_contextMenu->addActions(QList<QAction*>() <<
FormMain::instance()->m_ui->m_actionOpenSelectedSourceArticlesExternally << qApp->mainForm()->m_ui->m_actionOpenSelectedSourceArticlesExternally <<
FormMain::instance()->m_ui->m_actionOpenSelectedSourceArticlesInternally << qApp->mainForm()->m_ui->m_actionOpenSelectedSourceArticlesInternally <<
FormMain::instance()->m_ui->m_actionOpenSelectedMessagesInternally << qApp->mainForm()->m_ui->m_actionOpenSelectedMessagesInternally <<
FormMain::instance()->m_ui->m_actionMarkSelectedMessagesAsRead << qApp->mainForm()->m_ui->m_actionMarkSelectedMessagesAsRead <<
FormMain::instance()->m_ui->m_actionMarkSelectedMessagesAsUnread << qApp->mainForm()->m_ui->m_actionMarkSelectedMessagesAsUnread <<
FormMain::instance()->m_ui->m_actionSwitchImportanceOfSelectedMessages << qApp->mainForm()->m_ui->m_actionSwitchImportanceOfSelectedMessages <<
FormMain::instance()->m_ui->m_actionDeleteSelectedMessages); qApp->mainForm()->m_ui->m_actionDeleteSelectedMessages);
} }
void MessagesView::mousePressEvent(QMouseEvent *event) { void MessagesView::mousePressEvent(QMouseEvent *event) {

2
src/gui/systemtrayicon.cpp Normal file → Executable file
View File

@ -18,10 +18,10 @@
#include "gui/systemtrayicon.h" #include "gui/systemtrayicon.h"
#include "definitions/definitions.h" #include "definitions/definitions.h"
#include "miscellaneous/application.h"
#include "miscellaneous/settings.h" #include "miscellaneous/settings.h"
#include "gui/formmain.h" #include "gui/formmain.h"
#include "gui/formsettings.h" #include "gui/formsettings.h"
#include "application.h"
#include <QPainter> #include <QPainter>
#include <QTimer> #include <QTimer>

16
src/gui/tabwidget.cpp Normal file → Executable file
View File

@ -18,6 +18,7 @@
#include "gui/tabwidget.h" #include "gui/tabwidget.h"
#include "definitions/definitions.h" #include "definitions/definitions.h"
#include "miscellaneous/application.h"
#include "miscellaneous/settings.h" #include "miscellaneous/settings.h"
#include "miscellaneous/textfactory.h" #include "miscellaneous/textfactory.h"
#include "miscellaneous/iconfactory.h" #include "miscellaneous/iconfactory.h"
@ -26,7 +27,6 @@
#include "gui/formmain.h" #include "gui/formmain.h"
#include "gui/feedmessageviewer.h" #include "gui/feedmessageviewer.h"
#include "gui/plaintoolbutton.h" #include "gui/plaintoolbutton.h"
#include "application.h"
#include <QMenu> #include <QMenu>
#include <QToolButton> #include <QToolButton>
@ -67,13 +67,13 @@ void TabWidget::setupMainMenuButton() {
void TabWidget::openMainMenu() { void TabWidget::openMainMenu() {
if (m_menuMain == NULL) { if (m_menuMain == NULL) {
m_menuMain = new QMenu(tr("Main menu"), this); m_menuMain = new QMenu(tr("Main menu"), this);
m_menuMain->addMenu(FormMain::instance()->m_ui->m_menuFile); m_menuMain->addMenu(qApp->mainForm()->m_ui->m_menuFile);
m_menuMain->addMenu(FormMain::instance()->m_ui->m_menuView); m_menuMain->addMenu(qApp->mainForm()->m_ui->m_menuView);
m_menuMain->addMenu(FormMain::instance()->m_ui->m_menuFeeds); m_menuMain->addMenu(qApp->mainForm()->m_ui->m_menuFeeds);
m_menuMain->addMenu(FormMain::instance()->m_ui->m_menuMessages); m_menuMain->addMenu(qApp->mainForm()->m_ui->m_menuMessages);
m_menuMain->addMenu(FormMain::instance()->m_ui->m_menuWebBrowser); m_menuMain->addMenu(qApp->mainForm()->m_ui->m_menuWebBrowser);
m_menuMain->addMenu(FormMain::instance()->m_ui->m_menuTools); m_menuMain->addMenu(qApp->mainForm()->m_ui->m_menuTools);
m_menuMain->addMenu(FormMain::instance()->m_ui->m_menuHelp); m_menuMain->addMenu(qApp->mainForm()->m_ui->m_menuHelp);
} }
QPoint button_position = m_btnMainMenu->pos(); QPoint button_position = m_btnMainMenu->pos();

5
src/main.cpp Normal file → Executable file
View File

@ -27,7 +27,7 @@
#include "gui/systemtrayicon.h" #include "gui/systemtrayicon.h"
#include "gui/feedmessageviewer.h" #include "gui/feedmessageviewer.h"
#include "gui/feedsview.h" #include "gui/feedsview.h"
#include "application.h" #include "miscellaneous/application.h"
// Needed for setting ini file format on Mac OS. // Needed for setting ini file format on Mac OS.
#ifdef Q_OS_MAC #ifdef Q_OS_MAC
@ -96,13 +96,12 @@ int main(int argc, char *argv[]) {
// Instantiate main application window. // Instantiate main application window.
FormMain main_window; FormMain main_window;
application.setMainForm(&main_window);
// Set correct information for main window. // Set correct information for main window.
main_window.setWindowTitle(APP_LONG_NAME); main_window.setWindowTitle(APP_LONG_NAME);
// Now is a good time to initialize dynamic keyboard shortcuts. // Now is a good time to initialize dynamic keyboard shortcuts.
DynamicShortcuts::load(main_window.allActions().values()); DynamicShortcuts::load(main_window.allActions());
// Display main window. // Display main window.
if (qApp->settings()->value(APP_CFG_GUI, "start_hidden", if (qApp->settings()->value(APP_CFG_GUI, "start_hidden",

View File

@ -15,7 +15,7 @@
// You should have received a copy of the GNU General Public License // You should have received a copy of the GNU General Public License
// along with RSS Guard. If not, see <http://www.gnu.org/licenses/>. // along with RSS Guard. If not, see <http://www.gnu.org/licenses/>.
#include "application.h" #include "miscellaneous/application.h"
#include "miscellaneous/systemfactory.h" #include "miscellaneous/systemfactory.h"
#include "gui/feedsview.h" #include "gui/feedsview.h"
@ -25,13 +25,23 @@
Application::Application(const QString &id, int &argc, char **argv) Application::Application(const QString &id, int &argc, char **argv)
: QtSingleApplication(id, argc, argv), m_closeLock(NULL), m_mainForm(NULL), m_trayIcon(NULL), m_settings(NULL), m_system(NULL) { : QtSingleApplication(id, argc, argv),
m_closeLock(NULL), m_userActions(QList<QAction*>()), m_mainForm(NULL),
m_trayIcon(NULL), m_settings(NULL), m_system(NULL) {
} }
Application::~Application() { Application::~Application() {
delete m_closeLock; delete m_closeLock;
} }
QList<QAction*> Application::userActions() {
if (m_mainForm != NULL && m_userActions.isEmpty()) {
m_userActions = m_mainForm->allActions();
}
return m_userActions;
}
SystemTrayIcon *Application::trayIcon() { SystemTrayIcon *Application::trayIcon() {
if (m_trayIcon == NULL) { if (m_trayIcon == NULL) {
m_trayIcon = new SystemTrayIcon(APP_ICON_PATH, APP_ICON_PLAIN_PATH, m_mainForm); m_trayIcon = new SystemTrayIcon(APP_ICON_PATH, APP_ICON_PLAIN_PATH, m_mainForm);

5
src/application.h → src/miscellaneous/application.h Normal file → Executable file
View File

@ -26,6 +26,7 @@
#include "gui/systemtrayicon.h" #include "gui/systemtrayicon.h"
#include <QMutex> #include <QMutex>
#include <QList>
#if defined(qApp) #if defined(qApp)
#undef qApp #undef qApp
@ -36,6 +37,7 @@
class FormMain; class FormMain;
class QAction;
// TODO: presunout nektery veci sem, settings atp // TODO: presunout nektery veci sem, settings atp
class Application : public QtSingleApplication { class Application : public QtSingleApplication {
@ -46,6 +48,8 @@ class Application : public QtSingleApplication {
explicit Application(const QString &id, int &argc, char **argv); explicit Application(const QString &id, int &argc, char **argv);
virtual ~Application(); virtual ~Application();
QList<QAction*> userActions();
inline SystemFactory *system() { inline SystemFactory *system() {
if (m_system == NULL) { if (m_system == NULL) {
m_system = new SystemFactory(this); m_system = new SystemFactory(this);
@ -110,6 +114,7 @@ class Application : public QtSingleApplication {
// tries to lock the lock for writing), then no other // tries to lock the lock for writing), then no other
// action will be allowed to lock for reading. // action will be allowed to lock for reading.
QMutex *m_closeLock; QMutex *m_closeLock;
QList<QAction*> m_userActions;
FormMain *m_mainForm; FormMain *m_mainForm;
SystemTrayIcon *m_trayIcon; SystemTrayIcon *m_trayIcon;
Settings *m_settings; Settings *m_settings;

2
src/miscellaneous/databasefactory.cpp Normal file → Executable file
View File

@ -19,7 +19,7 @@
#include "definitions/definitions.h" #include "definitions/definitions.h"
#include "miscellaneous/settings.h" #include "miscellaneous/settings.h"
#include "application.h" #include "miscellaneous/application.h"
#include <QDir> #include <QDir>
#include <QSqlQuery> #include <QSqlQuery>

2
src/miscellaneous/debugging.cpp Normal file → Executable file
View File

@ -18,7 +18,7 @@
#include "miscellaneous/debugging.h" #include "miscellaneous/debugging.h"
#include "definitions/definitions.h" #include "definitions/definitions.h"
#include "application.h" #include "miscellaneous/application.h"
#include <QDir> #include <QDir>

2
src/miscellaneous/iconfactory.h Normal file → Executable file
View File

@ -21,7 +21,7 @@
#include <QObject> #include <QObject>
#include "definitions/definitions.h" #include "definitions/definitions.h"
#include "application.h" #include "miscellaneous/application.h"
#include <QString> #include <QString>
#include <QIcon> #include <QIcon>

2
src/miscellaneous/localization.cpp Normal file → Executable file
View File

@ -19,7 +19,7 @@
#include "definitions/definitions.h" #include "definitions/definitions.h"
#include "miscellaneous/settings.h" #include "miscellaneous/settings.h"
#include "application.h" #include "miscellaneous/application.h"
#include <QPointer> #include <QPointer>
#include <QTranslator> #include <QTranslator>

2
src/miscellaneous/settings.cpp Normal file → Executable file
View File

@ -18,7 +18,7 @@
#include "miscellaneous/settings.h" #include "miscellaneous/settings.h"
#include "definitions/definitions.h" #include "definitions/definitions.h"
#include "application.h" #include "miscellaneous/application.h"
#include <QDebug> #include <QDebug>
#include <QDir> #include <QDir>

2
src/miscellaneous/skinfactory.cpp Normal file → Executable file
View File

@ -19,7 +19,7 @@
#include "definitions/definitions.h" #include "definitions/definitions.h"
#include "miscellaneous/settings.h" #include "miscellaneous/settings.h"
#include "application.h" #include "miscellaneous/application.h"
#include <QDir> #include <QDir>
#include <QStyleFactory> #include <QStyleFactory>

2
src/miscellaneous/systemfactory.cpp Normal file → Executable file
View File

@ -19,7 +19,7 @@
#include "definitions/definitions.h" #include "definitions/definitions.h"
#include "network-web/networkfactory.h" #include "network-web/networkfactory.h"
#include "application.h" #include "miscellaneous/application.h"
#if defined(Q_OS_WIN) #if defined(Q_OS_WIN)
#include <QSettings> #include <QSettings>

View File

@ -19,7 +19,7 @@
#include "definitions/definitions.h" #include "definitions/definitions.h"
#include "miscellaneous/settings.h" #include "miscellaneous/settings.h"
#include "application.h" #include "miscellaneous/application.h"
#include <QNetworkProxy> #include <QNetworkProxy>
#include <QNetworkReply> #include <QNetworkReply>

2
src/network-web/webbrowser.cpp Normal file → Executable file
View File

@ -175,7 +175,7 @@ void WebBrowser::createConnections() {
connect(m_webView, SIGNAL(urlChanged(QUrl)), this, SLOT(updateUrl(QUrl))); connect(m_webView, SIGNAL(urlChanged(QUrl)), this, SLOT(updateUrl(QUrl)));
// Connect this WebBrowser to global TabWidget. // Connect this WebBrowser to global TabWidget.
TabWidget *tab_widget = FormMain::instance()->tabWidget(); TabWidget *tab_widget = qApp->mainForm()->tabWidget();
connect(m_webView, SIGNAL(newTabRequested()), tab_widget, SLOT(addEmptyBrowser())); connect(m_webView, SIGNAL(newTabRequested()), tab_widget, SLOT(addEmptyBrowser()));
connect(m_webView, SIGNAL(linkMiddleClicked(QUrl)), tab_widget, SLOT(addLinkedBrowser(QUrl))); connect(m_webView, SIGNAL(linkMiddleClicked(QUrl)), tab_widget, SLOT(addLinkedBrowser(QUrl)));

2
src/network-web/webbrowsernetworkaccessmanager.cpp Normal file → Executable file
View File

@ -17,7 +17,7 @@
#include "network-web/webbrowsernetworkaccessmanager.h" #include "network-web/webbrowsernetworkaccessmanager.h"
#include "application.h" #include "miscellaneous/application.h"
#include <QNetworkReply> #include <QNetworkReply>

2
src/network-web/webfactory.cpp Normal file → Executable file
View File

@ -2,7 +2,7 @@
#include "definitions/definitions.h" #include "definitions/definitions.h"
#include "miscellaneous/settings.h" #include "miscellaneous/settings.h"
#include "application.h" #include "miscellaneous/application.h"
#include <QRegExp> #include <QRegExp>
#include <QWebSettings> #include <QWebSettings>