qwebsettings.h revision d0825bca7fe65beaee391d30da42e937db621564
18e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/*
28e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies)
38e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
48e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    This library is free software; you can redistribute it and/or
58e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    modify it under the terms of the GNU Library General Public
68e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    License as published by the Free Software Foundation; either
78e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    version 2 of the License, or (at your option) any later version.
88e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
98e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    This library is distributed in the hope that it will be useful,
108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    but WITHOUT ANY WARRANTY; without even the implied warranty of
118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    Library General Public License for more details.
138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    You should have received a copy of the GNU Library General Public License
158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    along with this library; see the file COPYING.LIB.  If not, write to
168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    Boston, MA 02110-1301, USA.
188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project*/
198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#ifndef QWEBSETTINGS_H
218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define QWEBSETTINGS_H
228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "qwebkitglobal.h"
248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include <QtCore/qstring.h>
268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include <QtGui/qpixmap.h>
278e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include <QtGui/qicon.h>
288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include <QtCore/qshareddata.h>
298e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
300bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdochnamespace WebCore {
318e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    class Settings;
328e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project}
338e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
348e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectclass QWebPage;
350bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdochclass QWebPluginDatabase;
368e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectclass QWebSettingsPrivate;
378e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectQT_BEGIN_NAMESPACE
388e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectclass QUrl;
398e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectQT_END_NAMESPACE
408e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
410bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdochclass QWEBKIT_EXPORT QWebSettings {
428e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectpublic:
438e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    enum FontFamily {
448e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        StandardFont,
458e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        FixedFont,
468e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        SerifFont,
478e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        SansSerifFont,
488e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        CursiveFont,
498e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        FantasyFont
508e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    };
518e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    enum WebAttribute {
528e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        AutoLoadImages,
538e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        JavascriptEnabled,
548e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        JavaEnabled,
558e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        PluginsEnabled,
568e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        PrivateBrowsingEnabled,
578e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        JavascriptCanOpenWindows,
588e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        JavascriptCanAccessClipboard,
598e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        DeveloperExtrasEnabled,
608e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        LinksIncludedInFocusChain,
61635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project        ZoomTextOnly,
62635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project        PrintElementBackgrounds,
63635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project        OfflineStorageDatabaseEnabled,
64635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project        OfflineWebApplicationCacheEnabled,
65231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        LocalStorageEnabled,
66231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block#ifdef QT_DEPRECATED
67231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        LocalStorageDatabaseEnabled = LocalStorageEnabled,
68231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block#endif
69231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        LocalContentCanAccessRemoteUrls,
70d0825bca7fe65beaee391d30da42e937db621564Steve Block        DnsPrefetchEnabled,
71d0825bca7fe65beaee391d30da42e937db621564Steve Block        XSSAuditorEnabled,
72d0825bca7fe65beaee391d30da42e937db621564Steve Block        AcceleratedCompositingEnabled
738e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    };
748e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    enum WebGraphic {
758e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        MissingImageGraphic,
768e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        MissingPluginGraphic,
778e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        DefaultFrameIconGraphic,
78643ca7872b450ea4efacab6188849e5aac2ba161Steve Block        TextAreaSizeGripCornerGraphic,
79643ca7872b450ea4efacab6188849e5aac2ba161Steve Block        DeleteButtonGraphic
808e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    };
818e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    enum FontSize {
828e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        MinimumFontSize,
838e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        MinimumLogicalFontSize,
848e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        DefaultFontSize,
858e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        DefaultFixedFontSize
868e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    };
878e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
888e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    static QWebSettings *globalSettings();
898e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
908e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    void setFontFamily(FontFamily which, const QString &family);
918e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    QString fontFamily(FontFamily which) const;
928e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    void resetFontFamily(FontFamily which);
938e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
948e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    void setFontSize(FontSize type, int size);
958e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    int fontSize(FontSize type) const;
968e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    void resetFontSize(FontSize type);
978e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
988e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    void setAttribute(WebAttribute attr, bool on);
998e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    bool testAttribute(WebAttribute attr) const;
1008e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    void resetAttribute(WebAttribute attr);
1018e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1028e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    void setUserStyleSheetUrl(const QUrl &location);
1038e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    QUrl userStyleSheetUrl() const;
1048e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1050bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch    void setDefaultTextEncoding(const QString &encoding);
1060bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch    QString defaultTextEncoding() const;
1070bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch
1088e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    static void setIconDatabasePath(const QString &location);
1098e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    static QString iconDatabasePath();
1108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    static void clearIconDatabase();
1118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    static QIcon iconForUrl(const QUrl &url);
1128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
113643ca7872b450ea4efacab6188849e5aac2ba161Steve Block    //static QWebPluginDatabase *pluginDatabase();
1140bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch
1158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    static void setWebGraphic(WebGraphic type, const QPixmap &graphic);
1168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    static QPixmap webGraphic(WebGraphic type);
1178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    static void setMaximumPagesInCache(int pages);
1198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    static int maximumPagesInCache();
1208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    static void setObjectCacheCapacities(int cacheMinDeadCapacity, int cacheMaxDead, int totalCapacity);
1218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
122635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project    static void setOfflineStoragePath(const QString& path);
123635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project    static QString offlineStoragePath();
124635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project    static void setOfflineStorageDefaultQuota(qint64 maximumSize);
125635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project    static qint64 offlineStorageDefaultQuota();
126635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project
1270bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch    static void setOfflineWebApplicationCachePath(const QString& path);
1280bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch    static QString offlineWebApplicationCachePath();
1290bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch    static void setOfflineWebApplicationCacheQuota(qint64 maximumSize);
1300bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch    static qint64 offlineWebApplicationCacheQuota();
131231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block
132231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block    void setLocalStoragePath(const QString& path);
133231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block    QString localStoragePath() const;
1340bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch
1350bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch    static void clearMemoryCaches();
1360bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch
137231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block    static void enablePersistentStorage(const QString& path = QString());
138231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block
139635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project    inline QWebSettingsPrivate* handle() const { return d; }
140635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project
1418e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectprivate:
1428e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    friend class QWebPagePrivate;
1438e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    friend class QWebSettingsPrivate;
1448e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1458e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    Q_DISABLE_COPY(QWebSettings)
1468e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1478e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    QWebSettings();
1488e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    QWebSettings(WebCore::Settings *settings);
1498e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    ~QWebSettings();
1508e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1518e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    QWebSettingsPrivate *d;
1528e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project};
1538e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1548e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif
155