From 333bd207acce7f3830a325f2956e05d347e4ac05 Mon Sep 17 00:00:00 2001 From: Marco Martin Date: Fri, 11 Apr 2014 17:39:40 +0200 Subject: [PATCH] react dinamically to tooltip config change --- src/declarativeimports/core/tooltip.cpp | 25 ++++++++++++++++++------- src/declarativeimports/core/tooltip.h | 3 +++ 2 files changed, 21 insertions(+), 7 deletions(-) diff --git a/src/declarativeimports/core/tooltip.cpp b/src/declarativeimports/core/tooltip.cpp index 7c0f89fac..88ed6bc82 100644 --- a/src/declarativeimports/core/tooltip.cpp +++ b/src/declarativeimports/core/tooltip.cpp @@ -28,6 +28,7 @@ #include "framesvgitem.h" #include +#include ToolTipDialog *ToolTip::s_dialog = 0; int ToolTip::s_dialogUsers = 0; @@ -46,14 +47,12 @@ ToolTip::ToolTip(QQuickItem *parent) showToolTip(); }); - KConfig config("plasmarc"); - KConfigGroup cg(&config, "PlasmaToolTips"); + settingsChanged(); - m_interval = cg.readEntry("Delay", 700); - bool enabled = m_interval > 0; - - setAcceptHoverEvents(enabled); - setFiltersChildMouseEvents(enabled); + const QString configFile = QStandardPaths::writableLocation(QStandardPaths::GenericConfigLocation) + QLatin1Char('/') + "plasmarc"; + KDirWatch::self()->addFile(configFile); + QObject::connect(KDirWatch::self(), SIGNAL(created(QString)), this, SLOT(settingsChanged())); + QObject::connect(KDirWatch::self(), SIGNAL(dirty(QString)), this, SLOT(settingsChanged())); } ToolTip::~ToolTip() @@ -68,6 +67,18 @@ ToolTip::~ToolTip() } } +void ToolTip::settingsChanged() +{ + KConfig config("plasmarc"); + KConfigGroup cg(&config, "PlasmaToolTips"); + + m_interval = cg.readEntry("Delay", 700); + bool enabled = m_interval > 0; + + setAcceptHoverEvents(enabled); + setFiltersChildMouseEvents(enabled); +} + QQuickItem *ToolTip::mainItem() const { return m_mainItem.data(); diff --git a/src/declarativeimports/core/tooltip.h b/src/declarativeimports/core/tooltip.h index 2cf2f26df..b34f57088 100644 --- a/src/declarativeimports/core/tooltip.h +++ b/src/declarativeimports/core/tooltip.h @@ -170,6 +170,9 @@ Q_SIGNALS: void activeChanged(); void interactiveChanged(); +private Q_SLOTS: + void settingsChanged(); + private: bool m_containsMouse; Plasma::Types::Location m_location;