First experimental and fully working webengine previewer + newspaper mode - FAST.
This commit is contained in:
parent
98027d17eb
commit
b13ef787ac
File diff suppressed because one or more lines are too long
@ -60,7 +60,7 @@ DEFINES *= QT_USE_QSTRINGBUILDER
|
|||||||
|
|
||||||
message(rssguard: Welcome RSS Guard qmake script.)
|
message(rssguard: Welcome RSS Guard qmake script.)
|
||||||
|
|
||||||
lessThan(QT_MAJOR_VERSION, 5)|lessThan(QT_MINOR_VERSION, 4) {
|
lessThan(QT_MAJOR_VERSION, 5)|lessThan(QT_MINOR_VERSION, 6) {
|
||||||
error(rssguard: At least Qt 5.6.0 is required.)
|
error(rssguard: At least Qt 5.6.0 is required.)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -24,7 +24,11 @@
|
|||||||
|
|
||||||
|
|
||||||
MessageBrowser::MessageBrowser(QWidget *parent) : QWebEngineView(parent) {
|
MessageBrowser::MessageBrowser(QWidget *parent) : QWebEngineView(parent) {
|
||||||
setPage(new MessageBrowserPage(this));
|
MessageBrowserPage *page = new MessageBrowserPage(this);
|
||||||
|
|
||||||
|
connect(page, &MessageBrowserPage::messageStatusChangeRequested,
|
||||||
|
this, &MessageBrowser::messageStatusChangeRequested);
|
||||||
|
setPage(page);
|
||||||
}
|
}
|
||||||
|
|
||||||
void MessageBrowser::loadMessages(const QList<Message> &messages) {
|
void MessageBrowser::loadMessages(const QList<Message> &messages) {
|
||||||
|
@ -21,15 +21,21 @@
|
|||||||
#include <QWebEngineView>
|
#include <QWebEngineView>
|
||||||
|
|
||||||
#include "core/message.h"
|
#include "core/message.h"
|
||||||
|
#include "network-web/messagebrowserpage.h"
|
||||||
|
|
||||||
|
|
||||||
class MessageBrowser : public QWebEngineView {
|
class MessageBrowser : public QWebEngineView {
|
||||||
|
Q_OBJECT
|
||||||
|
|
||||||
public:
|
public:
|
||||||
MessageBrowser(QWidget* parent = 0);
|
explicit MessageBrowser(QWidget* parent = 0);
|
||||||
|
|
||||||
public slots:
|
public slots:
|
||||||
void loadMessages(const QList<Message> &messages);
|
void loadMessages(const QList<Message> &messages);
|
||||||
void loadMessage(const Message &message);
|
void loadMessage(const Message &message);
|
||||||
|
|
||||||
|
signals:
|
||||||
|
void messageStatusChangeRequested(int message_id, MessageBrowserPage::MessageStatusChange change);
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // MESSAGEBROWSER_H
|
#endif // MESSAGEBROWSER_H
|
||||||
|
@ -30,7 +30,8 @@
|
|||||||
|
|
||||||
|
|
||||||
void MessagePreviewer::createConnections() {
|
void MessagePreviewer::createConnections() {
|
||||||
// TODO: TODO.
|
connect(m_ui->m_webMessage, &MessageBrowser::messageStatusChangeRequested,
|
||||||
|
this, &MessagePreviewer::receiveMessageStatusChangeRequest);
|
||||||
}
|
}
|
||||||
|
|
||||||
MessagePreviewer::MessagePreviewer(QWidget *parent) : TabContent(parent),
|
MessagePreviewer::MessagePreviewer(QWidget *parent) : TabContent(parent),
|
||||||
@ -69,66 +70,79 @@ void MessagePreviewer::loadMessage(const Message &message, RootItem *root) {
|
|||||||
loadMessages(QList<Message>() << message, root);
|
loadMessages(QList<Message>() << message, root);
|
||||||
}
|
}
|
||||||
|
|
||||||
void MessagePreviewer::markMessageAsRead() {
|
void MessagePreviewer::receiveMessageStatusChangeRequest(int message_id, MessageBrowserPage::MessageStatusChange change) {
|
||||||
if (!m_root.isNull()) {
|
switch (change) {
|
||||||
/*
|
case MessageBrowserPage::MarkRead:
|
||||||
if (m_root->getParentServiceRoot()->onBeforeSetMessagesRead(m_root.data(),
|
markMessageAsRead(message_id, true);
|
||||||
QList<Message>() << m_message,
|
break;
|
||||||
RootItem::Read)) {
|
|
||||||
DatabaseQueries::markMessagesReadUnread(qApp->database()->connection(objectName(), DatabaseFactory::FromSettings),
|
|
||||||
QStringList() << QString::number(m_message.m_id),
|
|
||||||
RootItem::Read);
|
|
||||||
m_root->getParentServiceRoot()->onAfterSetMessagesRead(m_root.data(),
|
|
||||||
QList<Message>() << m_message,
|
|
||||||
RootItem::Read);
|
|
||||||
|
|
||||||
emit requestMessageListReload(false);
|
case MessageBrowserPage::MarkUnread:
|
||||||
m_message.m_isRead = true;
|
markMessageAsRead(message_id, false);
|
||||||
}
|
break;
|
||||||
*/
|
|
||||||
|
case MessageBrowserPage::MarkStarred:
|
||||||
|
switchMessageImportance(message_id, true);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case MessageBrowserPage::MarkUnstarred:
|
||||||
|
switchMessageImportance(message_id, false);
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void MessagePreviewer::markMessageAsUnread() {
|
void MessagePreviewer::markMessageAsRead(int id, bool read) {
|
||||||
if (!m_root.isNull()) {
|
if (!m_root.isNull()) {
|
||||||
/*
|
Message *msg = findMessage(id);
|
||||||
if (m_root->getParentServiceRoot()->onBeforeSetMessagesRead(m_root.data(),
|
|
||||||
QList<Message>() << m_message,
|
if (msg != nullptr && m_root->getParentServiceRoot()->onBeforeSetMessagesRead(m_root.data(),
|
||||||
RootItem::Unread)) {
|
QList<Message>() << *msg,
|
||||||
|
read ? RootItem::Read : RootItem::Unread)) {
|
||||||
DatabaseQueries::markMessagesReadUnread(qApp->database()->connection(objectName(), DatabaseFactory::FromSettings),
|
DatabaseQueries::markMessagesReadUnread(qApp->database()->connection(objectName(), DatabaseFactory::FromSettings),
|
||||||
QStringList() << QString::number(m_message.m_id),
|
QStringList() << QString::number(msg->m_id),
|
||||||
RootItem::Unread);
|
read ? RootItem::Read : RootItem::Unread);
|
||||||
m_root->getParentServiceRoot()->onAfterSetMessagesRead(m_root.data(),
|
m_root->getParentServiceRoot()->onAfterSetMessagesRead(m_root.data(),
|
||||||
QList<Message>() << m_message,
|
QList<Message>() << *msg,
|
||||||
RootItem::Unread);
|
read ? RootItem::Read : RootItem::Unread);
|
||||||
|
|
||||||
emit requestMessageListReload(false);
|
emit requestMessageListReload(false);
|
||||||
m_message.m_isRead = false;
|
msg->m_isRead = read ? RootItem::Read : RootItem::Unread;
|
||||||
}
|
}
|
||||||
*/
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void MessagePreviewer::switchMessageImportance(bool checked) {
|
void MessagePreviewer::switchMessageImportance(int id, bool checked) {
|
||||||
if (!m_root.isNull()) {
|
if (!m_root.isNull()) {
|
||||||
/*
|
Message *msg = findMessage(id);
|
||||||
if (m_root->getParentServiceRoot()->onBeforeSwitchMessageImportance(m_root.data(),
|
|
||||||
QList<ImportanceChange>() << ImportanceChange(m_message,
|
if (msg != nullptr && m_root->getParentServiceRoot()->onBeforeSwitchMessageImportance(m_root.data(),
|
||||||
m_message.m_isImportant ?
|
QList<ImportanceChange>() << ImportanceChange(*msg,
|
||||||
RootItem::NotImportant :
|
msg->m_isImportant ?
|
||||||
RootItem::Important))) {
|
RootItem::NotImportant :
|
||||||
|
RootItem::Important))) {
|
||||||
DatabaseQueries::switchMessagesImportance(qApp->database()->connection(objectName(), DatabaseFactory::FromSettings),
|
DatabaseQueries::switchMessagesImportance(qApp->database()->connection(objectName(), DatabaseFactory::FromSettings),
|
||||||
QStringList() << QString::number(m_message.m_id));
|
QStringList() << QString::number(msg->m_id));
|
||||||
|
|
||||||
m_root->getParentServiceRoot()->onBeforeSwitchMessageImportance(m_root.data(),
|
m_root->getParentServiceRoot()->onBeforeSwitchMessageImportance(m_root.data(),
|
||||||
QList<ImportanceChange>() << ImportanceChange(m_message,
|
QList<ImportanceChange>() << ImportanceChange(*msg,
|
||||||
m_message.m_isImportant ?
|
msg->m_isImportant ?
|
||||||
RootItem::NotImportant :
|
RootItem::NotImportant :
|
||||||
RootItem::Important));
|
RootItem::Important));
|
||||||
|
|
||||||
emit requestMessageListReload(false);
|
emit requestMessageListReload(false);
|
||||||
m_message.m_isImportant = checked;
|
msg->m_isImportant = checked;
|
||||||
}
|
}
|
||||||
*/
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Message *MessagePreviewer::findMessage(int id) {
|
||||||
|
for (int i = 0; i < m_messages.size(); i++) {
|
||||||
|
if (m_messages.at(i).m_id == id) {
|
||||||
|
return &m_messages[i];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return nullptr;
|
||||||
|
}
|
||||||
|
@ -49,14 +49,15 @@ class MessagePreviewer : public TabContent {
|
|||||||
void loadMessage(const Message &message, RootItem *root);
|
void loadMessage(const Message &message, RootItem *root);
|
||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
void markMessageAsRead();
|
void receiveMessageStatusChangeRequest(int message_id, MessageBrowserPage::MessageStatusChange change);
|
||||||
void markMessageAsUnread();
|
|
||||||
void switchMessageImportance(bool checked);
|
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
void requestMessageListReload(bool mark_current_as_read);
|
void requestMessageListReload(bool mark_current_as_read);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
Message *findMessage(int id);
|
||||||
|
void markMessageAsRead(int id, bool read);
|
||||||
|
void switchMessageImportance(int id, bool checked);
|
||||||
void createConnections();
|
void createConnections();
|
||||||
|
|
||||||
QScopedPointer<Ui::MessagePreviewer> m_ui;
|
QScopedPointer<Ui::MessagePreviewer> m_ui;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user