diff --git a/CMakeLists.txt b/CMakeLists.txt
index c99512ae7..f7d8f604f 100755
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -71,8 +71,8 @@ project(rssguard)
set(APP_NAME "RSS Guard")
set(APP_LOW_NAME "rssguard")
-set(APP_VERSION "2.0.0.1")
-set(FILE_VERSION "2,0,0,1")
+set(APP_VERSION "2.0.0.2")
+set(FILE_VERSION "2,0,0,2")
set(APP_AUTHOR "Martin Rotter")
set(APP_URL "http://bitbucket.org/skunkos/rssguard")
set(APP_URL_ISSUES "http://bitbucket.org/skunkos/rssguard/issues")
@@ -458,7 +458,7 @@ set(APP_HEADERS
src/core/feedsproxymodel.h
src/core/feeddownloader.h
src/core/feedsimportexportmodel.h
- src/core/feedsmodelrecyclebin.h
+ #src/core/feedsmodelrecyclebin.h
# NETWORK-WEB headers.
src/network-web/webpage.h
diff --git a/resources/graphics/icons/mini-kfaenza/item-open-external.png b/resources/graphics/icons/mini-kfaenza/item-open-external.png
new file mode 100644
index 000000000..e035c97f2
Binary files /dev/null and b/resources/graphics/icons/mini-kfaenza/item-open-external.png differ
diff --git a/resources/graphics/icons/mini-kfaenza/item-open.png b/resources/graphics/icons/mini-kfaenza/item-open-internal.png
similarity index 100%
rename from resources/graphics/icons/mini-kfaenza/item-open.png
rename to resources/graphics/icons/mini-kfaenza/item-open-internal.png
diff --git a/resources/text/CHANGELOG b/resources/text/CHANGELOG
index 0a7b9282e..8c8678850 100644
--- a/resources/text/CHANGELOG
+++ b/resources/text/CHANGELOG
@@ -3,6 +3,7 @@
Fixed:
Added:
diff --git a/src/core/feedsmodelfeed.cpp b/src/core/feedsmodelfeed.cpp
index 5e32bce4d..a7a388248 100755
--- a/src/core/feedsmodelfeed.cpp
+++ b/src/core/feedsmodelfeed.cpp
@@ -477,8 +477,7 @@ void FeedsModelFeed::updateMessages(const QList &messages) {
// Used to check if give feed contains with message with given
// title, url and date_created.
- // WARNING: One feed CANNOT contain two (or more) messages with same
- // AUTHOR AND TITLE AND URL AND DATE_CREATED.
+ // WARNING: One feed CANNOT contain two (or more) messages with same AUTHOR AND TITLE AND URL AND DATE_CREATED.
query_select.setForwardOnly(true);
query_select.prepare("SELECT id, feed, date_created FROM Messages "
"WHERE feed = :feed AND title = :title AND url = :url AND author = :author;");
@@ -491,7 +490,6 @@ void FeedsModelFeed::updateMessages(const QList &messages) {
if (!database.transaction()) {
database.rollback();
-
qDebug("Transaction start for message downloader failed.");
return;
}
diff --git a/src/core/feedsmodelrecyclebin.cpp b/src/core/feedsmodelrecyclebin.cpp
index c29219664..de16d75f6 100644
--- a/src/core/feedsmodelrecyclebin.cpp
+++ b/src/core/feedsmodelrecyclebin.cpp
@@ -1,3 +1,20 @@
+// This file is part of RSS Guard.
+//
+// Copyright (C) 2011-2014 by Martin Rotter
+//
+// RSS Guard is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// RSS Guard is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with RSS Guard. If not, see .
+
#include "core/feedsmodelrecyclebin.h"
#include "miscellaneous/application.h"
diff --git a/src/core/feedsmodelrecyclebin.h b/src/core/feedsmodelrecyclebin.h
index c3e624d32..71224f3f2 100644
--- a/src/core/feedsmodelrecyclebin.h
+++ b/src/core/feedsmodelrecyclebin.h
@@ -1,3 +1,20 @@
+// This file is part of RSS Guard.
+//
+// Copyright (C) 2011-2014 by Martin Rotter
+//
+// RSS Guard is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// RSS Guard is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with RSS Guard. If not, see .
+
#ifndef FEEDSMODELRECYCLEBIN_H
#define FEEDSMODELRECYCLEBIN_H
diff --git a/src/core/feedsproxymodel.cpp b/src/core/feedsproxymodel.cpp
index 86a517d03..21be49c0b 100755
--- a/src/core/feedsproxymodel.cpp
+++ b/src/core/feedsproxymodel.cpp
@@ -67,15 +67,23 @@ bool FeedsProxyModel::lessThan(const QModelIndex &left,
right_item->title()) < 0;
}
}
+ else if (left_item->kind() == FeedsModelRootItem::RecycleBin) {
+ // Left item is recycle bin. Make sure it is "smaller" item if we have selected ascending order.
+ return sortOrder() == Qt::AscendingOrder;
+ }
+ else if (right_item->kind() == FeedsModelRootItem::RecycleBin) {
+ // Right item is recycle bin. Make sure it is "biggest" item if we have selected descending order.
+ return sortOrder() == Qt::DescendingOrder;
+ }
else if (left_item->kind() == FeedsModelRootItem::Feed) {
// Left item is feed, right item is category.
return false;
}
else {
// Left item is category, right item is feed.
- // NOTE: Category is in fact "more" than feed but
- // we consider it to be "less" because it should be "placed"
+ // NOTE: Category is in fact "more" than feed but we consider it to be "less" because it should be "placed"
// above the "smalles" feed when ascending sort is used.
+ // NOTE: We need to keep recycle bin in first position.
return true;
}
}
diff --git a/src/gui/feedmessageviewer.cpp b/src/gui/feedmessageviewer.cpp
index b42bb9aa3..520c1d84b 100755
--- a/src/gui/feedmessageviewer.cpp
+++ b/src/gui/feedmessageviewer.cpp
@@ -176,13 +176,8 @@ void FeedMessageViewer::onFeedUpdatesProgress(FeedsModelFeed *feed,
}
void FeedMessageViewer::onFeedUpdatesFinished() {
- // Updates of some feeds finished, unlock the lock.
qApp->closeLock()->unlock();
-
- // And also hide progress bar.
qApp->mainForm()->statusBar()->clearProgress();
-
- // TODO: Check integrity and conformance of this.
m_messagesView->reloadSelections(1);
}
@@ -221,8 +216,7 @@ void FeedMessageViewer::createConnections() {
// State of many messages is changed, then we need
// to reload selections.
- connect(m_feedsView, SIGNAL(feedsNeedToBeReloaded(int)),
- m_messagesView, SLOT(reloadSelections(int)));
+ connect(m_feedsView, SIGNAL(feedsNeedToBeReloaded(int)), m_messagesView, SLOT(reloadSelections(int)));
// If counts of unread/all messages change, update the tray icon.
connect(m_feedsView, SIGNAL(feedCountsChanged(int,int)),
diff --git a/src/gui/formmain.cpp b/src/gui/formmain.cpp
index c2d3f7daf..52f8ea119 100755
--- a/src/gui/formmain.cpp
+++ b/src/gui/formmain.cpp
@@ -247,9 +247,9 @@ void FormMain::setupIcons() {
m_ui->m_actionMarkSelectedMessagesAsRead->setIcon(icon_theme_factory->fromTheme("mail-mark-read"));
m_ui->m_actionMarkSelectedMessagesAsUnread->setIcon(icon_theme_factory->fromTheme("mail-mark-unread"));
m_ui->m_actionSwitchImportanceOfSelectedMessages->setIcon(icon_theme_factory->fromTheme("mail-mark-favorite"));
- m_ui->m_actionOpenSelectedSourceArticlesInternally->setIcon(icon_theme_factory->fromTheme("item-open"));
- m_ui->m_actionOpenSelectedSourceArticlesExternally->setIcon(icon_theme_factory->fromTheme("item-open"));
- m_ui->m_actionOpenSelectedMessagesInternally->setIcon(icon_theme_factory->fromTheme("item-open"));
+ m_ui->m_actionOpenSelectedSourceArticlesInternally->setIcon(icon_theme_factory->fromTheme("item-open-internal"));
+ m_ui->m_actionOpenSelectedSourceArticlesExternally->setIcon(icon_theme_factory->fromTheme("item-open-external"));
+ m_ui->m_actionOpenSelectedMessagesInternally->setIcon(icon_theme_factory->fromTheme("item-open-internal"));
m_ui->m_actionViewSelectedItemsNewspaperMode->setIcon(icon_theme_factory->fromTheme("item-newspaper"));
m_ui->m_actionSelectNextFeedCategory->setIcon(icon_theme_factory->fromTheme("go-down"));
m_ui->m_actionSelectPreviousFeedCategory->setIcon(icon_theme_factory->fromTheme("go-up"));
diff --git a/src/gui/messagessearchlineedit.cpp b/src/gui/messagessearchlineedit.cpp
index 78e97b80c..940bb59ba 100644
--- a/src/gui/messagessearchlineedit.cpp
+++ b/src/gui/messagessearchlineedit.cpp
@@ -19,9 +19,6 @@
MessagesSearchLineEdit::MessagesSearchLineEdit(QWidget *parent) : BaseLineEdit(parent) {
- // TODO: ke standardnimu contextovemu menu (metoda createStandardContextMenu()
- // pridat submenu "Search type" = fixed string, wildcard, regexp
- // a vic neresit asi na strane tohodle kontrolu
}
MessagesSearchLineEdit::~MessagesSearchLineEdit() {
diff --git a/src/gui/messagesview.cpp b/src/gui/messagesview.cpp
index bea787c0e..b30352c59 100755
--- a/src/gui/messagesview.cpp
+++ b/src/gui/messagesview.cpp
@@ -224,15 +224,10 @@ void MessagesView::selectionChanged(const QItemSelection &selected,
}
void MessagesView::loadFeeds(const QList &feed_ids) {
- // Load messages.
-
- // TODO: Here we could load user-defined default sorting
- // column/order AND possibly hide/show user-defined columns for the feed(s).
m_sourceModel->loadMessages(feed_ids);
// Make sure that initial sorting is that unread messages are visible
// first.
- // NOTE: This can be rewritten so that it's changeable.
sortByColumn(MSG_DB_DCREATED_INDEX, Qt::DescendingOrder);
// Messages are loaded, make sure that previously
@@ -286,8 +281,6 @@ void MessagesView::openSelectedMessagesInternally() {
emit openMessagesInNewspaperView(messages);
// Finally, mark opened messages as read.
- // TODO: It is a question if to mark selected messages as read
- // when they get opened externally/in new tab.
markSelectedMessagesRead();
}
@@ -396,8 +389,7 @@ void MessagesView::reselectIndexes(const QModelIndexList &indexes) {
selection.merge(QItemSelection(index, index), QItemSelectionModel::Select);
}
- selectionModel()->select(selection,
- QItemSelectionModel::Select | QItemSelectionModel::Rows);
+ selectionModel()->select(selection, QItemSelectionModel::Select | QItemSelectionModel::Rows);
}
void MessagesView::selectNextItem() {
@@ -461,7 +453,6 @@ void MessagesView::adjustColumns() {
#endif
// Hide columns.
- // TODO: Make this changeable.
hideColumn(MSG_DB_ID_INDEX);
hideColumn(MSG_DB_DELETED_INDEX);
hideColumn(MSG_DB_FEED_INDEX);
diff --git a/src/gui/toolbareditor.h b/src/gui/toolbareditor.h
index ed2a55441..0042935c4 100644
--- a/src/gui/toolbareditor.h
+++ b/src/gui/toolbareditor.h
@@ -29,7 +29,6 @@ namespace Ui {
class BaseToolBar;
-// TODO: dialog pro úpravu prirazeneho toolbaru.
class ToolBarEditor : public QWidget {
Q_OBJECT
diff --git a/src/miscellaneous/application.h b/src/miscellaneous/application.h
index 976f99607..472ccd67d 100755
--- a/src/miscellaneous/application.h
+++ b/src/miscellaneous/application.h
@@ -49,7 +49,6 @@ class FormMain;
class IconFactory;
class QAction;
-// TODO: presunout nektery veci sem, settings atp
class Application : public QtSingleApplication {
Q_OBJECT
diff --git a/src/network-web/webbrowsernetworkaccessmanager.cpp b/src/network-web/webbrowsernetworkaccessmanager.cpp
index 5d3d5810f..c81618fd6 100755
--- a/src/network-web/webbrowsernetworkaccessmanager.cpp
+++ b/src/network-web/webbrowsernetworkaccessmanager.cpp
@@ -39,8 +39,7 @@ void WebBrowserNetworkAccessManager::onAuthenticationRequired(QNetworkReply *rep
Q_UNUSED(authenticator);
// TODO: Support authentication for web pages.
- qDebug("URL '%s' requested authentication but username/password is not available.",
- qPrintable(reply->url().toString()));
+ qDebug("URL '%s' requested authentication but username/password is not available.", qPrintable(reply->url().toString()));
}
WebBrowserNetworkAccessManager *WebBrowserNetworkAccessManager::instance() {