mirror of
https://invent.kde.org/network/falkon.git
synced 2024-12-19 18:26:34 +01:00
Make Qt 6 builds use a custom profile instead of the QtWebEngine defaultProfile. In Qt 6, defaultProfile is off-the-record which means every session would behave like private/incognito mode.
This commit is contained in:
parent
f8c14a7671
commit
d9c8524cdd
@ -298,7 +298,11 @@ MainApplication::MainApplication(int &argc, char** argv)
|
||||
NetworkManager::registerSchemes();
|
||||
registerAllowedSchemes();
|
||||
|
||||
#if (QT_VERSION < QT_VERSION_CHECK(6, 0, 0))
|
||||
m_webProfile = isPrivate() ? new QWebEngineProfile() : QWebEngineProfile::defaultProfile();
|
||||
#else
|
||||
m_webProfile = isPrivate() ? new QWebEngineProfile() : new QWebEngineProfile(QSL("Default"));
|
||||
#endif
|
||||
connect(m_webProfile, &QWebEngineProfile::downloadRequested, this, &MainApplication::downloadRequested);
|
||||
|
||||
m_webProfile->setNotificationPresenter([&] (std::unique_ptr<QWebEngineNotification> notification) {
|
||||
@ -404,6 +408,12 @@ MainApplication::~MainApplication()
|
||||
delete m_cookieJar;
|
||||
m_cookieJar = nullptr;
|
||||
|
||||
#if (QT_VERSION >= QT_VERSION_CHECK(6, 0, 0))
|
||||
// On Qt 6, deleting the web profile is necessary in order to make sure cache, cookies, etc. are flushed to disk.
|
||||
delete m_webProfile;
|
||||
m_webProfile = nullptr;
|
||||
#endif
|
||||
|
||||
Settings::syncSettings();
|
||||
}
|
||||
|
||||
@ -1006,7 +1016,11 @@ void MainApplication::loadSettings()
|
||||
webSettings->setFontSize(QWebEngineSettings::MinimumLogicalFontSize, settings.value(QSL("MinimumLogicalFontSize"), 5).toInt());
|
||||
settings.endGroup();
|
||||
|
||||
#if (QT_VERSION < QT_VERSION_CHECK(6, 0, 0))
|
||||
QWebEngineProfile* profile = QWebEngineProfile::defaultProfile();
|
||||
#else
|
||||
QWebEngineProfile* profile = m_webProfile;
|
||||
#endif
|
||||
profile->setPersistentCookiesPolicy(QWebEngineProfile::AllowPersistentCookies);
|
||||
profile->setPersistentStoragePath(DataPaths::currentProfilePath());
|
||||
|
||||
|
@ -19,6 +19,7 @@
|
||||
#include "browserwindow.h"
|
||||
#include "qztools.h"
|
||||
#include "settings.h"
|
||||
#include "mainapplication.h"
|
||||
|
||||
#include <QWebEngineProfile>
|
||||
#include <QRegularExpression>
|
||||
@ -27,7 +28,7 @@ UserAgentManager::UserAgentManager(QObject* parent)
|
||||
: QObject(parent)
|
||||
, m_usePerDomainUserAgent(false)
|
||||
{
|
||||
m_defaultUserAgent = QWebEngineProfile::defaultProfile()->httpUserAgent();
|
||||
m_defaultUserAgent = mApp->webProfile()->httpUserAgent();
|
||||
m_defaultUserAgent.replace(QRegularExpression(QSL("(QtWebEngine/[^\\s]+)")), QSL("Falkon/%1 \\1").arg(Qz::VERSION));
|
||||
}
|
||||
|
||||
@ -53,7 +54,7 @@ void UserAgentManager::loadSettings()
|
||||
}
|
||||
|
||||
const QString userAgent = m_globalUserAgent.isEmpty() ? m_defaultUserAgent : m_globalUserAgent;
|
||||
QWebEngineProfile::defaultProfile()->setHttpUserAgent(userAgent);
|
||||
mApp->webProfile()->setHttpUserAgent(userAgent);
|
||||
}
|
||||
|
||||
QString UserAgentManager::globalUserAgent() const
|
||||
|
@ -310,7 +310,7 @@ Preferences::Preferences(BrowserWindow* window)
|
||||
ui->allowCache->setChecked(settings.value("AllowLocalCache", true).toBool());
|
||||
ui->removeCache->setChecked(settings.value("deleteCacheOnClose", false).toBool());
|
||||
ui->cacheMB->setValue(settings.value("LocalCacheSize", 50).toInt());
|
||||
ui->cachePath->setText(settings.value("CachePath", QWebEngineProfile::defaultProfile()->cachePath()).toString());
|
||||
ui->cachePath->setText(settings.value("CachePath", mApp->webProfile()->cachePath()).toString());
|
||||
connect(ui->allowCache, &QAbstractButton::clicked, this, &Preferences::allowCacheChanged);
|
||||
connect(ui->changeCachePath, &QAbstractButton::clicked, this, &Preferences::changeCachePathClicked);
|
||||
allowCacheChanged(ui->allowCache->isChecked());
|
||||
|
Loading…
Reference in New Issue
Block a user