From 9427e27e24a7135880ee2881c3c44988e174b41a Mon Sep 17 00:00:00 2001 From: Zephyron Date: Tue, 31 Dec 2024 16:19:25 +1000 Subject: chore: update project branding to citron --- src/citron/util/limitable_input_dialog.h | 40 ++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 src/citron/util/limitable_input_dialog.h (limited to 'src/citron/util/limitable_input_dialog.h') diff --git a/src/citron/util/limitable_input_dialog.h b/src/citron/util/limitable_input_dialog.h new file mode 100644 index 000000000..f261f1a0f --- /dev/null +++ b/src/citron/util/limitable_input_dialog.h @@ -0,0 +1,40 @@ +// SPDX-FileCopyrightText: Copyright 2018 yuzu Emulator Project +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include + +class QDialogButtonBox; +class QLabel; +class QLineEdit; + +/// A QDialog that functions similarly to QInputDialog, however, it allows +/// restricting the minimum and total number of characters that can be entered. +class LimitableInputDialog final : public QDialog { + Q_OBJECT +public: + explicit LimitableInputDialog(QWidget* parent = nullptr); + ~LimitableInputDialog() override; + + enum class InputLimiter { + None, + Filesystem, + }; + + static QString GetText(QWidget* parent, const QString& title, const QString& text, + int min_character_limit, int max_character_limit, + InputLimiter limit_type = InputLimiter::None); + +private: + void CreateUI(); + void ConnectEvents(); + + void RemoveInvalidCharacters(); + QString invalid_characters; + + QLabel* text_label; + QLineEdit* text_entry; + QLabel* text_label_invalid; + QDialogButtonBox* buttons; +}; -- cgit v1.2.3