diff --git a/.github/workflows/rssguard.yml b/.github/workflows/rssguard.yml index f17f2cfeb..c828c331f 100755 --- a/.github/workflows/rssguard.yml +++ b/.github/workflows/rssguard.yml @@ -25,12 +25,12 @@ jobs: build-rssguard: needs: check-build-script - name: "${{ matrix.os }}; webengine = ${{ matrix.use_webengine }}; qt5 = ${{ matrix.use_qt5 }}" + name: "${{ matrix.os }}; no-lite = ${{ matrix.no_lite }}; qt5 = ${{ matrix.use_qt5 }}" runs-on: "${{ matrix.os }}" strategy: matrix: os: [windows-2019, ubuntu-20.04, macos-11] - use_webengine: ["ON", "OFF"] + no_lite: ["ON", "OFF"] use_qt5: ["ON", "OFF"] include: - os: windows-2019 @@ -52,7 +52,7 @@ jobs: submodules: true - name: Prepare environment and compile application - run: ${{ matrix.script_name }} "${{ matrix.os }}" "${{ matrix.use_webengine }}" "${{ matrix.use_qt5 }}" + run: ${{ matrix.script_name }} "${{ matrix.os }}" "${{ matrix.no_lite }}" "${{ matrix.use_qt5 }}" env: GMAIL_CLIENT_ID: ${{ secrets.GMAIL_CLIENT_ID }} GMAIL_CLIENT_SECRET: ${{ secrets.GMAIL_CLIENT_SECRET }} @@ -63,7 +63,7 @@ jobs: uses: actions/upload-artifact@v3 with: if-no-files-found: error - name: RSS_Guard-${{ runner.os }}${{ matrix.use_webengine == 'ON' && '-' || '-nowebengine-' }}Qt${{ matrix.use_qt5 == 'ON' && '5' || '6' }} + name: RSS_Guard-${{ runner.os }}${{ matrix.no_lite == 'ON' && '-' || '-nowebengine-' }}Qt${{ matrix.use_qt5 == 'ON' && '5' || '6' }} path: | ./rssguard-build/rssguard-*win*.exe ./rssguard-build/rssguard-*win*.7z diff --git a/CMakeLists.txt b/CMakeLists.txt index 604fd23a9..089e484ba 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -31,10 +31,8 @@ # This requires "zlib" library and if you want to use specific # zlib location, then use "ZLIB_ROOT" variable, for example # -DZLIB_ROOT="C:\\zlib" -# USE_WEBENGINE - if specified, then QtWebEngine module for internal web browser is used. -# Otherwise simple text component is used and some features will be disabled. -# Default value is "false". If QtWebEngine is installed during compilation, then -# value of this variable is tweaked automatically. +# NO_LITE - if specified, then QtWebEngine module for internal web browser is used +# and also other more demanding parts of application are used. # {FEEDLY,GMAIL,INOREADER}_CLIENT_ID - preconfigured OAuth client ID. # {FEEDLY,GMAIL,INOREADER}_CLIENT_SECRET - preconfigured OAuth client SECRET. # @@ -115,19 +113,23 @@ if(FORCE_COLORED_OUTPUT) endif() # Global compilation switches. -option(BUILD_WITH_QT6 "Build application with Qt 6" ON) +option(BUILD_WITH_QT6 "Build application with Qt 6." ON) option(USE_SYSTEM_SQLITE "Use system-wide SQLite3 library." ON) -option(USE_WEBENGINE "Use QtWebEngine for embedded web browser" ON) -option(UPDATE_TRANSLATIONS "Call lupdate to update translation files from source (Qt 6 only)" OFF) -option(FORCE_COLORED_OUTPUT "Always produce ANSI-colored output (GCC/Clang only)" OFF) -option(REVISION_FROM_GIT "Get revision using `git rev-parse`" ON) -option(NO_UPDATE_CHECK "Disable automatic checking for new application updates" OFF) +option(NO_LITE "Enable QtWebEngine and other more demanding components." ON) +option(UPDATE_TRANSLATIONS "Call lupdate to update translation files from source (Qt 6 only)." OFF) +option(FORCE_COLORED_OUTPUT "Always produce ANSI-colored output (GCC/Clang only)." OFF) +option(REVISION_FROM_GIT "Get revision using `git rev-parse`." ON) +option(NO_UPDATE_CHECK "Disable automatic checking for new application updates." OFF) option(IS_FLATPAK_BUILD "Set to 'ON' when building RSS Guard with Flatpak." OFF) option(FORCE_BUNDLE_ICONS "Forcibly bundle icon themes into RSS Guard." OFF) option(ENABLE_COMPRESSED_SITEMAP "Enable support for gzip-compressed sitemap feeds. Requires zlib." OFF) option(ENABLE_MEDIAPLAYER_QTMULTIMEDIA "Enable built-in media player. Requires QtMultimedia FFMPEG plugin." OFF) option(ENABLE_MEDIAPLAYER_LIBMPV "Enable built-in media player. Requires libmpv library." ON) +if(USE_WEBENGINE) + set(NO_LITE ON) +endif() + # Import Qt libraries. set(QT6_MIN_VERSION 6.3.0) set(QT5_MIN_VERSION 5.12.0) @@ -174,9 +176,9 @@ if(ENABLE_MEDIAPLAYER_QTMULTIMEDIA OR ENABLE_MEDIAPLAYER_LIBMPV) add_compile_definitions(ENABLE_MEDIAPLAYER) endif() -if(USE_WEBENGINE) +if(NO_LITE) list(APPEND QT_COMPONENTS WebEngineWidgets) - add_compile_definitions(USE_WEBENGINE) + add_compile_definitions(NO_LITE) endif() if(UNIX AND NOT APPLE AND NOT ANDROID) @@ -228,9 +230,9 @@ else() set(APP_REVISION "") endif() -if(NOT USE_WEBENGINE) +if(NOT NO_LITE) set(APP_REVERSE_NAME "io.github.martinrotter.rssguardlite") - set(APP_REVISION "${APP_REVISION}-nowebengine") + set(APP_REVISION "${APP_REVISION}-lite") endif() set(APP_LOW_NAME "${CMAKE_PROJECT_NAME}") diff --git a/docs/source/features/browseradblock.md b/docs/source/features/browseradblock.md index 0571d615c..fa4487656 100644 --- a/docs/source/features/browseradblock.md +++ b/docs/source/features/browseradblock.md @@ -3,7 +3,7 @@ Built-in Web Browser & AdBlock RSS Guard is distributed in two variants: * **Standard package with WebEngine-based bundled article viewer**: This variant displays articles with their full formatting and layout in embedded Chromium-based web browser. This variant of RSS Guard should be okay for everyone. Also, installation packages are relatively big. -* **Lite package with simple text-based article viewer**: This variant displays article in a much simpler and much more lightweight web viewer component. All packages of this variant have `nowebengine` (or `lite`) keyword in their names. This flavor of RSS Guard does NOT have a JavaScript support and is meant for people who value their privacy. +* **Lite package with simple text-based article viewer**: This variant displays article in a much simpler and much more lightweight web viewer component. All packages of this variant have `lite` keyword in their names. This flavor of RSS Guard does NOT have a JavaScript support and is meant for people who value their privacy. ## AdBlock Both variants of RSS Guard offer ad-blocking functionality via [Adblocker](https://github.com/cliqz-oss/adblocker). Adblocker offers similar performance to [uBlock Origin](https://github.com/gorhill/uBlock). diff --git a/resources/scripts/github-actions/build-linux-mac.sh b/resources/scripts/github-actions/build-linux-mac.sh index cfe129d82..8314a9046 100755 --- a/resources/scripts/github-actions/build-linux-mac.sh +++ b/resources/scripts/github-actions/build-linux-mac.sh @@ -21,7 +21,7 @@ else prefix="RSS Guard.app" fi -echo "OS: $os; WebEngine: $webengine" +echo "OS: $os; Not lite: $webengine" # Install needed dependencies. if [ $is_linux = true ]; then @@ -78,7 +78,7 @@ git_revision=$(git rev-parse --short HEAD) mkdir rssguard-build cd rssguard-build -cmake .. --warn-uninitialized -G Ninja -DCMAKE_OSX_ARCHITECTURES="x86_64;arm64" -DCMAKE_OSX_DEPLOYMENT_TARGET="10.15" -DFORCE_BUNDLE_ICONS="ON" -DCMAKE_BUILD_TYPE="MinSizeRel" -DCMAKE_VERBOSE_MAKEFILE="ON" -DCMAKE_INSTALL_PREFIX="$prefix" -DREVISION_FROM_GIT="ON" -DBUILD_WITH_QT6="$USE_QT6" -DENABLE_COMPRESSED_SITEMAP="ON" -DUSE_WEBENGINE="$webengine" -DFEEDLY_CLIENT_ID="$FEEDLY_CLIENT_ID" -DFEEDLY_CLIENT_SECRET="$FEEDLY_CLIENT_SECRET" -DGMAIL_CLIENT_ID="$GMAIL_CLIENT_ID" -DGMAIL_CLIENT_SECRET="$GMAIL_CLIENT_SECRET" +cmake .. --warn-uninitialized -G Ninja -DCMAKE_OSX_ARCHITECTURES="x86_64;arm64" -DCMAKE_OSX_DEPLOYMENT_TARGET="10.15" -DFORCE_BUNDLE_ICONS="ON" -DCMAKE_BUILD_TYPE="MinSizeRel" -DCMAKE_VERBOSE_MAKEFILE="ON" -DCMAKE_INSTALL_PREFIX="$prefix" -DREVISION_FROM_GIT="ON" -DBUILD_WITH_QT6="$USE_QT6" -DENABLE_COMPRESSED_SITEMAP="ON" -DENABLE_MEDIAPLAYER_LIBMPV="OFF" -DENABLE_MEDIAPLAYER_QTMULTIMEDIA="OFF" -DNO_LITE="$webengine" -DFEEDLY_CLIENT_ID="$FEEDLY_CLIENT_ID" -DFEEDLY_CLIENT_SECRET="$FEEDLY_CLIENT_SECRET" -DGMAIL_CLIENT_ID="$GMAIL_CLIENT_ID" -DGMAIL_CLIENT_SECRET="$GMAIL_CLIENT_SECRET" cmake --build . cmake --install . --prefix "$prefix" @@ -124,7 +124,7 @@ if [ $is_linux = true ]; then if [[ "$webengine" == "ON" ]]; then imagenewname="rssguard-${git_tag}-${git_revision}-linux64.AppImage" else - imagenewname="rssguard-${git_tag}-${git_revision}-nowebengine-linux64.AppImage" + imagenewname="rssguard-${git_tag}-${git_revision}-lite-linux64.AppImage" fi else # Fix .dylib linking. @@ -144,9 +144,9 @@ else if [[ "$webengine" == "ON" ]]; then imagenewname="rssguard-${git_tag}-${git_revision}-mac64.dmg" else - imagenewname="rssguard-${git_tag}-${git_revision}-nowebengine-mac64.dmg" + imagenewname="rssguard-${git_tag}-${git_revision}-lite-mac64.dmg" fi fi mv "$imagename" "$imagenewname" -ls +ls \ No newline at end of file diff --git a/resources/scripts/github-actions/build-windows.ps1 b/resources/scripts/github-actions/build-windows.ps1 index f812fc7a7..851a2bc0b 100755 --- a/resources/scripts/github-actions/build-windows.ps1 +++ b/resources/scripts/github-actions/build-windows.ps1 @@ -2,8 +2,10 @@ $os = $args[0] $use_webengine = $args[1] $use_qt5 = $args[2] +not_use_webengine = "OFF" if use_webengine == "ON" else "ON" + echo "We are building for MS Windows." -echo "OS: $os; WebEngine: $use_webengine; Qt5: $use_qt5" +echo "OS: $os; Not lite: $use_webengine; Qt5: $use_qt5" $git_revlist = git rev-list --tags --max-count=1 $git_tag = git describe --tags $git_revlist @@ -117,7 +119,7 @@ cd "$old_pwd" mkdir "rssguard-build" cd "rssguard-build" -& "$cmake_path" ".." -G Ninja -DCMAKE_BUILD_TYPE="RelWithDebInfo" -DCMAKE_VERBOSE_MAKEFILE="ON" -DBUILD_WITH_QT6="$with_qt6" -DREVISION_FROM_GIT="ON" -DUSE_SYSTEM_SQLITE="OFF" -DZLIB_ROOT="$zlib_path" -DENABLE_COMPRESSED_SITEMAP="ON" -DUSE_WEBENGINE="$use_webengine" -DFEEDLY_CLIENT_ID="$env:FEEDLY_CLIENT_ID" -DFEEDLY_CLIENT_SECRET="$env:FEEDLY_CLIENT_SECRET" -DGMAIL_CLIENT_ID="$env:GMAIL_CLIENT_ID" -DGMAIL_CLIENT_SECRET="$env:GMAIL_CLIENT_SECRET" +& "$cmake_path" ".." -G Ninja -DCMAKE_BUILD_TYPE="RelWithDebInfo" -DCMAKE_VERBOSE_MAKEFILE="ON" -DBUILD_WITH_QT6="$with_qt6" -DREVISION_FROM_GIT="ON" -DUSE_SYSTEM_SQLITE="OFF" -DZLIB_ROOT="$zlib_path" -DENABLE_COMPRESSED_SITEMAP="ON" -DENABLE_MEDIAPLAYER_LIBMPV="$use_webengine" -DENABLE_MEDIAPLAYER_QTMULTIMEDIA="$not_use_webengine" -DNO_LITE="$use_webengine" -DFEEDLY_CLIENT_ID="$env:FEEDLY_CLIENT_ID" -DFEEDLY_CLIENT_SECRET="$env:FEEDLY_CLIENT_SECRET" -DGMAIL_CLIENT_ID="$env:GMAIL_CLIENT_ID" -DGMAIL_CLIENT_SECRET="$env:GMAIL_CLIENT_SECRET" & "$cmake_path" --build . & "$cmake_path" --install . --prefix app @@ -145,7 +147,7 @@ if ($use_webengine -eq "ON") { $packagebase = "rssguard-${git_tag}-${git_revision}-win" } else { - $packagebase = "rssguard-${git_tag}-${git_revision}-nowebengine-win" + $packagebase = "rssguard-${git_tag}-${git_revision}-lite-win" } if ($use_qt5 -eq "ON") { diff --git a/resources/scripts/libmpv/libmpv-2.dll b/resources/scripts/libmpv/libmpv-2.dll new file mode 100644 index 000000000..9f934904a Binary files /dev/null and b/resources/scripts/libmpv/libmpv-2.dll differ diff --git a/resources/scripts/libmpv/libmpv.dll.a b/resources/scripts/libmpv/libmpv.dll.a new file mode 100644 index 000000000..436ec44d8 Binary files /dev/null and b/resources/scripts/libmpv/libmpv.dll.a differ diff --git a/src/librssguard/CMakeLists.txt b/src/librssguard/CMakeLists.txt index 0a61a9791..e6fa576c5 100644 --- a/src/librssguard/CMakeLists.txt +++ b/src/librssguard/CMakeLists.txt @@ -528,8 +528,6 @@ elseif(ENABLE_MEDIAPLAYER_LIBMPV) list(APPEND SOURCES gui/mediaplayer/libmpv/libmpvbackend.cpp gui/mediaplayer/libmpv/libmpvbackend.h - gui/mediaplayer/libmpv/libmpvwidget.cpp - gui/mediaplayer/libmpv/libmpvwidget.h gui/mediaplayer/libmpv/qthelper.h ) @@ -555,7 +553,7 @@ elseif(ENABLE_MEDIAPLAYER_LIBMPV) ) endif() -if(USE_WEBENGINE) +if(NO_LITE) list(APPEND SOURCES # WebEngine-based web (and message) browser. gui/webviewers/webengine/webengineviewer.cpp @@ -804,7 +802,7 @@ if(WIN32) ) endif() -if(USE_WEBENGINE) +if(NO_LITE) target_link_libraries(rssguard PUBLIC Qt${QT_VERSION_MAJOR}::WebEngineWidgets ) diff --git a/src/librssguard/definitions/definitions.h b/src/librssguard/definitions/definitions.h index 8be82a5f8..d2ff82979 100644 --- a/src/librssguard/definitions/definitions.h +++ b/src/librssguard/definitions/definitions.h @@ -144,8 +144,8 @@ #define CLI_NDEBUG_SHORT "g" #define CLI_NDEBUG_LONG "no-debug-output" -#define CLI_FORCE_NOWEBENGINE_SHORT "w" -#define CLI_FORCE_NOWEBENGINE_LONG "no-web-engine" +#define CLI_FORCE_LITE_SHORT "w" +#define CLI_FORCE_LITE_LONG "lite" #define CLI_QUIT_INSTANCE "q" #define CLI_IS_RUNNING "a" @@ -185,7 +185,7 @@ #define DEFAULT_ZOOM_FACTOR 1.0f #define ZOOM_FACTOR_STEP 0.05f -#if defined(USE_WEBENGINE) +#if defined(NO_LITE) #define HTTP_COMPLETE_USERAGENT \ (qApp->web()->engineProfile()->httpUserAgent().toLocal8Bit() + QByteArrayLiteral(" ") + \ QByteArrayLiteral(APP_USERAGENT)) diff --git a/src/librssguard/gui/dialogs/formabout.cpp b/src/librssguard/gui/dialogs/formabout.cpp index 8971eb6a1..8b2ef094a 100644 --- a/src/librssguard/gui/dialogs/formabout.cpp +++ b/src/librssguard/gui/dialogs/formabout.cpp @@ -67,7 +67,7 @@ void FormAbout::loadSettingsAndPaths() { QSL(USER_DATA_PLACEHOLDER), QDir::toNativeSeparators(qApp->nodejs()->packageFolder()) .replace(user_data_path, QSL(USER_DATA_PLACEHOLDER)), -#if defined(USE_WEBENGINE) +#if defined(NO_LITE) QDir::toNativeSeparators(qApp->web()->engineProfile()->cachePath()) .replace(user_data_path, QSL(USER_DATA_PLACEHOLDER)), #else diff --git a/src/librssguard/gui/dialogs/formmain.cpp b/src/librssguard/gui/dialogs/formmain.cpp index a1e0a9223..10c2fa7f9 100644 --- a/src/librssguard/gui/dialogs/formmain.cpp +++ b/src/librssguard/gui/dialogs/formmain.cpp @@ -91,7 +91,7 @@ FormMain::FormMain(QWidget* parent, Qt::WindowFlags f) m_ui->m_menuWebBrowserTabs->addAction(qApp->web()->adBlock()->adBlockIcon()); -#if defined(USE_WEBENGINE) +#if defined(NO_LITE) m_ui->m_menuWebBrowserTabs->addAction(qApp->web()->engineSettingsAction()); #endif @@ -765,7 +765,7 @@ void FormMain::createConnections() { connect(m_ui->m_actionDownloadManager, &QAction::triggered, m_ui->m_tabWidget, &TabWidget::showDownloadManager); connect(m_ui->m_actionCleanupDatabase, &QAction::triggered, this, &FormMain::showDbCleanupAssistant); -#if defined(USE_WEBENGINE) +#if defined(NO_LITE) connect(m_ui->m_actionCleanupWebCache, &QAction::triggered, qApp->web(), &WebFactory::cleanupCache); #else m_ui->m_menuTools->removeAction(m_ui->m_actionCleanupWebCache); diff --git a/src/librssguard/gui/mediaplayer/libmpv/libmpvwidget.cpp b/src/librssguard/gui/mediaplayer/libmpv/libmpvwidget.cpp index 6bb2748ac..b160b28c4 100644 --- a/src/librssguard/gui/mediaplayer/libmpv/libmpvwidget.cpp +++ b/src/librssguard/gui/mediaplayer/libmpv/libmpvwidget.cpp @@ -13,7 +13,7 @@ #include static void wakeup(void* ctx) { - QMetaObject::invokeMethod((MpvWidget*)ctx, "on_mpv_events", Qt::QueuedConnection); + QMetaObject::invokeMethod((LibMpvWidget*)ctx, "on_mpv_events", Qt::QueuedConnection); } static void* get_proc_address(void* ctx, const char* name) { @@ -24,7 +24,7 @@ static void* get_proc_address(void* ctx, const char* name) { return reinterpret_cast(glctx->getProcAddress(QByteArray(name))); } -MpvWidget::MpvWidget(QWidget* parent, Qt::WindowFlags f) : QOpenGLWidget(parent, f) { +LibMpvWidget::LibMpvWidget(QWidget* parent, Qt::WindowFlags f) : QOpenGLWidget(parent, f) { mpv = mpv_create(); if (!mpv) throw std::runtime_error("could not create mpv context"); @@ -57,26 +57,26 @@ MpvWidget::MpvWidget(QWidget* parent, Qt::WindowFlags f) : QOpenGLWidget(parent, installEventFilter(this); } -MpvWidget::~MpvWidget() { +LibMpvWidget::~LibMpvWidget() { makeCurrent(); if (mpv_gl) mpv_render_context_free(mpv_gl); mpv_terminate_destroy(mpv); } -void MpvWidget::command(const QVariant& params) { +void LibMpvWidget::command(const QVariant& params) { mpv::qt::command_variant(mpv, params); } -void MpvWidget::setProperty(const QString& name, const QVariant& value) { +void LibMpvWidget::setProperty(const QString& name, const QVariant& value) { mpv::qt::set_property_variant(mpv, name, value); } -QVariant MpvWidget::getProperty(const QString& name) const { +QVariant LibMpvWidget::getProperty(const QString& name) const { return mpv::qt::get_property_variant(mpv, name); } -void MpvWidget::initializeGL() { +void LibMpvWidget::initializeGL() { mpv_opengl_init_params gl_init_params[1] = {get_proc_address, nullptr}; mpv_render_param params[]{{MPV_RENDER_PARAM_API_TYPE, const_cast(MPV_RENDER_API_TYPE_OPENGL)}, {MPV_RENDER_PARAM_OPENGL_INIT_PARAMS, &gl_init_params}, @@ -84,10 +84,10 @@ void MpvWidget::initializeGL() { if (mpv_render_context_create(&mpv_gl, mpv, params) < 0) throw std::runtime_error("failed to initialize mpv GL context"); - mpv_render_context_set_update_callback(mpv_gl, MpvWidget::on_update, reinterpret_cast(this)); + mpv_render_context_set_update_callback(mpv_gl, LibMpvWidget::on_update, reinterpret_cast(this)); } -void MpvWidget::paintGL() { +void LibMpvWidget::paintGL() { mpv_opengl_fbo mpfbo{static_cast(defaultFramebufferObject()), width(), height(), 0}; int flip_y{1}; @@ -99,7 +99,7 @@ void MpvWidget::paintGL() { mpv_render_context_render(mpv_gl, params); } -void MpvWidget::on_mpv_events() { +void LibMpvWidget::on_mpv_events() { // Process all events, until the event queue is empty. while (mpv) { mpv_event* event = mpv_wait_event(mpv, 0); @@ -110,7 +110,7 @@ void MpvWidget::on_mpv_events() { } } -void MpvWidget::handle_mpv_event(mpv_event* event) { +void LibMpvWidget::handle_mpv_event(mpv_event* event) { switch (event->event_id) { case MPV_EVENT_PROPERTY_CHANGE: { mpv_event_property* prop = (mpv_event_property*)event->data; @@ -134,7 +134,7 @@ void MpvWidget::handle_mpv_event(mpv_event* event) { } // Make Qt invoke mpv_render_context_render() to draw a new/updated video frame. -void MpvWidget::maybeUpdate() { +void LibMpvWidget::maybeUpdate() { // If the Qt window is not visible, Qt's update() will just skip rendering. // This confuses mpv's render API, and may lead to small occasional // freezes due to video rendering timing out. @@ -153,15 +153,15 @@ void MpvWidget::maybeUpdate() { } } -void MpvWidget::on_update(void* ctx) { - QMetaObject::invokeMethod((MpvWidget*)ctx, "maybeUpdate"); +void LibMpvWidget::on_update(void* ctx) { + QMetaObject::invokeMethod((LibMpvWidget*)ctx, "maybeUpdate"); } -void MpvWidget::keyPressEvent(QKeyEvent* event) { +void LibMpvWidget::keyPressEvent(QKeyEvent* event) { mpv_set_option_string(mpv, "keypress", event->text().toLocal8Bit().constData()); } -bool MpvWidget::eventFilter(QObject* watched, QEvent* event) { +bool LibMpvWidget::eventFilter(QObject* watched, QEvent* event) { if (event->type() == QEvent::Type::KeyPress) { QString txt = dynamic_cast(event)->text(); diff --git a/src/librssguard/gui/mediaplayer/libmpv/libmpvwidget.h b/src/librssguard/gui/mediaplayer/libmpv/libmpvwidget.h index 9c9fd76b3..35fbd890f 100644 --- a/src/librssguard/gui/mediaplayer/libmpv/libmpvwidget.h +++ b/src/librssguard/gui/mediaplayer/libmpv/libmpvwidget.h @@ -9,12 +9,12 @@ struct mpv_handle; struct mpv_event; struct mpv_render_context; -class MpvWidget : public QOpenGLWidget { +class LibMpvWidget : public QOpenGLWidget { Q_OBJECT public: - explicit MpvWidget(QWidget* parent = nullptr, Qt::WindowFlags f = {}); - virtual ~MpvWidget(); + explicit LibMpvWidget(QWidget* parent = nullptr, Qt::WindowFlags f = {}); + virtual ~LibMpvWidget(); void command(const QVariant& params); void setProperty(const QString& name, const QVariant& value); diff --git a/src/librssguard/gui/settings/settingsbrowsermail.cpp b/src/librssguard/gui/settings/settingsbrowsermail.cpp index 56a3222f5..007e9a118 100644 --- a/src/librssguard/gui/settings/settingsbrowsermail.cpp +++ b/src/librssguard/gui/settings/settingsbrowsermail.cpp @@ -80,7 +80,7 @@ SettingsBrowserMail::SettingsBrowserMail(Settings* settings, QWidget* parent) m_ui->m_btnEditTool->setEnabled(current != nullptr); }); -#if !defined(USE_WEBENGINE) +#if !defined(NO_LITE) // Remove WebEngine tab. m_ui->m_tabBrowserProxy->removeTab(2); #else diff --git a/src/librssguard/miscellaneous/application.cpp b/src/librssguard/miscellaneous/application.cpp index 90568d7c6..7997b706c 100644 --- a/src/librssguard/miscellaneous/application.cpp +++ b/src/librssguard/miscellaneous/application.cpp @@ -49,7 +49,7 @@ #include #endif -#if defined(USE_WEBENGINE) +#if defined(NO_LITE) #include "gui/webviewers/webengine/webengineviewer.h" // WebEngine-based web browsing. #include "network-web/webengine/networkurlinterceptor.h" @@ -92,8 +92,8 @@ Application::Application(const QString& id, int& argc, char** argv, const QStrin m_trayIcon = nullptr; m_settings = Settings::setupSettings(this); -#if defined(USE_WEBENGINE) - if (!m_forcedNoWebEngine && qEnvironmentVariableIsEmpty("QTWEBENGINE_CHROMIUM_FLAGS")) { +#if defined(NO_LITE) + if (!m_forcedLite && qEnvironmentVariableIsEmpty("QTWEBENGINE_CHROMIUM_FLAGS")) { qputenv("QTWEBENGINE_CHROMIUM_FLAGS", settings()->value(GROUP(Browser), SETTING(Browser::WebEngineChromiumFlags)).toString().toLocal8Bit()); } @@ -148,7 +148,7 @@ Application::Application(const QString& id, int& argc, char** argv, const QStrin // and skin. m_icons->setupSearchPaths(); m_icons->loadCurrentIconTheme(); - m_skins->loadCurrentSkin(usingNoWebEngine()); + m_skins->loadCurrentSkin(usingLite()); if (m_toastNotifications != nullptr) { connect(m_toastNotifications, @@ -183,7 +183,7 @@ Application::Application(const QString& id, int& argc, char** argv, const QStrin m_webFactory->setCustomUserAgent(custom_ua); -#if defined(USE_WEBENGINE) +#if defined(NO_LITE) m_webFactory->urlIinterceptor()->load(); m_webFactory->engineProfile()->setCachePath(cacheFolder() + QDir::separator() + QSL("web") + QDir::separator() + @@ -439,9 +439,9 @@ QStringList Application::rawCliArgs() const { return m_rawCliArgs; } -#if defined(USE_WEBENGINE) -bool Application::forcedNoWebEngine() const { - return m_forcedNoWebEngine; +#if defined(NO_LITE) +bool Application::forcedLite() const { + return m_forcedLite; } #endif @@ -776,10 +776,10 @@ void Application::showGuiMessage(Notification::Event event, } WebViewer* Application::createWebView() { -#if !defined(USE_WEBENGINE) +#if !defined(NO_LITE) return new TextBrowserViewer(); #else - if (forcedNoWebEngine()) { + if (forcedLite()) { return new TextBrowserViewer(); } else { @@ -788,11 +788,11 @@ WebViewer* Application::createWebView() { #endif } -bool Application::usingNoWebEngine() const { -#if !defined(USE_WEBENGINE) +bool Application::usingLite() const { +#if !defined(NO_LITE) return true; #else - return forcedNoWebEngine(); + return forcedLite(); #endif } @@ -993,7 +993,7 @@ void Application::restart() { quit(); } -#if defined(USE_WEBENGINE) +#if defined(NO_LITE) #if QT_VERSION_MAJOR == 6 void Application::downloadRequested(QWebEngineDownloadRequest* download_item) { @@ -1220,10 +1220,10 @@ void Application::parseCmdArgumentsFromMyInstance(const QStringList& raw_cli_arg m_cmdParser.showVersion(); } -#if defined(USE_WEBENGINE) - m_forcedNoWebEngine = m_cmdParser.isSet(QSL(CLI_FORCE_NOWEBENGINE_SHORT)); +#if defined(NO_LITE) + m_forcedLite = m_cmdParser.isSet(QSL(CLI_FORCE_LITE_SHORT)); - if (m_forcedNoWebEngine) { + if (m_forcedLite) { qDebugNN << LOGSEC_CORE << "Forcing no-web-engine."; } #endif @@ -1279,9 +1279,9 @@ void Application::fillCmdArgumentsParser(QCommandLineParser& parser) { QCommandLineOption disable_singleinstance({QSL(CLI_SIN_SHORT), QSL(CLI_SIN_LONG)}, QSL("Allow running of multiple application instances.")); -#if defined(USE_WEBENGINE) - QCommandLineOption force_nowebengine({QSL(CLI_FORCE_NOWEBENGINE_SHORT), QSL(CLI_FORCE_NOWEBENGINE_LONG)}, - QSL("Force usage of simpler text-based embedded web browser.")); +#if defined(NO_LITE) + QCommandLineOption force_lite({QSL(CLI_FORCE_LITE_SHORT), QSL(CLI_FORCE_LITE_LONG)}, + QSL("Force lite variant of application.")); #endif QCommandLineOption disable_only_debug({QSL(CLI_NDEBUG_SHORT), QSL(CLI_NDEBUG_LONG)}, @@ -1307,8 +1307,8 @@ void Application::fillCmdArgumentsParser(QCommandLineParser& parser) { parser.addOptions({ help, version, log_file, custom_data_folder, disable_singleinstance, disable_only_debug, disable_debug, -#if defined(USE_WEBENGINE) - force_nowebengine, +#if defined(NO_LITE) + force_lite, #endif forced_style, adblock_port, custom_ua, custom_threads }); diff --git a/src/librssguard/miscellaneous/application.h b/src/librssguard/miscellaneous/application.h index 6713176f8..49c14a07a 100644 --- a/src/librssguard/miscellaneous/application.h +++ b/src/librssguard/miscellaneous/application.h @@ -184,10 +184,10 @@ class RSSGUARD_DLLSPEC Application : public SingleApplication { WebViewer* createWebView(); - bool usingNoWebEngine() const; + bool usingLite() const; -#if defined(USE_WEBENGINE) - bool forcedNoWebEngine() const; +#if defined(NO_LITE) + bool forcedLite() const; #endif // Returns pointer to "GOD" application singleton. @@ -224,7 +224,7 @@ class RSSGUARD_DLLSPEC Application : public SingleApplication { void showMessagesNumber(int unread_messages, bool any_feed_has_new_unread_messages); void onAdBlockFailure(); -#if defined(USE_WEBENGINE) +#if defined(NO_LITE) #if QT_VERSION_MAJOR == 6 void downloadRequested(QWebEngineDownloadRequest* download_item); #else @@ -294,8 +294,8 @@ class RSSGUARD_DLLSPEC Application : public SingleApplication { int m_customAdblockPort; bool m_allowMultipleInstances; -#if defined(USE_WEBENGINE) - bool m_forcedNoWebEngine; +#if defined(NO_LITE) + bool m_forcedLite; #endif #if defined(Q_OS_WIN) diff --git a/src/librssguard/miscellaneous/settings.cpp b/src/librssguard/miscellaneous/settings.cpp index 4cc98afea..9b1bdea52 100644 --- a/src/librssguard/miscellaneous/settings.cpp +++ b/src/librssguard/miscellaneous/settings.cpp @@ -10,7 +10,7 @@ #include #include -#if defined(USE_WEBENGINE) +#if defined(NO_LITE) // WebEngine. DKEY WebEngineAttributes::ID = "web_engine_attributes"; #endif diff --git a/src/librssguard/miscellaneous/settings.h b/src/librssguard/miscellaneous/settings.h index c312c954d..398a2f220 100644 --- a/src/librssguard/miscellaneous/settings.h +++ b/src/librssguard/miscellaneous/settings.h @@ -29,7 +29,7 @@ #define DEFAULT_VALUE(x) x##Def #define GROUP(x) x::ID -#if defined(USE_WEBENGINE) +#if defined(NO_LITE) namespace WebEngineAttributes { KEY ID; } diff --git a/src/librssguard/network-web/adblock/adblockmanager.cpp b/src/librssguard/network-web/adblock/adblockmanager.cpp index 24f383e4f..b7ddcafa4 100644 --- a/src/librssguard/network-web/adblock/adblockmanager.cpp +++ b/src/librssguard/network-web/adblock/adblockmanager.cpp @@ -13,7 +13,7 @@ #include "network-web/networkfactory.h" #include "network-web/webfactory.h" -#if defined(USE_WEBENGINE) +#if defined(NO_LITE) #include "network-web/adblock/adblockurlinterceptor.h" #include "network-web/webengine/networkurlinterceptor.h" #endif @@ -29,7 +29,7 @@ AdBlockManager::AdBlockManager(QObject* parent) : QObject(parent), m_loaded(false), m_enabled(false), m_installing(false), -#if defined(USE_WEBENGINE) +#if defined(NO_LITE) m_interceptor(new AdBlockUrlInterceptor(this)), #endif m_serverProcess(nullptr), m_cacheBlocks({}) { @@ -94,7 +94,7 @@ void AdBlockManager::setEnabled(bool enabled) { } if (!m_loaded) { -#if defined(USE_WEBENGINE) +#if defined(NO_LITE) qApp->web()->urlIinterceptor()->installUrlInterceptor(m_interceptor); #endif m_loaded = true; diff --git a/src/librssguard/network-web/adblock/adblockmanager.h b/src/librssguard/network-web/adblock/adblockmanager.h index 2488a1933..0969d02e0 100644 --- a/src/librssguard/network-web/adblock/adblockmanager.h +++ b/src/librssguard/network-web/adblock/adblockmanager.h @@ -88,7 +88,7 @@ class AdBlockManager : public QObject { bool m_installing; AdBlockIcon* m_adblockIcon; -#if defined(USE_WEBENGINE) +#if defined(NO_LITE) AdBlockUrlInterceptor* m_interceptor; #endif diff --git a/src/librssguard/network-web/adblock/adblockrequestinfo.cpp b/src/librssguard/network-web/adblock/adblockrequestinfo.cpp index 0ead41c53..756744a1e 100644 --- a/src/librssguard/network-web/adblock/adblockrequestinfo.cpp +++ b/src/librssguard/network-web/adblock/adblockrequestinfo.cpp @@ -4,7 +4,7 @@ #include "definitions/definitions.h" -#if defined(USE_WEBENGINE) +#if defined(NO_LITE) AdblockRequestInfo::AdblockRequestInfo(const QWebEngineUrlRequestInfo& webengine_info) { initialize(webengine_info); } @@ -46,7 +46,7 @@ void AdblockRequestInfo::setRequestMethod(const QByteArray& request_method) { m_requestMethod = request_method; } -#if defined(USE_WEBENGINE) +#if defined(NO_LITE) void AdblockRequestInfo::initialize(const QWebEngineUrlRequestInfo& webengine_info) { setFirstPartyUrl(webengine_info.firstPartyUrl()); setRequestMethod(webengine_info.requestMethod()); @@ -99,7 +99,7 @@ void AdblockRequestInfo::initialize(const QUrl& url) { setRequestMethod(QSL("GET").toLocal8Bit()); setRequestUrl(url); -#if defined(USE_WEBENGINE) +#if defined(NO_LITE) setResourceType(convertResourceType(QWebEngineUrlRequestInfo::ResourceType::ResourceTypeMainFrame)); #else setResourceType(QSL("main_frame")); diff --git a/src/librssguard/network-web/adblock/adblockrequestinfo.h b/src/librssguard/network-web/adblock/adblockrequestinfo.h index 975835dfe..0129d228d 100644 --- a/src/librssguard/network-web/adblock/adblockrequestinfo.h +++ b/src/librssguard/network-web/adblock/adblockrequestinfo.h @@ -3,7 +3,7 @@ #ifndef ADBLOCKREQUESTINFO_H #define ADBLOCKREQUESTINFO_H -#if defined(USE_WEBENGINE) +#if defined(NO_LITE) #include #endif @@ -11,7 +11,7 @@ class AdblockRequestInfo { public: -#if defined(USE_WEBENGINE) +#if defined(NO_LITE) explicit AdblockRequestInfo(const QWebEngineUrlRequestInfo& webengine_info); #endif @@ -32,7 +32,7 @@ class AdblockRequestInfo { private: void initialize(const QUrl& url); -#if defined(USE_WEBENGINE) +#if defined(NO_LITE) void initialize(const QWebEngineUrlRequestInfo& webengine_info); QString convertResourceType(QWebEngineUrlRequestInfo::ResourceType rt) const; #endif diff --git a/src/librssguard/network-web/cookiejar.cpp b/src/librssguard/network-web/cookiejar.cpp index 6656b7df6..8c118eee5 100644 --- a/src/librssguard/network-web/cookiejar.cpp +++ b/src/librssguard/network-web/cookiejar.cpp @@ -12,13 +12,13 @@ #include #include -#if defined(USE_WEBENGINE) +#if defined(NO_LITE) #include #endif CookieJar::CookieJar(QObject* parent) : QNetworkCookieJar(parent), m_saver(AutoSaver(this, QSL("saveCookies"), 30, 45)) { -#if defined(USE_WEBENGINE) +#if defined(NO_LITE) auto* web_factory = qobject_cast(parent); if (web_factory != nullptr) { @@ -34,7 +34,7 @@ CookieJar::CookieJar(QObject* parent) updateSettings(); loadCookies(); -#if defined(USE_WEBENGINE) +#if defined(NO_LITE) // When cookies change in WebEngine, then change in main cookie jar too. // // Also, the synchronization between WebEngine cookie jar and main cookie jar is this: @@ -136,7 +136,7 @@ bool CookieJar::insertCookieInternal(const QNetworkCookie& cookie, bool notify_o // saveCookies(); } -#if defined(USE_WEBENGINE) +#if defined(NO_LITE) if (notify_others) { m_webEngineCookies->setCookie(cookie); } @@ -155,7 +155,7 @@ bool CookieJar::updateCookieInternal(const QNetworkCookie& cookie, bool notify_o m_saver.changeOccurred(); // saveCookies(); -#if defined(USE_WEBENGINE) +#if defined(NO_LITE) if (notify_others) { m_webEngineCookies->setCookie(cookie); } @@ -174,7 +174,7 @@ bool CookieJar::deleteCookieInternal(const QNetworkCookie& cookie, bool notify_o m_saver.changeOccurred(); // saveCookies(); -#if defined(USE_WEBENGINE) +#if defined(NO_LITE) if (notify_others) { m_webEngineCookies->deleteCookie(cookie); } diff --git a/src/librssguard/network-web/cookiejar.h b/src/librssguard/network-web/cookiejar.h index f3e1468f4..6bf0aa252 100644 --- a/src/librssguard/network-web/cookiejar.h +++ b/src/librssguard/network-web/cookiejar.h @@ -9,7 +9,7 @@ #include -#if defined(USE_WEBENGINE) +#if defined(NO_LITE) class QWebEngineCookieStore; #endif @@ -41,7 +41,7 @@ class CookieJar : public QNetworkCookieJar { bool deleteCookieInternal(const QNetworkCookie& cookie, bool notify_others); private: -#if defined(USE_WEBENGINE) +#if defined(NO_LITE) QWebEngineCookieStore* m_webEngineCookies; #endif diff --git a/src/librssguard/network-web/webfactory.cpp b/src/librssguard/network-web/webfactory.cpp index 40ebf836d..4cc9a1c37 100644 --- a/src/librssguard/network-web/webfactory.cpp +++ b/src/librssguard/network-web/webfactory.cpp @@ -14,7 +14,7 @@ #include #include -#if defined(USE_WEBENGINE) +#if defined(NO_LITE) #include "network-web/webengine/networkurlinterceptor.h" #if QT_VERSION_MAJOR == 6 @@ -31,7 +31,7 @@ WebFactory::WebFactory(QObject* parent) : QObject(parent), m_customUserAgent(QString()) { m_adBlock = new AdBlockManager(this); -#if defined(USE_WEBENGINE) +#if defined(NO_LITE) if (qApp->settings()->value(GROUP(Browser), SETTING(Browser::DisableCache)).toBool()) { qWarningNN << LOGSEC_NETWORK << "Using off-the-record WebEngine profile."; @@ -48,7 +48,7 @@ WebFactory::WebFactory(QObject* parent) : QObject(parent), m_customUserAgent(QSt m_cookieJar = new CookieJar(this); m_readability = new Readability(this); -#if defined(USE_WEBENGINE) +#if defined(NO_LITE) #if QT_VERSION >= 0x050D00 // Qt >= 5.13.0 m_engineProfile->setUrlRequestInterceptor(m_urlInterceptor); #else @@ -58,7 +58,7 @@ WebFactory::WebFactory(QObject* parent) : QObject(parent), m_customUserAgent(QSt } WebFactory::~WebFactory() { -#if defined(USE_WEBENGINE) +#if defined(NO_LITE) if (m_engineSettings != nullptr && m_engineSettings->menu() != nullptr) { m_engineSettings->menu()->deleteLater(); } @@ -89,7 +89,7 @@ bool WebFactory::sendMessageViaEmail(const Message& message) { } } -#if defined(USE_WEBENGINE) +#if defined(NO_LITE) void WebFactory::loadCustomCss(const QString user_styles_path) { if (QFile::exists(user_styles_path)) { QByteArray css_data = IOFactory::readFile(user_styles_path); @@ -307,7 +307,7 @@ AdBlockManager* WebFactory::adBlock() const { return m_adBlock; } -#if defined(USE_WEBENGINE) +#if defined(NO_LITE) NetworkUrlInterceptor* WebFactory::urlIinterceptor() const { return m_urlInterceptor; } @@ -706,7 +706,7 @@ void WebFactory::setCustomUserAgent(const QString& user_agent) { m_customUserAgent = user_agent; } -#if defined(USE_WEBENGINE) +#if defined(NO_LITE) void WebFactory::cleanupCache() { if (MsgBox::show(nullptr, QMessageBox::Icon::Question, diff --git a/src/librssguard/network-web/webfactory.h b/src/librssguard/network-web/webfactory.h index 46b69524d..c68c0f24f 100644 --- a/src/librssguard/network-web/webfactory.h +++ b/src/librssguard/network-web/webfactory.h @@ -9,7 +9,7 @@ #include -#if defined(USE_WEBENGINE) +#if defined(NO_LITE) #include #include @@ -42,7 +42,7 @@ class WebFactory : public QObject { AdBlockManager* adBlock() const; -#if defined(USE_WEBENGINE) +#if defined(NO_LITE) QAction* engineSettingsAction(); NetworkUrlInterceptor* urlIinterceptor() const; QWebEngineProfile* engineProfile() const; @@ -54,7 +54,7 @@ class WebFactory : public QObject { void updateProxy(); bool sendMessageViaEmail(const Message& message); -#if defined(USE_WEBENGINE) +#if defined(NO_LITE) void loadCustomCss(const QString user_styles_path); #endif @@ -62,13 +62,13 @@ class WebFactory : public QObject { void setCustomUserAgent(const QString& user_agent); public slots: -#if defined(USE_WEBENGINE) +#if defined(NO_LITE) void cleanupCache(); #endif bool openUrlInExternalBrowser(const QString& url) const; -#if defined(USE_WEBENGINE) +#if defined(NO_LITE) private slots: void createMenu(QMenu* menu = nullptr); void webEngineSettingChanged(bool enabled); @@ -83,7 +83,7 @@ class WebFactory : public QObject { private: AdBlockManager* m_adBlock; -#if defined(USE_WEBENGINE) +#if defined(NO_LITE) QWebEngineProfile* m_engineProfile; NetworkUrlInterceptor* m_urlInterceptor; QAction* m_engineSettings;