add #1032 but in a different way

This commit is contained in:
Martin Rotter 2023-08-04 07:19:52 +02:00
parent f37d19e988
commit b5c693ec42
3 changed files with 37 additions and 0 deletions

View File

@ -181,6 +181,9 @@ Application::Application(const QString& id, int& argc, char** argv, const QStrin
m_webFactory->engineProfile()->setHttpCacheType(QWebEngineProfile::HttpCacheType::DiskHttpCache);
m_webFactory->engineProfile()->setPersistentStoragePath(web_data_root + QDir::separator() + QSL("storage"));
m_webFactory->loadCustomCss(userDataFolder() + QDir::separator() + QSL("web") + QDir::separator() +
QSL("user-styles.css"));
if (custom_ua.isEmpty()) {
m_webFactory->engineProfile()->setHttpUserAgent(QString(HTTP_COMPLETE_USERAGENT));
}

View File

@ -89,6 +89,36 @@ bool WebFactory::sendMessageViaEmail(const Message& message) {
}
}
#if defined(USE_WEBENGINE)
void WebFactory::loadCustomCss(const QString user_styles_path) {
if (QFile::exists(user_styles_path)) {
QByteArray css_data = IOFactory::readFile(user_styles_path);
QString name = "rssguard-user-styles";
QWebEngineScript script;
QString s = QSL("(function() {"
" css = document.createElement('style');"
" css.type = 'text/css';"
" css.id = '%1';"
" document.head.appendChild(css);"
" css.innerText = '%2';"
"})()")
.arg(name, css_data.simplified());
script.setName(name);
script.setSourceCode(s);
script.setInjectionPoint(QWebEngineScript::DocumentReady);
script.setRunsOnSubFrames(false);
script.setWorldId(QWebEngineScript::ApplicationWorld);
m_engineProfile->scripts()->insert(script);
qDebugNN << LOGSEC_CORE << "Loading user CSS style file" << QUOTE_W_SPACE_DOT(user_styles_path);
}
else {
qWarningNN << LOGSEC_CORE << "User CSS style was not provided in file" << QUOTE_W_SPACE_DOT(user_styles_path);
}
}
#endif
bool WebFactory::openUrlInExternalBrowser(const QString& url) const {
qDebugNN << LOGSEC_NETWORK << "We are trying to open URL" << QUOTE_W_SPACE_DOT(url);

View File

@ -55,6 +55,10 @@ class WebFactory : public QObject {
bool openUrlInExternalBrowser(const QString& url) const;
bool sendMessageViaEmail(const Message& message);
#if defined(USE_WEBENGINE)
void loadCustomCss(const QString user_styles_path);
#endif
QString customUserAgent() const;
void setCustomUserAgent(const QString& user_agent);