| /* |
| Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies) |
| |
| This library is free software; you can redistribute it and/or |
| modify it under the terms of the GNU Library General Public |
| License as published by the Free Software Foundation; either |
| version 2 of the License, or (at your option) any later version. |
| |
| This library is distributed in the hope that it will be useful, |
| but WITHOUT ANY WARRANTY; without even the implied warranty of |
| MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
| Library General Public License for more details. |
| |
| You should have received a copy of the GNU Library General Public License |
| along with this library; see the file COPYING.LIB. If not, write to |
| the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, |
| Boston, MA 02110-1301, USA. |
| */ |
| |
| #include "config.h" |
| #include "qwkpreferences.h" |
| |
| #include "WKPageGroup.h" |
| #include "WKPreferences.h" |
| #include "WKStringQt.h" |
| #include "WKRetainPtr.h" |
| #include "qwkpreferences_p.h" |
| |
| |
| QWKPreferences* QWKPreferencesPrivate::createPreferences(WKPageGroupRef pageGroupRef) |
| { |
| QWKPreferences* prefs = new QWKPreferences; |
| prefs->d->ref = WKPageGroupGetPreferences(pageGroupRef); |
| return prefs; |
| } |
| |
| QWKPreferences* QWKPreferencesPrivate::createSharedPreferences() |
| { |
| QWKPreferences* prefs = new QWKPreferences; |
| prefs->d->ref = WKPreferencesCreate(); |
| return prefs; |
| } |
| |
| QWKPreferences* QWKPreferences::sharedPreferences() |
| { |
| static QWKPreferences* instance = 0; |
| |
| if (!instance) |
| instance = QWKPreferencesPrivate::createSharedPreferences(); |
| return instance; |
| } |
| |
| QWKPreferences::QWKPreferences() |
| : d(new QWKPreferencesPrivate) |
| { |
| } |
| |
| QWKPreferences::~QWKPreferences() |
| { |
| delete d; |
| } |
| |
| void QWKPreferences::setFontFamily(FontFamily which, const QString& family) |
| { |
| switch (which) { |
| case StandardFont: |
| WKPreferencesSetStandardFontFamily(d->ref, WKStringCreateWithQString(family)); |
| break; |
| case FixedFont: |
| WKPreferencesSetFixedFontFamily(d->ref, WKStringCreateWithQString(family)); |
| break; |
| case SerifFont: |
| WKPreferencesSetSerifFontFamily(d->ref, WKStringCreateWithQString(family)); |
| break; |
| case SansSerifFont: |
| WKPreferencesSetSansSerifFontFamily(d->ref, WKStringCreateWithQString(family)); |
| break; |
| case CursiveFont: |
| WKPreferencesSetCursiveFontFamily(d->ref, WKStringCreateWithQString(family)); |
| break; |
| case FantasyFont: |
| WKPreferencesSetFantasyFontFamily(d->ref, WKStringCreateWithQString(family)); |
| break; |
| default: |
| break; |
| } |
| } |
| |
| QString QWKPreferences::fontFamily(FontFamily which) const |
| { |
| switch (which) { |
| case StandardFont: { |
| WKRetainPtr<WKStringRef> stringRef(AdoptWK, WKPreferencesCopyStandardFontFamily(d->ref)); |
| return WKStringCopyQString(stringRef.get()); |
| } |
| case FixedFont: { |
| WKRetainPtr<WKStringRef> stringRef(AdoptWK, WKPreferencesCopyFixedFontFamily(d->ref)); |
| return WKStringCopyQString(stringRef.get()); |
| } |
| case SerifFont: { |
| WKRetainPtr<WKStringRef> stringRef(AdoptWK, WKPreferencesCopySerifFontFamily(d->ref)); |
| return WKStringCopyQString(stringRef.get()); |
| } |
| case SansSerifFont: { |
| WKRetainPtr<WKStringRef> stringRef(AdoptWK, WKPreferencesCopySansSerifFontFamily(d->ref)); |
| return WKStringCopyQString(stringRef.get()); |
| } |
| case CursiveFont: { |
| WKRetainPtr<WKStringRef> stringRef(AdoptWK, WKPreferencesCopyCursiveFontFamily(d->ref)); |
| return WKStringCopyQString(stringRef.get()); |
| } |
| case FantasyFont: { |
| WKRetainPtr<WKStringRef> stringRef(AdoptWK, WKPreferencesCopyFantasyFontFamily(d->ref)); |
| return WKStringCopyQString(stringRef.get()); |
| } |
| default: |
| return QString(); |
| } |
| } |
| |
| bool QWKPreferences::testAttribute(WebAttribute attr) const |
| { |
| switch (attr) { |
| case AutoLoadImages: |
| return WKPreferencesGetLoadsImagesAutomatically(d->ref); |
| case JavascriptEnabled: |
| return WKPreferencesGetJavaScriptEnabled(d->ref); |
| case PluginsEnabled: |
| return WKPreferencesGetPluginsEnabled(d->ref); |
| case OfflineWebApplicationCacheEnabled: |
| return WKPreferencesGetOfflineWebApplicationCacheEnabled(d->ref); |
| case LocalStorageEnabled: |
| return WKPreferencesGetLocalStorageEnabled(d->ref); |
| case XSSAuditingEnabled: |
| return WKPreferencesGetXSSAuditorEnabled(d->ref); |
| case FrameFlatteningEnabled: |
| return WKPreferencesGetFrameFlatteningEnabled(d->ref); |
| case PrivateBrowsingEnabled: |
| return WKPreferencesGetPrivateBrowsingEnabled(d->ref); |
| case DeveloperExtrasEnabled: |
| return WKPreferencesGetDeveloperExtrasEnabled(d->ref); |
| case DnsPrefetchEnabled: |
| return WKPreferencesGetDNSPrefetchingEnabled(d->ref); |
| default: |
| ASSERT_NOT_REACHED(); |
| return false; |
| } |
| } |
| |
| void QWKPreferences::setAttribute(WebAttribute attr, bool on) |
| { |
| switch (attr) { |
| case AutoLoadImages: |
| WKPreferencesSetLoadsImagesAutomatically(d->ref, on); |
| break; |
| case JavascriptEnabled: |
| WKPreferencesSetJavaScriptEnabled(d->ref, on); |
| break; |
| case PluginsEnabled: |
| WKPreferencesSetPluginsEnabled(d->ref, on); |
| break; |
| case OfflineWebApplicationCacheEnabled: |
| WKPreferencesSetOfflineWebApplicationCacheEnabled(d->ref, on); |
| break; |
| case LocalStorageEnabled: |
| WKPreferencesSetLocalStorageEnabled(d->ref, on); |
| break; |
| case XSSAuditingEnabled: |
| WKPreferencesSetXSSAuditorEnabled(d->ref, on); |
| break; |
| case FrameFlatteningEnabled: |
| WKPreferencesSetFrameFlatteningEnabled(d->ref, on); |
| break; |
| case PrivateBrowsingEnabled: |
| WKPreferencesSetPrivateBrowsingEnabled(d->ref, on); |
| break; |
| case DeveloperExtrasEnabled: |
| WKPreferencesSetDeveloperExtrasEnabled(d->ref, on); |
| break; |
| case DnsPrefetchEnabled: |
| WKPreferencesSetDNSPrefetchingEnabled(d->ref, on); |
| break; |
| default: |
| ASSERT_NOT_REACHED(); |
| } |
| } |
| |
| void QWKPreferences::setFontSize(FontSize type, int size) |
| { |
| switch (type) { |
| case MinimumFontSize: |
| WKPreferencesSetMinimumFontSize(d->ref, size); |
| break; |
| case DefaultFontSize: |
| WKPreferencesSetDefaultFontSize(d->ref, size); |
| break; |
| case DefaultFixedFontSize: |
| WKPreferencesSetDefaultFixedFontSize(d->ref, size); |
| break; |
| default: |
| ASSERT_NOT_REACHED(); |
| } |
| } |
| |
| int QWKPreferences::fontSize(FontSize type) const |
| { |
| switch (type) { |
| case MinimumFontSize: |
| return WKPreferencesGetMinimumFontSize(d->ref); |
| case DefaultFontSize: |
| return WKPreferencesGetDefaultFontSize(d->ref); |
| case DefaultFixedFontSize: |
| return WKPreferencesGetDefaultFixedFontSize(d->ref); |
| default: |
| ASSERT_NOT_REACHED(); |
| return false; |
| } |
| } |
| |