From cad91e114df9df2d0c4695183a1e52fd526af835 Mon Sep 17 00:00:00 2001 From: Megamouse Date: Sat, 16 Sep 2017 12:45:07 +0200 Subject: [PATCH] Qt: add char count label to osk dialog --- rpcs3/rpcs3qt/msg_dialog_frame.cpp | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/rpcs3/rpcs3qt/msg_dialog_frame.cpp b/rpcs3/rpcs3qt/msg_dialog_frame.cpp index 4cca39c24b..6e05a0b688 100644 --- a/rpcs3/rpcs3qt/msg_dialog_frame.cpp +++ b/rpcs3/rpcs3qt/msg_dialog_frame.cpp @@ -255,25 +255,35 @@ void msg_dialog_frame::CreateOsk(const std::string& msg, char16_t* osk_text, u32 input->setText(QString::fromStdU16String(std::u16string(m_osk_text_return))); input->setFocus(); + //Text Input Counter + QLabel* inputCount = new QLabel(QString("%1/%2").arg(input->text().length()).arg(charlimit)); + //Ok Button QPushButton* button_ok = new QPushButton("Ok", m_osk_dialog); - //Layout + //Button Layout QHBoxLayout* buttonsLayout = new QHBoxLayout; buttonsLayout->setAlignment(Qt::AlignCenter); buttonsLayout->addStretch(); buttonsLayout->addWidget(button_ok); buttonsLayout->addStretch(); + //Input Layout + QHBoxLayout* inputLayout = new QHBoxLayout; + inputLayout->setAlignment(Qt::AlignHCenter); + inputLayout->addWidget(input); + inputLayout->addWidget(inputCount); + QFormLayout* layout = new QFormLayout(m_osk_dialog); layout->setFormAlignment(Qt::AlignHCenter); - layout->addRow(input); + layout->addRow(inputLayout); layout->addRow(buttonsLayout); m_osk_dialog->setLayout(layout); //Events - connect(input, &QLineEdit::textChanged, [=] + connect(input, &QLineEdit::textChanged, [=](const QString& text) { + inputCount->setText(QString("%1/%2").arg(text.length()).arg(charlimit)); on_osk_input_entered(); });