Warning, /maui/mauikit/src/controls.6/InputDialog.qml is written in an unsupported language. File is not indexed.

0001 import QtQuick
0002 import QtQuick.Controls
0003 import QtQuick.Layouts
0004 
0005 import org.mauikit.controls 1.3 as Maui
0006 
0007 /**
0008  * @inherit InfoDialog
0009  * @brief An InfoDialog with a text entry field.
0010  * 
0011  *  This control inherits from MauiKit InfoDialog, to checkout its inherited properties refer to docs.
0012  * 
0013  *  This dialog can have information labels and icon/image, any number of children, and more. Refer to the structure of the Info Dialog.
0014  *  @see InfoDialog::structure Structure
0015  *  
0016  *  @image html Misc/inputdialog.png
0017  *  
0018  * @code
0019  * Maui.InputDialog
0020  * {
0021  *    id: _dialog
0022  *    title: "Hello"
0023  *    message: "An input dialog that request some information ot be entered."
0024  * 
0025  *    template.iconSource: "dialog-question"
0026  *    textEntry.placeholderText: "Give me a name."
0027  * 
0028  *    onRejected: close()
0029  *    onFinished: (text) => console.log(text)
0030  * }
0031  * @endcode
0032  * 
0033  * <a href="https://invent.kde.org/maui/mauikit/-/blob/qt6-2/examples/InputDialog.qml">You can find a more complete example at this link.</a> 
0034  */
0035 Maui.InfoDialog
0036 {
0037     id: control
0038     
0039     /**
0040      * @brief An alias to acces the entry field handled by a QQC2 TextField control.
0041      * @note See Qt documentation on TextField for further information on its properties.
0042      * @property TextField InputDialog::textEntry
0043      */
0044     property alias textEntry: _textEntry
0045     
0046     /**
0047      * @brief Emitted when the dialog has been accepted. 
0048      * This will depend on keeping the `standardButtons` as they are, or setting one that triggers the accepted role.
0049      * @note For more information on the standard buttons ad their roles, checkout Qt Dialog docs.
0050      * @param The text entered in the text entry field.
0051      */
0052     signal finished(string text)
0053     
0054     standardButtons: Dialog.Ok | Dialog.Cancel
0055     
0056     TextField
0057     {
0058         id: _textEntry
0059         Layout.fillWidth: true
0060         onAccepted: control.standardButton(Dialog.Ok).forceActiveFocus()
0061     }
0062     
0063     onAccepted: 
0064      {
0065         finished(textEntry.text)
0066         textEntry.clear()
0067         close()
0068     }
0069     
0070     onRejected:
0071     {
0072         textEntry.clear()
0073         control.close()
0074     }
0075     
0076     onOpened:
0077     {
0078         textEntry.forceActiveFocus()
0079         textEntry.selectAll()
0080     }   
0081 }