• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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         LocalStorageDatabaseEnabled,
66         LocalContentCanAccessRemoteUrls
67     };
68     enum WebGraphic {
69         MissingImageGraphic,
70         MissingPluginGraphic,
71         DefaultFrameIconGraphic,
72         TextAreaSizeGripCornerGraphic
73     };
74     enum FontSize {
75         MinimumFontSize,
76         MinimumLogicalFontSize,
77         DefaultFontSize,
78         DefaultFixedFontSize
79     };
80 
81     static QWebSettings *globalSettings();
82 
83     void setFontFamily(FontFamily which, const QString &family);
84     QString fontFamily(FontFamily which) const;
85     void resetFontFamily(FontFamily which);
86 
87     void setFontSize(FontSize type, int size);
88     int fontSize(FontSize type) const;
89     void resetFontSize(FontSize type);
90 
91     void setAttribute(WebAttribute attr, bool on);
92     bool testAttribute(WebAttribute attr) const;
93     void resetAttribute(WebAttribute attr);
94 
95     void setUserStyleSheetUrl(const QUrl &location);
96     QUrl userStyleSheetUrl() const;
97 
98     void setDefaultTextEncoding(const QString &encoding);
99     QString defaultTextEncoding() const;
100 
101     static void setIconDatabasePath(const QString &location);
102     static QString iconDatabasePath();
103     static void clearIconDatabase();
104     static QIcon iconForUrl(const QUrl &url);
105 
106     static QWebPluginDatabase *pluginDatabase();
107 
108     static void setWebGraphic(WebGraphic type, const QPixmap &graphic);
109     static QPixmap webGraphic(WebGraphic type);
110 
111     static void setMaximumPagesInCache(int pages);
112     static int maximumPagesInCache();
113     static void setObjectCacheCapacities(int cacheMinDeadCapacity, int cacheMaxDead, int totalCapacity);
114 
115     static void setOfflineStoragePath(const QString& path);
116     static QString offlineStoragePath();
117     static void setOfflineStorageDefaultQuota(qint64 maximumSize);
118     static qint64 offlineStorageDefaultQuota();
119 
120     static void setOfflineWebApplicationCachePath(const QString& path);
121     static QString offlineWebApplicationCachePath();
122     static void setOfflineWebApplicationCacheQuota(qint64 maximumSize);
123     static qint64 offlineWebApplicationCacheQuota();
124 
125     static void clearMemoryCaches();
126 
handle()127     inline QWebSettingsPrivate* handle() const { return d; }
128 
129 private:
130     friend class QWebPagePrivate;
131     friend class QWebSettingsPrivate;
132 
133     Q_DISABLE_COPY(QWebSettings)
134 
135     QWebSettings();
136     QWebSettings(WebCore::Settings *settings);
137     ~QWebSettings();
138 
139     QWebSettingsPrivate *d;
140 };
141 
142 #endif
143