blob: e68ea535d7cd4f604e727c5567a04cc8e3a3f929 [file] [log] [blame]
/*
Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies)
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public
License as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public License
along with this library; see the file COPYING.LIB. If not, write to
the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA.
*/
#ifndef QWEBSETTINGS_H
#define QWEBSETTINGS_H
#include "qwebkitglobal.h"
#include <QtCore/qstring.h>
#include <QtGui/qpixmap.h>
#include <QtGui/qicon.h>
#include <QtCore/qshareddata.h>
namespace WebCore {
class Settings;
}
class QWebPage;
class QWebPluginDatabase;
class QWebSettingsPrivate;
QT_BEGIN_NAMESPACE
class QUrl;
QT_END_NAMESPACE
class QWEBKIT_EXPORT QWebSettings {
public:
enum FontFamily {
StandardFont,
FixedFont,
SerifFont,
SansSerifFont,
CursiveFont,
FantasyFont
};
enum WebAttribute {
AutoLoadImages,
JavascriptEnabled,
JavaEnabled,
PluginsEnabled,
PrivateBrowsingEnabled,
JavascriptCanOpenWindows,
JavascriptCanAccessClipboard,
DeveloperExtrasEnabled,
LinksIncludedInFocusChain,
ZoomTextOnly,
PrintElementBackgrounds,
OfflineStorageDatabaseEnabled,
OfflineWebApplicationCacheEnabled,
LocalStorageEnabled,
#ifdef QT_DEPRECATED
LocalStorageDatabaseEnabled = LocalStorageEnabled,
#endif
LocalContentCanAccessRemoteUrls,
SessionStorageEnabled,
DnsPrefetchEnabled
};
enum WebGraphic {
MissingImageGraphic,
MissingPluginGraphic,
DefaultFrameIconGraphic,
TextAreaSizeGripCornerGraphic
};
enum FontSize {
MinimumFontSize,
MinimumLogicalFontSize,
DefaultFontSize,
DefaultFixedFontSize
};
static QWebSettings *globalSettings();
void setFontFamily(FontFamily which, const QString &family);
QString fontFamily(FontFamily which) const;
void resetFontFamily(FontFamily which);
void setFontSize(FontSize type, int size);
int fontSize(FontSize type) const;
void resetFontSize(FontSize type);
void setAttribute(WebAttribute attr, bool on);
bool testAttribute(WebAttribute attr) const;
void resetAttribute(WebAttribute attr);
void setUserStyleSheetUrl(const QUrl &location);
QUrl userStyleSheetUrl() const;
void setDefaultTextEncoding(const QString &encoding);
QString defaultTextEncoding() const;
void setPrintingMinimumShrinkFactor(float printingMinimumShrinkFactor);
float printingMinimumShrinkFactor() const;
void setPrintingMaximumShrinkFactor(float printingMaximimShrinkFactor);
float printingMaximumShrinkFactor() const;
static void setIconDatabasePath(const QString &location);
static QString iconDatabasePath();
static void clearIconDatabase();
static QIcon iconForUrl(const QUrl &url);
static QWebPluginDatabase *pluginDatabase();
static void setWebGraphic(WebGraphic type, const QPixmap &graphic);
static QPixmap webGraphic(WebGraphic type);
static void setMaximumPagesInCache(int pages);
static int maximumPagesInCache();
static void setObjectCacheCapacities(int cacheMinDeadCapacity, int cacheMaxDead, int totalCapacity);
static void setOfflineStoragePath(const QString& path);
static QString offlineStoragePath();
static void setOfflineStorageDefaultQuota(qint64 maximumSize);
static qint64 offlineStorageDefaultQuota();
static void setOfflineWebApplicationCachePath(const QString& path);
static QString offlineWebApplicationCachePath();
static void setOfflineWebApplicationCacheQuota(qint64 maximumSize);
static qint64 offlineWebApplicationCacheQuota();
void setLocalStoragePath(const QString& path);
QString localStoragePath() const;
static void clearMemoryCaches();
static void enablePersistentStorage(const QString& path = QString());
inline QWebSettingsPrivate* handle() const { return d; }
private:
friend class QWebPagePrivate;
friend class QWebSettingsPrivate;
Q_DISABLE_COPY(QWebSettings)
QWebSettings();
QWebSettings(WebCore::Settings *settings);
~QWebSettings();
QWebSettingsPrivate *d;
};
#endif