Krita Source Code Documentation
Loading...
Searching...
No Matches
KisScreenMigrationTracker.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
7#ifndef KISSCREENMIGRATIONTRACKER_H
8#define KISSCREENMIGRATIONTRACKER_H
9
10#include <QObject>
11#include <QPointer>
12#include <kritawidgetutils_export.h>
14
15
16class QScreen;
17class QWidget;
18class QWindow;
20
29class KRITAWIDGETUTILS_EXPORT KisScreenMigrationTracker : public QObject
30{
31 Q_OBJECT
32public:
33 KisScreenMigrationTracker(QWidget *trackedWidget, QObject *parent = nullptr);
34
39 QScreen* currentScreen() const;
40
46 QScreen* currentScreenSafe() const;
47
48private Q_SLOTS:
49 void slotScreenChanged(QScreen *screen);
50 void slotScreenResolutionChanged(qreal value);
51 void slotScreenLogicalResolutionChanged(qreal value);
52 void slotResolutionCompressorTriggered();
53
54Q_SIGNALS:
58 void sigScreenChanged(QScreen *screen);
59
64 void sigScreenOrResolutionChanged(QScreen *screen);
65
66private:
67 void connectScreenSignals(QScreen *screen);
68 void connectTopLevelWindow(QWindow *window);
69
70protected:
71 bool eventFilter(QObject *watched, QEvent *event) override;
72
73private:
74 Q_DISABLE_COPY_MOVE(KisScreenMigrationTracker)
75
76 QWidget *m_trackedWidget {nullptr};
80};
81
82#endif // KISSCREENMIGRATIONTRACKER_H
float value(const T *src, size_t ch)
KisSignalAutoConnectionsStore m_screenConnections
QPointer< QWindow > m_trackedTopLevelWindow
KisSignalCompressor * m_resolutionChangeCompressor
void sigScreenChanged(QScreen *screen)
void sigScreenOrResolutionChanged(QScreen *screen)