1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
|
/**************************************************************************
* *
* SPDX-FileCopyrightText: 2016 Malte Brandy <malte.brandy@maralorn.de> *
* *
* SPDX-License-Identifier: GPL-3.0-or-later
* *
**************************************************************************/
#include "activitydetector.h"
#include "logging_categories.h"
#include <QtWidgets/QApplication>
#include <QtWidgets/QWidget>
#include <QtCore/QDebug>
void ActivityDetector::setEnabled(bool enabled)
{
if (enabled == m_enabled)
return;
m_enabled = enabled;
const auto& topLevels = qApp->topLevelWidgets();
for (auto* w: topLevels)
if (!w->isHidden())
w->setMouseTracking(enabled);
if (enabled)
qApp->installEventFilter(this);
else
qApp->removeEventFilter(this);
qCDebug(MAIN) << "Activity Detector enabled:" << enabled;
}
bool ActivityDetector::eventFilter(QObject* obj, QEvent* ev)
{
switch (ev->type())
{
case QEvent::KeyPress:
case QEvent::FocusIn:
case QEvent::MouseMove:
case QEvent::MouseButtonPress:
emit triggered();
break;
default:;
}
return QObject::eventFilter(obj, ev);
}
|