diff -r 000000000000 -r dd21522fd290 webengine/osswebengine/WebKit/qt/Api/qwebsettings.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/webengine/osswebengine/WebKit/qt/Api/qwebsettings.cpp Mon Mar 30 12:54:55 2009 +0300 @@ -0,0 +1,226 @@ +/* + Copyright (C) 2007 Trolltech ASA + + 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. + + This class provides all functionality needed for loading images, style sheets and html + pages from the web. It has a memory cache for these objects. +*/ + +#include "qwebsettings.h" + +#include "qwebpage.h" +#include "qwebpage_p.h" + +#include "Page.h" +#include "Settings.h" +#include "KURL.h" +#include "PlatformString.h" +#include "IconDatabase.h" + +#include +#include + +class QWebSettingsPrivate : public QSharedData +{ +public: + QWebSettingsPrivate() + : minimumFontSize(5), + minimumLogicalFontSize(5), + defaultFontSize(14), + defaultFixedFontSize(14) + { + //Initialize our defaults + // changing any of those will likely break the LayoutTests + fontFamilies[QWebSettings::StandardFont] = QLatin1String("Arial"); + fontFamilies[QWebSettings::FixedFont] = QLatin1String("Courier"); + fontFamilies[QWebSettings::SerifFont] = QLatin1String("Times New Roman"); + fontFamilies[QWebSettings::SansSerifFont] = QLatin1String("Arial"); + + attributes[QWebSettings::AutoLoadImages] = true; + attributes[QWebSettings::JavascriptEnabled] = true; + } + + QHash fontFamilies; + int minimumFontSize; + int minimumLogicalFontSize; + int defaultFontSize; + int defaultFixedFontSize; + QHash attributes; + QHash graphics; + QString userStyleSheetLocation; +}; + +static QWebSettings globalSettings; + +QWebSettings::QWebSettings() + : d(new QWebSettingsPrivate) +{ +} + +QWebSettings::~QWebSettings() +{ +} + +void QWebSettings::setMinimumFontSize(int size) +{ + d->minimumFontSize = size; +} + + +int QWebSettings::minimumFontSize() const +{ + return d->minimumFontSize; +} + + +void QWebSettings::setMinimumLogicalFontSize(int size) +{ + d->minimumLogicalFontSize = size; +} + + +int QWebSettings::minimumLogicalFontSize() const +{ + return d->minimumLogicalFontSize; +} + + +void QWebSettings::setDefaultFontSize(int size) +{ + d->defaultFontSize = size; +} + + +int QWebSettings::defaultFontSize() const +{ + return d->defaultFontSize; +} + + +void QWebSettings::setDefaultFixedFontSize(int size) +{ + d->defaultFixedFontSize = size; +} + + +int QWebSettings::defaultFixedFontSize() const +{ + return d->defaultFixedFontSize; +} + +void QWebSettings::setUserStyleSheetLocation(const QString &location) +{ + d->userStyleSheetLocation = location; +} + +QString QWebSettings::userStyleSheetLocation() const +{ + return d->userStyleSheetLocation; +} + +void QWebSettings::setIconDatabaseEnabled(bool enabled, const QString &location) +{ + WebCore::iconDatabase()->setEnabled(enabled); + if (enabled) { + if (!location.isEmpty()) { + WebCore::iconDatabase()->open(location); + } else { + WebCore::iconDatabase()->open(WebCore::iconDatabase()->defaultDatabaseFilename()); + } + } else { + WebCore::iconDatabase()->close(); + } +} + +bool QWebSettings::iconDatabaseEnabled() const +{ + return WebCore::iconDatabase()->isEnabled() && WebCore::iconDatabase()->isOpen(); +} + +void QWebSettings::setWebGraphic(WebGraphic type, const QPixmap &graphic) +{ + d->graphics[type] = graphic; +} + +QPixmap QWebSettings::webGraphic(WebGraphic type) const +{ + if (d->graphics.contains(type)) + return d->graphics[type]; + else + return QPixmap(); +} + +QWebSettings::QWebSettings(const QWebSettings &other) +{ + d = other.d; +} + +QWebSettings &QWebSettings::operator=(const QWebSettings &other) +{ + d = other.d; + return *this; +} + +void QWebSettings::setGlobal(const QWebSettings &settings) +{ + globalSettings = settings; +} + +QWebSettings QWebSettings::global() +{ + return globalSettings; +} + +void QWebSettings::setFontFamily(FontType type, const QString &family) +{ + d->fontFamilies[type] = family; +} + +QString QWebSettings::fontFamily(FontType type) const +{ + return d->fontFamilies[type]; +} + +void QWebSettings::setAttribute(WebAttribute attr, bool on) +{ + d->attributes[attr] = on; +} + +bool QWebSettings::testAttribute(WebAttribute attr) const +{ + if (!d->attributes.contains(attr)) + return false; + return d->attributes[attr]; +} + +QPixmap loadResourcePixmap(const char *name) +{ + const QWebSettings settings = QWebSettings::global(); + const QString resource = name; + + QPixmap pixmap; + if (resource == "missingImage") + pixmap = settings.webGraphic(QWebSettings::MissingImageGraphic); + else if (resource == "nullPlugin") + pixmap = settings.webGraphic(QWebSettings::MissingPluginGraphic); + else if (resource == "urlIcon") + pixmap = settings.webGraphic(QWebSettings::DefaultFaviconGraphic); + else if (resource == "textAreaResizeCorner") + pixmap = settings.webGraphic(QWebSettings::TextAreaResizeCornerGraphic); + + return pixmap; +}