1 /*
2 Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies)
3
4 This library is free software; you can redistribute it and/or
5 modify it under the terms of the GNU Library General Public
6 License as published by the Free Software Foundation; either
7 version 2 of the License, or (at your option) any later version.
8
9 This library is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 Library General Public License for more details.
13
14 You should have received a copy of the GNU Library General Public License
15 along with this library; see the file COPYING.LIB. If not, write to
16 the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
17 Boston, MA 02110-1301, USA.
18 */
19
20 #include "config.h"
21 #include "qwkpreferences.h"
22
23 #include "WKPageGroup.h"
24 #include "WKPreferences.h"
25 #include "WKStringQt.h"
26 #include "WKRetainPtr.h"
27 #include "qwkpreferences_p.h"
28
29
createPreferences(WKPageGroupRef pageGroupRef)30 QWKPreferences* QWKPreferencesPrivate::createPreferences(WKPageGroupRef pageGroupRef)
31 {
32 QWKPreferences* prefs = new QWKPreferences;
33 prefs->d->ref = WKPageGroupGetPreferences(pageGroupRef);
34 return prefs;
35 }
36
createSharedPreferences()37 QWKPreferences* QWKPreferencesPrivate::createSharedPreferences()
38 {
39 QWKPreferences* prefs = new QWKPreferences;
40 prefs->d->ref = WKPreferencesCreate();
41 return prefs;
42 }
43
sharedPreferences()44 QWKPreferences* QWKPreferences::sharedPreferences()
45 {
46 static QWKPreferences* instance = 0;
47
48 if (!instance)
49 instance = QWKPreferencesPrivate::createSharedPreferences();
50 return instance;
51 }
52
QWKPreferences()53 QWKPreferences::QWKPreferences()
54 : d(new QWKPreferencesPrivate)
55 {
56 }
57
~QWKPreferences()58 QWKPreferences::~QWKPreferences()
59 {
60 delete d;
61 }
62
setFontFamily(FontFamily which,const QString & family)63 void QWKPreferences::setFontFamily(FontFamily which, const QString& family)
64 {
65 switch (which) {
66 case StandardFont:
67 WKPreferencesSetStandardFontFamily(d->ref, WKStringCreateWithQString(family));
68 break;
69 case FixedFont:
70 WKPreferencesSetFixedFontFamily(d->ref, WKStringCreateWithQString(family));
71 break;
72 case SerifFont:
73 WKPreferencesSetSerifFontFamily(d->ref, WKStringCreateWithQString(family));
74 break;
75 case SansSerifFont:
76 WKPreferencesSetSansSerifFontFamily(d->ref, WKStringCreateWithQString(family));
77 break;
78 case CursiveFont:
79 WKPreferencesSetCursiveFontFamily(d->ref, WKStringCreateWithQString(family));
80 break;
81 case FantasyFont:
82 WKPreferencesSetFantasyFontFamily(d->ref, WKStringCreateWithQString(family));
83 break;
84 default:
85 break;
86 }
87 }
88
fontFamily(FontFamily which) const89 QString QWKPreferences::fontFamily(FontFamily which) const
90 {
91 switch (which) {
92 case StandardFont: {
93 WKRetainPtr<WKStringRef> stringRef(AdoptWK, WKPreferencesCopyStandardFontFamily(d->ref));
94 return WKStringCopyQString(stringRef.get());
95 }
96 case FixedFont: {
97 WKRetainPtr<WKStringRef> stringRef(AdoptWK, WKPreferencesCopyFixedFontFamily(d->ref));
98 return WKStringCopyQString(stringRef.get());
99 }
100 case SerifFont: {
101 WKRetainPtr<WKStringRef> stringRef(AdoptWK, WKPreferencesCopySerifFontFamily(d->ref));
102 return WKStringCopyQString(stringRef.get());
103 }
104 case SansSerifFont: {
105 WKRetainPtr<WKStringRef> stringRef(AdoptWK, WKPreferencesCopySansSerifFontFamily(d->ref));
106 return WKStringCopyQString(stringRef.get());
107 }
108 case CursiveFont: {
109 WKRetainPtr<WKStringRef> stringRef(AdoptWK, WKPreferencesCopyCursiveFontFamily(d->ref));
110 return WKStringCopyQString(stringRef.get());
111 }
112 case FantasyFont: {
113 WKRetainPtr<WKStringRef> stringRef(AdoptWK, WKPreferencesCopyFantasyFontFamily(d->ref));
114 return WKStringCopyQString(stringRef.get());
115 }
116 default:
117 return QString();
118 }
119 }
120
testAttribute(WebAttribute attr) const121 bool QWKPreferences::testAttribute(WebAttribute attr) const
122 {
123 switch (attr) {
124 case AutoLoadImages:
125 return WKPreferencesGetLoadsImagesAutomatically(d->ref);
126 case JavascriptEnabled:
127 return WKPreferencesGetJavaScriptEnabled(d->ref);
128 case PluginsEnabled:
129 return WKPreferencesGetPluginsEnabled(d->ref);
130 case OfflineWebApplicationCacheEnabled:
131 return WKPreferencesGetOfflineWebApplicationCacheEnabled(d->ref);
132 case LocalStorageEnabled:
133 return WKPreferencesGetLocalStorageEnabled(d->ref);
134 case XSSAuditingEnabled:
135 return WKPreferencesGetXSSAuditorEnabled(d->ref);
136 case FrameFlatteningEnabled:
137 return WKPreferencesGetFrameFlatteningEnabled(d->ref);
138 case PrivateBrowsingEnabled:
139 return WKPreferencesGetPrivateBrowsingEnabled(d->ref);
140 case DeveloperExtrasEnabled:
141 return WKPreferencesGetDeveloperExtrasEnabled(d->ref);
142 case DnsPrefetchEnabled:
143 return WKPreferencesGetDNSPrefetchingEnabled(d->ref);
144 default:
145 ASSERT_NOT_REACHED();
146 return false;
147 }
148 }
149
setAttribute(WebAttribute attr,bool on)150 void QWKPreferences::setAttribute(WebAttribute attr, bool on)
151 {
152 switch (attr) {
153 case AutoLoadImages:
154 WKPreferencesSetLoadsImagesAutomatically(d->ref, on);
155 break;
156 case JavascriptEnabled:
157 WKPreferencesSetJavaScriptEnabled(d->ref, on);
158 break;
159 case PluginsEnabled:
160 WKPreferencesSetPluginsEnabled(d->ref, on);
161 break;
162 case OfflineWebApplicationCacheEnabled:
163 WKPreferencesSetOfflineWebApplicationCacheEnabled(d->ref, on);
164 break;
165 case LocalStorageEnabled:
166 WKPreferencesSetLocalStorageEnabled(d->ref, on);
167 break;
168 case XSSAuditingEnabled:
169 WKPreferencesSetXSSAuditorEnabled(d->ref, on);
170 break;
171 case FrameFlatteningEnabled:
172 WKPreferencesSetFrameFlatteningEnabled(d->ref, on);
173 break;
174 case PrivateBrowsingEnabled:
175 WKPreferencesSetPrivateBrowsingEnabled(d->ref, on);
176 break;
177 case DeveloperExtrasEnabled:
178 WKPreferencesSetDeveloperExtrasEnabled(d->ref, on);
179 break;
180 case DnsPrefetchEnabled:
181 WKPreferencesSetDNSPrefetchingEnabled(d->ref, on);
182 break;
183 default:
184 ASSERT_NOT_REACHED();
185 }
186 }
187
setFontSize(FontSize type,int size)188 void QWKPreferences::setFontSize(FontSize type, int size)
189 {
190 switch (type) {
191 case MinimumFontSize:
192 WKPreferencesSetMinimumFontSize(d->ref, size);
193 break;
194 case DefaultFontSize:
195 WKPreferencesSetDefaultFontSize(d->ref, size);
196 break;
197 case DefaultFixedFontSize:
198 WKPreferencesSetDefaultFixedFontSize(d->ref, size);
199 break;
200 default:
201 ASSERT_NOT_REACHED();
202 }
203 }
204
fontSize(FontSize type) const205 int QWKPreferences::fontSize(FontSize type) const
206 {
207 switch (type) {
208 case MinimumFontSize:
209 return WKPreferencesGetMinimumFontSize(d->ref);
210 case DefaultFontSize:
211 return WKPreferencesGetDefaultFontSize(d->ref);
212 case DefaultFixedFontSize:
213 return WKPreferencesGetDefaultFixedFontSize(d->ref);
214 default:
215 ASSERT_NOT_REACHED();
216 return false;
217 }
218 }
219
220