mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-07-23 14:19:46 -06:00
Add wrapper function to disable hotkeys for QFileDialog
Previously, if you have "Hotkeys Require Window Focus" disabled, you could repeatedly use the "Open" hotkey, for example, to stack File Open windows over top of each other over and over. This commit allows the hotkey manager to disable/enable on QFileDialog creation and destruction.
This commit is contained in:
39
Source/Core/DolphinQt/QtUtils/DolphinFileDialog.cpp
Normal file
39
Source/Core/DolphinQt/QtUtils/DolphinFileDialog.cpp
Normal file
@ -0,0 +1,39 @@
|
||||
// Copyright 2021 Dolphin Emulator Project
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#include "DolphinFileDialog.h"
|
||||
|
||||
#include <QFileDialog>
|
||||
#include <QObject>
|
||||
|
||||
QString DolphinFileDialog::getExistingDirectory(QWidget* parent, const QString& caption,
|
||||
const QString& dir, QFileDialog::Options options)
|
||||
{
|
||||
const HotkeyDisabler disabler;
|
||||
return QFileDialog::getExistingDirectory(parent, caption, dir, options);
|
||||
}
|
||||
|
||||
QString DolphinFileDialog::getSaveFileName(QWidget* parent, const QString& caption,
|
||||
const QString& dir, const QString& filter,
|
||||
QString* selectedFilter, QFileDialog::Options options)
|
||||
{
|
||||
const HotkeyDisabler disabler;
|
||||
return QFileDialog::getSaveFileName(parent, caption, dir, filter, selectedFilter, options);
|
||||
}
|
||||
|
||||
QString DolphinFileDialog::getOpenFileName(QWidget* parent, const QString& caption,
|
||||
const QString& dir, const QString& filter,
|
||||
QString* selectedFilter, QFileDialog::Options options)
|
||||
{
|
||||
const HotkeyDisabler disabler;
|
||||
return QFileDialog::getOpenFileName(parent, caption, dir, filter, selectedFilter, options);
|
||||
}
|
||||
|
||||
QStringList DolphinFileDialog::getOpenFileNames(QWidget* parent, const QString& caption,
|
||||
const QString& dir, const QString& filter,
|
||||
QString* selectedFilter,
|
||||
QFileDialog::Options options)
|
||||
{
|
||||
const HotkeyDisabler disabler;
|
||||
return QFileDialog::getOpenFileNames(parent, caption, dir, filter, selectedFilter, options);
|
||||
}
|
40
Source/Core/DolphinQt/QtUtils/DolphinFileDialog.h
Normal file
40
Source/Core/DolphinQt/QtUtils/DolphinFileDialog.h
Normal file
@ -0,0 +1,40 @@
|
||||
// Copyright 2021 Dolphin Emulator Project
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "Core/HotkeyManager.h"
|
||||
|
||||
#include <QFileDialog>
|
||||
#include <QObject>
|
||||
#include <QString>
|
||||
|
||||
namespace DolphinFileDialog
|
||||
{
|
||||
class HotkeyDisabler final
|
||||
{
|
||||
public:
|
||||
HotkeyDisabler() { HotkeyManagerEmu::Enable(false); }
|
||||
~HotkeyDisabler() { HotkeyManagerEmu::Enable(true); }
|
||||
};
|
||||
|
||||
QString getExistingDirectory(QWidget* parent = nullptr, const QString& caption = QString(),
|
||||
const QString& dir = QString(),
|
||||
QFileDialog::Options options = QFileDialog::ShowDirsOnly);
|
||||
|
||||
QString getOpenFileName(QWidget* parent = nullptr, const QString& caption = QString(),
|
||||
const QString& dir = QString(), const QString& filter = QString(),
|
||||
QString* selectedFilter = nullptr,
|
||||
QFileDialog::Options options = QFileDialog::Options());
|
||||
|
||||
QStringList getOpenFileNames(QWidget* parent = nullptr, const QString& caption = QString(),
|
||||
const QString& dir = QString(), const QString& filter = QString(),
|
||||
QString* selectedFilter = nullptr,
|
||||
QFileDialog::Options options = QFileDialog::Options());
|
||||
|
||||
QString getSaveFileName(QWidget* parent = nullptr, const QString& caption = QString(),
|
||||
const QString& dir = QString(), const QString& filter = QString(),
|
||||
QString* selectedFilter = nullptr,
|
||||
QFileDialog::Options options = QFileDialog::Options());
|
||||
|
||||
} // namespace DolphinFileDialog
|
Reference in New Issue
Block a user