Skip to content

Commit de56ac1

Browse files
author
m.zabic
committed
event guard added for better scrolling experience
1 parent 8ca3cec commit de56ac1

File tree

2 files changed

+92
-0
lines changed

2 files changed

+92
-0
lines changed

src/eventguard.cpp

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
/***************************************************************************
2+
** **
3+
** This file is part of FDMLControl. **
4+
** FDMLControl enables the control of the Optores FDML laser via a **
5+
** serial connection. **
6+
** Copyright (C) 2019 Miroslav Zabic **
7+
** **
8+
** FDMLControl is free software: you can redistribute it and/or modify **
9+
** it under the terms of the GNU General Public License as published by **
10+
** the Free Software Foundation, either version 3 of the License, or **
11+
** (at your option) any later version. **
12+
** **
13+
** This program is distributed in the hope that it will be useful, **
14+
** but WITHOUT ANY WARRANTY; without even the implied warranty of **
15+
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the **
16+
** GNU General Public License for more details. **
17+
** **
18+
** You should have received a copy of the GNU General Public License **
19+
** along with this program. If not, see http://www.gnu.org/licenses/. **
20+
** **
21+
****************************************************************************
22+
** Author: Miroslav Zabic **
23+
** Contact: zabic **
24+
** at **
25+
** iqo.uni-hannover.de **
26+
** **
27+
****************************************************************************/
28+
29+
#include "eventguard.h"
30+
31+
EventGuard::EventGuard(QObject *parent) : QObject(parent)
32+
{
33+
34+
}
35+
36+
bool EventGuard::eventFilter(QObject *object, QEvent *event){
37+
const QWidget* widget = static_cast<QWidget*>(object);
38+
if (event->type() == QEvent::Wheel && widget && !widget->hasFocus()){
39+
event->ignore();
40+
return true;
41+
}
42+
return QObject::eventFilter(object, event);
43+
}

src/eventguard.h

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
/***************************************************************************
2+
** **
3+
** This file is part of FDMLControl. **
4+
** FDMLControl enables the control of the Optores FDML laser via a **
5+
** serial connection. **
6+
** Copyright (C) 2019 Miroslav Zabic **
7+
** **
8+
** FDMLControl is free software: you can redistribute it and/or modify **
9+
** it under the terms of the GNU General Public License as published by **
10+
** the Free Software Foundation, either version 3 of the License, or **
11+
** (at your option) any later version. **
12+
** **
13+
** This program is distributed in the hope that it will be useful, **
14+
** but WITHOUT ANY WARRANTY; without even the implied warranty of **
15+
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the **
16+
** GNU General Public License for more details. **
17+
** **
18+
** You should have received a copy of the GNU General Public License **
19+
** along with this program. If not, see http://www.gnu.org/licenses/. **
20+
** **
21+
****************************************************************************
22+
** Author: Miroslav Zabic **
23+
** Contact: zabic **
24+
** at **
25+
** iqo.uni-hannover.de **
26+
** **
27+
****************************************************************************/
28+
29+
#pragma once
30+
31+
#include <QWidget>
32+
#include <QEvent>
33+
34+
class EventGuard : public QObject
35+
{
36+
Q_OBJECT
37+
public:
38+
explicit EventGuard(QObject *parent);
39+
40+
41+
protected:
42+
bool eventFilter(QObject* object, QEvent* event) override;
43+
44+
45+
signals:
46+
47+
48+
public slots:
49+
};

0 commit comments

Comments
 (0)