Updated translations + progress in .

This commit is contained in:
Martin Rotter 2015-08-18 09:07:21 +02:00
parent eb006f5d76
commit a3773914b7
19 changed files with 260 additions and 75 deletions

@ -65,8 +65,8 @@ project(rssguard)
set(APP_NAME "RSS Guard")
set(APP_LOW_NAME "rssguard")
set(APP_VERSION "2.5.1")
set(FILE_VERSION "2,5,1,0")
set(APP_VERSION "2.5.2")
set(FILE_VERSION "2,5,2,0")
set(APP_AUTHOR "Martin Rotter")
set(APP_URL "http://bitbucket.org/skunkos/rssguard")
set(APP_URL_ISSUES "http://bitbucket.org/skunkos/rssguard/issues")

@ -461,6 +461,14 @@ Automatický update: %5</translation>
<extracomment>Tooltip for &quot;unread&quot; column of feed list.</extracomment>
<translation><numerusform>%n nepřečtená zpráva.</numerusform><numerusform>%n nepřečtené zprávy.</numerusform><numerusform>%n nepřečtených zpráv.</numerusform></translation>
</message>
<message>
<source>Metadata not fetched</source>
<translation type="unfinished"/>
</message>
<message>
<source>Metadata was not fetched because: %1</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>FeedMessageViewer</name>
@ -572,10 +580,6 @@ Automatický update: %5</translation>
</context>
<context>
<name>FeedsView</name>
<message>
<source>Context menu for feeds</source>
<translation>Kontextové menu pro přehled kanálů</translation>
</message>
<message>
<source>Cannot add standard category</source>
<translation>Nelze přidat standardní kategorii</translation>
@ -648,6 +652,10 @@ Automatický update: %5</translation>
<source>Delete feed/category</source>
<translation>Smazat kanál/kategorii</translation>
</message>
<message>
<source>Context menu for categories</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>FormAbout</name>
@ -1760,6 +1768,10 @@ Automatický update: %5</translation>
<source>Show only unread feeds/categories</source>
<translation>Zobrazit pouze nepřečtené kanály/kategorie</translation>
</message>
<message>
<source>&amp;Fetch feed metadata</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>FormRestoreDatabaseSettings</name>

@ -450,6 +450,14 @@ Auto-update status: %5</source>
<extracomment>Tooltip for &quot;unread&quot; column of feed list.</extracomment>
<translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
</message>
<message>
<source>Metadata not fetched</source>
<translation type="unfinished"/>
</message>
<message>
<source>Metadata was not fetched because: %1</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>FeedMessageViewer</name>
@ -561,10 +569,6 @@ Auto-update status: %5</source>
</context>
<context>
<name>FeedsView</name>
<message>
<source>Context menu for feeds</source>
<translation type="unfinished"/>
</message>
<message>
<source>Cannot add standard category</source>
<translation type="unfinished"/>
@ -637,6 +641,10 @@ Auto-update status: %5</source>
<source>Delete feed/category</source>
<translation type="unfinished"/>
</message>
<message>
<source>Context menu for categories</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>FormAbout</name>
@ -1749,6 +1757,10 @@ Auto-update status: %5</source>
<source>Show only unread feeds/categories</source>
<translation type="unfinished"/>
</message>
<message>
<source>&amp;Fetch feed metadata</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>FormRestoreDatabaseSettings</name>

@ -450,6 +450,14 @@ Auto-update status: %5</source>
<extracomment>Tooltip for &quot;unread&quot; column of feed list.</extracomment>
<translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
</message>
<message>
<source>Metadata not fetched</source>
<translation type="unfinished"/>
</message>
<message>
<source>Metadata was not fetched because: %1</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>FeedMessageViewer</name>
@ -561,10 +569,6 @@ Auto-update status: %5</source>
</context>
<context>
<name>FeedsView</name>
<message>
<source>Context menu for feeds</source>
<translation>Kontextmenü für Feeds</translation>
</message>
<message>
<source>Cannot add standard category</source>
<translation>Kann die Standardkategorie nicht hinzufügen</translation>
@ -637,6 +641,10 @@ Auto-update status: %5</source>
<source>Delete feed/category</source>
<translation type="unfinished"/>
</message>
<message>
<source>Context menu for categories</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>FormAbout</name>
@ -1749,6 +1757,10 @@ Auto-update status: %5</source>
<source>Show only unread feeds/categories</source>
<translation type="unfinished"/>
</message>
<message>
<source>&amp;Fetch feed metadata</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>FormRestoreDatabaseSettings</name>

