]> cloud.milkyroute.net Git - dolphin.git/blob - src/selectionmode/backgroundcolorhelper.h
Keep working towards a reviewable state
[dolphin.git] / src / selectionmode / backgroundcolorhelper.h
1 /*
2 This file is part of the KDE project
3 SPDX-FileCopyrightText: 2022 Felix Ernst <felixernst@zohomail.eu>
4
5 SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
6 */
7
8 #ifndef BACKGROUNDCOLORHELPER_H
9 #define BACKGROUNDCOLORHELPER_H
10
11 #include <QColor>
12 #include <QPointer>
13
14 #include <memory>
15
16 class QWidget;
17
18 /**
19 * @brief A Singleton class for managing the colors of selection mode widgets.
20 */
21 class BackgroundColorHelper
22 {
23 public:
24 static BackgroundColorHelper *instance();
25
26 /**
27 * 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.
28 */
29 void controlBackgroundColor(QWidget *widget);
30
31 private:
32 BackgroundColorHelper();
33
34 void slotPaletteChanged();
35
36 void updateBackgroundColor();
37
38 private:
39 std::vector<QPointer<QWidget>> m_colorControlledWidgets;
40 QColor m_backgroundColor;
41
42 static BackgroundColorHelper *s_instance;
43 };
44
45 #endif // BACKGROUNDCOLORHELPER_H