45 : QObject(parent), m_d(new
Private(delay, this))
73 return m_d->idleCheckTimer.isActive();
78 m_d->connectionsStore.clear();
79 m_d->trackedImages.clear();
83 m_d->trackedImages << image;
84 m_d->connectionsStore.addConnection(image, SIGNAL(sigImageModified()),
87 m_d->connectionsStore.addConnection(image, SIGNAL(sigIsolatedModeChanged()),
103 m_d->imageModifiedCompressor.start();
109 m_d->idleCheckCounter = -1;
110 m_d->idleCheckTimer.start();
115 if (
m_d->idleCheckCounter >= 0) {
123 m_d->idleCheckCounter = 0;
124 m_d->idleCheckTimer.start();
129 m_d->idleCheckTimer.stop();
130 m_d->idleCheckCounter = 0;
136 if (
m_d->idleCheckCounter < 0 ||
140 if (!
m_d->trackedImages.isEmpty()) {
144 m_d->idleCheckCounter++;
145 m_d->idleCheckTimer.start();
148 if (
m_d->idleCheckCounter >= 0) {
151 m_d->idleCheckTimer.start();
connect(this, SIGNAL(optionsChanged()), this, SLOT(saveOptions()))
KisIdleWatcher(int delay=200, QObject *parent=0)
void triggerCountdownNoDelay()
const QScopedPointer< Private > m_d
~KisIdleWatcher() override
void setTrackedImages(const QVector< KisImageSP > &images)
void setTrackedImage(KisImageSP image)
bool isIdle(bool allowLocked=false)
static const int IDLE_CHECK_COUNT
KisSignalAutoConnectionsStore connectionsStore
QVector< KisImageWSP > trackedImages
Private(int delay, KisIdleWatcher *q)
KisSignalCompressor imageModifiedCompressor