Fixed small bug when changing states of msgs via internal viewer.
This commit is contained in:
parent
3101d0916f
commit
752d507414
9 changed files with 629 additions and 620 deletions
42
rssguard.pro
42
rssguard.pro
|
@ -263,9 +263,9 @@ HEADERS += src/core/feeddownloader.h \
|
||||||
src/services/tt-rss/ttrssrecyclebin.h \
|
src/services/tt-rss/ttrssrecyclebin.h \
|
||||||
src/services/tt-rss/ttrssserviceentrypoint.h \
|
src/services/tt-rss/ttrssserviceentrypoint.h \
|
||||||
src/services/tt-rss/ttrssserviceroot.h \
|
src/services/tt-rss/ttrssserviceroot.h \
|
||||||
src/network-web/messagebrowserpage.h \
|
src/gui/webviewer.h \
|
||||||
src/gui/webviewer.h \
|
src/gui/webbrowser.h \
|
||||||
src/gui/webbrowser.h
|
src/network-web/webpage.h
|
||||||
|
|
||||||
SOURCES += src/core/feeddownloader.cpp \
|
SOURCES += src/core/feeddownloader.cpp \
|
||||||
src/core/feedsmodel.cpp \
|
src/core/feedsmodel.cpp \
|
||||||
|
@ -371,9 +371,9 @@ SOURCES += src/core/feeddownloader.cpp \
|
||||||
src/services/tt-rss/ttrssrecyclebin.cpp \
|
src/services/tt-rss/ttrssrecyclebin.cpp \
|
||||||
src/services/tt-rss/ttrssserviceentrypoint.cpp \
|
src/services/tt-rss/ttrssserviceentrypoint.cpp \
|
||||||
src/services/tt-rss/ttrssserviceroot.cpp \
|
src/services/tt-rss/ttrssserviceroot.cpp \
|
||||||
src/network-web/messagebrowserpage.cpp \
|
src/gui/webviewer.cpp \
|
||||||
src/gui/webviewer.cpp \
|
src/gui/webbrowser.cpp \
|
||||||
src/gui/webbrowser.cpp
|
src/network-web/webpage.cpp
|
||||||
|
|
||||||
FORMS += \
|
FORMS += \
|
||||||
src/gui/toolbareditor.ui \
|
src/gui/toolbareditor.ui \
|
||||||
|
@ -392,7 +392,7 @@ FORMS += \
|
||||||
src/services/standard/gui/formstandardcategorydetails.ui \
|
src/services/standard/gui/formstandardcategorydetails.ui \
|
||||||
src/services/standard/gui/formstandardimportexport.ui \
|
src/services/standard/gui/formstandardimportexport.ui \
|
||||||
src/services/tt-rss/gui/formeditaccount.ui \
|
src/services/tt-rss/gui/formeditaccount.ui \
|
||||||
src/gui/webbrowser.ui
|
src/gui/webbrowser.ui
|
||||||
|
|
||||||
TRANSLATIONS += localization/qtbase-cs_CZ.ts \
|
TRANSLATIONS += localization/qtbase-cs_CZ.ts \
|
||||||
localization/qtbase-da_DK.ts \
|
localization/qtbase-da_DK.ts \
|
||||||
|
@ -417,20 +417,20 @@ TRANSLATIONS += localization/qtbase-cs_CZ.ts \
|
||||||
localization/rssguard-pt_BR.ts \
|
localization/rssguard-pt_BR.ts \
|
||||||
localization/rssguard-sv_SE.ts
|
localization/rssguard-sv_SE.ts
|
||||||
|
|
||||||
TRANSLATIONS_WO_QT += $$PWD/localization/rssguard-cs_CZ.ts \
|
TRANSLATIONS_WO_QT += localization/rssguard-cs_CZ.ts \
|
||||||
$$PWD/localization/rssguard-da_DK.ts \
|
localization/rssguard-da_DK.ts \
|
||||||
$$PWD/localization/rssguard-de_DE.ts \
|
localization/rssguard-de_DE.ts \
|
||||||
$$PWD/localization/rssguard-en_GB.ts \
|
localization/rssguard-en_GB.ts \
|
||||||
$$PWD/localization/rssguard-en_US.ts \
|
localization/rssguard-en_US.ts \
|
||||||
$$PWD/localization/rssguard-fr_FR.ts \
|
localization/rssguard-fr_FR.ts \
|
||||||
$$PWD/localization/rssguard-he_IL.ts \
|
localization/rssguard-he_IL.ts \
|
||||||
$$PWD/localization/rssguard-id_ID.ts \
|
localization/rssguard-id_ID.ts \
|
||||||
$$PWD/localization/rssguard-it_IT.ts \
|
localization/rssguard-it_IT.ts \
|
||||||
$$PWD/localization/rssguard-ja_JP.ts \
|
localization/rssguard-ja_JP.ts \
|
||||||
$$PWD/localization/rssguard-lt_LT.ts \
|
localization/rssguard-lt_LT.ts \
|
||||||
$$PWD/localization/rssguard-nl_NL.ts \
|
localization/rssguard-nl_NL.ts \
|
||||||
$$PWD/localization/rssguard-pt_BR.ts \
|
localization/rssguard-pt_BR.ts \
|
||||||
$$PWD/localization/rssguard-sv_SE.ts
|
localization/rssguard-sv_SE.ts
|
||||||
|
|
||||||
INCLUDEPATH += $$PWD/. \
|
INCLUDEPATH += $$PWD/. \
|
||||||
$$PWD/src \
|
$$PWD/src \
|
||||||
|
|
|
@ -93,7 +93,13 @@ bool MessagesModel::setMessageImportantById(int id, RootItem::Importance importa
|
||||||
int found_id = data(i, MSG_DB_ID_INDEX, Qt::EditRole).toInt();
|
int found_id = data(i, MSG_DB_ID_INDEX, Qt::EditRole).toInt();
|
||||||
|
|
||||||
if (found_id == id) {
|
if (found_id == id) {
|
||||||
return setData(index(i, MSG_DB_IMPORTANT_INDEX), important);
|
bool set = setData(index(i, MSG_DB_IMPORTANT_INDEX), important);
|
||||||
|
|
||||||
|
if (set) {
|
||||||
|
emit dataChanged(index(i, 0), index(i, MSG_DB_CUSTOM_HASH_INDEX));
|
||||||
|
}
|
||||||
|
|
||||||
|
return set;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -280,7 +286,13 @@ bool MessagesModel::setMessageReadById(int id, RootItem::ReadStatus read) {
|
||||||
int found_id = data(i, MSG_DB_ID_INDEX, Qt::EditRole).toInt();
|
int found_id = data(i, MSG_DB_ID_INDEX, Qt::EditRole).toInt();
|
||||||
|
|
||||||
if (found_id == id) {
|
if (found_id == id) {
|
||||||
return setData(index(i, MSG_DB_READ_INDEX), read);
|
bool set = setData(index(i, MSG_DB_READ_INDEX), read);
|
||||||
|
|
||||||
|
if (set) {
|
||||||
|
emit dataChanged(index(i, 0), index(i, MSG_DB_CUSTOM_HASH_INDEX));
|
||||||
|
}
|
||||||
|
|
||||||
|
return set;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
4
src/definitions/definitions.h
Normal file → Executable file
4
src/definitions/definitions.h
Normal file → Executable file
|
@ -79,8 +79,8 @@
|
||||||
|
|
||||||
#define INTERNAL_URL_MESSAGE "rssguard.message"
|
#define INTERNAL_URL_MESSAGE "rssguard.message"
|
||||||
#define INTERNAL_URL_BLANK "rssguard.blank"
|
#define INTERNAL_URL_BLANK "rssguard.blank"
|
||||||
#define INTERNAL_URL_HOST "rssguard"
|
#define INTERNAL_URL_MESSAGE_HOST "message"
|
||||||
#define INTERNAL_URL_MESSAGE_PORT "message"
|
#define INTERNAL_URL_BLANK_HOST "blank"
|
||||||
|
|
||||||
#define FEED_INITIAL_OPML_PATTERN "feeds-%1.opml"
|
#define FEED_INITIAL_OPML_PATTERN "feeds-%1.opml"
|
||||||
|
|
||||||
|
|
|
@ -87,21 +87,21 @@ void WebBrowser::loadMessage(const Message &message, RootItem *root) {
|
||||||
loadMessages(QList<Message>() << message, root);
|
loadMessages(QList<Message>() << message, root);
|
||||||
}
|
}
|
||||||
|
|
||||||
void WebBrowser::receiveMessageStatusChangeRequest(int message_id, MessageBrowserPage::MessageStatusChange change) {
|
void WebBrowser::receiveMessageStatusChangeRequest(int message_id, WebPage::MessageStatusChange change) {
|
||||||
switch (change) {
|
switch (change) {
|
||||||
case MessageBrowserPage::MarkRead:
|
case WebPage::MarkRead:
|
||||||
markMessageAsRead(message_id, true);
|
markMessageAsRead(message_id, true);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case MessageBrowserPage::MarkUnread:
|
case WebPage::MarkUnread:
|
||||||
markMessageAsRead(message_id, false);
|
markMessageAsRead(message_id, false);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case MessageBrowserPage::MarkStarred:
|
case WebPage::MarkStarred:
|
||||||
switchMessageImportance(message_id, true);
|
switchMessageImportance(message_id, true);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case MessageBrowserPage::MarkUnstarred:
|
case WebPage::MarkUnstarred:
|
||||||
switchMessageImportance(message_id, false);
|
switchMessageImportance(message_id, false);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
|
@ -49,7 +49,7 @@ class WebBrowser : public TabContent {
|
||||||
void loadMessage(const Message &message, RootItem *root);
|
void loadMessage(const Message &message, RootItem *root);
|
||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
void receiveMessageStatusChangeRequest(int message_id, MessageBrowserPage::MessageStatusChange change);
|
void receiveMessageStatusChangeRequest(int message_id, WebPage::MessageStatusChange change);
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
void markMessageRead(int id, RootItem::ReadStatus read);
|
void markMessageRead(int id, RootItem::ReadStatus read);
|
||||||
|
|
|
@ -20,17 +20,21 @@
|
||||||
#include "miscellaneous/skinfactory.h"
|
#include "miscellaneous/skinfactory.h"
|
||||||
#include "miscellaneous/application.h"
|
#include "miscellaneous/application.h"
|
||||||
#include "definitions/definitions.h"
|
#include "definitions/definitions.h"
|
||||||
#include "network-web/messagebrowserpage.h"
|
#include "network-web/webpage.h"
|
||||||
|
|
||||||
|
|
||||||
WebViewer::WebViewer(QWidget *parent) : QWebEngineView(parent) {
|
WebViewer::WebViewer(QWidget *parent) : QWebEngineView(parent) {
|
||||||
MessageBrowserPage *page = new MessageBrowserPage(this);
|
WebPage *page = new WebPage(this);
|
||||||
|
|
||||||
connect(page, &MessageBrowserPage::messageStatusChangeRequested,
|
connect(page, &WebPage::messageStatusChangeRequested,
|
||||||
this, &WebViewer::messageStatusChangeRequested);
|
this, &WebViewer::messageStatusChangeRequested);
|
||||||
setPage(page);
|
setPage(page);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void WebViewer::displayMessage() {
|
||||||
|
setHtml(m_messageContents, QUrl(INTERNAL_URL_MESSAGE));
|
||||||
|
}
|
||||||
|
|
||||||
void WebViewer::loadMessages(const QList<Message> &messages) {
|
void WebViewer::loadMessages(const QList<Message> &messages) {
|
||||||
Skin skin = qApp->skins()->currentSkin();
|
Skin skin = qApp->skins()->currentSkin();
|
||||||
QString messages_layout;
|
QString messages_layout;
|
||||||
|
@ -61,7 +65,7 @@ void WebViewer::loadMessages(const QList<Message> &messages) {
|
||||||
bool previously_enabled = isEnabled();
|
bool previously_enabled = isEnabled();
|
||||||
|
|
||||||
setEnabled(false);
|
setEnabled(false);
|
||||||
setHtml(m_messageContents, QUrl(INTERNAL_URL_MESSAGE));
|
displayMessage();
|
||||||
setEnabled(previously_enabled);
|
setEnabled(previously_enabled);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -72,7 +76,3 @@ void WebViewer::loadMessage(const Message &message) {
|
||||||
void WebViewer::clear() {
|
void WebViewer::clear() {
|
||||||
setHtml("<!DOCTYPE html><html><body</body></html>", QUrl(INTERNAL_URL_BLANK));
|
setHtml("<!DOCTYPE html><html><body</body></html>", QUrl(INTERNAL_URL_BLANK));
|
||||||
}
|
}
|
||||||
|
|
||||||
void WebViewer::assignMessageContents() {
|
|
||||||
setHtml(m_messageContents, QUrl(INTERNAL_URL_MESSAGE));
|
|
||||||
}
|
|
||||||
|
|
8
src/gui/webviewer.h
Normal file → Executable file
8
src/gui/webviewer.h
Normal file → Executable file
|
@ -21,7 +21,7 @@
|
||||||
#include <QWebEngineView>
|
#include <QWebEngineView>
|
||||||
|
|
||||||
#include "core/message.h"
|
#include "core/message.h"
|
||||||
#include "network-web/messagebrowserpage.h"
|
#include "network-web/webpage.h"
|
||||||
|
|
||||||
|
|
||||||
class WebViewer : public QWebEngineView {
|
class WebViewer : public QWebEngineView {
|
||||||
|
@ -31,15 +31,13 @@ class WebViewer : public QWebEngineView {
|
||||||
explicit WebViewer(QWidget* parent = 0);
|
explicit WebViewer(QWidget* parent = 0);
|
||||||
|
|
||||||
public slots:
|
public slots:
|
||||||
|
void displayMessage();
|
||||||
void loadMessages(const QList<Message> &messages);
|
void loadMessages(const QList<Message> &messages);
|
||||||
void loadMessage(const Message &message);
|
void loadMessage(const Message &message);
|
||||||
void clear();
|
void clear();
|
||||||
|
|
||||||
private:
|
|
||||||
void assignMessageContents();
|
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
void messageStatusChangeRequested(int message_id, MessageBrowserPage::MessageStatusChange change);
|
void messageStatusChangeRequested(int message_id, WebPage::MessageStatusChange change);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
QString m_messageContents;
|
QString m_messageContents;
|
||||||
|
|
10
src/network-web/messagebrowserpage.cpp → src/network-web/webpage.cpp
Normal file → Executable file
10
src/network-web/messagebrowserpage.cpp → src/network-web/webpage.cpp
Normal file → Executable file
|
@ -15,7 +15,7 @@
|
||||||
// You should have received a copy of the GNU General Public License
|
// You should have received a copy of the GNU General Public License
|
||||||
// along with RSS Guard. If not, see <http://www.gnu.org/licenses/>.
|
// along with RSS Guard. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
#include "network-web/messagebrowserpage.h"
|
#include "network-web/webpage.h"
|
||||||
|
|
||||||
#include "definitions/definitions.h"
|
#include "definitions/definitions.h"
|
||||||
#include "gui/webviewer.h"
|
#include "gui/webviewer.h"
|
||||||
|
@ -24,14 +24,14 @@
|
||||||
#include <QString>
|
#include <QString>
|
||||||
|
|
||||||
|
|
||||||
MessageBrowserPage::MessageBrowserPage(QObject *parent) : QWebEnginePage(parent) {
|
WebPage::WebPage(QObject *parent) : QWebEnginePage(parent) {
|
||||||
}
|
}
|
||||||
|
|
||||||
WebViewer *MessageBrowserPage::view() const {
|
WebViewer *WebPage::view() const {
|
||||||
return qobject_cast<WebViewer*>(QWebEnginePage::view());
|
return qobject_cast<WebViewer*>(QWebEnginePage::view());
|
||||||
}
|
}
|
||||||
|
|
||||||
void MessageBrowserPage::javaScriptAlert(const QUrl &securityOrigin, const QString &msg) {
|
void WebPage::javaScriptAlert(const QUrl &securityOrigin, const QString &msg) {
|
||||||
if (securityOrigin.isEmpty()) {
|
if (securityOrigin.isEmpty()) {
|
||||||
QStringList parts = msg.split(QL1C('-'));
|
QStringList parts = msg.split(QL1C('-'));
|
||||||
|
|
||||||
|
@ -64,6 +64,6 @@ void MessageBrowserPage::javaScriptAlert(const QUrl &securityOrigin, const QStri
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
bool MessageBrowserPage::acceptNavigationRequest(const QUrl &url, NavigationType type, bool isMainFrame) {
|
bool WebPage::acceptNavigationRequest(const QUrl &url, NavigationType type, bool isMainFrame) {
|
||||||
return QWebEnginePage::acceptNavigationRequest(url, type, isMainFrame);
|
return QWebEnginePage::acceptNavigationRequest(url, type, isMainFrame);
|
||||||
}
|
}
|
13
src/network-web/messagebrowserpage.h → src/network-web/webpage.h
Normal file → Executable file
13
src/network-web/messagebrowserpage.h → src/network-web/webpage.h
Normal file → Executable file
|
@ -15,15 +15,15 @@
|
||||||
// You should have received a copy of the GNU General Public License
|
// You should have received a copy of the GNU General Public License
|
||||||
// along with RSS Guard. If not, see <http://www.gnu.org/licenses/>.
|
// along with RSS Guard. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
#ifndef MESSAGEBROWSERPAGE_H
|
#ifndef WEBPAGE_H
|
||||||
#define MESSAGEBROWSERPAGE_H
|
#define WEBPAGE_H
|
||||||
|
|
||||||
#include <QWebEnginePage>
|
#include <QWebEnginePage>
|
||||||
|
|
||||||
|
|
||||||
class WebViewer;
|
class WebViewer;
|
||||||
|
|
||||||
class MessageBrowserPage : public QWebEnginePage {
|
class WebPage : public QWebEnginePage {
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
@ -34,8 +34,7 @@ class MessageBrowserPage : public QWebEnginePage {
|
||||||
MarkUnstarred
|
MarkUnstarred
|
||||||
};
|
};
|
||||||
|
|
||||||
explicit MessageBrowserPage(QObject *parent = 0);
|
explicit WebPage(QObject *parent = 0);
|
||||||
|
|
||||||
|
|
||||||
WebViewer *view() const;
|
WebViewer *view() const;
|
||||||
|
|
||||||
|
@ -44,7 +43,7 @@ class MessageBrowserPage : public QWebEnginePage {
|
||||||
bool acceptNavigationRequest(const QUrl &url, NavigationType type, bool isMainFrame);
|
bool acceptNavigationRequest(const QUrl &url, NavigationType type, bool isMainFrame);
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
void messageStatusChangeRequested(int message_id, MessageBrowserPage::MessageStatusChange change);
|
void messageStatusChangeRequested(int message_id, WebPage::MessageStatusChange change);
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // MESSAGEBROWSERPAGE_H
|
#endif // WEBPAGE_H
|
Loading…
Add table
Reference in a new issue