File indexing completed on 2021-12-21 12:34:02

0001 /* This file is part of the KDE libraries
0002    Copyright (C) 2000,2006 David Faure <faure@kde.org>
0003 
0004    This library is free software; you can redistribute it and/or
0005    modify it under the terms of the GNU Library General Public
0006    License version 2 as published by the Free Software Foundation.
0007 
0008    This library is distributed in the hope that it will be useful,
0009    but WITHOUT ANY WARRANTY; without even the implied warranty of
0010    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
0011    Library General Public License for more details.
0012 
0013    You should have received a copy of the GNU Library General Public License
0014    along with this library; see the file COPYING.LIB.  If not, write to
0015    the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
0016    Boston, MA 02110-1301, USA.
0017 */
0018 #ifndef _KGLOBALSETTINGS_H
0019 #define _KGLOBALSETTINGS_H
0020 
0021 #include <kdelibs4support_export.h>
0022 #include <ksharedconfig.h>
0023 #include <QObject>
0024 #include <QString>
0025 #include <QPalette>
0026 
0027 #define KDE_DEFAULT_SINGLECLICK true
0028 #define KDE_DEFAULT_INSERTTEAROFFHANDLES 0
0029 #define KDE_DEFAULT_AUTOSELECTDELAY -1
0030 #define KDE_DEFAULT_CHANGECURSOR true
0031 #define KDE_DEFAULT_LARGE_CURSOR false
0032 #define KDE_DEFAULT_WHEEL_ZOOM false
0033 #define KDE_DEFAULT_ICON_ON_PUSHBUTTON true
0034 #define KDE_DEFAULT_OPAQUE_RESIZE true
0035 #define KDE_DEFAULT_BUTTON_LAYOUT 0
0036 #define KDE_DEFAULT_SHADE_SORT_COLUMN true
0037 #define KDE_DEFAULT_ALLOW_DEFAULT_BACKGROUND_IMAGES true
0038 #define KDE_DEFAULT_NATURAL_SORTING true
0039 
0040 class QColor;
0041 class QFont;
0042 class QPoint;
0043 class QRect;
0044 class QWidget;
0045 
0046 /**
0047  * Access the KDE global configuration.
0048  *
0049  * @author David Faure \<faure@kde.org\>
0050  */
0051 class KDELIBS4SUPPORT_DEPRECATED_EXPORT KGlobalSettings : public QObject
0052 {
0053     Q_OBJECT
0054 
0055 public:
0056     ~KGlobalSettings() override;
0057 
0058     /**
0059      * Returns a threshold in pixels for drag & drop operations.
0060      * As long as the mouse movement has not exceeded this number
0061      * of pixels in either X or Y direction no drag operation may
0062      * be started. This prevents spurious drags when the user intended
0063      * to click on something but moved the mouse a bit while doing so.
0064      *
0065      * For this to work you must save the position of the mouse (oldPos)
0066      * in the QWidget::mousePressEvent().
0067      * When the position of the mouse (newPos)
0068      * in a QWidget::mouseMoveEvent() exceeds this threshold
0069      * you may start a drag
0070      * which should originate from oldPos.
0071      *
0072      * Example code:
0073      * \code
0074      * void KColorCells::mousePressEvent( QMouseEvent *e )
0075      * {
0076      *    mOldPos = e->pos();
0077      * }
0078      *
0079      * void KColorCells::mouseMoveEvent( QMouseEvent *e )
0080      * {
0081      *    if( !(e->state() && LeftButton)) return;
0082      *
0083      *    int delay = QApplication::startDragDistance();
0084      *    QPoint newPos = e->pos();
0085      *    if(newPos.x() > mOldPos.x()+delay || newPos.x() < mOldPos.x()-delay ||
0086      *       newPos.y() > mOldPos.y()+delay || newPos.y() < mOldPos.y()-delay)
0087      *    {
0088      *       // Drag color object
0089      *       int cell = posToCell(mOldPos); // Find color at mOldPos
0090      *       if ((cell != -1) && colors[cell].isValid())
0091      *       {
0092      *          KColorDrag *d = KColorDrag::makeDrag( colors[cell], this);
0093      *          d->dragCopy();
0094      *       }
0095      *    }
0096      * }
0097      * \endcode
0098      * @return the threshold for drag & drop in pixels
0099      * @deprecated since 5.0, use QApplication::startDragDistance() instead.
0100      */
0101 #ifndef KDELIBS4SUPPORT_NO_DEPRECATED
0102     static KDELIBS4SUPPORT_DEPRECATED int dndEventDelay();
0103 #endif
0104 
0105     /**
0106      * Returns whether KDE runs in single (default) or double click
0107      * mode.
0108      * see http://developer.kde.org/documentation/standards/kde/style/mouse/index.html
0109      * @return true if single click mode, or false if double click mode.
0110      * @deprecated since 5.0, use style->styleHint(QStyle::SH_ItemView_ActivateItemOnSingleClick, 0, widget)
0111      **/
0112 #ifndef KDELIBS4SUPPORT_NO_DEPRECATED
0113     static KDELIBS4SUPPORT_DEPRECATED bool singleClick();
0114 #endif
0115 
0116     /**
0117      * Checks whether the cursor changes over icons.
0118      * @return the KDE setting for "change cursor over icon"
0119      */
0120     static bool changeCursorOverIcon();
0121 
0122     /**
0123      * Returns the KDE setting for the auto-select option.
0124      *
0125      * @return the auto-select delay or -1 if auto-select is disabled.
0126      */
0127     static int autoSelectDelay();
0128 
0129     /**
0130      * Returns the KDE setting for context menus.
0131      *
0132      * @return whether context menus should be shown on button press
0133      * or button release (click).
0134      */
0135     static bool showContextMenusOnPress();
0136 
0137     /**
0138      * This enum describes the completion mode used for by the KCompletion class.
0139      * See <a href="http://developer.kde.org/documentation/standards/kde/style/keys/completion.html">
0140      * the styleguide</a>.
0141      *
0142      * @deprecated Use KCompletion
0143      **/
0144     enum Completion {
0145         /**
0146          * No completion is used.
0147          */
0148         CompletionNone = 1,
0149         /**
0150          * Text is automatically filled in whenever possible.
0151          */
0152         CompletionAuto,
0153         /**
0154          * Same as automatic except shortest match is used for completion.
0155          */
0156         CompletionMan,
0157         /**
0158          * Complete text much in the same way as a typical *nix shell would.
0159          */
0160         CompletionShell,
0161         /**
0162          * Lists all possible matches in a popup list-box to choose from.
0163          */
0164         CompletionPopup,
0165         /**
0166          * Lists all possible matches in a popup list-box to choose from, and automatically
0167          * fill the result whenever possible.
0168          */
0169         CompletionPopupAuto
0170     };
0171 
0172     /**
0173      * Returns the preferred completion mode setting.
0174      *
0175      * @return Completion.  Default is @p CompletionPopup.
0176      */
0177     static Completion completionMode();
0178 
0179     /**
0180      * Describes the mouse settings.
0181      */
0182     struct KMouseSettings {
0183         enum { RightHanded = 0, LeftHanded = 1 };
0184         int handed; // left or right
0185     };
0186 
0187     /**
0188      * This returns the current mouse settings.
0189      * On Windows, settings are retrieved from the system.
0190      * @return the current mouse settings
0191      */
0192     static KMouseSettings &mouseSettings();
0193 
0194     /**
0195      * The path to the desktop directory of the current user.
0196      * @return the user's desktop directory
0197      * @deprecated since 5.0, use QStandardPaths::writableLocation(QStandardPaths::DesktopLocation).
0198      */
0199     static KDELIBS4SUPPORT_DEPRECATED QString desktopPath();
0200 
0201     /**
0202      * The path to the autostart directory of the current user.
0203      * @return the path of the autostart directory
0204      */
0205     //static QString autostartPath(); // Removed in KDE5, use XDG autostart paths
0206 
0207     /**
0208      * The path where documents are stored of the current user.
0209      * @return the path of the document directory
0210      * @deprecated since 5.0, use QStandardPaths::writableLocation(QStandardPaths::DocumentsLocation).
0211      */
0212     static KDELIBS4SUPPORT_DEPRECATED QString documentPath();
0213 
0214     /**
0215      * The path where music are stored of the current user.
0216      * @return the path of the music directory
0217      * @deprecated since 5.0, use QStandardPaths::writableLocation(QStandardPaths::MusicLocation).
0218      */
0219     static KDELIBS4SUPPORT_DEPRECATED QString musicPath();
0220 
0221     /**
0222      * The path where videos are stored of the current user.
0223      * @return the path of the video directory
0224      * @deprecated since 5.0, use QStandardPaths::writableLocation(QStandardPaths::MoviesLocation).
0225      */
0226     static KDELIBS4SUPPORT_DEPRECATED QString videosPath();
0227 
0228     /**
0229      * The path where download are stored of the current user.
0230      * @return the path of the download directory
0231      * @deprecated since 5.0, use QStandardPaths::writableLocation(QStandardPaths::DownloadLocation).
0232      */
0233     static KDELIBS4SUPPORT_DEPRECATED QString downloadPath();
0234 
0235     /**
0236      * The path where pictures are stored of the current user.
0237      * @return the path of the pictures directory
0238      * @deprecated since 5.0, use QStandardPaths::writableLocation(QStandardPaths::PicturesLocation).
0239      */
0240     static KDELIBS4SUPPORT_DEPRECATED QString picturesPath();
0241 
0242     /**
0243      * The default color to use for inactive titles.
0244      * @return the inactive title color
0245      * @deprecated since 5.0, This used to export the color of the titlebar.
0246      * If you wanted to query the color of the inactive window background, use
0247      * KColorScheme(QPalette::Inactive, KColorScheme::Window).background().color(),
0248      * otherwise please read the setting from kdeglobals/WM/inactiveBackground directly
0249      */
0250     static KDELIBS4SUPPORT_DEPRECATED QColor inactiveTitleColor();
0251 
0252     /**
0253      * The default color to use for inactive texts.
0254      * @return the inactive text color
0255      * @deprecated since 5.0, This used to export the color of the titlebar.
0256      * If you wanted to query the color of the inactive window foreground, use
0257      * KColorScheme(QPalette::Inactive, KColorScheme::Window).foreground().color()
0258      * otherwise please read the setting from kdeglobals/WM/inactiveForeground directly
0259      */
0260     static KDELIBS4SUPPORT_DEPRECATED QColor inactiveTextColor();
0261 
0262     /**
0263      * The default color to use for active titles.
0264      * @return the active title color
0265      * @deprecated since 5.0, This used to export the color of the titlebar.
0266      * If you wanted to query the color of the active window background, use
0267      * KColorScheme(QPalette::Active, KColorScheme::Window).background(KColorScheme::ActiveBackground).color(),
0268      * otherwise please read the setting from kdeglobals/WM/activeBackground directly
0269      */
0270     static KDELIBS4SUPPORT_DEPRECATED QColor activeTitleColor();
0271 
0272     /**
0273      * The default color to use for active texts.
0274      * @return the active text color
0275      * @deprecated since 5.0, This used to export the color of the titlebar.
0276      * If you wanted to query the color of the active window foreground, use
0277      * KColorScheme(QPalette::Active, KColorScheme::Window).foreground(KColorScheme::ActiveText).color(),
0278      * otherwise please read the setting from kdeglobals/WM/activeForeground directly
0279      */
0280     static KDELIBS4SUPPORT_DEPRECATED QColor activeTextColor();
0281 
0282     /**
0283      * Returns the contrast for borders.
0284      * @return the contrast (between 0 for minimum and 10 for maximum
0285      *         contrast)
0286      * @deprecated since 5.0, use KColorScheme::contrast()
0287      */
0288     static KDELIBS4SUPPORT_DEPRECATED int contrast();
0289 
0290     /**
0291      * Returns the contrast for borders as a floating point value.
0292      * @param config pointer to the config from which to read the contrast
0293      * setting (the default is to use KSharedConfig::openConfig())
0294      * @return the contrast (between 0.0 for minimum and 1.0 for maximum
0295      *         contrast)
0296      * @deprecated since 5.0, use KColorScheme::contrastF(config)
0297      */
0298     static KDELIBS4SUPPORT_DEPRECATED qreal contrastF(const KSharedConfigPtr &config = KSharedConfigPtr());
0299 
0300     /**
0301      * Returns if the sorted column in a K3ListView shall be drawn with a
0302      * shaded background color.
0303      * @return true if the sorted column shall be shaded
0304      */
0305     static bool shadeSortColumn();
0306 
0307     /**
0308      * Returns if default background images are allowed by the color scheme.
0309      * A "default" background image is just that, i.e. the user has not
0310      * actively selected a background image to use.
0311      * @return true if default background images may be used
0312      */
0313     static bool allowDefaultBackgroundImages();
0314 
0315     /**
0316      * Returns the default general font.
0317      * @return the default general font.
0318      */
0319     static QFont generalFont();
0320 
0321     /**
0322      * Returns the default fixed font.
0323      * @return the default fixed font.
0324      * @deprecated since 5.0, use QFontDatabase::systemFont(QFontDatabase::FixedFont)
0325      */
0326     static KDELIBS4SUPPORT_DEPRECATED QFont fixedFont();
0327 
0328     /**
0329      * Returns the default toolbar font.
0330      * @return the default toolbar font.
0331      */
0332     static QFont toolBarFont();
0333 
0334     /**
0335      * Returns the default menu font.
0336      * @return the default menu font.
0337      */
0338     static QFont menuFont();
0339 
0340     /**
0341      * Returns the default window title font.
0342      * @return the default window title font.
0343      */
0344     static QFont windowTitleFont();
0345 
0346     /**
0347      * Returns the default taskbar font.
0348      * @return the default taskbar font.
0349      */
0350     static QFont taskbarFont();
0351 
0352     /**
0353      * Returns a font of approx. 48 pt. capable of showing @p text.
0354      * @param text the text to test
0355      * @return the font that is capable to show the text with 48 pt
0356      */
0357     static QFont largeFont(const QString &text = QString());
0358 
0359     /**
0360      * Returns the smallest readable font. This can be used in dockers,
0361      * rulers and other places where space is at a premium.
0362      */
0363     static QFont smallestReadableFont();
0364 
0365     /**
0366      * Returns if the user specified multihead. In case the display
0367      * has multiple screens, the return value of this function specifies
0368      * if the user wants KDE to run on all of them or just on the primary
0369      * On Windows, settings are retrieved from the system.
0370      * @return true if the user chose multi head
0371      */
0372     static bool isMultiHead();
0373 
0374     /**
0375      * Typically, QScrollView derived classes can be scrolled fast by
0376      * holding down the Ctrl-button during wheel-scrolling.
0377      * But QTextEdit and derived classes perform zooming instead of fast
0378      * scrolling.
0379      *
0380      * This value determines whether the user wants to zoom or scroll fast
0381      * with Ctrl-wheelscroll.
0382      * @return true if the user wishes to zoom with the mouse wheel,
0383      *         false for scrolling
0384      */
0385     static bool wheelMouseZooms();
0386 
0387     /**
0388      * This function returns the desktop geometry for an application's splash
0389      * screen.  It takes into account the user's display settings (number of
0390      * screens, Xinerama, etc), and the user's preferences (if KDE should be
0391      * Xinerama aware).
0392      *
0393      * @return the geometry to use for the desktop.  Note that it might not
0394      *         start at (0,0).
0395      * @deprecated use QApplication::desktop()->screenGeometry(QCursor::pos())
0396      */
0397     static KDELIBS4SUPPORT_DEPRECATED QRect splashScreenDesktopGeometry();
0398 
0399     /**
0400      * This function returns the desktop geometry for an application that needs
0401      * to set the geometry of a widget on the screen manually.  It takes into
0402      * account the user's display settings (number of screens, Xinerama, etc),
0403      * and the user's preferences (if KDE should be Xinerama aware).
0404      *
0405      * Note that this can break in multi-head (not Xinerama) mode because this
0406      * point could be on multiple screens.  Use with care.
0407      *
0408      * @param point a reference point for the widget, for instance one that the
0409      *              widget should be adjacent or on top of.
0410      *
0411      * @return the geometry to use for the desktop.  Note that it might not
0412      *         start at (0,0).
0413      * @deprecated use QApplication::desktop()->screenGeometry(point)
0414      */
0415     static KDELIBS4SUPPORT_DEPRECATED QRect desktopGeometry(const QPoint &point);
0416 
0417     /**
0418      * This function returns the desktop geometry for an application that needs
0419      * to set the geometry of a widget on the screen manually.  It takes into
0420      * account the user's display settings (number of screens, Xinerama, etc),
0421      * and the user's preferences (if KDE should be Xinerama aware).
0422      *
0423      * @param w the widget in question.  This is used to determine which screen
0424      *          to use in Xinerama or multi-head mode.
0425      *
0426      * @return the geometry to use for the desktop.  Note that it might not
0427      *         start at (0,0).
0428      * @deprecated use QApplication::desktop()->screenGeometry(w)
0429      */
0430     static KDELIBS4SUPPORT_DEPRECATED QRect desktopGeometry(const QWidget *w);
0431 
0432     /**
0433      * This function determines if the user wishes to see icons on the
0434      * push buttons.
0435      *
0436      * @return Returns true if user wants to show icons.
0437      * @deprecated since 5.0, use style->styleHint(QStyle::SH_DialogButtonBox_ButtonsHaveIcons, 0, widget);
0438      */
0439     static KDELIBS4SUPPORT_DEPRECATED bool showIconsOnPushButtons();
0440 
0441     /**
0442      * Returns true, if user visible strings should be sorted in a natural way:
0443      * image 1.jpg
0444      * image 2.jpg
0445      * image 10.jpg
0446      * image 11.jpg
0447      * If false is returned, the strings are sorted by their unicode values:
0448      * image 1.jpg
0449      * image 10.jpg
0450      * image 11.jpg
0451      * image 2.jpg
0452      *
0453      * @since 4.4
0454      */
0455     static bool naturalSorting();
0456 
0457     enum GraphicEffect {
0458         NoEffects               = 0x0000, ///< GUI with no effects at all.
0459         GradientEffects         = 0x0001, ///< GUI with only gradients enabled.
0460         SimpleAnimationEffects  = 0x0002, ///< GUI with simple animations enabled.
0461         ComplexAnimationEffects = 0x0006  ///< GUI with complex animations enabled.
0462                                   ///< Note that ComplexAnimationsEffects implies SimpleAnimationEffects.
0463     };
0464 
0465     Q_DECLARE_FLAGS(GraphicEffects, GraphicEffect)
0466 
0467     /**
0468      * This function determines the desired level of effects on the GUI.
0469      *
0470      * @since 4.1
0471      */
0472     static GraphicEffects graphicEffectsLevel();
0473 
0474     /**
0475      * This function determines the default level of effects on the GUI
0476      * depending on the system capabilities.
0477      *
0478      * @since 4.1
0479      */
0480     static GraphicEffects graphicEffectsLevelDefault();
0481 
0482     /**
0483      * This function determines if the user wishes to see previews
0484      * for the selected url
0485      *
0486      * @return Returns true if user wants to show previews.
0487      * @deprecated since 5.0, use KProtocolInfo::showFilePreview
0488      */
0489 #ifndef KDELIBS4SUPPORT_NO_DEPRECATED
0490     static KDELIBS4SUPPORT_DEPRECATED bool showFilePreview(const QUrl &);
0491 #endif
0492 
0493     /**
0494      * Whether the user wishes to use opaque resizing. Primarily
0495      * intended for QSplitter::setOpaqueResize()
0496      *
0497      * @return Returns true if user wants to use opaque resizing.
0498      */
0499     static bool opaqueResize();
0500 
0501     /**
0502      * The layout scheme to use for dialog buttons
0503      *
0504      * @return Returns the number of the scheme to use.
0505      */
0506     static int buttonLayout();
0507 
0508     /**
0509      * Used to obtain the QPalette that will be used to set the application palette.
0510      *
0511      * This is only useful for configuration modules such as krdb and should not be
0512      * used in normal circumstances.
0513      * @param config KConfig from which to load the colors (passed as-is to
0514      * ::KColorScheme).
0515      *
0516      * @return the QPalette
0517      *
0518      * @deprecated since 5.0, use KColorScheme::createApplicationPalette()
0519      */
0520     static KDELIBS4SUPPORT_DEPRECATED QPalette createApplicationPalette(const KSharedConfigPtr &config = KSharedConfigPtr());
0521 
0522     /**
0523      * Used to obtain the QPalette that will be used to set the application palette.
0524      *
0525      * This is only useful for configuration modules such as krdb and should not be
0526      * used in normal circumstances.
0527      * @param config KConfig from which to load the colors (passed as-is to
0528      * ::KColorScheme).
0529      *
0530      * @note The difference between this and the previous is that this never caches.
0531      * @since 4.6.3
0532      *
0533      * @return the QPalette
0534      *
0535      * @deprecated since 5.0, use KColorScheme::createApplicationPalette()
0536      */
0537     static KDELIBS4SUPPORT_DEPRECATED QPalette createNewApplicationPalette(const KSharedConfigPtr &config = KSharedConfigPtr());
0538 
0539     /**
0540      * An identifier for change signals.
0541      * \see emitChange
0542      */
0543     enum ChangeType { PaletteChanged = 0, FontChanged, StyleChanged,
0544                       SettingsChanged, IconChanged, CursorChanged,
0545                       ToolbarStyleChanged,
0546                       BlockShortcuts, NaturalSortingChanged
0547                     };
0548 
0549     /**
0550      * Notifies all KDE applications on the current display of a change.
0551      *
0552      * This is typically called by kcontrol modules after changing the corresponding
0553      * config file. Do not call this from a normal KDE application.
0554      *
0555      * @deprecated since 5.0 :
0556      * @li emitChange(ToolbarStyleChanged) is now KToolBar::emitToolbarStyleChanged()
0557      * @li emitChange(IconChanged, group) is now KIconLoader::emitChange(group)
0558      * TODO: complete this list
0559      */
0560     static KDELIBS4SUPPORT_DEPRECATED void emitChange(ChangeType changeType, int arg = 0);
0561 
0562     /**
0563      * Return the KGlobalSettings singleton.
0564      * This is used to connect to its signals, to be notified of changes.
0565      */
0566     static KGlobalSettings *self();
0567 
0568     /**
0569      * Specifies options passed to activate().
0570      *
0571      * @since 4.6
0572      */
0573     enum ActivateOption {
0574         ApplySettings = 0x1, ///< Make all globally applicable settings take effect.
0575         ListenForChanges = 0x2 ///< Listen for changes to the settings.
0576     };
0577     Q_DECLARE_FLAGS(ActivateOptions, ActivateOption)
0578 
0579     /**
0580      * Makes all globally applicable settings take effect
0581      * and starts listening for changes to these settings.
0582      *
0583      * This is usually called only by the KApplication constructor.
0584      *
0585      * @since 4.3.3
0586      */
0587     void activate(); //KDE5: Merge with the overloaded method below
0588 
0589     /**
0590      * @overload
0591      *
0592      * @since 4.6
0593      */
0594     void activate(ActivateOptions options);
0595 
0596     /**
0597      * Valid values for the settingsChanged signal
0598      */
0599     enum SettingsCategory { SETTINGS_MOUSE, SETTINGS_COMPLETION, SETTINGS_PATHS,
0600                             SETTINGS_POPUPMENU, SETTINGS_QT, SETTINGS_SHORTCUTS,
0601                             SETTINGS_LOCALE, SETTINGS_STYLE
0602                           };
0603 
0604 Q_SIGNALS:
0605     /**
0606      * Emitted when the application has changed its palette due to a KControl request.
0607      *
0608      * Normally, widgets will update their palette automatically, but you
0609      * should connect to this to program special behavior.
0610      *
0611      * Note: If you derive from a QWidget-based class, a faster method is to
0612      *       reimplement QWidget::changeEvent() and catch QEvent::PaletteChange.
0613      *       This is the preferred way to get informed about palette updates.
0614      */
0615     void kdisplayPaletteChanged();
0616 
0617     /**
0618      * Emitted when the application has changed its GUI style in response to a KControl request.
0619      *
0620      * Normally, widgets will update their styles automatically (as they would
0621      * respond to an explicit setGUIStyle() call), but you should connect to
0622      * this to program special behavior.
0623      *
0624      * Note: If you derive from a QWidget-based class, a faster method is to
0625      *       reimplement QWidget::changeEvent() and catch QEvent::StyleChange.
0626      *       This is the preferred way to get informed about style updates.
0627      */
0628     void kdisplayStyleChanged();
0629 
0630     /**
0631      * Emitted when the application has changed its font in response to a KControl request.
0632      *
0633      * Normally widgets will update their fonts automatically, but you should
0634      * connect to this to monitor global font changes, especially if you are
0635      * using explicit fonts.
0636      *
0637      * Note: If you derive from a QWidget-based class, a faster method is to
0638      *       reimplement QWidget::changeEvent() and catch QEvent::FontChange.
0639      *       This is the preferred way to get informed about font updates.
0640      */
0641     void kdisplayFontChanged();
0642 
0643     /**
0644      * Emitted when the application has changed either its GUI style, its font or its palette
0645      * in response to a kdisplay request. Normally, widgets will update their styles
0646      * automatically, but you should connect to this to program special
0647      * behavior.
0648      */
0649     void appearanceChanged();
0650 
0651     /**
0652      * Emitted when the settings for toolbars have been changed. KToolBar will know what to do.
0653      */
0654     void toolbarAppearanceChanged(int);
0655 
0656     /**
0657      * Emitted when the global settings have been changed.
0658      * KGlobalSettings takes care of calling reparseConfiguration on KSharedConfig::openConfig()
0659      * so that applications/classes using this only have to re-read the configuration
0660      * @param category the category among the SettingsCategory enum.
0661      */
0662     void settingsChanged(int category);
0663 
0664     /**
0665      * Emitted when the global icon settings have been changed.
0666      * @param group the new group
0667      *
0668      * @deprecated since 5.0, use KIconLoader::iconChanged(int)
0669      */
0670 #ifndef KDELIBS4SUPPORT_NO_DEPRECATED
0671     QT_MOC_COMPAT void iconChanged(int group);
0672 #endif
0673 
0674     /**
0675      * Emitted when the cursor theme has been changed.
0676      */
0677     void cursorChanged();
0678 
0679     /**
0680      * Emitted by BlockShortcuts
0681      */
0682     void blockShortcuts(int data);
0683 
0684     /**
0685      * Emitted when the natural sorting has been changed.
0686      * @since 4.4
0687      */
0688     void naturalSortingChanged();
0689 
0690 private:
0691     friend class KApplication;
0692     friend class KGlobalSettingsSingleton;
0693 
0694     KGlobalSettings();
0695 
0696     class Private;
0697     Private *const d;
0698 
0699     Q_PRIVATE_SLOT(d, void _k_slotNotifyChange(int, int))
0700     Q_PRIVATE_SLOT(d, void _k_slotIconChange(int))
0701 };
0702 
0703 Q_DECLARE_OPERATORS_FOR_FLAGS(KGlobalSettings::GraphicEffects)
0704 Q_DECLARE_OPERATORS_FOR_FLAGS(KGlobalSettings::ActivateOptions)
0705 
0706 #endif