lang sync

This commit is contained in:
Martin Rotter 2022-04-01 08:51:07 +02:00
parent 7eff7e93b4
commit 6e2383a36f
6 changed files with 53 additions and 43 deletions

View File

@ -875,12 +875,12 @@ Status: %3</source>
<message>
<location filename="../src/librssguard/gui/toolbars/feedstoolbar.cpp" line="125"/>
<source>Feeds search box</source>
<translation type="unfinished"/>
<translation>Suchfeld für Feeds</translation>
</message>
<message>
<location filename="../src/librssguard/gui/toolbars/feedstoolbar.cpp" line="117"/>
<source>Search feeds (regex only)</source>
<translation type="unfinished"/>
<translation>Feeds durchsuchen (nur Regex)</translation>
</message>
</context>
<context>
@ -1103,7 +1103,7 @@ or this functionality is not implemented yet.</source>
<message>
<location filename="../src/librssguard/gui/dialogs/formabout.ui" line="468"/>
<source>Database location</source>
<translation type="unfinished"/>
<translation>Speicherort der Datenbank</translation>
</message>
<message>
<location filename="../src/librssguard/gui/dialogs/formabout.ui" line="482"/>
@ -2375,7 +2375,7 @@ or this functionality is not implemented yet.</source>
<message>
<location filename="../src/librssguard/gui/dialogs/formmessagefiltersmanager.cpp" line="178"/>
<source>New article filter</source>
<translation type="unfinished"/>
<translation>Neuer Artikel-Filter</translation>
</message>
<message>
<location filename="../src/librssguard/gui/dialogs/formmessagefiltersmanager.cpp" line="247"/>
@ -2421,7 +2421,7 @@ or this functionality is not implemented yet.</source>
<message>
<location filename="../src/librssguard/gui/dialogs/formmessagefiltersmanager.ui" line="14"/>
<source>Article filters</source>
<translation type="unfinished"/>
<translation>Artikel-Filter</translation>
</message>
<message>
<location filename="../src/librssguard/gui/dialogs/formmessagefiltersmanager.ui" line="35"/>
@ -2457,7 +2457,7 @@ or this functionality is not implemented yet.</source>
<message>
<location filename="../src/librssguard/gui/dialogs/formmessagefiltersmanager.ui" line="143"/>
<source>Title of article filter</source>
<translation type="unfinished"/>
<translation>Titel des Artikel-Filters</translation>
</message>
<message>
<location filename="../src/librssguard/gui/dialogs/formmessagefiltersmanager.ui" line="150"/>
@ -3564,7 +3564,7 @@ Ablauf des Login tokens: %2</translation>
<message>
<location filename="../src/librssguard/services/abstract/importantnode.cpp" line="17"/>
<source>Important articles</source>
<translation type="unfinished"/>
<translation>Wichtige Artikel</translation>
</message>
<message>
<location filename="../src/librssguard/services/abstract/importantnode.cpp" line="18"/>
@ -3786,7 +3786,7 @@ Ablauf des Login tokens: %2</translation>
<message>
<location filename="../src/librssguard/core/messagesforfiltersmodel.cpp" line="13"/>
<source>Date</source>
<translation type="unfinished"/>
<translation>Datum</translation>
</message>
</context>
<context>
@ -3884,7 +3884,7 @@ Ablauf des Login tokens: %2</translation>
<message>
<location filename="../src/librssguard/core/messagesmodel.cpp" line="246"/>
<source>Date</source>
<translation type="unfinished"/>
<translation>Datum</translation>
</message>
<message>
<location filename="../src/librssguard/core/messagesmodel.cpp" line="149"/>
@ -3939,7 +3939,7 @@ Ablauf des Login tokens: %2</translation>
<message>
<location filename="../src/librssguard/core/messagesmodel.cpp" line="274"/>
<source>Creation date of the article.</source>
<translation type="unfinished"/>
<translation>Erstellungsdatum des Artikels.</translation>
</message>
<message>
<location filename="../src/librssguard/core/messagesmodel.cpp" line="275"/>
@ -4062,7 +4062,7 @@ Ablauf des Login tokens: %2</translation>
<message>
<location filename="../src/librssguard/gui/toolbars/messagestoolbar.cpp" line="113"/>
<source>Search articles (regex only)</source>
<translation type="unfinished"/>
<translation>Artikel durchsuchen (nur Regex)</translation>
</message>
</context>
<context>

View File

@ -26,7 +26,7 @@
<url type="donation">https://github.com/sponsors/martinrotter</url>
<content_rating type="oars-1.1" />
<releases>
<release version="4.2.1" date="2022-03-31"/>
<release version="4.2.1" date="2022-04-01"/>
</releases>
<content_rating type="oars-1.0">
<content_attribute id="violence-cartoon">none</content_attribute>

View File

@ -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 });
}

View File

@ -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();

View File

@ -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;

View File

@ -60,6 +60,9 @@ class LiteHtmlViewer : public QLiteHtmlWidget, public WebViewer {
private:
QScopedPointer<Downloader> m_downloader;
QScopedPointer<QMenu> m_contextMenu;
QScopedPointer<QAction> m_actionCopyUrl;
QScopedPointer<QAction> m_actionCopyText;
QScopedPointer<QAction> m_actionOpenLinkExternally;
};
#endif // LITEHTMLVIEWER_H