summaryrefslogtreecommitdiffstats
path: root/src/webengine/api/qquickwebengineprofile.cpp
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@digia.com>2014-12-05 14:38:17 +0100
committerAllan Sandfeld Jensen <allan.jensen@theqtcompany.com>2014-12-12 14:48:11 +0100
commit893b57559f198304b627a594ca5e1c3ac36d0907 (patch)
treec5092e04171cfb2c3232ec70cd9d20715857c6fc /src/webengine/api/qquickwebengineprofile.cpp
parent6ec3268a30a63d5c15258ea6f4f792e21930b093 (diff)
QML API for WebEngineProfiles
Introduces the QML API for the WebEngineProfiles already implemented for QtWebEngineWidgets. [ChangeLog][QtWebEngineQML][QQuickWebEngineProfile] New API for profiles applying to groups of QQuickWebEnginePages. Change-Id: Ideccddb9f1fb19628297592fe0cec504c9890e46 Reviewed-by: Andras Becsi <andras.becsi@theqtcompany.com>
Diffstat (limited to 'src/webengine/api/qquickwebengineprofile.cpp')
-rw-r--r--src/webengine/api/qquickwebengineprofile.cpp210
1 files changed, 210 insertions, 0 deletions
diff --git a/src/webengine/api/qquickwebengineprofile.cpp b/src/webengine/api/qquickwebengineprofile.cpp
new file mode 100644
index 000000000..64d9805d6
--- /dev/null
+++ b/src/webengine/api/qquickwebengineprofile.cpp
@@ -0,0 +1,210 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtWebEngine module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "qquickwebengineprofile_p.h"
+
+#include "qquickwebengineprofile_p_p.h"
+
+#include "browser_context_adapter.h"
+
+QT_BEGIN_NAMESPACE
+
+QQuickWebEngineProfilePrivate::QQuickWebEngineProfilePrivate(BrowserContextAdapter* browserContext, bool ownsContext)
+ : m_browserContext(browserContext)
+{
+ if (ownsContext)
+ m_browserContextRef = browserContext;
+}
+
+QQuickWebEngineProfilePrivate::~QQuickWebEngineProfilePrivate()
+{
+}
+
+QQuickWebEngineProfile::QQuickWebEngineProfile()
+ : d_ptr(new QQuickWebEngineProfilePrivate(new BrowserContextAdapter(false), true))
+{
+}
+
+QQuickWebEngineProfile::QQuickWebEngineProfile(QQuickWebEngineProfilePrivate *privatePtr)
+ : d_ptr(privatePtr)
+{
+}
+
+QQuickWebEngineProfile::~QQuickWebEngineProfile()
+{
+}
+
+QString QQuickWebEngineProfile::storageName() const
+{
+ const Q_D(QQuickWebEngineProfile);
+ return d->browserContext()->storageName();
+}
+
+void QQuickWebEngineProfile::setStorageName(const QString &name)
+{
+ Q_D(QQuickWebEngineProfile);
+ if (d->browserContext()->storageName() == name)
+ return;
+ BrowserContextAdapter::HttpCacheType oldCacheType = d->browserContext()->httpCacheType();
+ BrowserContextAdapter::PersistentCookiesPolicy oldPolicy = d->browserContext()->persistentCookiesPolicy();
+ d->browserContext()->setStorageName(name);
+ emit storageNameChanged();
+ emit persistentStoragePathChanged();
+ emit cachePathChanged();
+ if (d->browserContext()->httpCacheType() != oldCacheType)
+ emit httpCacheTypeChanged();
+ if (d->browserContext()->persistentCookiesPolicy() != oldPolicy)
+ emit persistentCookiesPolicyChanged();
+}
+
+bool QQuickWebEngineProfile::isOffTheRecord() const
+{
+ const Q_D(QQuickWebEngineProfile);
+ return d->browserContext()->isOffTheRecord();
+}
+
+void QQuickWebEngineProfile::setOffTheRecord(bool offTheRecord)
+{
+ Q_D(QQuickWebEngineProfile);
+ if (d->browserContext()->isOffTheRecord() == offTheRecord)
+ return;
+ BrowserContextAdapter::HttpCacheType oldCacheType = d->browserContext()->httpCacheType();
+ BrowserContextAdapter::PersistentCookiesPolicy oldPolicy = d->browserContext()->persistentCookiesPolicy();
+ d->browserContext()->setOffTheRecord(offTheRecord);
+ emit offTheRecordChanged();
+ if (d->browserContext()->httpCacheType() != oldCacheType)
+ emit httpCacheTypeChanged();
+ if (d->browserContext()->persistentCookiesPolicy() != oldPolicy)
+ emit persistentCookiesPolicyChanged();
+}
+
+QString QQuickWebEngineProfile::persistentStoragePath() const
+{
+ const Q_D(QQuickWebEngineProfile);
+ return d->browserContext()->dataPath();
+}
+
+void QQuickWebEngineProfile::setPersistentStoragePath(const QString &path)
+{
+ Q_D(QQuickWebEngineProfile);
+ if (persistentStoragePath() == path)
+ return;
+ d->browserContext()->setDataPath(path);
+ emit persistentStoragePathChanged();
+}
+
+QString QQuickWebEngineProfile::cachePath() const
+{
+ const Q_D(QQuickWebEngineProfile);
+ return d->browserContext()->cachePath();
+}
+
+void QQuickWebEngineProfile::setCachePath(const QString &path)
+{
+ Q_D(QQuickWebEngineProfile);
+ if (cachePath() == path)
+ return;
+ d->browserContext()->setCachePath(path);
+ emit cachePathChanged();
+}
+
+QString QQuickWebEngineProfile::httpUserAgent() const
+{
+ const Q_D(QQuickWebEngineProfile);
+ return d->browserContext()->httpUserAgent();
+}
+
+void QQuickWebEngineProfile::setHttpUserAgent(const QString &userAgent)
+{
+ Q_D(QQuickWebEngineProfile);
+ if (d->browserContext()->httpUserAgent() == userAgent)
+ return;
+ d->browserContext()->setHttpUserAgent(userAgent);
+ emit httpUserAgentChanged();
+}
+
+QQuickWebEngineProfile::HttpCacheType QQuickWebEngineProfile::httpCacheType() const
+{
+ const Q_D(QQuickWebEngineProfile);
+ return QQuickWebEngineProfile::HttpCacheType(d->browserContext()->httpCacheType());
+}
+
+void QQuickWebEngineProfile::setHttpCacheType(QQuickWebEngineProfile::HttpCacheType httpCacheType)
+{
+ Q_D(QQuickWebEngineProfile);
+ BrowserContextAdapter::HttpCacheType oldCacheType = d->browserContext()->httpCacheType();
+ d->browserContext()->setHttpCacheType(BrowserContextAdapter::HttpCacheType(httpCacheType));
+ if (d->browserContext()->httpCacheType() != oldCacheType)
+ emit httpCacheTypeChanged();
+}
+
+QQuickWebEngineProfile::PersistentCookiesPolicy QQuickWebEngineProfile::persistentCookiesPolicy() const
+{
+ const Q_D(QQuickWebEngineProfile);
+ return QQuickWebEngineProfile::PersistentCookiesPolicy(d->browserContext()->persistentCookiesPolicy());
+}
+
+void QQuickWebEngineProfile::setPersistentCookiesPolicy(QQuickWebEngineProfile::PersistentCookiesPolicy newPersistentCookiesPolicy)
+{
+ Q_D(QQuickWebEngineProfile);
+ BrowserContextAdapter::PersistentCookiesPolicy oldPolicy = d->browserContext()->persistentCookiesPolicy();
+ d->browserContext()->setPersistentCookiesPolicy(BrowserContextAdapter::PersistentCookiesPolicy(newPersistentCookiesPolicy));
+ if (d->browserContext()->persistentCookiesPolicy() != oldPolicy)
+ emit persistentCookiesPolicyChanged();
+}
+
+int QQuickWebEngineProfile::httpCacheMaxSize() const
+{
+ const Q_D(QQuickWebEngineProfile);
+ return d->browserContext()->httpCacheMaxSize();
+}
+
+void QQuickWebEngineProfile::setHttpCacheMaxSize(int maxSize)
+{
+ Q_D(QQuickWebEngineProfile);
+ if (d->browserContext()->httpCacheMaxSize() == maxSize)
+ return;
+ d->browserContext()->setHttpCacheMaxSize(maxSize);
+ emit httpCacheMaxSizeChanged();
+}
+
+QQuickWebEngineProfile *QQuickWebEngineProfile::defaultProfile()
+{
+ static QQuickWebEngineProfile profile(new QQuickWebEngineProfilePrivate(BrowserContextAdapter::defaultContext(), false));
+ return &profile;
+}
+
+QT_END_NAMESPACE