initial import
[vuplus_webkit] / Source / WebKit / qt / Api / qwebsettings.h
1 /*
2     Copyright (C) 2008 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 #ifndef QWEBSETTINGS_H
21 #define QWEBSETTINGS_H
22
23 #include "qwebkitglobal.h"
24
25 #include <QtCore/qstring.h>
26 #include <QtGui/qpixmap.h>
27 #include <QtGui/qicon.h>
28 #include <QtCore/qshareddata.h>
29
30 namespace WebCore {
31     class Settings;
32 }
33
34 class QWebPage;
35 class QWebPluginDatabase;
36 class QWebSettingsPrivate;
37 QT_BEGIN_NAMESPACE
38 class QUrl;
39 QT_END_NAMESPACE
40
41 class QWEBKIT_EXPORT QWebSettings {
42 public:
43     enum FontFamily {
44         StandardFont,
45         FixedFont,
46         SerifFont,
47         SansSerifFont,
48         CursiveFont,
49         FantasyFont
50     };
51     enum WebAttribute {
52         AutoLoadImages,
53         JavascriptEnabled,
54         JavaEnabled,
55         PluginsEnabled,
56         PrivateBrowsingEnabled,
57         JavascriptCanOpenWindows,
58         JavascriptCanAccessClipboard,
59         DeveloperExtrasEnabled,
60         LinksIncludedInFocusChain,
61         ZoomTextOnly,
62         PrintElementBackgrounds,
63         OfflineStorageDatabaseEnabled,
64         OfflineWebApplicationCacheEnabled,
65         LocalStorageEnabled,
66 #if defined(QT_DEPRECATED) || defined(qdoc)
67         LocalStorageDatabaseEnabled = LocalStorageEnabled,
68 #endif
69         LocalContentCanAccessRemoteUrls,
70         DnsPrefetchEnabled,
71         XSSAuditingEnabled,
72         AcceleratedCompositingEnabled,
73         SpatialNavigationEnabled,
74         LocalContentCanAccessFileUrls,
75         TiledBackingStoreEnabled,
76         FrameFlatteningEnabled,
77         SiteSpecificQuirksEnabled,
78         JavascriptCanCloseWindows,
79         WebGLEnabled,
80         HyperlinkAuditingEnabled
81     };
82     enum WebGraphic {
83         MissingImageGraphic,
84         MissingPluginGraphic,
85         DefaultFrameIconGraphic,
86         TextAreaSizeGripCornerGraphic,
87         DeleteButtonGraphic,
88         InputSpeechButtonGraphic,
89         SearchCancelButtonGraphic,
90         SearchCancelButtonPressedGraphic
91     };
92     enum FontSize {
93         MinimumFontSize,
94         MinimumLogicalFontSize,
95         DefaultFontSize,
96         DefaultFixedFontSize
97     };
98 #if QT_VERSION >= QT_VERSION_CHECK(4, 8, 0)
99     enum ThirdPartyCookiePolicy {
100         AlwaysAllowThirdPartyCookies,
101         AlwaysBlockThirdPartyCookies,
102         AllowThirdPartyWithExistingCookies
103     };
104 #endif
105
106     static QWebSettings *globalSettings();
107
108     void setFontFamily(FontFamily which, const QString &family);
109     QString fontFamily(FontFamily which) const;
110     void resetFontFamily(FontFamily which);
111
112     void setFontSize(FontSize type, int size);
113     int fontSize(FontSize type) const;
114     void resetFontSize(FontSize type);
115
116     void setAttribute(WebAttribute attr, bool on);
117     bool testAttribute(WebAttribute attr) const;
118     void resetAttribute(WebAttribute attr);
119
120     void setUserStyleSheetUrl(const QUrl &location);
121     QUrl userStyleSheetUrl() const;
122
123     void setDefaultTextEncoding(const QString &encoding);
124     QString defaultTextEncoding() const;
125
126     static void setIconDatabasePath(const QString &location);
127     static QString iconDatabasePath();
128     static void clearIconDatabase();
129     static QIcon iconForUrl(const QUrl &url);
130
131     //static QWebPluginDatabase *pluginDatabase();
132
133     static void setWebGraphic(WebGraphic type, const QPixmap &graphic);
134     static QPixmap webGraphic(WebGraphic type);
135
136     static void setMaximumPagesInCache(int pages);
137     static int maximumPagesInCache();
138     static void setObjectCacheCapacities(int cacheMinDeadCapacity, int cacheMaxDead, int totalCapacity);
139
140     static void setOfflineStoragePath(const QString& path);
141     static QString offlineStoragePath();
142     static void setOfflineStorageDefaultQuota(qint64 maximumSize);
143     static qint64 offlineStorageDefaultQuota();
144
145     static void setOfflineWebApplicationCachePath(const QString& path);
146     static QString offlineWebApplicationCachePath();
147     static void setOfflineWebApplicationCacheQuota(qint64 maximumSize);
148     static qint64 offlineWebApplicationCacheQuota();
149     
150     void setLocalStoragePath(const QString& path);
151     QString localStoragePath() const; 
152
153     static void clearMemoryCaches();
154
155     static void enablePersistentStorage(const QString& path = QString());
156
157 #if QT_VERSION >= QT_VERSION_CHECK(4, 8, 0)
158     void setThirdPartyCookiePolicy(ThirdPartyCookiePolicy);
159     QWebSettings::ThirdPartyCookiePolicy thirdPartyCookiePolicy() const;
160 #endif
161
162     inline QWebSettingsPrivate* handle() const { return d; }
163
164 private:
165     friend class QWebPagePrivate;
166     friend class QWebSettingsPrivate;
167
168     Q_DISABLE_COPY(QWebSettings)
169
170     QWebSettings();
171     QWebSettings(WebCore::Settings *settings);
172     ~QWebSettings();
173
174     QWebSettingsPrivate *d;
175 };
176
177 #endif