From 6e2383a36f196ca86cff8640050965a439a8f8d3 Mon Sep 17 00:00:00 2001 From: Martin Rotter Date: Fri, 1 Apr 2022 08:51:07 +0200 Subject: [PATCH] lang sync --- localization/rssguard_de.ts | 22 +++---- .../desktop/com.github.rssguard.appdata.xml | 2 +- src/librssguard/gui/webbrowser.cpp | 4 +- src/librssguard/gui/webbrowser.h | 2 +- .../webviewers/litehtml/litehtmlviewer.cpp | 63 ++++++++++--------- .../gui/webviewers/litehtml/litehtmlviewer.h | 3 + 6 files changed, 53 insertions(+), 43 deletions(-) diff --git a/localization/rssguard_de.ts b/localization/rssguard_de.ts index c51f56260..d8d614b89 100644 --- a/localization/rssguard_de.ts +++ b/localization/rssguard_de.ts @@ -875,12 +875,12 @@ Status: %3 Feeds search box - + Suchfeld für Feeds Search feeds (regex only) - + Feeds durchsuchen (nur Regex) @@ -1103,7 +1103,7 @@ or this functionality is not implemented yet. Database location - + Speicherort der Datenbank @@ -2375,7 +2375,7 @@ or this functionality is not implemented yet. New article filter - + Neuer Artikel-Filter @@ -2421,7 +2421,7 @@ or this functionality is not implemented yet. Article filters - + Artikel-Filter @@ -2457,7 +2457,7 @@ or this functionality is not implemented yet. Title of article filter - + Titel des Artikel-Filters @@ -3564,7 +3564,7 @@ Ablauf des Login tokens: %2 Important articles - + Wichtige Artikel @@ -3786,7 +3786,7 @@ Ablauf des Login tokens: %2 Date - + Datum @@ -3884,7 +3884,7 @@ Ablauf des Login tokens: %2 Date - + Datum @@ -3939,7 +3939,7 @@ Ablauf des Login tokens: %2 Creation date of the article. - + Erstellungsdatum des Artikels. @@ -4062,7 +4062,7 @@ Ablauf des Login tokens: %2 Search articles (regex only) - + Artikel durchsuchen (nur Regex) diff --git a/resources/desktop/com.github.rssguard.appdata.xml b/resources/desktop/com.github.rssguard.appdata.xml index add4e7ca5..691e8ba03 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/webbrowser.cpp b/src/librssguard/gui/webbrowser.cpp index 9681402b6..b89cdfb8e 100644 --- a/src/librssguard/gui/webbrowser.cpp +++ b/src/librssguard/gui/webbrowser.cpp @@ -232,11 +232,11 @@ void WebBrowser::onIconChanged(const QIcon& icon) { emit iconChanged(m_index, icon); } -void WebBrowser::onLinkHovered(const QString& url) { +void WebBrowser::onLinkHovered(const QUrl& url) { qDebugNN << LOGSEC_GUI << "Hovered link:" << QUOTE_W_SPACE_DOT(url); qApp->showGuiMessage(Notification::Event::GeneralEvent, - { url, url, QSystemTrayIcon::MessageIcon::NoIcon }, + { url.toString(), url.toString(), QSystemTrayIcon::MessageIcon::NoIcon }, { false, false, true }); } diff --git a/src/librssguard/gui/webbrowser.h b/src/librssguard/gui/webbrowser.h index d4e158e02..eaa9a054d 100644 --- a/src/librssguard/gui/webbrowser.h +++ b/src/librssguard/gui/webbrowser.h @@ -63,7 +63,7 @@ class WebBrowser : public TabContent { void onLoadingFinished(bool success); void onTitleChanged(const QString& new_title); void onIconChanged(const QIcon& icon); - void onLinkHovered(const QString& url); + void onLinkHovered(const QUrl &url); void newWindowRequested(WebViewer* viewer); void readabilePage(); diff --git a/src/librssguard/gui/webviewers/litehtml/litehtmlviewer.cpp b/src/librssguard/gui/webviewers/litehtml/litehtmlviewer.cpp index 160be0445..da6c20995 100755 --- a/src/librssguard/gui/webviewers/litehtml/litehtmlviewer.cpp +++ b/src/librssguard/gui/webviewers/litehtml/litehtmlviewer.cpp @@ -52,9 +52,7 @@ void LiteHtmlViewer::bindToBrowser(WebBrowser* browser) { // right away. browser->m_actionStop->setEnabled(false); - connect(this, &LiteHtmlViewer::linkHighlighted, browser, [browser](const QUrl& url) { - browser->onLinkHovered(url.toString()); - }); + connect(this, &LiteHtmlViewer::linkHighlighted, browser, &WebBrowser::onLinkHovered); connect(this, &LiteHtmlViewer::titleChanged, browser, &WebBrowser::onTitleChanged); connect(this, &LiteHtmlViewer::urlChanged, browser, &WebBrowser::updateUrl); connect(this, &LiteHtmlViewer::loadStarted, browser, &WebBrowser::onLoadingStarted); @@ -266,34 +264,43 @@ void LiteHtmlViewer::onLinkClicked(const QUrl& link) { void LiteHtmlViewer::showContextMenu(const QPoint& pos, const QUrl& url) { if (m_contextMenu.isNull()) { m_contextMenu.reset(new QMenu("Context menu for web browser", this)); + + m_actionCopyUrl.reset(m_contextMenu->addAction(qApp->icons()->fromTheme(QSL("edit-copy")), + tr("Copy URL"), + [url]() { + QGuiApplication::clipboard()->setText(url.toString(), QClipboard::Mode::Clipboard); + })); + + m_actionCopyText.reset(m_contextMenu->addAction(qApp->icons()->fromTheme(QSL("edit-copy")), + tr("Copy selection"), + [this]() { + QGuiApplication::clipboard()->setText(QLiteHtmlWidget::selectedText(), QClipboard::Mode::Clipboard); + })); + + // Add option to open link in external viewe + m_actionOpenLinkExternally.reset(m_contextMenu->addAction(qApp->icons()->fromTheme(QSL("document-open")), + tr("Open link in external browser"), + [url]() { + qApp->web()->openUrlInExternalBrowser(url.toString()); + + if (qApp->settings()->value(GROUP(Messages), SETTING(Messages::BringAppToFrontAfterMessageOpenedExternally)).toBool()) { + QTimer::singleShot(1000, qApp, []() { + qApp->mainForm()->display(); + }); + } + })); + } + else { + m_contextMenu->clear(); } - m_contextMenu->clear(); + m_actionCopyUrl->setEnabled(url.isValid()); + m_actionCopyText->setEnabled(!QLiteHtmlWidget::selectedText().isEmpty()); + m_actionOpenLinkExternally->setEnabled(url.isValid()); - m_contextMenu->addAction(qApp->icons()->fromTheme(QSL("edit-copy")), - tr("Copy URL"), - [url]() { - QGuiApplication::clipboard()->setText(url.toString(), QClipboard::Mode::Clipboard); - })->setEnabled(url.isValid()); - - m_contextMenu->addAction(qApp->icons()->fromTheme(QSL("edit-copy")), - tr("Copy selection"), - [this]() { - QGuiApplication::clipboard()->setText(QLiteHtmlWidget::selectedText(), QClipboard::Mode::Clipboard); - })->setEnabled(!QLiteHtmlWidget::selectedText().isEmpty()); - - // Add option to open link in external viewe - m_contextMenu->addAction(qApp->icons()->fromTheme(QSL("document-open")), - tr("Open link in external browser"), - [url]() { - qApp->web()->openUrlInExternalBrowser(url.toString()); - - if (qApp->settings()->value(GROUP(Messages), SETTING(Messages::BringAppToFrontAfterMessageOpenedExternally)).toBool()) { - QTimer::singleShot(1000, qApp, []() { - qApp->mainForm()->display(); - }); - } - })->setEnabled(url.isValid()); + m_contextMenu->addActions({ m_actionCopyUrl.data(), + m_actionCopyText.data(), + m_actionOpenLinkExternally.data() }); if (url.isValid()) { QFileIconProvider icon_provider; diff --git a/src/librssguard/gui/webviewers/litehtml/litehtmlviewer.h b/src/librssguard/gui/webviewers/litehtml/litehtmlviewer.h index ae462e931..faa8211e4 100755 --- a/src/librssguard/gui/webviewers/litehtml/litehtmlviewer.h +++ b/src/librssguard/gui/webviewers/litehtml/litehtmlviewer.h @@ -60,6 +60,9 @@ class LiteHtmlViewer : public QLiteHtmlWidget, public WebViewer { private: QScopedPointer m_downloader; QScopedPointer m_contextMenu; + QScopedPointer m_actionCopyUrl; + QScopedPointer m_actionCopyText; + QScopedPointer m_actionOpenLinkExternally; }; #endif // LITEHTMLVIEWER_H