]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/selectionmode/backgroundcolorhelper.h
DolphinView: Remove -1 interval, add setAutoActivationEnabled
[dolphin.git] / src / selectionmode / backgroundcolorhelper.h
index 013d3368540725cdeaa01202b2a27bffb99195dc..f274593b8b75d3a007730370056e43c01c5288da 100644 (file)
@@ -1,6 +1,6 @@
 /*
     This file is part of the KDE project
-    SPDX-FileCopyrightText: 2022 Felix Ernst <felixernst@zohomail.eu>
+    SPDX-FileCopyrightText: 2022 Felix Ernst <felixernst@kde.org>
 
     SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
 */
@@ -9,37 +9,57 @@
 #define BACKGROUNDCOLORHELPER_H
 
 #include <QColor>
+#include <QObject>
 #include <QPointer>
 
 #include <memory>
 
 class QWidget;
 
+namespace SelectionMode
+{
+
 /**
  * @brief A Singleton class for managing the colors of selection mode widgets.
  */
-class BackgroundColorHelper
+class BackgroundColorHelper : public QObject
 {
+    Q_OBJECT
 public:
     static BackgroundColorHelper *instance();
 
     /**
      * Changes the background color of @p widget to a distinct color scheme matching color which makes it clear that the widget belongs to the selection mode.
+     * The background color of @p widget will from now on be updated automatically when the palette of the application changes.
      */
     void controlBackgroundColor(QWidget *widget);
 
+protected:
+    bool eventFilter(QObject *obj, QEvent *event) override;
+
 private:
     BackgroundColorHelper();
 
+    /**
+     * Called when the palette of the application changes.
+     * Triggers updateBackgroundColor() and the updates the background color of m_colorControlledWidgets.
+     * @see updateBackgroundColor
+     */
     void slotPaletteChanged();
 
+    /** Calculates a new m_colorControlledWidgets based on the current color scheme of the application. */
     void updateBackgroundColor();
 
 private:
+    /// The widgets who have given up control over the background color to BackgroundColorHelper.
     std::vector<QPointer<QWidget>> m_colorControlledWidgets;
+    /// The color to be used for the widgets' backgrounds.
     QColor m_backgroundColor;
 
+    /// Singleton object
     static BackgroundColorHelper *s_instance;
 };
 
+}
+
 #endif // BACKGROUNDCOLORHELPER_H