@ -473,6 +473,14 @@ Auto-update status: %5</source>
<numerusform></numerusform>
</translation>
</message>
<message>
<source>Metadata not fetched</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Metadata was not fetched because: %1</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>FeedMessageViewer</name>
@ -587,10 +595,6 @@ Auto-update status: %5</source>
</context>
<context>
<name>FeedsView</name>
<message>
<source>Context menu for feeds</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Cannot add standard category</source>
<translation type="unfinished"></translation>
@ -663,6 +667,10 @@ Auto-update status: %5</source>
<source>Delete feed/category</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Context menu for categories</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>FormAbout</name>
@ -1778,6 +1786,10 @@ Auto-update status: %5</source>
<source>Show only unread feeds/categories</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>&amp;Fetch feed metadata</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>FormRestoreDatabaseSettings</name>

@ -450,6 +450,14 @@ Auto-update status: %5</source>
<extracomment>Tooltip for &quot;unread&quot; column of feed list.</extracomment>
<translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
</message>
<message>
<source>Metadata not fetched</source>
<translation type="unfinished"/>
</message>
<message>
<source>Metadata was not fetched because: %1</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>FeedMessageViewer</name>
@ -561,10 +569,6 @@ Auto-update status: %5</source>
</context>
<context>
<name>FeedsView</name>
<message>
<source>Context menu for feeds</source>
<translation type="unfinished"/>
</message>
<message>
<source>Cannot add standard category</source>
<translation type="unfinished"/>
@ -637,6 +641,10 @@ Auto-update status: %5</source>
<source>Delete feed/category</source>
<translation type="unfinished"/>
</message>
<message>
<source>Context menu for categories</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>FormAbout</name>
@ -1749,6 +1757,10 @@ Auto-update status: %5</source>
<source>Show only unread feeds/categories</source>
<translation type="unfinished"/>
</message>
<message>
<source>&amp;Fetch feed metadata</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>FormRestoreDatabaseSettings</name>

@ -450,6 +450,14 @@ Auto-update status: %5</source>
<extracomment>Tooltip for &quot;unread&quot; column of feed list.</extracomment>
<translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
</message>
<message>
<source>Metadata not fetched</source>
<translation type="unfinished"/>
</message>
<message>
<source>Metadata was not fetched because: %1</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>FeedMessageViewer</name>
@ -561,10 +569,6 @@ Auto-update status: %5</source>
</context>
<context>
<name>FeedsView</name>
<message>
<source>Context menu for feeds</source>
<translation>Menu contextuel pour les flux</translation>
</message>
<message>
<source>Cannot add standard category</source>
<translation>Impossible d&apos;ajouter une catégorie standard</translation>
@ -637,6 +641,10 @@ Auto-update status: %5</source>
<source>Delete feed/category</source>
<translation type="unfinished"/>
</message>
<message>
<source>Context menu for categories</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>FormAbout</name>
@ -1749,6 +1757,10 @@ Auto-update status: %5</source>
<source>Show only unread feeds/categories</source>
<translation type="unfinished"/>
</message>
<message>
<source>&amp;Fetch feed metadata</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>FormRestoreDatabaseSettings</name>

@ -450,6 +450,14 @@ Auto-update status: %5</source>
<extracomment>Tooltip for &quot;unread&quot; column of feed list.</extracomment>
<translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
</message>
<message>
<source>Metadata not fetched</source>
<translation type="unfinished"/>
</message>
<message>
<source>Metadata was not fetched because: %1</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>FeedMessageViewer</name>
@ -561,10 +569,6 @@ Auto-update status: %5</source>
</context>
<context>
<name>FeedsView</name>
<message>
<source>Context menu for feeds</source>
<translation>Menu contestuale per i feed</translation>
</message>
<message>
<source>Cannot add standard category</source>
<translation>Impossibile aggiungere categoria standard </translation>
@ -637,6 +641,10 @@ Auto-update status: %5</source>
<source>Delete feed/category</source>
<translation type="unfinished"/>
</message>
<message>
<source>Context menu for categories</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>FormAbout</name>
@ -1749,6 +1757,10 @@ Auto-update status: %5</source>
<source>Show only unread feeds/categories</source>
<translation type="unfinished"/>
</message>
<message>
<source>&amp;Fetch feed metadata</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>FormRestoreDatabaseSettings</name>

