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
# MISCELLANEOUS sources.
src/miscellaneous/application.cpp
src/miscellaneous/debugging.cpp
src/miscellaneous/settings.cpp
src/miscellaneous/systemfactory.cpp
@ -387,7 +388,6 @@ set(APP_SOURCES
src/network-web/downloader.cpp
# MAIN sources.
src/application.cpp
src/main.cpp
)
@ -436,6 +436,7 @@ set(APP_HEADERS
src/dynamic-shortcuts/shortcutbutton.h
# MISCELLANEOUS headers.
src/miscellaneous/application.h
src/miscellaneous/settings.h
src/miscellaneous/localization.h
src/miscellaneous/systemfactory.h
@ -459,9 +460,6 @@ set(APP_HEADERS
src/network-web/webbrowser.h
src/network-web/webview.h
src/network-web/downloader.h
# MAIN headers.
src/application.h
)
# 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.
* “portable” mode support,
* feed categorization,
* can be fully controlled via keyboard,
* feed authentication (Digest-MD5, BASIC, NTLM-2),
* handles tons of messages & feeds,
* sweet look & feel,

View File

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

View File

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

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

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

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

@ -18,8 +18,8 @@
#include "dynamic-shortcuts/dynamicshortcuts.h"
#include "definitions/definitions.h"
#include "miscellaneous/application.h"
#include "miscellaneous/settings.h"
#include "application.h"
#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() {
//: 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,
@ -171,7 +171,7 @@ void FeedMessageViewer::onFeedUpdatesProgress(FeedsModelFeed *feed,
int total) {
// Some feed got updated.
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.
tr("Updated feed '%1'").arg(feed->title()));
}
@ -181,7 +181,7 @@ void FeedMessageViewer::onFeedUpdatesFinished() {
qApp->closeLock()->unlock();
// And also hide progress bar.
FormMain::instance()->statusBar()->clearProgress();
qApp->mainForm()->statusBar()->clearProgress();
// TODO: Check integrity and conformance of this.
m_messagesView->reloadSelections(1);
@ -192,7 +192,7 @@ void FeedMessageViewer::switchFeedComponentVisibility() {
}
void FeedMessageViewer::createConnections() {
FormMain *form_main = FormMain::instance();
FormMain *form_main = qApp->mainForm();
// Filtering & searching.
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/formmain.h"
#include "miscellaneous/application.h"
#include "miscellaneous/settings.h"
#include "miscellaneous/iconfactory.h"
FeedsToolBar::FeedsToolBar(const QString &title, QWidget *parent) : BaseToolBar(title, parent) {
@ -32,7 +33,14 @@ FeedsToolBar::~FeedsToolBar() {
}
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 {

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

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

View File

@ -19,6 +19,7 @@
#include "definitions/definitions.h"
#include "miscellaneous/settings.h"
#include "miscellaneous/application.h"
#include "miscellaneous/systemfactory.h"
#include "miscellaneous/databasefactory.h"
#include "miscellaneous/iconfactory.h"
@ -33,7 +34,6 @@
#include "gui/statusbar.h"
#include "gui/feedmessageviewer.h"
#include "gui/formupdate.h"
#include "application.h"
#include <QCloseEvent>
#include <QSessionManager>
@ -43,14 +43,10 @@
#include <QTimer>
FormMain *FormMain::s_instance;
FormMain::FormMain(QWidget *parent, Qt::WindowFlags f)
: QMainWindow(parent, f), m_ui(new Ui::FormMain) {
m_ui->setupUi(this);
// Initialize singleton.
s_instance = this;
qApp->setMainForm(this);
m_statusBar = new StatusBar(this);
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.
// This allows to use actions via shortcuts
// even if main menu is not visible.
addActions(allActions().values());
addActions(allActions());
// Prepare tabs.
m_ui->m_tabWidget->initializeTabs();
@ -81,58 +77,51 @@ FormMain::~FormMain() {
delete m_ui;
}
FormMain *FormMain::instance() {
return s_instance;
}
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;
QList<QAction*> FormMain::allActions() {
QList<QAction*> actions;
// Add basic actions.
actions.insert(m_ui->m_actionSettings->objectName(), m_ui->m_actionSettings);
actions.insert(m_ui->m_actionImportFeeds->objectName(), m_ui->m_actionImportFeeds);
actions.insert(m_ui->m_actionExportFeeds->objectName(), m_ui->m_actionExportFeeds);
actions.insert(m_ui->m_actionQuit->objectName(), m_ui->m_actionQuit);
actions.insert(m_ui->m_actionFullscreen->objectName(), m_ui->m_actionFullscreen);
actions.insert(m_ui->m_actionAboutGuard->objectName(), m_ui->m_actionAboutGuard);
actions.insert(m_ui->m_actionSwitchFeedsList->objectName(), m_ui->m_actionSwitchFeedsList);
actions.insert(m_ui->m_actionSwitchMainWindow->objectName(), m_ui->m_actionSwitchMainWindow);
actions.insert(m_ui->m_actionSwitchMainMenu->objectName(), m_ui->m_actionSwitchMainMenu);
actions.insert(m_ui->m_actionSwitchToolBars->objectName(), m_ui->m_actionSwitchToolBars);
actions.insert(m_ui->m_actionSwitchListHeaders->objectName(), m_ui->m_actionSwitchListHeaders);
actions << m_ui->m_actionSettings;
actions << m_ui->m_actionImportFeeds;
actions << m_ui->m_actionExportFeeds;
actions << m_ui->m_actionQuit;
actions << m_ui->m_actionFullscreen;
actions << m_ui->m_actionAboutGuard;
actions << m_ui->m_actionSwitchFeedsList;
actions << m_ui->m_actionSwitchMainWindow;
actions << m_ui->m_actionSwitchMainMenu;
actions << m_ui->m_actionSwitchToolBars;
actions << m_ui->m_actionSwitchListHeaders;
// Add web browser actions
actions.insert(m_ui->m_actionAddBrowser->objectName(), m_ui->m_actionAddBrowser);
actions.insert(m_ui->m_actionCloseCurrentTab->objectName(), m_ui->m_actionCloseCurrentTab);
actions.insert(m_ui->m_actionCloseAllTabs->objectName(), m_ui->m_actionCloseAllTabs);
actions << m_ui->m_actionAddBrowser;
actions << m_ui->m_actionCloseCurrentTab;
actions << m_ui->m_actionCloseAllTabs;
// Add feeds/messages actions.
actions.insert(m_ui->m_actionOpenSelectedSourceArticlesExternally->objectName(), m_ui->m_actionOpenSelectedSourceArticlesExternally);
actions.insert(m_ui->m_actionOpenSelectedSourceArticlesInternally->objectName(), m_ui->m_actionOpenSelectedSourceArticlesInternally);
actions.insert(m_ui->m_actionOpenSelectedMessagesInternally->objectName(), m_ui->m_actionOpenSelectedMessagesInternally);
actions.insert(m_ui->m_actionMarkAllFeedsRead->objectName(), m_ui->m_actionMarkAllFeedsRead);
actions.insert(m_ui->m_actionMarkSelectedFeedsAsRead->objectName(), m_ui->m_actionMarkSelectedFeedsAsRead);
actions.insert(m_ui->m_actionMarkSelectedFeedsAsUnread->objectName(), m_ui->m_actionMarkSelectedFeedsAsUnread);
actions.insert(m_ui->m_actionClearSelectedFeeds->objectName(), m_ui->m_actionClearSelectedFeeds);
actions.insert(m_ui->m_actionMarkSelectedMessagesAsRead->objectName(), m_ui->m_actionMarkSelectedMessagesAsRead);
actions.insert(m_ui->m_actionMarkSelectedMessagesAsUnread->objectName(), m_ui->m_actionMarkSelectedMessagesAsUnread);
actions.insert(m_ui->m_actionSwitchImportanceOfSelectedMessages->objectName(), m_ui->m_actionSwitchImportanceOfSelectedMessages);
actions.insert(m_ui->m_actionDeleteSelectedMessages->objectName(), m_ui->m_actionDeleteSelectedMessages);
actions.insert(m_ui->m_actionUpdateAllFeeds->objectName(), m_ui->m_actionUpdateAllFeeds);
actions.insert(m_ui->m_actionUpdateSelectedFeedsCategories->objectName(), m_ui->m_actionUpdateSelectedFeedsCategories);
actions.insert(m_ui->m_actionEditSelectedFeedCategory->objectName(), m_ui->m_actionEditSelectedFeedCategory);
actions.insert(m_ui->m_actionDeleteSelectedFeedCategory->objectName(), m_ui->m_actionDeleteSelectedFeedCategory);
actions.insert(m_ui->m_actionViewSelectedItemsNewspaperMode->objectName(), m_ui->m_actionViewSelectedItemsNewspaperMode);
actions.insert(m_ui->m_actionAddCategory->objectName(), m_ui->m_actionAddCategory);
actions.insert(m_ui->m_actionAddFeed->objectName(), m_ui->m_actionAddFeed);
actions.insert(m_ui->m_actionSelectNextFeedCategory->objectName(), m_ui->m_actionSelectNextFeedCategory);
actions.insert(m_ui->m_actionSelectPreviousFeedCategory->objectName(), m_ui->m_actionSelectPreviousFeedCategory);
actions.insert(m_ui->m_actionSelectNextMessage->objectName(), m_ui->m_actionSelectNextMessage);
actions.insert(m_ui->m_actionSelectPreviousMessage->objectName(), m_ui->m_actionSelectPreviousMessage);
actions.insert(m_ui->m_actionDefragmentDatabase->objectName(), m_ui->m_actionDefragmentDatabase);
actions << m_ui->m_actionOpenSelectedSourceArticlesExternally;
actions << m_ui->m_actionOpenSelectedSourceArticlesInternally;
actions << m_ui->m_actionOpenSelectedMessagesInternally;
actions << m_ui->m_actionMarkAllFeedsRead;
actions << m_ui->m_actionMarkSelectedFeedsAsRead;
actions << m_ui->m_actionMarkSelectedFeedsAsUnread;
actions << m_ui->m_actionClearSelectedFeeds;
actions << m_ui->m_actionMarkSelectedMessagesAsRead;
actions << m_ui->m_actionMarkSelectedMessagesAsUnread;
actions << m_ui->m_actionSwitchImportanceOfSelectedMessages;
actions << m_ui->m_actionDeleteSelectedMessages;
actions << m_ui->m_actionUpdateAllFeeds;
actions << m_ui->m_actionUpdateSelectedFeedsCategories;
actions << m_ui->m_actionEditSelectedFeedCategory;
actions << m_ui->m_actionDeleteSelectedFeedCategory;
actions << m_ui->m_actionViewSelectedItemsNewspaperMode;
actions << m_ui->m_actionAddCategory;
actions << m_ui->m_actionAddFeed;
actions << m_ui->m_actionSelectNextFeedCategory;
actions << m_ui->m_actionSelectPreviousFeedCategory;
actions << m_ui->m_actionSelectNextMessage;
actions << m_ui->m_actionSelectPreviousMessage;
actions << m_ui->m_actionDefragmentDatabase;
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.
// NOTE: This is used for setting dynamic shortcuts
// for given actions.
QHash<QString, QAction*> allActions();
// Singleton accessor.
static FormMain *instance();
QList<QAction*> allActions();
protected:
// Creates all needed menus and sets them up.
@ -120,8 +117,6 @@ class FormMain : public QMainWindow {
Ui::FormMain *m_ui;
QMenu *m_trayMenu;
StatusBar *m_statusBar;
static FormMain *s_instance;
};
#endif // FORMMAIN_H

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

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

View File

@ -20,6 +20,7 @@
#include "definitions/definitions.h"
#include "core/feeddownloader.h"
#include "core/feedsmodel.h"
#include "miscellaneous/application.h"
#include "miscellaneous/settings.h"
#include "miscellaneous/databasefactory.h"
#include "miscellaneous/localization.h"
@ -39,7 +40,6 @@
#include "gui/basetoolbar.h"
#include "gui/messagestoolbar.h"
#include "dynamic-shortcuts/dynamicshortcuts.h"
#include "application.h"
#include <QProcess>
#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, "count_format", m_ui->m_cmbCountsFeedList->currentText());
FormMain::instance()->tabWidget()->feedMessageViewer()->feedsView()->updateAutoUpdateStatus();
FormMain::instance()->tabWidget()->feedMessageViewer()->feedsView()->sourceModel()->reloadWholeLayout();
qApp->mainForm()->tabWidget()->feedMessageViewer()->feedsView()->updateAutoUpdateStatus();
qApp->mainForm()->tabWidget()->feedMessageViewer()->feedsView()->sourceModel()->reloadWholeLayout();
}
void FormSettings::displayProxyPassword(int state) {
@ -472,7 +472,7 @@ void FormSettings::saveLanguage() {
}
void FormSettings::loadShortcuts() {
m_ui->m_shortcuts->populate(FormMain::instance()->allActions().values());
m_ui->m_shortcuts->populate(qApp->mainForm()->allActions());
}
void FormSettings::saveShortcuts() {
@ -480,7 +480,7 @@ void FormSettings::saveShortcuts() {
m_ui->m_shortcuts->updateShortcuts();
// Save new shortcuts to the settings.
DynamicShortcuts::save(FormMain::instance()->allActions().values());
DynamicShortcuts::save(qApp->mainForm()->allActions());
}
void FormSettings::loadDataStorage() {
@ -759,8 +759,8 @@ void FormSettings::loadInterface() {
Qt::ToolButtonIconOnly).toInt()));
// Load toolbars.
m_ui->m_editorFeedsToolbar->loadFromToolBar(FormMain::instance()->tabWidget()->feedMessageViewer()->feedsToolBar());
m_ui->m_editorMessagesToolbar->loadFromToolBar(FormMain::instance()->tabWidget()->feedMessageViewer()->messagesToolBar());
m_ui->m_editorFeedsToolbar->loadFromToolBar(qApp->mainForm()->tabWidget()->feedMessageViewer()->feedsToolBar());
m_ui->m_editorMessagesToolbar->loadFromToolBar(qApp->mainForm()->tabWidget()->feedMessageViewer()->messagesToolBar());
}
void FormSettings::saveInterface() {
@ -823,6 +823,6 @@ void FormSettings::saveInterface() {
m_ui->m_editorFeedsToolbar->saveToolBar();
m_ui->m_editorMessagesToolbar->saveToolBar();
FormMain::instance()->tabWidget()->checkTabBarVisibility();
FormMain::instance()->tabWidget()->feedMessageViewer()->refreshVisualProperties();
qApp->mainForm()->tabWidget()->checkTabBarVisibility();
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 "miscellaneous/application.h"
#include "miscellaneous/iconfactory.h"
#include "application.h"
#include <QtGlobal>
#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*> 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(HIGHLIGHTER_ACTION_NAME, m_actionMessageHighlighter);
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() {
m_contextMenu = new QMenu(tr("Context menu for messages"), this);
m_contextMenu->addActions(QList<QAction*>() <<
FormMain::instance()->m_ui->m_actionOpenSelectedSourceArticlesExternally <<
FormMain::instance()->m_ui->m_actionOpenSelectedSourceArticlesInternally <<
FormMain::instance()->m_ui->m_actionOpenSelectedMessagesInternally <<
FormMain::instance()->m_ui->m_actionMarkSelectedMessagesAsRead <<
FormMain::instance()->m_ui->m_actionMarkSelectedMessagesAsUnread <<
FormMain::instance()->m_ui->m_actionSwitchImportanceOfSelectedMessages <<
FormMain::instance()->m_ui->m_actionDeleteSelectedMessages);
qApp->mainForm()->m_ui->m_actionOpenSelectedSourceArticlesExternally <<
qApp->mainForm()->m_ui->m_actionOpenSelectedSourceArticlesInternally <<
qApp->mainForm()->m_ui->m_actionOpenSelectedMessagesInternally <<
qApp->mainForm()->m_ui->m_actionMarkSelectedMessagesAsRead <<
qApp->mainForm()->m_ui->m_actionMarkSelectedMessagesAsUnread <<
qApp->mainForm()->m_ui->m_actionSwitchImportanceOfSelectedMessages <<
qApp->mainForm()->m_ui->m_actionDeleteSelectedMessages);
}
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 "definitions/definitions.h"
#include "miscellaneous/application.h"
#include "miscellaneous/settings.h"
#include "gui/formmain.h"
#include "gui/formsettings.h"
#include "application.h"
#include <QPainter>
#include <QTimer>

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

@ -18,6 +18,7 @@
#include "gui/tabwidget.h"
#include "definitions/definitions.h"
#include "miscellaneous/application.h"
#include "miscellaneous/settings.h"
#include "miscellaneous/textfactory.h"
#include "miscellaneous/iconfactory.h"
@ -26,7 +27,6 @@
#include "gui/formmain.h"
#include "gui/feedmessageviewer.h"
#include "gui/plaintoolbutton.h"
#include "application.h"
#include <QMenu>
#include <QToolButton>
@ -67,13 +67,13 @@ void TabWidget::setupMainMenuButton() {
void TabWidget::openMainMenu() {
if (m_menuMain == NULL) {
m_menuMain = new QMenu(tr("Main menu"), this);
m_menuMain->addMenu(FormMain::instance()->m_ui->m_menuFile);
m_menuMain->addMenu(FormMain::instance()->m_ui->m_menuView);
m_menuMain->addMenu(FormMain::instance()->m_ui->m_menuFeeds);
m_menuMain->addMenu(FormMain::instance()->m_ui->m_menuMessages);
m_menuMain->addMenu(FormMain::instance()->m_ui->m_menuWebBrowser);
m_menuMain->addMenu(FormMain::instance()->m_ui->m_menuTools);
m_menuMain->addMenu(FormMain::instance()->m_ui->m_menuHelp);
m_menuMain->addMenu(qApp->mainForm()->m_ui->m_menuFile);
m_menuMain->addMenu(qApp->mainForm()->m_ui->m_menuView);
m_menuMain->addMenu(qApp->mainForm()->m_ui->m_menuFeeds);
m_menuMain->addMenu(qApp->mainForm()->m_ui->m_menuMessages);
m_menuMain->addMenu(qApp->mainForm()->m_ui->m_menuWebBrowser);
m_menuMain->addMenu(qApp->mainForm()->m_ui->m_menuTools);
m_menuMain->addMenu(qApp->mainForm()->m_ui->m_menuHelp);
}
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/feedmessageviewer.h"
#include "gui/feedsview.h"
#include "application.h"
#include "miscellaneous/application.h"
// Needed for setting ini file format on Mac OS.
#ifdef Q_OS_MAC
@ -96,13 +96,12 @@ int main(int argc, char *argv[]) {
// Instantiate main application window.
FormMain main_window;
application.setMainForm(&main_window);
// Set correct information for main window.
main_window.setWindowTitle(APP_LONG_NAME);
// Now is a good time to initialize dynamic keyboard shortcuts.
DynamicShortcuts::load(main_window.allActions().values());
DynamicShortcuts::load(main_window.allActions());
// Display main window.
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
// along with RSS Guard. If not, see <http://www.gnu.org/licenses/>.
#include "application.h"
#include "miscellaneous/application.h"
#include "miscellaneous/systemfactory.h"
#include "gui/feedsview.h"
@ -25,13 +25,23 @@
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() {
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() {
if (m_trayIcon == NULL) {
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 <QMutex>
#include <QList>
#if defined(qApp)
#undef qApp
@ -36,6 +37,7 @@
class FormMain;
class QAction;
// TODO: presunout nektery veci sem, settings atp
class Application : public QtSingleApplication {
@ -46,6 +48,8 @@ class Application : public QtSingleApplication {
explicit Application(const QString &id, int &argc, char **argv);
virtual ~Application();
QList<QAction*> userActions();
inline SystemFactory *system() {
if (m_system == NULL) {
m_system = new SystemFactory(this);
@ -110,6 +114,7 @@ class Application : public QtSingleApplication {
// tries to lock the lock for writing), then no other
// action will be allowed to lock for reading.
QMutex *m_closeLock;
QList<QAction*> m_userActions;
FormMain *m_mainForm;
SystemTrayIcon *m_trayIcon;
Settings *m_settings;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

View File

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

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

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