]>
cloud.milkyroute.net Git - dolphin.git/blob - src/selectionmode/backgroundcolorhelper.h
2 This file is part of the KDE project
3 SPDX-FileCopyrightText: 2022 Felix Ernst <felixernst@kde.org>
5 SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
8 #ifndef BACKGROUNDCOLORHELPER_H
9 #define BACKGROUNDCOLORHELPER_H
19 namespace SelectionMode
23 * @brief A Singleton class for managing the colors of selection mode widgets.
25 class BackgroundColorHelper
: public QObject
29 static BackgroundColorHelper
* instance ();
32 * 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.
33 * The background color of @p widget will from now on be updated automatically when the palette of the application changes.
35 void controlBackgroundColor ( QWidget
* widget
);
38 bool eventFilter ( QObject
* obj
, QEvent
* event
) override
;
41 BackgroundColorHelper ();
44 * Called when the palette of the application changes.
45 * Triggers updateBackgroundColor() and the updates the background color of m_colorControlledWidgets.
46 * @see updateBackgroundColor
48 void slotPaletteChanged ();
50 /** Calculates a new m_colorControlledWidgets based on the current color scheme of the application. */
51 void updateBackgroundColor ();
54 /// The widgets who have given up control over the background color to BackgroundColorHelper.
55 std :: vector
< QPointer
< QWidget
>> m_colorControlledWidgets
;
56 /// The color to be used for the widgets' backgrounds.
57 QColor m_backgroundColor
;
60 static BackgroundColorHelper
* s_instance
;
65 #endif // BACKGROUNDCOLORHELPER_H