diff --git a/resources/desktop/com.github.rssguard.appdata.xml b/resources/desktop/com.github.rssguard.appdata.xml
index 83f988c6b..797bb83ba 100644
--- a/resources/desktop/com.github.rssguard.appdata.xml
+++ b/resources/desktop/com.github.rssguard.appdata.xml
@@ -26,7 +26,7 @@
https://github.com/sponsors/martinrotter
-
+
none
diff --git a/src/librssguard/gui/messagesview.cpp b/src/librssguard/gui/messagesview.cpp
index 7874b6c4a..6104b07d4 100644
--- a/src/librssguard/gui/messagesview.cpp
+++ b/src/librssguard/gui/messagesview.cpp
@@ -410,7 +410,7 @@ void MessagesView::selectionChanged(const QItemSelection& selected, const QItemS
<< current_index << "', source '"
<< mapped_current_index << "'.";
- if (mapped_current_index.isValid() && selected_rows.count() > 0) {
+ if (mapped_current_index.isValid() && selected_rows.count() == 1) {
Message message = m_sourceModel->messageAt(m_proxyModel->mapToSource(current_index).row());
// Set this message as read only if current item
@@ -509,19 +509,18 @@ void MessagesView::markSelectedMessagesUnread() {
}
void MessagesView::setSelectedMessagesReadStatus(RootItem::ReadStatus read) {
- QModelIndex current_index = selectionModel()->currentIndex();
+ const QModelIndexList selected_indexes = selectionModel()->selectedRows();
- if (!current_index.isValid()) {
+ if (selected_indexes.isEmpty()) {
return;
}
- QModelIndexList selected_indexes = selectionModel()->selectedRows();
const QModelIndexList mapped_indexes = m_proxyModel->mapListToSource(selected_indexes);
m_sourceModel->setBatchMessagesRead(mapped_indexes, read);
- current_index = m_proxyModel->index(current_index.row(), current_index.column());
+ QModelIndex current_index = selectionModel()->currentIndex();
- if (current_index.isValid()) {
+ if (current_index.isValid() && selected_indexes.size() == 1) {
emit currentMessageChanged(m_sourceModel->messageAt(m_proxyModel->mapToSource(current_index).row()), m_sourceModel->loadedItem());
}
else {
@@ -530,19 +529,20 @@ void MessagesView::setSelectedMessagesReadStatus(RootItem::ReadStatus read) {
}
void MessagesView::deleteSelectedMessages() {
- QModelIndex current_index = selectionModel()->currentIndex();
+ const QModelIndexList selected_indexes = selectionModel()->selectedRows();
- if (!current_index.isValid()) {
+ if (selected_indexes.isEmpty()) {
return;
}
- const QModelIndexList selected_indexes = selectionModel()->selectedRows();
const QModelIndexList mapped_indexes = m_proxyModel->mapListToSource(selected_indexes);
m_sourceModel->setBatchMessagesDeleted(mapped_indexes);
- current_index = moveCursor(QAbstractItemView::MoveDown, Qt::NoModifier);
+ QModelIndex current_index = currentIndex().isValid()
+ ? moveCursor(QAbstractItemView::CursorAction::MoveDown, Qt::KeyboardModifier::NoModifier)
+ : currentIndex();
- if (current_index.isValid()) {
+ if (current_index.isValid() && selected_indexes.size() == 1) {
setCurrentIndex(current_index);
}
else {
@@ -572,19 +572,18 @@ void MessagesView::restoreSelectedMessages() {
}
void MessagesView::switchSelectedMessagesImportance() {
- QModelIndex current_index = selectionModel()->currentIndex();
+ const QModelIndexList selected_indexes = selectionModel()->selectedRows();
- if (!current_index.isValid()) {
+ if (selected_indexes.isEmpty()) {
return;
}
- QModelIndexList selected_indexes = selectionModel()->selectedRows();
const QModelIndexList mapped_indexes = m_proxyModel->mapListToSource(selected_indexes);
m_sourceModel->switchBatchMessageImportance(mapped_indexes);
- current_index = m_proxyModel->index(current_index.row(), current_index.column());
+ QModelIndex current_index = selectionModel()->currentIndex();
- if (current_index.isValid()) {
+ if (current_index.isValid() && selected_indexes.size() == 1) {
emit currentMessageChanged(m_sourceModel->messageAt(m_proxyModel->mapToSource(current_index).row()), m_sourceModel->loadedItem());
}
else {
diff --git a/src/librssguard/miscellaneous/application.cpp b/src/librssguard/miscellaneous/application.cpp
index 671e1ce5a..dc9b75847 100644
--- a/src/librssguard/miscellaneous/application.cpp
+++ b/src/librssguard/miscellaneous/application.cpp
@@ -194,7 +194,16 @@ void Application::loadDynamicShortcuts() {
void Application::showPolls() const {
if(isFirstRunCurrentVersion()) {
- web()->openUrlInExternalBrowser(QSL("https://discord.gg/7xbVMPPNqH"));
+ qApp->showGuiMessage(Notification::Event::NewAppVersionAvailable,
+ tr("RSS Guard has Discord server!"),
+ tr("You can visit it now! Click me!"),
+ QSystemTrayIcon::MessageIcon::Information,
+ true,
+ {},
+ tr("Go to Discord!"),
+ [this]() {
+ web()->openUrlInExternalBrowser(QSL("https://discord.gg/7xbVMPPNqH"));
+ });
}
}