Home | History | Annotate | Download | only in Api
      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 #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 
    141 private:
    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