QGIS API Documentation  3.16.0-Hannover (43b64b13f3)
qgsfocuskeeper.cpp
Go to the documentation of this file.
1 /***************************************************************************
2  qgsfocuskeeper.cpp
3  -----------------
4  Date : May 2020
5  Copyright : (C) 2020 Even Rouault
6  Email : even dot rouault at spatialys dot com
7  ***************************************************************************
8  * *
9  * This program is free software; you can redistribute it and/or modify *
10  * it under the terms of the GNU General Public License as published by *
11  * the Free Software Foundation; either version 2 of the License, or *
12  * (at your option) any later version. *
13  * *
14  ***************************************************************************/
15 
16 #include "qgsfocuskeeper.h"
17 
18 #include <QApplication>
19 #include <QEvent>
20 #include <QWidget>
21 
22 QgsFocusKeeper::QgsFocusKeeper(): mWidgetToKeepFocused( QApplication::focusWidget() )
23 {
24  mWidgetToKeepFocused->installEventFilter( this );
25 }
26 
28 {
29  mWidgetToKeepFocused->removeEventFilter( this );
30 }
31 
32 bool QgsFocusKeeper::eventFilter( QObject *obj, QEvent *event )
33 {
34  if ( obj == mWidgetToKeepFocused && event &&
35  ( event->type() == QEvent::FocusOut || event->type() == QEvent::FocusAboutToChange ) )
36  {
37  return true;
38  }
39  return QObject::eventFilter( obj, event );
40 }
QgsFocusKeeper::QgsFocusKeeper
QgsFocusKeeper()
Definition: qgsfocuskeeper.cpp:22
qgsfocuskeeper.h
QgsFocusKeeper::eventFilter
bool eventFilter(QObject *obj, QEvent *event) override
Definition: qgsfocuskeeper.cpp:32
QgsFocusKeeper::~QgsFocusKeeper
~QgsFocusKeeper() override
Definition: qgsfocuskeeper.cpp:27