diff options
Diffstat (limited to 'src/yuzu/util')
| -rw-r--r-- | src/yuzu/util/sequence_dialog/sequence_dialog.cpp | 37 | ||||
| -rw-r--r-- | src/yuzu/util/sequence_dialog/sequence_dialog.h | 24 | 
2 files changed, 61 insertions, 0 deletions
| diff --git a/src/yuzu/util/sequence_dialog/sequence_dialog.cpp b/src/yuzu/util/sequence_dialog/sequence_dialog.cpp new file mode 100644 index 000000000..d3edf6ec3 --- /dev/null +++ b/src/yuzu/util/sequence_dialog/sequence_dialog.cpp @@ -0,0 +1,37 @@ +// Copyright 2018 Citra Emulator Project +// Licensed under GPLv2 or any later version +// Refer to the license.txt file included. + +#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")); +    auto* layout = new QVBoxLayout(this); +    key_sequence = new QKeySequenceEdit; +    layout->addWidget(key_sequence); +    auto* buttons = +        new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel, Qt::Horizontal); +    buttons->setCenterButtons(true); +    layout->addWidget(buttons); +    connect(buttons, &QDialogButtonBox::accepted, this, &QDialog::accept); +    connect(buttons, &QDialogButtonBox::rejected, this, &QDialog::reject); +    setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint); +} + +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(); +} diff --git a/src/yuzu/util/sequence_dialog/sequence_dialog.h b/src/yuzu/util/sequence_dialog/sequence_dialog.h new file mode 100644 index 000000000..969c77740 --- /dev/null +++ b/src/yuzu/util/sequence_dialog/sequence_dialog.h @@ -0,0 +1,24 @@ +// Copyright 2018 Citra Emulator Project +// Licensed under GPLv2 or any later version +// Refer to the license.txt file included. + +#pragma once + +#include <QDialog> + +class QKeySequenceEdit; + +class SequenceDialog : public QDialog { +    Q_OBJECT + +public: +    explicit SequenceDialog(QWidget* parent = nullptr); +    ~SequenceDialog() override; + +    QKeySequence GetSequence() const; +    void closeEvent(QCloseEvent*) override; + +private: +    QKeySequenceEdit* key_sequence; +    bool focusNextPrevChild(bool next) override; +}; | 
