digiKam
Loading...
Searching...
No Matches
visibilitycontroller.h
Go to the documentation of this file.
1/* ============================================================
2 *
3 * This file is a part of digiKam project
4 * https://www.digikam.org
5 *
6 * Date : 2008-03-14
7 * Description : User interface for searches
8 *
9 * SPDX-FileCopyrightText: 2008-2011 by Marcel Wiesweg <marcel dot wiesweg at gmx dot de>
10 *
11 * SPDX-License-Identifier: GPL-2.0-or-later
12 *
13 * ============================================================ */
14
15#pragma once
16
17// Qt includes
18
19#include <QWidget>
20#include <QList>
21
22// Local includes
23
24#include "digikam_export.h"
25
26namespace Digikam
27{
28
29class DIGIKAM_GUI_EXPORT VisibilityObject
30{
31public:
32
33 VisibilityObject() = default;
34 virtual ~VisibilityObject() = default;
35 virtual void setVisible(bool visible) = 0;
36 virtual bool isVisible() = 0;
37
38private:
39
40 Q_DISABLE_COPY(VisibilityObject)
41};
42
43// -----------------------------------------------------------------------------------
44
45class DIGIKAM_GUI_EXPORT VisibilityController : public QObject
46{
47 Q_OBJECT
48
49public:
50
51 enum Status
52 {
57 Hiding
58 };
59
60public:
61
62 explicit VisibilityController(QObject* const parent);
63 ~VisibilityController() override;
64
68 void setContainerWidget(QWidget* const widget);
69
73 void addWidget(QWidget* const widget);
74
79 void addObject(VisibilityObject* const object);
80
84 bool isVisible() const;
85
86public Q_SLOTS:
87
89 void setVisible(bool visible);
90 void show();
91 void hide();
92
94 void triggerVisibility();
95
96protected:
97
98 void step();
99 void allSteps();
100
101 virtual void beginStatusChange();
102
103private:
104
105 class Private;
106 Private* const d = nullptr;
107};
108
109} // namespace Digikam
Definition visibilitycontroller.h:46
Status
Definition visibilitycontroller.h:52
@ Shown
Definition visibilitycontroller.h:56
@ Unknown
Definition visibilitycontroller.h:53
@ Showing
Definition visibilitycontroller.h:55
@ Hidden
Definition visibilitycontroller.h:54
Definition visibilitycontroller.h:30
virtual bool isVisible()=0
virtual ~VisibilityObject()=default
virtual void setVisible(bool visible)=0
Definition datefolderview.cpp:34