qwebsettings.h revision d0825bca7fe65beaee391d30da42e937db621564
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
30namespace WebCore {
31    class Settings;
32}
33
34class QWebPage;
35class QWebPluginDatabase;
36class QWebSettingsPrivate;
37QT_BEGIN_NAMESPACE
38class QUrl;
39QT_END_NAMESPACE
40
41class QWEBKIT_EXPORT QWebSettings {
42public:
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#ifdef QT_DEPRECATED
67        LocalStorageDatabaseEnabled = LocalStorageEnabled,
68#endif
69        LocalContentCanAccessRemoteUrls,
70        DnsPrefetchEnabled,
71        XSSAuditorEnabled,
72        AcceleratedCompositingEnabled
73    };
74    enum WebGraphic {
75        MissingImageGraphic,
76        MissingPluginGraphic,
77        DefaultFrameIconGraphic,
78        TextAreaSizeGripCornerGraphic,
79        DeleteButtonGraphic
80    };
81    enum FontSize {
82        MinimumFontSize,
83        MinimumLogicalFontSize,
84        DefaultFontSize,
85        DefaultFixedFontSize
86    };
87
88    static QWebSettings *globalSettings();
89
90    void setFontFamily(FontFamily which, const QString &family);
91    QString fontFamily(FontFamily which) const;
92    void resetFontFamily(FontFamily which);
93
94    void setFontSize(FontSize type, int size);
95    int fontSize(FontSize type) const;
96    void resetFontSize(FontSize type);
97
98    void setAttribute(WebAttribute attr, bool on);
99    bool testAttribute(WebAttribute attr) const;
100    void resetAttribute(WebAttribute attr);
101
102    void setUserStyleSheetUrl(const QUrl &location);
103    QUrl userStyleSheetUrl() const;
104
105    void setDefaultTextEncoding(const QString &encoding);
106    QString defaultTextEncoding() const;
107
108    static void setIconDatabasePath(const QString &location);
109    static QString iconDatabasePath();
110    static void clearIconDatabase();
111    static QIcon iconForUrl(const QUrl &url);
112
113    //static QWebPluginDatabase *pluginDatabase();
114
115    static void setWebGraphic(WebGraphic type, const QPixmap &graphic);
116    static QPixmap webGraphic(WebGraphic type);
117
118    static void setMaximumPagesInCache(int pages);
119    static int maximumPagesInCache();
120    static void setObjectCacheCapacities(int cacheMinDeadCapacity, int cacheMaxDead, int totalCapacity);
121
122    static void setOfflineStoragePath(const QString& path);
123    static QString offlineStoragePath();
124    static void setOfflineStorageDefaultQuota(qint64 maximumSize);
125    static qint64 offlineStorageDefaultQuota();
126
127    static void setOfflineWebApplicationCachePath(const QString& path);
128    static QString offlineWebApplicationCachePath();
129    static void setOfflineWebApplicationCacheQuota(qint64 maximumSize);
130    static qint64 offlineWebApplicationCacheQuota();
131
132    void setLocalStoragePath(const QString& path);
133    QString localStoragePath() const;
134
135    static void clearMemoryCaches();
136
137    static void enablePersistentStorage(const QString& path = QString());
138
139    inline QWebSettingsPrivate* handle() const { return d; }
140
141private:
142    friend class QWebPagePrivate;
143    friend class QWebSettingsPrivate;
144
145    Q_DISABLE_COPY(QWebSettings)
146
147    QWebSettings();
148    QWebSettings(WebCore::Settings *settings);
149    ~QWebSettings();
150
151    QWebSettingsPrivate *d;
152};
153
154#endif
155