From 7ecda6be4da2ebdb2c1570abfea17ff2df53b5df Mon Sep 17 00:00:00 2001 From: Martin Rotter Date: Wed, 22 Jun 2016 09:38:28 +0200 Subject: [PATCH] Fix JS alerts for msg state switching. Also make some github transfer tweaking. --- src/definitions/definitions.h | 8 +++---- src/gui/dialogs/formmain.cpp | 8 +++---- src/gui/dialogs/formmain.h | 2 +- src/gui/dialogs/formmain.ui | 7 ++---- src/gui/webviewer.cpp | 3 ++- src/gui/webviewer.h | 4 ++++ src/network-web/webpage.cpp | 43 ++++++++++++++++++----------------- 7 files changed, 39 insertions(+), 36 deletions(-) diff --git a/src/definitions/definitions.h b/src/definitions/definitions.h index 3a86c0cb4..5e3199b31 100755 --- a/src/definitions/definitions.h +++ b/src/definitions/definitions.h @@ -82,10 +82,10 @@ #define DEFAULT_ZOOM_FACTOR 1.0f #define ZOOM_FACTOR_STEP 0.1f -#define INTERNAL_URL_MESSAGE "rssguard.message" -#define INTERNAL_URL_BLANK "rssguard.blank" -#define INTERNAL_URL_MESSAGE_HOST "message" -#define INTERNAL_URL_BLANK_HOST "blank" +#define INTERNAL_URL_MESSAGE "http://rssguard.message" +#define INTERNAL_URL_BLANK "http://rssguard.blank" +#define INTERNAL_URL_MESSAGE_HOST "rssguard.message" +#define INTERNAL_URL_BLANK_HOST "rssguard.blank" #define FEED_INITIAL_OPML_PATTERN "feeds-%1.opml" diff --git a/src/gui/dialogs/formmain.cpp b/src/gui/dialogs/formmain.cpp index c6c2f50f8..b2739c18a 100755 --- a/src/gui/dialogs/formmain.cpp +++ b/src/gui/dialogs/formmain.cpp @@ -334,7 +334,7 @@ void FormMain::setupIcons() { m_ui->m_actionAboutGuard->setIcon(icon_theme_factory->fromTheme(QSL("help-about"))); m_ui->m_actionCheckForUpdates->setIcon(icon_theme_factory->fromTheme(QSL("applications-internet"))); m_ui->m_actionCleanupDatabase->setIcon(icon_theme_factory->fromTheme(QSL("edit-clear"))); - m_ui->m_actionReportBugGitHub->setIcon(icon_theme_factory->fromTheme(QSL("call-start"))); + m_ui->m_actionReportBug->setIcon(icon_theme_factory->fromTheme(QSL("call-start"))); m_ui->m_actionBackupDatabaseSettings->setIcon(icon_theme_factory->fromTheme(QSL("document-export"))); m_ui->m_actionRestoreDatabaseSettings->setIcon(icon_theme_factory->fromTheme(QSL("document-import"))); m_ui->m_actionDonate->setIcon(icon_theme_factory->fromTheme(QSL("applications-office"))); @@ -478,7 +478,7 @@ void FormMain::createConnections() { // Menu "Help" connections. connect(m_ui->m_actionAboutGuard, SIGNAL(triggered()), this, SLOT(showAbout())); connect(m_ui->m_actionCheckForUpdates, SIGNAL(triggered()), this, SLOT(showUpdates())); - connect(m_ui->m_actionReportBugGitHub, SIGNAL(triggered()), this, SLOT(reportABugOnGitHub())); + connect(m_ui->m_actionReportBug, SIGNAL(triggered()), this, SLOT(reportABug())); connect(m_ui->m_actionDonate, SIGNAL(triggered()), this, SLOT(donate())); connect(m_ui->m_actionDisplayWiki, SIGNAL(triggered()), this, SLOT(showWiki())); @@ -543,8 +543,8 @@ void FormMain::showAddAccountDialog() { form_update->exec(); } -void FormMain::reportABugOnGitHub() { - if (!WebFactory::instance()->openUrlInExternalBrowser(STRFY(APP_URL_ISSUES_NEW_GITHUB))) { +void FormMain::reportABug() { + if (!WebFactory::instance()->openUrlInExternalBrowser(STRFY(APP_URL_ISSUES_NEW))) { qApp->showGuiMessage(tr("Cannot open external browser"), tr("Cannot open external browser. Navigate to application website manually."), QSystemTrayIcon::Warning, this, true); diff --git a/src/gui/dialogs/formmain.h b/src/gui/dialogs/formmain.h index 9c32f92b0..f6ec7d739 100755 --- a/src/gui/dialogs/formmain.h +++ b/src/gui/dialogs/formmain.h @@ -86,7 +86,7 @@ class FormMain : public QMainWindow { void showUpdates(); void showWiki(); void showAddAccountDialog(); - void reportABugOnGitHub(); + void reportABug(); void donate(); private: diff --git a/src/gui/dialogs/formmain.ui b/src/gui/dialogs/formmain.ui index c12555d2e..4832ffb48 100755 --- a/src/gui/dialogs/formmain.ui +++ b/src/gui/dialogs/formmain.ui @@ -62,7 +62,7 @@ &Help - + @@ -481,13 +481,10 @@ M - + Report a &bug... - - - diff --git a/src/gui/webviewer.cpp b/src/gui/webviewer.cpp index 8e9d572b7..9a9adda3d 100755 --- a/src/gui/webviewer.cpp +++ b/src/gui/webviewer.cpp @@ -44,7 +44,8 @@ bool WebViewer::canDecreaseZoom() { } void WebViewer::displayMessage() { - setHtml(m_messageContents, QUrl(INTERNAL_URL_MESSAGE)); + load(QUrl(INTERNAL_URL_MESSAGE)); + //setHtml(m_messageContents, QUrl::fromUserInput("aa")); } bool WebViewer::increaseWebPageZoom() { diff --git a/src/gui/webviewer.h b/src/gui/webviewer.h index 2c84f4421..b96d3139f 100755 --- a/src/gui/webviewer.h +++ b/src/gui/webviewer.h @@ -33,6 +33,10 @@ class WebViewer : public QWebEngineView { bool canIncreaseZoom(); bool canDecreaseZoom(); + inline QString messageContents() { + return m_messageContents; + } + public slots: // Page zoom modifiers. bool increaseWebPageZoom(); diff --git a/src/network-web/webpage.cpp b/src/network-web/webpage.cpp index 82d3c6760..c1cad86c2 100755 --- a/src/network-web/webpage.cpp +++ b/src/network-web/webpage.cpp @@ -32,28 +32,23 @@ WebViewer *WebPage::view() const { } void WebPage::javaScriptAlert(const QUrl &securityOrigin, const QString &msg) { - if (securityOrigin.isEmpty()) { - QStringList parts = msg.split(QL1C('-')); + QStringList parts = msg.split(QL1C('-')); - if (parts.size() == 2) { - int message_id = parts.at(0).toInt(); - QString action = parts.at(1); + if (parts.size() == 2) { + int message_id = parts.at(0).toInt(); + QString action = parts.at(1); - if (action == QSL("read")) { - emit messageStatusChangeRequested(message_id, MarkRead); - } - else if (action == QSL("unread")) { - emit messageStatusChangeRequested(message_id, MarkUnread); - } - else if (action == QSL("starred")) { - emit messageStatusChangeRequested(message_id, MarkStarred); - } - else if (action == QSL("unstarred")) { - emit messageStatusChangeRequested(message_id, MarkUnstarred); - } - else { - QWebEnginePage::javaScriptAlert(securityOrigin, msg); - } + if (action == QSL("read")) { + emit messageStatusChangeRequested(message_id, MarkRead); + } + else if (action == QSL("unread")) { + emit messageStatusChangeRequested(message_id, MarkUnread); + } + else if (action == QSL("starred")) { + emit messageStatusChangeRequested(message_id, MarkStarred); + } + else if (action == QSL("unstarred")) { + emit messageStatusChangeRequested(message_id, MarkUnstarred); } else { QWebEnginePage::javaScriptAlert(securityOrigin, msg); @@ -65,5 +60,11 @@ void WebPage::javaScriptAlert(const QUrl &securityOrigin, const QString &msg) { } bool WebPage::acceptNavigationRequest(const QUrl &url, NavigationType type, bool isMainFrame) { - return QWebEnginePage::acceptNavigationRequest(url, type, isMainFrame); + if (url.host() == INTERNAL_URL_MESSAGE_HOST) { + setHtml(view()->messageContents(), QUrl(INTERNAL_URL_MESSAGE)); + return true; + } + else { + return QWebEnginePage::acceptNavigationRequest(url, type, isMainFrame); + } }