Krita Source Code Documentation
Loading...
Searching...
No Matches
KisWidgetWithIdleTask.h
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2023 Dmitry Kazakov <dimula73@gmail.com>
3 *
4 * SPDX-License-Identifier: GPL-2.0-or-later
5 */
6#ifndef KISWIDGETWITHIDLETASK_H
7#define KISWIDGETWITHIDLETASK_H
8
9#include <QWidget>
10#include "KisIdleTasksManager.h"
11
12class KisCanvas2;
13class KoColorSpace;
14
15template <typename BaseWidget>
16class KisWidgetWithIdleTask : public BaseWidget
17{
18public:
19 KisWidgetWithIdleTask(QWidget *parent = 0, Qt::WindowFlags flags = Qt::WindowFlags())
20 : BaseWidget (parent, flags)
21 {
22 }
23
24 ~KisWidgetWithIdleTask() override = default;
25
26 virtual void setCanvas(KisCanvas2 *canvas) {
27 if (m_canvas) {
29 }
30
31 m_canvas = canvas;
32
33 if (m_canvas) {
34 if (this->isVisible()) {
36 }
37 }
38
40 this->update();
41 }
42
43 void showEvent(QShowEvent *event) override {
44 BaseWidget::showEvent(event);
45
46 // see a comment at the declaration of `m_isVisibleState`
47 if (!m_isVisibleState) {
48 m_isVisibleState = true;
49
52 }
53
54 if (m_canvas) {
56 }
59 }
60 }
61 }
62
63 void hideEvent(QHideEvent *event) override {
64 BaseWidget::hideEvent(event);
65
66 // see a comment at the declaration of `m_isVisibleState`
67 if (m_isVisibleState) {
68 m_isVisibleState = false;
69
72
74 }
75 }
76
82
83 [[nodiscard]]
85 virtual void clearCachedState() = 0;
86
87protected:
90
97 bool m_isVisibleState {false};
98};
99
100#endif // KISWIDGETWITHIDLETASK_H
~KisWidgetWithIdleTask() override=default
virtual KisIdleTasksManager::TaskGuard registerIdleTask(KisCanvas2 *canvas)=0
KisWidgetWithIdleTask(QWidget *parent=0, Qt::WindowFlags flags=Qt::WindowFlags())
virtual void setCanvas(KisCanvas2 *canvas)
void showEvent(QShowEvent *event) override
virtual void clearCachedState()=0
KisIdleTasksManager::TaskGuard m_idleTaskGuard
void hideEvent(QHideEvent *event) override
#define KIS_SAFE_ASSERT_RECOVER(cond)
Definition kis_assert.h:126
#define KIS_SAFE_ASSERT_RECOVER_NOOP(cond)
Definition kis_assert.h:130