From 91e9dd2a46b4ed5ad3082143016a0b7efdc8ef57 Mon Sep 17 00:00:00 2001 From: Martin Rotter Date: Mon, 4 Jan 2016 10:39:53 +0100 Subject: [PATCH] Fixed #146. --- resources/text/CHANGELOG | 3 +++ src/gui/dialogs/formmain.cpp | 6 +++++- src/gui/dialogs/formmain.ui | 9 +++++++++ src/gui/feedmessageviewer.cpp | 3 +++ src/gui/feedsview.cpp | 19 +++++++++++++++++++ src/gui/feedsview.h | 1 + 6 files changed, 40 insertions(+), 1 deletion(-) diff --git a/resources/text/CHANGELOG b/resources/text/CHANGELOG index e46e1048a..701e85fc8 100755 --- a/resources/text/CHANGELOG +++ b/resources/text/CHANGELOG @@ -1,6 +1,9 @@ 3.0.2 ————— +Added: +▪ Added generic "Add new feed" action, which can be accessed via "Feeds & messages" menu. (issue #146) + Changed: ▪ Some GUI refinements and fixes. ▪ Added more logging entries. diff --git a/src/gui/dialogs/formmain.cpp b/src/gui/dialogs/formmain.cpp index 0ca48553a..ff7b13850 100755 --- a/src/gui/dialogs/formmain.cpp +++ b/src/gui/dialogs/formmain.cpp @@ -108,7 +108,7 @@ QList FormMain::allActions() { actions << m_ui->m_actionSwitchStatusBar; actions << m_ui->m_actionSwitchMessageListOrientation; - // Add web browser actions + // Add web browser actions. actions << m_ui->m_actionAddBrowser; actions << m_ui->m_actionCloseCurrentTab; actions << m_ui->m_actionCloseAllTabs; @@ -132,6 +132,9 @@ QList FormMain::allActions() { actions << m_ui->m_actionEditSelectedItem; actions << m_ui->m_actionDeleteSelectedItem; actions << m_ui->m_actionServiceAdd; + actions << m_ui->m_actionServiceEdit; + actions << m_ui->m_actionServiceDelete; + actions << m_ui->m_actionAddFeedIntoSelectedAccount; actions << m_ui->m_actionViewSelectedItemsNewspaperMode; actions << m_ui->m_actionSelectNextItem; actions << m_ui->m_actionSelectPreviousItem; @@ -383,6 +386,7 @@ void FormMain::setupIcons() { m_ui->m_actionServiceAdd->setIcon(icon_theme_factory->fromTheme(QSL("item-new"))); m_ui->m_actionServiceEdit->setIcon(icon_theme_factory->fromTheme(QSL("item-edit"))); m_ui->m_actionServiceDelete->setIcon(icon_theme_factory->fromTheme(QSL("item-remove"))); + m_ui->m_actionAddFeedIntoSelectedAccount->setIcon(icon_theme_factory->fromTheme(QSL("item-new"))); // Setup icons for underlying components: opened web browsers... foreach (WebBrowser *browser, WebBrowser::runningWebBrowsers()) { diff --git a/src/gui/dialogs/formmain.ui b/src/gui/dialogs/formmain.ui index ecbb7f392..f82153e44 100755 --- a/src/gui/dialogs/formmain.ui +++ b/src/gui/dialogs/formmain.ui @@ -137,6 +137,7 @@ + @@ -781,6 +782,14 @@ + + + Add new feed into selected account + + + + + diff --git a/src/gui/feedmessageviewer.cpp b/src/gui/feedmessageviewer.cpp index 7c6e68c79..424c2e721 100755 --- a/src/gui/feedmessageviewer.cpp +++ b/src/gui/feedmessageviewer.cpp @@ -213,6 +213,7 @@ void FeedMessageViewer::updateFeedButtonsAvailability() { form_main->m_ui->m_actionServiceDelete->setEnabled(service_selected); form_main->m_ui->m_actionServiceEdit->setEnabled(service_selected); + form_main->m_ui->m_actionAddFeedIntoSelectedAccount->setEnabled(service_selected); form_main->m_ui->m_menuAddItem->setEnabled(!critical_action_running); form_main->m_ui->m_menuAccounts->setEnabled(!critical_action_running); @@ -254,6 +255,8 @@ void FeedMessageViewer::createConnections() { form_main->m_ui->m_tabWidget, SLOT(addBrowserWithMessages(QList))); // Toolbar forwardings. + connect(form_main->m_ui->m_actionAddFeedIntoSelectedAccount, SIGNAL(triggered()), + m_feedsView, SLOT(addFeedIntoSelectedAccount())); connect(form_main->m_ui->m_actionCleanupDatabase, SIGNAL(triggered()), this, SLOT(showDbCleanupAssistant())); connect(form_main->m_ui->m_actionSwitchImportanceOfSelectedMessages, diff --git a/src/gui/feedsview.cpp b/src/gui/feedsview.cpp index bbf5ca1bb..18f4e0dca 100755 --- a/src/gui/feedsview.cpp +++ b/src/gui/feedsview.cpp @@ -28,6 +28,7 @@ #include "gui/styleditemdelegatewithoutfocus.h" #include "gui/dialogs/formmain.h" #include "services/abstract/feed.h" +#include "services/abstract/serviceroot.h" #include "services/standard/standardcategory.h" #include "services/standard/standardfeed.h" #include "services/standard/gui/formstandardcategorydetails.h" @@ -133,6 +134,24 @@ void FeedsView::loadExpandedStates() { static_cast(qApp->settings()->value(GROUP(GUI), SETTING(GUI::DefaultSortOrderFeeds)).toInt())); } +void FeedsView::addFeedIntoSelectedAccount() { + RootItem *selected = selectedItem(); + + if (selected->kind() == RootItemKind::ServiceRoot) { + ServiceRoot *root = selected->toServiceRoot(); + + if (root->supportsFeedAddingByUrl()) { + root->addFeedByUrl(); + } + else { + qApp->showGuiMessage(tr("Not supported"), + tr("Selected account does not support adding of new feeds."), + QSystemTrayIcon::Warning, + qApp->mainForm(), true); + } + } +} + void FeedsView::expandCollapseCurrentItem() { if (selectionModel()->selectedRows().size() == 1) { QModelIndex index = selectionModel()->selectedRows().at(0); diff --git a/src/gui/feedsview.h b/src/gui/feedsview.h index 4932fe68c..f5d68601a 100755 --- a/src/gui/feedsview.h +++ b/src/gui/feedsview.h @@ -62,6 +62,7 @@ class FeedsView : public QTreeView { void loadExpandedStates(); public slots: + void addFeedIntoSelectedAccount(); void expandCollapseCurrentItem(); // Feed updating.