DolphinQt2: FocusEventFilter -> WindowActivationEventFilter

This commit is contained in:
Michael Maltese 2017-06-14 18:49:56 -07:00
parent 220ce425cd
commit 5b3b6b7f3d
6 changed files with 33 additions and 31 deletions

View File

@ -50,7 +50,7 @@ set(SRCS
GameList/ListProxyModel.cpp
QtUtils/DoubleClickEventFilter.cpp
QtUtils/ElidedButton.cpp
QtUtils/FocusEventFilter.cpp
QtUtils/WindowActivationEventFilter.cpp
Settings/GeneralPane.cpp
Settings/InterfacePane.cpp
Settings/PathPane.cpp

View File

@ -78,7 +78,7 @@
<QtMoc Include="MainWindow.h" />
<QtMoc Include="MenuBar.h" />
<QtMoc Include="QtUtils\DoubleClickEventFilter.h" />
<QtMoc Include="QtUtils\FocusEventFilter.h" />
<QtMoc Include="QtUtils\WindowActivationEventFilter.h" />
<QtMoc Include="RenderWidget.h" />
<QtMoc Include="Settings.h" />
<QtMoc Include="Settings\GeneralPane.h" />
@ -89,7 +89,7 @@
<ClCompile Include="$(QtMocOutPrefix)AboutDialog.cpp" />
<ClCompile Include="$(QtMocOutPrefix)ControllersWindow.cpp" />
<ClCompile Include="$(QtMocOutPrefix)FilesystemWidget.cpp" />
<ClCompile Include="$(QtMocOutPrefix)FocusEventFilter.cpp" />
<ClCompile Include="$(QtMocOutPrefix)WindowActivationEventFilter.cpp" />
<ClCompile Include="$(QtMocOutPrefix)GameFile.cpp" />
<ClCompile Include="$(QtMocOutPrefix)GameList.cpp" />
<ClCompile Include="$(QtMocOutPrefix)GameListModel.cpp" />
@ -151,7 +151,7 @@
<ClCompile Include="MenuBar.cpp" />
<ClCompile Include="QtUtils\DoubleClickEventFilter.cpp" />
<ClCompile Include="QtUtils\ElidedButton.cpp" />
<ClCompile Include="QtUtils\FocusEventFilter.cpp" />
<ClCompile Include="QtUtils\WindowActivationEventFilter.cpp" />
<ClCompile Include="RenderWidget.cpp" />
<ClCompile Include="Resources.cpp" />
<ClCompile Include="Settings.cpp" />

View File

@ -31,7 +31,7 @@
#include "DolphinQt2/Host.h"
#include "DolphinQt2/HotkeyScheduler.h"
#include "DolphinQt2/MainWindow.h"
#include "DolphinQt2/QtUtils/FocusEventFilter.h"
#include "DolphinQt2/QtUtils/WindowActivationEventFilter.h"
#include "DolphinQt2/Resources.h"
#include "DolphinQt2/Settings.h"
@ -88,13 +88,15 @@ void MainWindow::ShutdownControllers()
m_hotkey_scheduler->deleteLater();
}
static void InstallHotkeyFilter(QDialog* dialog)
static void InstallHotkeyFilter(QWidget* dialog)
{
auto* filter = new FocusEventFilter();
auto* filter = new WindowActivationEventFilter();
dialog->installEventFilter(filter);
filter->connect(filter, &FocusEventFilter::focusOutEvent, [] { HotkeyManagerEmu::Enable(true); });
filter->connect(filter, &FocusEventFilter::focusInEvent, [] { HotkeyManagerEmu::Enable(false); });
filter->connect(filter, &WindowActivationEventFilter::windowDeactivated,
[] { HotkeyManagerEmu::Enable(true); });
filter->connect(filter, &WindowActivationEventFilter::windowActivated,
[] { HotkeyManagerEmu::Enable(false); });
}
void MainWindow::CreateComponents()

View File

@ -1,19 +0,0 @@
// Copyright 2017 Dolphin Emulator Project
// Licensed under GPLv2+
// Refer to the license.txt file included.
#include <QEvent>
#include <QObject>
#include "DolphinQt2/QtUtils/FocusEventFilter.h"
bool FocusEventFilter::eventFilter(QObject* object, QEvent* event)
{
if (event->type() == QEvent::FocusOut)
emit focusOutEvent();
if (event->type() == QEvent::FocusIn)
emit focusInEvent();
return false;
}

View File

@ -0,0 +1,19 @@
// Copyright 2017 Dolphin Emulator Project
// Licensed under GPLv2+
// Refer to the license.txt file included.
#include <QEvent>
#include <QObject>
#include "DolphinQt2/QtUtils/WindowActivationEventFilter.h"
bool WindowActivationEventFilter::eventFilter(QObject* object, QEvent* event)
{
if (event->type() == QEvent::WindowDeactivate)
emit windowDeactivated();
if (event->type() == QEvent::WindowActivate)
emit windowActivated();
return false;
}

View File

@ -6,12 +6,12 @@
#include <QObject>
class FocusEventFilter : public QObject
class WindowActivationEventFilter : public QObject
{
Q_OBJECT
signals:
void focusInEvent();
void focusOutEvent();
void windowActivated();
void windowDeactivated();
private:
bool eventFilter(QObject* object, QEvent* event) override;