0

I need to display system input dialog: title, some text, input field, OK & Cancel buttons.

I'm new to BB development, so I carefully read docs and samples: http://developer.blackberry.com/native/documentation/cascades/ui/dialogs_toasts/prompts.html and write the same code (let's say doc author cheated a bit in the most important part - not covering obtaining of user input with non-compiling source code - "qDebug() << "Prompt Accepted:" << text;").

void MainPage::showPrompt() {
    SystemPrompt *dialog = new SystemPrompt();
    dialog->inputField()->setDefaultText("TEST");
    QObject::connect(dialog, SIGNAL(finished(bb::system::SystemUiResult::Type)), 
            this, SLOT(promptHandler(bb::system::SystemUiResult::Type)));
    dialog->show();
}


void MainPage::promptHandler(bb::system::SystemUiResult::Type value) {
    if (value == SystemUiResult::ConfirmButtonSelection) {
        SystemPrompt *dialog = (SystemPrompt *)QObject::sender();
        qDebug("text is: '%s'", qPrintable(dialog->inputField()->defaultText()));
    }
}

Regardless of user input on device/simulator, inputField()->defaultText() value is always "TEST" as it was initialized.

How do I get the user input here? dialog->exec() does not change anything.

PS. Expert level question: And how do I allow empty input in SystemPrompt dialog (by default "OK" button becomes disabled on empty input).

1 Answers1

0

Shame upon me. I did not read documentation carefully.

->inputFieldTextEntry() does contain the user input.

PS. First time I see such sophisticated logic of handling such simple thing as user input in text edit...