qwkpreferences.cpp revision 65f03d4f644ce73618e5f4f50dd694b26f55ae12
165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch/* 265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies) 365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch This library is free software; you can redistribute it and/or 565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch modify it under the terms of the GNU Library General Public 665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch License as published by the Free Software Foundation; either 765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch version 2 of the License, or (at your option) any later version. 865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch This library is distributed in the hope that it will be useful, 1065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch but WITHOUT ANY WARRANTY; without even the implied warranty of 1165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch Library General Public License for more details. 1365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 1465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch You should have received a copy of the GNU Library General Public License 1565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch along with this library; see the file COPYING.LIB. If not, write to 1665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 1765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch Boston, MA 02110-1301, USA. 1865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch*/ 1965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 2065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#include "qwkpreferences.h" 2165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 2265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#include "WKPageGroup.h" 2365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#include "WKPreferences.h" 2465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#include "WKStringQt.h" 2565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#include "WKRetainPtr.h" 2665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#include "qwkpreferences_p.h" 2765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 2865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 2965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben MurdochQWKPreferences* QWKPreferencesPrivate::createPreferences(WKPageGroupRef pageGroupRef) 3065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch{ 3165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch QWKPreferences* prefs = new QWKPreferences; 3265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch prefs->d->ref = WKPageGroupGetPreferences(pageGroupRef); 3365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch return prefs; 3465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch} 3565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 3665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben MurdochQWKPreferences* QWKPreferencesPrivate::createSharedPreferences() 3765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch{ 3865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch QWKPreferences* prefs = new QWKPreferences; 3965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch prefs->d->ref = WKPreferencesCreate(); 4065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch return prefs; 4165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch} 4265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 4365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben MurdochQWKPreferences* QWKPreferences::sharedPreferences() 4465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch{ 4565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch static QWKPreferences* instance = 0; 4665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 4765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch if (!instance) 4865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch instance = QWKPreferencesPrivate::createSharedPreferences(); 4965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch return instance; 5065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch} 5165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 5265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben MurdochQWKPreferences::QWKPreferences() 5365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch : d(new QWKPreferencesPrivate) 5465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch{ 5565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch} 5665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 5765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben MurdochQWKPreferences::~QWKPreferences() 5865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch{ 5965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch delete d; 6065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch} 6165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 6265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochvoid QWKPreferences::setFontFamily(FontFamily which, const QString& family) 6365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch{ 6465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch switch (which) { 6565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch case StandardFont: 6665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch WKPreferencesSetStandardFontFamily(d->ref, WKStringCreateWithQString(family)); 6765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch break; 6865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch case FixedFont: 6965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch WKPreferencesSetFixedFontFamily(d->ref, WKStringCreateWithQString(family)); 7065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch break; 7165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch case SerifFont: 7265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch WKPreferencesSetSerifFontFamily(d->ref, WKStringCreateWithQString(family)); 7365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch break; 7465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch case SansSerifFont: 7565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch WKPreferencesSetSansSerifFontFamily(d->ref, WKStringCreateWithQString(family)); 7665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch break; 7765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch case CursiveFont: 7865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch WKPreferencesSetCursiveFontFamily(d->ref, WKStringCreateWithQString(family)); 7965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch break; 8065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch case FantasyFont: 8165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch WKPreferencesSetFantasyFontFamily(d->ref, WKStringCreateWithQString(family)); 8265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch break; 8365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch default: 8465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch break; 8565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch } 8665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch} 8765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 8865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben MurdochQString QWKPreferences::fontFamily(FontFamily which) const 8965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch{ 9065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch switch (which) { 9165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch case StandardFont: { 9265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch WKRetainPtr<WKStringRef> stringRef(AdoptWK, WKPreferencesCopyStandardFontFamily(d->ref)); 9365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch return WKStringCopyQString(stringRef.get()); 9465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch } 9565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch case FixedFont: { 9665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch WKRetainPtr<WKStringRef> stringRef(AdoptWK, WKPreferencesCopyFixedFontFamily(d->ref)); 9765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch return WKStringCopyQString(stringRef.get()); 9865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch } 9965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch case SerifFont: { 10065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch WKRetainPtr<WKStringRef> stringRef(AdoptWK, WKPreferencesCopySerifFontFamily(d->ref)); 10165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch return WKStringCopyQString(stringRef.get()); 10265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch } 10365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch case SansSerifFont: { 10465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch WKRetainPtr<WKStringRef> stringRef(AdoptWK, WKPreferencesCopySansSerifFontFamily(d->ref)); 10565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch return WKStringCopyQString(stringRef.get()); 10665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch } 10765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch case CursiveFont: { 10865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch WKRetainPtr<WKStringRef> stringRef(AdoptWK, WKPreferencesCopyCursiveFontFamily(d->ref)); 10965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch return WKStringCopyQString(stringRef.get()); 11065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch } 11165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch case FantasyFont: { 11265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch WKRetainPtr<WKStringRef> stringRef(AdoptWK, WKPreferencesCopyFantasyFontFamily(d->ref)); 11365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch return WKStringCopyQString(stringRef.get()); 11465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch } 11565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch default: 11665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch return QString(); 11765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch } 11865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch} 11965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 12065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochbool QWKPreferences::testAttribute(WebAttribute attr) const 12165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch{ 12265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch switch (attr) { 12365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch case AutoLoadImages: 12465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch return WKPreferencesGetLoadsImagesAutomatically(d->ref); 12565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch case JavascriptEnabled: 12665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch return WKPreferencesGetJavaScriptEnabled(d->ref); 12765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch case PluginsEnabled: 12865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch return WKPreferencesGetPluginsEnabled(d->ref); 12965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch case OfflineWebApplicationCacheEnabled: 13065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch return WKPreferencesGetOfflineWebApplicationCacheEnabled(d->ref); 13165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch case LocalStorageEnabled: 13265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch return WKPreferencesGetLocalStorageEnabled(d->ref); 13365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch case XSSAuditingEnabled: 13465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch return WKPreferencesGetXSSAuditorEnabled(d->ref); 13565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch case FrameFlatteningEnabled: 13665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch return WKPreferencesGetFrameFlatteningEnabled(d->ref); 13765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch case PrivateBrowsingEnabled: 13865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch return WKPreferencesGetPrivateBrowsingEnabled(d->ref); 13965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch case DeveloperExtrasEnabled: 14065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch return WKPreferencesGetDeveloperExtrasEnabled(d->ref); 14165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch case DnsPrefetchEnabled: 14265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch return WKPreferencesGetDNSPrefetchingEnabled(d->ref); 14365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch default: 14465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch ASSERT_NOT_REACHED(); 14565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch return false; 14665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch } 14765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch} 14865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 14965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochvoid QWKPreferences::setAttribute(WebAttribute attr, bool on) 15065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch{ 15165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch switch (attr) { 15265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch case AutoLoadImages: 15365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch WKPreferencesSetLoadsImagesAutomatically(d->ref, on); 15465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch break; 15565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch case JavascriptEnabled: 15665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch WKPreferencesSetJavaScriptEnabled(d->ref, on); 15765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch break; 15865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch case PluginsEnabled: 15965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch WKPreferencesSetPluginsEnabled(d->ref, on); 16065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch break; 16165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch case OfflineWebApplicationCacheEnabled: 16265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch WKPreferencesSetOfflineWebApplicationCacheEnabled(d->ref, on); 16365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch break; 16465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch case LocalStorageEnabled: 16565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch WKPreferencesSetLocalStorageEnabled(d->ref, on); 16665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch break; 16765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch case XSSAuditingEnabled: 16865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch WKPreferencesSetXSSAuditorEnabled(d->ref, on); 16965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch break; 17065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch case FrameFlatteningEnabled: 17165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch WKPreferencesSetFrameFlatteningEnabled(d->ref, on); 17265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch break; 17365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch case PrivateBrowsingEnabled: 17465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch WKPreferencesSetPrivateBrowsingEnabled(d->ref, on); 17565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch break; 17665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch case DeveloperExtrasEnabled: 17765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch WKPreferencesSetDeveloperExtrasEnabled(d->ref, on); 17865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch break; 17965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch case DnsPrefetchEnabled: 18065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch WKPreferencesSetDNSPrefetchingEnabled(d->ref, on); 18165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch break; 18265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch default: 18365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch ASSERT_NOT_REACHED(); 18465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch } 18565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch} 186