diff options
Diffstat (limited to 'khtml/khtml_settings.h')
-rw-r--r-- | khtml/khtml_settings.h | 232 |
1 files changed, 232 insertions, 0 deletions
diff --git a/khtml/khtml_settings.h b/khtml/khtml_settings.h new file mode 100644 index 000000000..14684511d --- /dev/null +++ b/khtml/khtml_settings.h @@ -0,0 +1,232 @@ +/* This file is part of the KDE project + Copyright (C) 1999 David Faure <faure@kde.org> + + 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 __konq_htmlsettings_h__ +#define __konq_htmlsettings_h__ + +class KConfig; +#include <qcolor.h> +#include <qstring.h> +#include <qstringlist.h> +#include <qfont.h> +#include <qmap.h> + +#include <kdelibs_export.h> + +struct KPerDomainSettings; +class KHTMLSettingsPrivate; + +/** + * Settings for the HTML view. + */ +class KHTML_EXPORT KHTMLSettings +{ +public: + + /** + * This enum specifies whether Java/JavaScript execution is allowed. + */ + enum KJavaScriptAdvice { + KJavaScriptDunno=0, + KJavaScriptAccept, + KJavaScriptReject + }; + + enum KAnimationAdvice { + KAnimationDisabled=0, + KAnimationLoopOnce, + KAnimationEnabled + }; + + /** + * This enum specifies the policy for window.open + */ + enum KJSWindowOpenPolicy { + KJSWindowOpenAllow=0, + KJSWindowOpenAsk, + KJSWindowOpenDeny, + KJSWindowOpenSmart + }; + + /** + * This enum specifies the policy for window.status and .defaultStatus + */ + enum KJSWindowStatusPolicy { + KJSWindowStatusAllow=0, + KJSWindowStatusIgnore + }; + + /** + * This enum specifies the policy for window.moveBy and .moveTo + */ + enum KJSWindowMovePolicy { + KJSWindowMoveAllow=0, + KJSWindowMoveIgnore + }; + + /** + * This enum specifies the policy for window.resizeBy and .resizeTo + */ + enum KJSWindowResizePolicy { + KJSWindowResizeAllow=0, + KJSWindowResizeIgnore + }; + + /** + * This enum specifies the policy for window.focus + */ + enum KJSWindowFocusPolicy { + KJSWindowFocusAllow=0, + KJSWindowFocusIgnore + }; + + /** + * @internal Constructor + */ + KHTMLSettings(); + KHTMLSettings(const KHTMLSettings &other); + + /** + * Called by constructor and reparseConfiguration + */ + void init(); + + /** Read settings from @p config. + * @param config is a pointer to KConfig object. + * @param reset if true, settings are always set; if false, + * settings are only set if the config file has a corresponding key. + */ + void init( KConfig * config, bool reset = true ); + + /** + * Destructor. Don't delete any instance by yourself. + */ + virtual ~KHTMLSettings(); + + // Behavior settings + bool changeCursor() const; + bool underlineLink() const; + bool hoverLink() const; + bool allowTabulation() const; + bool autoSpellCheck() const; + KAnimationAdvice showAnimations() const; + + // Font settings + QString stdFontName() const; + QString fixedFontName() const; + QString serifFontName() const; + QString sansSerifFontName() const; + QString cursiveFontName() const; + QString fantasyFontName() const; + + // these two can be set. Mainly for historical reasons (the method in KHTMLPart exists...) + void setStdFontName(const QString &n); + void setFixedFontName(const QString &n); + + int minFontSize() const; + int mediumFontSize() const; + + bool jsErrorsEnabled() const; + void setJSErrorsEnabled(bool enabled); + + const QString &encoding() const; + + bool followSystemColors() const; + + // Color settings + const QColor& textColor() const; + const QColor& baseColor() const; + const QColor& linkColor() const; + const QColor& vLinkColor() const; + + // Autoload images + bool autoLoadImages() const; + bool unfinishedImageFrame() const; + + bool isOpenMiddleClickEnabled(); + bool isBackRightClickEnabled(); + + // Java and JavaScript + // ### BIC make these const + bool isJavaEnabled( const QString& hostname = QString::null ); + bool isJavaScriptEnabled( const QString& hostname = QString::null ); + bool isJavaScriptDebugEnabled( const QString& hostname = QString::null ); + bool isJavaScriptErrorReportingEnabled( const QString& hostname = QString::null ) const; + bool isPluginsEnabled( const QString& hostname = QString::null ); + + // AdBlocK Filtering + bool isAdFiltered( const QString &url ) const; + bool isAdFilterEnabled() const; + bool isHideAdsEnabled() const; + void addAdFilter( const QString &url ); + + // Access Keys + bool accessKeysEnabled() const; + + KJSWindowOpenPolicy windowOpenPolicy( const QString& hostname = QString::null ) const; + KJSWindowMovePolicy windowMovePolicy( const QString& hostname = QString::null ) const; + KJSWindowResizePolicy windowResizePolicy( const QString& hostname = QString::null ) const; + KJSWindowStatusPolicy windowStatusPolicy( const QString& hostname = QString::null ) const; + KJSWindowFocusPolicy windowFocusPolicy( const QString& hostname = QString::null ) const; + + // helpers for parsing domain-specific configuration, used in KControl module as well + static KJavaScriptAdvice strToAdvice(const QString& _str); + static void splitDomainAdvice(const QString& configStr, QString &domain, + KJavaScriptAdvice &javaAdvice, KJavaScriptAdvice& javaScriptAdvice); + static const char* adviceToStr(KJavaScriptAdvice _advice); + + /** reads from @p config's current group, forcing initialization + * if @p reset is true. + * @param config is a pointer to KConfig object. + * @param reset true if initialization is to be forced. + * @param global true if the global domain is to be read. + * @param pd_settings will be initialised with the computed (inherited) + * settings. + */ + void readDomainSettings(KConfig *config, bool reset, + bool global, KPerDomainSettings &pd_settings); + + QString settingsToCSS() const; + static const QString &availableFamilies(); + + QString userStyleSheet() const; + + // Form completion + bool isFormCompletionEnabled() const; + int maxFormCompletionItems() const; + + // Meta refresh/redirect (http-equiv) + bool isAutoDelayedActionsEnabled () const; + + QValueList< QPair< QString, QChar > > fallbackAccessKeysAssignments() const; + + // Whether to show passive popup when windows are blocked + // @since 3.5 + void setJSPopupBlockerPassivePopup(bool enabled); + bool jsPopupBlockerPassivePopup() const; + +private: + friend class KHTMLFactory; + QString lookupFont(int i) const; + + KHTMLSettingsPrivate *d; + static QString *avFamilies; +}; + +#endif |