diff options
Diffstat (limited to 'src/citron/util/sequence_dialog/sequence_dialog.cpp')
-rw-r--r-- | src/citron/util/sequence_dialog/sequence_dialog.cpp | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/src/citron/util/sequence_dialog/sequence_dialog.cpp b/src/citron/util/sequence_dialog/sequence_dialog.cpp new file mode 100644 index 000000000..1670aa596 --- /dev/null +++ b/src/citron/util/sequence_dialog/sequence_dialog.cpp @@ -0,0 +1,38 @@ +// SPDX-FileCopyrightText: 2018 Citra Emulator Project +// SPDX-License-Identifier: GPL-2.0-or-later + +#include <QDialogButtonBox> +#include <QKeySequenceEdit> +#include <QVBoxLayout> +#include "yuzu/util/sequence_dialog/sequence_dialog.h" + +SequenceDialog::SequenceDialog(QWidget* parent) : QDialog(parent) { + setWindowTitle(tr("Enter a hotkey")); + + key_sequence = new QKeySequenceEdit; + + auto* const buttons = new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel); + buttons->setCenterButtons(true); + + auto* const layout = new QVBoxLayout(this); + layout->addWidget(key_sequence); + layout->addWidget(buttons); + + connect(buttons, &QDialogButtonBox::accepted, this, &QDialog::accept); + connect(buttons, &QDialogButtonBox::rejected, this, &QDialog::reject); +} + +SequenceDialog::~SequenceDialog() = default; + +QKeySequence SequenceDialog::GetSequence() const { + // Only the first key is returned. The other 3, if present, are ignored. + return QKeySequence(key_sequence->keySequence()[0]); +} + +bool SequenceDialog::focusNextPrevChild(bool next) { + return false; +} + +void SequenceDialog::closeEvent(QCloseEvent*) { + reject(); +} |