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 99 static QWebSettings *globalSettings(); 100 101 void setFontFamily(FontFamily which, const QString &family); 102 QString fontFamily(FontFamily which) const; 103 void resetFontFamily(FontFamily which); 104 105 void setFontSize(FontSize type, int size); 106 int fontSize(FontSize type) const; 107 void resetFontSize(FontSize type); 108 109 void setAttribute(WebAttribute attr, bool on); 110 bool testAttribute(WebAttribute attr) const; 111 void resetAttribute(WebAttribute attr); 112 113 void setUserStyleSheetUrl(const QUrl &location); 114 QUrl userStyleSheetUrl() const; 115 116 void setDefaultTextEncoding(const QString &encoding); 117 QString defaultTextEncoding() const; 118 119 void setPrintingMediaType(const QString &type); 120 QString printingMediaType() const; 121 122 void setPrintingMinimumShrinkFactor(qreal printingMinimumShrinkFactor); 123 qreal printingMinimumShrinkFactor() const; 124 125 void setPrintingMaximumShrinkFactor(qreal printingMaximimShrinkFactor); 126 qreal printingMaximumShrinkFactor() const; 127 128 static void setIconDatabasePath(const QString &location); 129 static QString iconDatabasePath(); 130 static void clearIconDatabase(); 131 static QIcon iconForUrl(const QUrl &url); 132 133 //static QWebPluginDatabase *pluginDatabase(); 134 135 static void setWebGraphic(WebGraphic type, const QPixmap &graphic); 136 static QPixmap webGraphic(WebGraphic type); 137 138 static void setMaximumPagesInCache(int pages); 139 static int maximumPagesInCache(); 140 static void setObjectCacheCapacities(int cacheMinDeadCapacity, int cacheMaxDead, int totalCapacity); 141 142 static void setOfflineStoragePath(const QString& path); 143 static QString offlineStoragePath(); 144 static void setOfflineStorageDefaultQuota(qint64 maximumSize); 145 static qint64 offlineStorageDefaultQuota(); 146 147 static void setOfflineWebApplicationCachePath(const QString& path); 148 static QString offlineWebApplicationCachePath(); 149 static void setOfflineWebApplicationCacheQuota(qint64 maximumSize); 150 static qint64 offlineWebApplicationCacheQuota(); 151 152 void setLocalStoragePath(const QString& path); 153 QString localStoragePath() const; 154 155 static void clearMemoryCaches(); 156 157 static void enablePersistentStorage(const QString& path = QString()); 158 handle()159 inline QWebSettingsPrivate* handle() const { return d; } 160 161 private: 162 friend class QWebPagePrivate; 163 friend class QWebSettingsPrivate; 164 165 Q_DISABLE_COPY(QWebSettings) 166 167 QWebSettings(); 168 QWebSettings(WebCore::Settings *settings); 169 ~QWebSettings(); 170 171 QWebSettingsPrivate *d; 172 }; 173 174 #endif 175