implement passwordfield (QT)

6 days ago

author
Olaf Wintermann <olaf.wintermann@gmail.com>
date
Wed, 26 Mar 2025 22:20:27 +0100 (6 days ago)
changeset 524
ce7a198b54b0
parent 523
0797c87a2c02
child 525
878df45e6441

implement passwordfield (QT)

ui/qt/text.cpp file | annotate | diff | comparison | revisions
--- a/ui/qt/text.cpp	Wed Mar 26 22:16:53 2025 +0100
+++ b/ui/qt/text.cpp	Wed Mar 26 22:20:27 2025 +0100
@@ -37,13 +37,17 @@
 
 /* ------------------------------ TextField ------------------------------ */
 
-UIWIDGET ui_textfield_create(UiObject *obj, UiTextFieldArgs args) {
+static UIWIDGET create_textfield(UiObject *obj, UiTextFieldArgs args, bool password, bool frameless) {
     UiContainerPrivate *ctn = ui_obj_container(obj);
     UI_APPLY_LAYOUT(ctn->layout, args);
     
     QLineEdit *textfield = new QLineEdit();
     ctn->add(textfield, false);
     
+    if(password) {
+        textfield->setEchoMode(QLineEdit::Password);
+    }
+    
     UiVar* var = uic_widget_var(obj->ctx, obj->ctx, args.value, args.varname, UI_VAR_STRING);
     if(var) {
         UiString *value = (UiString*)var->value;
@@ -64,6 +68,18 @@
     return textfield;
 }
 
+UIWIDGET ui_textfield_create(UiObject *obj, UiTextFieldArgs args) {
+    return create_textfield(obj, args, false, false);
+}
+
+UIWIDGET ui_frameless_textfield_create(UiObject* obj, UiTextFieldArgs args) {
+    return create_textfield(obj, args, false, true);
+}
+
+UIWIDGET ui_passwordfield_create(UiObject* obj, UiTextFieldArgs args) {
+    return create_textfield(obj, args, true, false);
+}
+
 char* ui_textfield_get(UiString *str) {
     QLineEdit *textfield = (QLineEdit*)str->obj;
     QString qstr = textfield->text();

mercurial