lang sync

This commit is contained in:
Martin Rotter 2023-03-22 14:33:17 +01:00
parent 085d5be953
commit 86fa39fc56
32 changed files with 9937 additions and 7798 deletions

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -93,3 +93,14 @@ QString FilterUtils::runExecutableGetOutput(const QString& executable, const QSt
return ex.message();
}
}
void FilterUtils::runExecutable(const QString& executable,
const QStringList& arguments,
const QString& working_directory) const {
try {
IOFactory::startProcessDetached(executable, arguments, working_directory);
}
catch (const ApplicationException& ex) {
// return ex.message();
}
}

View File

@ -23,6 +23,9 @@ class FilterUtils : public QObject {
// Parses string into date/time object.
Q_INVOKABLE QDateTime parseDateTime(const QString& dat) const;
Q_INVOKABLE QString runExecutableGetOutput(const QString& executable, const QStringList& arguments = {}) const;
Q_INVOKABLE void runExecutable(const QString& executable,
const QStringList& arguments = {},
const QString& working_directory = {}) const;
};
#endif // FILTERUTILS_H

View File

@ -293,6 +293,9 @@ void TextBrowserViewer::loadMessages(const QList<Message>& messages, RootItem* r
auto html_messages = prepareHtmlForMessage(messages, root);
// TODO: Make this switchable? To allow for more formatted output even in notwebengine.
// auto html_messages = qApp->skins()->generateHtmlOfArticles(messages, root);
setHtml(html_messages.m_html, html_messages.m_baseUrl);
emit loadingFinished(true);
}
@ -449,7 +452,14 @@ void TextBrowserViewer::downloadLink() {
void TextBrowserViewer::onAnchorClicked(const QUrl& url) {
if (!url.isEmpty()) {
const QUrl resolved_url = (m_currentUrl.isValid() && url.isRelative()) ? m_currentUrl.resolved(url) : url;
const bool ctrl_pressed = (QGuiApplication::keyboardModifiers() & Qt::KeyboardModifier::ControlModifier) ==
Qt::KeyboardModifier::ControlModifier;
if (ctrl_pressed) {
// Open in new tab.
qApp->mainForm()->tabWidget()->addLinkedBrowser(resolved_url);
}
else {
bool open_externally_now =
qApp->settings()->value(GROUP(Browser), SETTING(Browser::OpenLinksInExternalBrowserRightAway)).toBool();
@ -461,6 +471,7 @@ void TextBrowserViewer::onAnchorClicked(const QUrl& url) {
}
}
}
}
void TextBrowserViewer::setHtml(const QString& html, const QUrl& base_url) {
if (m_resourcesEnabled) {

View File

@ -34,11 +34,6 @@ class TextBrowserDocument : public QTextDocument {
QPointer<TextBrowserViewer> m_viewer;
};
struct PreparedHtml {
QString m_html;
QUrl m_baseUrl;
};
class TextBrowserViewer : public QTextBrowser, public WebViewer {
Q_OBJECT
Q_INTERFACES(WebViewer)

View File

@ -57,8 +57,8 @@ void WebEngineViewer::loadMessages(const QList<Message>& messages, RootItem* roo
auto html_messages = qApp->skins()->generateHtmlOfArticles(messages, root);
m_root = root;
m_messageContents = html_messages.first;
m_messageBaseUrl = html_messages.second;
m_messageContents = html_messages.m_html;
m_messageBaseUrl = html_messages.m_baseUrl;
bool previously_enabled = isEnabled();

View File

@ -10,6 +10,11 @@
class WebBrowser;
class RootItem;
struct PreparedHtml {
QString m_html;
QUrl m_baseUrl;
};
// Interface for web/article viewers.
class WebViewer {
public:

View File

@ -154,7 +154,7 @@ QString SkinFactory::adBlockedPage(const QString& url, const QString& filter) {
return currentSkin().m_layoutMarkupWrapper.arg(tr("This page was blocked by AdBlock"), adblocked);
}
QPair<QString, QUrl> SkinFactory::generateHtmlOfArticles(const QList<Message>& messages, RootItem* root) const {
PreparedHtml SkinFactory::generateHtmlOfArticles(const QList<Message>& messages, RootItem* root) const {
Skin skin = currentSkin();
QString messages_layout;
QString single_message_layout = skin.m_layoutMarkup;

View File

@ -7,6 +7,8 @@
#include "core/message.h"
#include "gui/webviewers/webviewer.h"
#include <QColor>
#include <QFont>
#include <QHash>
@ -95,7 +97,7 @@ class RSSGUARD_DLLSPEC SkinFactory : public QObject {
QString adBlockedPage(const QString& url, const QString& filter);
QPair<QString, QUrl> generateHtmlOfArticles(const QList<Message>& messages, RootItem* root) const;
PreparedHtml generateHtmlOfArticles(const QList<Message>& messages, RootItem* root) const;
// Gets skin about a particular skin.
Skin skinInfo(const QString& skin_name, bool* ok = nullptr) const;