@ -461,6 +461,14 @@ Auto-update status: 55 </translation>
<extracomment>Tooltip for &quot;unread&quot; column of feed list.</extracomment>
<translation><numerusform>%n ongelezen bericht.</numerusform><numerusform>%n ongelezen berichten.</numerusform></translation>
</message>
<message>
<source>Metadata not fetched</source>
<translation type="unfinished"/>
</message>
<message>
<source>Metadata was not fetched because: %1</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>FeedMessageViewer</name>
@ -572,10 +580,6 @@ Auto-update status: 55 </translation>
</context>
<context>
<name>FeedsView</name>
<message>
<source>Context menu for feeds</source>
<translation>Contextmenu voor feeds</translation>
</message>
<message>
<source>Cannot add standard category</source>
<translation>Kan geen standaard categorie toevoegen</translation>
@ -648,6 +652,10 @@ Auto-update status: 55 </translation>
<source>Delete feed/category</source>
<translation>Verwijder feed/categorie</translation>
</message>
<message>
<source>Context menu for categories</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>FormAbout</name>
@ -1761,6 +1769,10 @@ Exporteer feeds die je wilt van het geselecteerde bestand.</translation>
<source>Show only unread feeds/categories</source>
<translation>Toon alleen de ongelezen feeds/categorieën</translation>
</message>
<message>
<source>&amp;Fetch feed metadata</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>FormRestoreDatabaseSettings</name>

@ -460,6 +460,14 @@ Uppdateringsstatus: %5</translation>
<extracomment>Tooltip for &quot;unread&quot; column of feed list.</extracomment>
<translation><numerusform>%n oläst meddelande.</numerusform><numerusform>%n olästa meddelanden.</numerusform></translation>
</message>
<message>
<source>Metadata not fetched</source>
<translation type="unfinished"/>
</message>
<message>
<source>Metadata was not fetched because: %1</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>FeedMessageViewer</name>
@ -571,10 +579,6 @@ Uppdateringsstatus: %5</translation>
</context>
<context>
<name>FeedsView</name>
<message>
<source>Context menu for feeds</source>
<translation>Kontextmeny för flöden</translation>
</message>
<message>
<source>Cannot add standard category</source>
<translation>Kan inte lägga till kategori</translation>
@ -647,6 +651,10 @@ Uppdateringsstatus: %5</translation>
<source>Delete feed/category</source>
<translation>Ta bort flöde/kategori</translation>
</message>
<message>
<source>Context menu for categories</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>FormAbout</name>
@ -1759,6 +1767,10 @@ Uppdateringsstatus: %5</translation>
<source>Show only unread feeds/categories</source>
<translation>Visa endast olästa flöden/kategorier </translation>
</message>
<message>
<source>&amp;Fetch feed metadata</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>FormRestoreDatabaseSettings</name>

@ -15,18 +15,31 @@
</style>
</head>
<body>
<center><h2>2.5.2 (not yet released)</h2></center>
Added:
<ul>
<li>Added experimental support for fetching metadata for individual feeds via feed context menu. (issue #118)</li>
</ul>
Fixed:
<ul>
<ul>
<hr/>
<center><h2>2.5.1</h2></center>
Added:
<ul>
<li><b>Key used for proxy/feed password coding is now stored in separate file. This file lies in the same directory as configuration file. If your use password-protected proxy/feeds, then make sure that NOBODY gets access to that file and your DB file in the same time.</b></li>
<li>Notifications on Linux now support D-Bus "org.freedesktop.Notifications" service. User must have enabled "modern & fancy notifications" for this to work. If D-Bus service is not available, then feature falls back to RSS Guard custom popup notifications.</li>
</ul>
Fixed:
<ul>
<li>Size of downloaded website artifacts is now not hidden by progress bar.</li>
<li>Auto-updating of feeds fixed, error was due to master mutex double locking. (issue #117)</li>
<li>Fixed some memory leaks which might appear when adding/editing categories/feeds.</li>
<ul>
<hr/>
<center><h2>2.5.0</h2></center>
Added:

@ -143,10 +143,31 @@ void Feed::updateCounts(bool including_total_count, bool update_feed_statuses) {
}
}
QPair<Feed*, QNetworkReply::NetworkError> Feed::guessFeed(const QString &url,
const QString &username,
const QString &password) {
QPair<Feed*, QNetworkReply::NetworkError> result; result.first = NULL;
void Feed::fetchMetadataForItself() {
QPair<Feed*,QNetworkReply::NetworkError> metadata = guessFeed(url(), username(), password());
if (metadata.first != NULL && metadata.second == QNetworkReply::NoError) {
// Some properties are not updated when new metadata are fetched.
metadata.first->setParent(parent());
metadata.first->setUrl(url());
metadata.first->setPasswordProtected(passwordProtected());
metadata.first->setUsername(username());
metadata.first->setPassword(password());
metadata.first->setAutoUpdateType(autoUpdateType());
metadata.first->setAutoUpdateInitialInterval(autoUpdateInitialInterval());
editItself(metadata.first);
delete metadata.first;
}
else {
qApp->showGuiMessage(tr("Metadata not fetched"),
tr("Metadata was not fetched because: %1").arg(NetworkFactory::networkErrorText(metadata.second)),
QSystemTrayIcon::Critical);
}
}
QPair<Feed*,QNetworkReply::NetworkError> Feed::guessFeed(const QString &url, const QString &username, const QString &password) {
QPair<Feed*,QNetworkReply::NetworkError> result; result.first = NULL;
QByteArray feed_contents;
NetworkResult network_result = NetworkFactory::downloadFeedFile(url,

@ -180,9 +180,7 @@ class Feed : public RootItem {
// Returns pointer to guessed feed (if at least partially
// guessed) and retrieved error/status code from network layer
// or NULL feed.
static QPair<Feed*, QNetworkReply::NetworkError> guessFeed(const QString &url,
const QString &username,
const QString &password);
static QPair<Feed*,QNetworkReply::NetworkError> guessFeed(const QString &url, const QString &username, const QString &password);
// Converts particular feed type to string.
static QString typeToString(Type type);
@ -191,6 +189,8 @@ class Feed : public RootItem {
// Updates counts of all/unread messages for this feed.
void updateCounts(bool including_total_count = true, bool update_feed_statuses = true);
void fetchMetadataForItself();
protected:
// Persistently stores given messages into the database
// and updates existing messages if newer version is

@ -264,8 +264,8 @@ void FormFeedDetails::apply() {
void FormFeedDetails::guessFeed() {
QPair<Feed*, QNetworkReply::NetworkError> result = Feed::guessFeed(m_ui->m_txtUrl->lineEdit()->text(),
m_ui->m_txtUsername->lineEdit()->text(),
m_ui->m_txtPassword->lineEdit()->text());
m_ui->m_txtUsername->lineEdit()->text(),
m_ui->m_txtPassword->lineEdit()->text());
if (result.first != NULL) {
// Icon or whole feed was guessed.
@ -307,9 +307,9 @@ void FormFeedDetails::guessFeed() {
}
void FormFeedDetails::guessIconOnly() {
QPair<Feed*, QNetworkReply::NetworkError> result = Feed::guessFeed(m_ui->m_txtUrl->lineEdit()->text(),
m_ui->m_txtUsername->lineEdit()->text(),
m_ui->m_txtPassword->lineEdit()->text());
QPair<Feed*, QNetworkReply::NetworkError> result = Feed::guessFeed(m_ui->m_txtUrl->lineEdit()->text(),
m_ui->m_txtUsername->lineEdit()->text(),
m_ui->m_txtPassword->lineEdit()->text());
if (result.first != NULL) {
// Icon or whole feed was guessed.

@ -277,6 +277,7 @@ void FormMain::setupIcons() {
m_ui->m_actionSelectNextMessage->setIcon(icon_theme_factory->fromTheme(QSL("go-down")));
m_ui->m_actionSelectPreviousMessage->setIcon(icon_theme_factory->fromTheme(QSL("go-up")));
m_ui->m_actionShowOnlyUnreadFeeds->setIcon(icon_theme_factory->fromTheme(QSL("mail-mark-unread")));
m_ui->m_actionFetchFeedMetadata->setIcon(icon_theme_factory->fromTheme(QSL("download-manager")));
// Setup icons for underlying components: opened web browsers...
foreach (WebBrowser *browser, WebBrowser::runningWebBrowsers()) {

@ -143,6 +143,7 @@
<addaction name="m_menuAddItem"/>
<addaction name="m_actionEditSelectedFeedCategory"/>
<addaction name="m_actionDeleteSelectedFeedCategory"/>
<addaction name="m_actionFetchFeedMetadata"/>
<addaction name="separator"/>
<addaction name="m_actionShowOnlyUnreadFeeds"/>
<addaction name="separator"/>
@ -662,6 +663,14 @@
<string notr="true">Ctrl+Shift+U</string>
</property>
</action>
<action name="m_actionFetchFeedMetadata">
<property name="text">
<string>&amp;Fetch feed metadata</string>
</property>
<property name="shortcut">
<string notr="true">Ctrl+Shift+F</string>
</property>
</action>
</widget>
<customwidgets>
<customwidget>

@ -316,6 +316,7 @@ void FeedMessageViewer::updateFeedButtonsAvailability() {
form_main->m_ui->m_actionUpdateAllFeeds->setEnabled(!critical_action_running);
form_main->m_ui->m_actionUpdateSelectedFeeds->setEnabled(!critical_action_running && feed_selected);
form_main->m_ui->m_actionViewSelectedItemsNewspaperMode->setEnabled(feed_selected);
form_main->m_ui->m_actionFetchFeedMetadata->setEnabled(feed_selected);
form_main->m_ui->m_menuAddItem->setEnabled(!critical_action_running);
}
@ -387,6 +388,8 @@ void FeedMessageViewer::createConnections() {
SIGNAL(triggered()), m_feedsView, SLOT(markAllFeedsRead()));
connect(form_main->m_ui->m_actionMarkSelectedFeedsAsRead,
SIGNAL(triggered()), m_feedsView, SLOT(markSelectedFeedsRead()));
connect(form_main->m_ui->m_actionFetchFeedMetadata, SIGNAL(triggered()),
m_feedsView, SLOT(fetchMetadataForSelectedFeed()));
connect(form_main->m_ui->m_actionMarkSelectedFeedsAsUnread,
SIGNAL(triggered()), m_feedsView, SLOT(markSelectedFeedsUnread()));
connect(form_main->m_ui->m_actionClearSelectedFeeds,

@ -44,7 +44,8 @@
FeedsView::FeedsView(QWidget *parent)
: QTreeView(parent),
m_contextMenuCategoriesFeeds(NULL),
m_contextMenuCategories(NULL),
m_contextMenuFeeds(NULL),
m_contextMenuEmptySpace(NULL),
m_contextMenuRecycleBin(NULL) {
setObjectName(QSL("FeedsView"));
@ -373,6 +374,15 @@ void FeedsView::markAllFeedsRead() {
markAllFeedsReadStatus(1);
}
void FeedsView::fetchMetadataForSelectedFeed() {
Feed *selected_feed = selectedFeed();
if (selected_feed != NULL) {
selected_feed->fetchMetadataForItself();
m_sourceModel->reloadChangedLayout(QModelIndexList() << m_proxyModel->mapToSource(selectionModel()->selectedRows(0).at(0)));
}
}
void FeedsView::clearAllReadMessages() {
m_sourceModel->markFeedsDeleted(allFeeds(), 1, 1);
}
@ -488,19 +498,31 @@ void FeedsView::selectPreviousItem() {
}
}
void FeedsView::initializeContextMenuCategoriesFeeds() {
m_contextMenuCategoriesFeeds = new QMenu(tr("Context menu for feeds"), this);
m_contextMenuCategoriesFeeds->addActions(QList<QAction*>() <<
qApp->mainForm()->m_ui->m_actionUpdateSelectedFeeds <<
qApp->mainForm()->m_ui->m_actionEditSelectedFeedCategory <<
qApp->mainForm()->m_ui->m_actionViewSelectedItemsNewspaperMode <<
qApp->mainForm()->m_ui->m_actionMarkSelectedFeedsAsRead <<
qApp->mainForm()->m_ui->m_actionMarkSelectedFeedsAsUnread <<
qApp->mainForm()->m_ui->m_actionDeleteSelectedFeedCategory);
m_contextMenuCategoriesFeeds->addSeparator();
m_contextMenuCategoriesFeeds->addActions(QList<QAction*>() <<
qApp->mainForm()->m_ui->m_actionAddCategory <<
qApp->mainForm()->m_ui->m_actionAddFeed);
void FeedsView::initializeContextMenuCategories() {
m_contextMenuCategories = new QMenu(tr("Context menu for categories"), this);
m_contextMenuCategories->addActions(QList<QAction*>() <<
qApp->mainForm()->m_ui->m_actionUpdateSelectedFeeds <<
qApp->mainForm()->m_ui->m_actionEditSelectedFeedCategory <<
qApp->mainForm()->m_ui->m_actionViewSelectedItemsNewspaperMode <<
qApp->mainForm()->m_ui->m_actionMarkSelectedFeedsAsRead <<
qApp->mainForm()->m_ui->m_actionMarkSelectedFeedsAsUnread <<
qApp->mainForm()->m_ui->m_actionDeleteSelectedFeedCategory);
m_contextMenuCategories->addSeparator();
m_contextMenuCategories->addActions(QList<QAction*>() <<
qApp->mainForm()->m_ui->m_actionAddCategory <<
qApp->mainForm()->m_ui->m_actionAddFeed);
}
void FeedsView::initializeContextMenuFeeds() {
m_contextMenuFeeds = new QMenu(tr("Context menu for categories"), this);
m_contextMenuFeeds->addActions(QList<QAction*>() <<
qApp->mainForm()->m_ui->m_actionUpdateSelectedFeeds <<
qApp->mainForm()->m_ui->m_actionEditSelectedFeedCategory <<
qApp->mainForm()->m_ui->m_actionViewSelectedItemsNewspaperMode <<
qApp->mainForm()->m_ui->m_actionMarkSelectedFeedsAsRead <<
qApp->mainForm()->m_ui->m_actionMarkSelectedFeedsAsUnread <<
qApp->mainForm()->m_ui->m_actionDeleteSelectedFeedCategory <<
qApp->mainForm()->m_ui->m_actionFetchFeedMetadata);
}
void FeedsView::initializeContextMenuEmptySpace() {
@ -577,14 +599,23 @@ void FeedsView::contextMenuEvent(QContextMenuEvent *event) {
QModelIndex mapped_index = model()->mapToSource(clicked_index);
RootItem *clicked_item = sourceModel()->itemForIndex(mapped_index);
if (clicked_item->kind() == RootItem::Cattegory || clicked_item->kind() == RootItem::Feeed) {
if (clicked_item->kind() == RootItem::Cattegory) {
// Display context menu for categories.
if (m_contextMenuCategoriesFeeds == NULL) {
if (m_contextMenuCategories == NULL) {
// Context menu is not initialized, initialize.
initializeContextMenuCategoriesFeeds();
initializeContextMenuCategories();
}
m_contextMenuCategoriesFeeds->exec(event->globalPos());
m_contextMenuCategories->exec(event->globalPos());
}
else if (clicked_item->kind() == RootItem::Feeed) {
// Display context menu for feeds.
if (m_contextMenuFeeds == NULL) {
// Context menu is not initialized, initialize.
initializeContextMenuFeeds();
}
m_contextMenuFeeds->exec(event->globalPos());
}
else if (clicked_item->kind() == RootItem::Bin) {
// Display context menu for recycle bin.
@ -619,8 +650,3 @@ void FeedsView::validateItemAfterDragDrop(const QModelIndex &source_index) {
setCurrentIndex(mapped);
}
}

@ -82,6 +82,8 @@ class FeedsView : public QTreeView {
void markAllFeedsReadStatus(int read);
void markAllFeedsRead();
void fetchMetadataForSelectedFeed();
// Newspaper accessors.
void openSelectedFeedsInNewspaperMode();
@ -143,7 +145,8 @@ class FeedsView : public QTreeView {
protected:
// Initializes context menus.
void initializeContextMenuCategoriesFeeds();
void initializeContextMenuCategories();
void initializeContextMenuFeeds();
void initializeContextMenuEmptySpace();
void initializeContextMenuRecycleBin();
@ -180,7 +183,8 @@ class FeedsView : public QTreeView {
void openMessagesInNewspaperView(const QList<Message> &messages);
private:
QMenu *m_contextMenuCategoriesFeeds;
QMenu *m_contextMenuCategories;
QMenu *m_contextMenuFeeds;
QMenu *m_contextMenuEmptySpace;
QMenu *m_contextMenuRecycleBin;