ui/qt/text.cpp

changeset 57
ddfd6b90cc54
parent 56
87e3a5dc66dd
child 66
8d490d97aab8
equal deleted inserted replaced
56:87e3a5dc66dd 57:ddfd6b90cc54
31 31
32 #include "../common/context.h" 32 #include "../common/context.h"
33 #include "../common/document.h" 33 #include "../common/document.h"
34 34
35 UIWIDGET ui_textarea(UiObject *obj, UiText *value) { 35 UIWIDGET ui_textarea(UiObject *obj, UiText *value) {
36 UiContainer *ct = uic_get_current_container(obj); 36 QTextDocument *txtdoc = value && value->obj ? (QTextDocument*)value->obj : new QTextDocument();
37 QTextEdit *textedit = new QTextEdit();
38 ct->add((textedit));
39 37
40 if(value) { 38 if(value) {
41 if(value->value) { 39 if(value->value && value->obj) {
42 // TODO: set text and free old value 40 ui_textarea_set(value, value->value);
43 } 41 }
44 42
45 value->get = ui_textarea_get; 43 value->get = ui_textarea_get;
46 value->set = ui_textarea_set; 44 value->set = ui_textarea_set;
47 value->getsubstr = ui_textarea_getsubstr; 45 value->getsubstr = ui_textarea_getsubstr;
48 value->insert = ui_textarea_insert; 46 value->insert = ui_textarea_insert;
49 value->position = ui_textarea_position; 47 value->position = ui_textarea_position;
50 value->selection = ui_textarea_selection; 48 value->selection = ui_textarea_selection;
51 value->length = ui_textarea_length; 49 value->length = ui_textarea_length;
52 value->remove = ui_textarea_remove; 50 value->remove = ui_textarea_remove;
53 value->obj = textedit->document(); 51 value->obj = txtdoc;
54 value->value = NULL; 52 value->value = NULL;
55 } 53 }
54
55 UiContainer *ct = uic_get_current_container(obj);
56 QTextEdit *textedit = new QTextEdit();
57 textedit->setDocument(txtdoc);
58 ct->add((textedit));
56 59
57 return textedit; 60 return textedit;
58 } 61 }
59 62
60 UIWIDGET ui_textarea_nv(UiObject *obj, char *varname) { 63 UIWIDGET ui_textarea_nv(UiObject *obj, char *varname) {
81 text->value = strdup(cstr); 84 text->value = strdup(cstr);
82 return text->value; 85 return text->value;
83 } 86 }
84 87
85 void ui_textarea_set(UiText *text, char *str) { 88 void ui_textarea_set(UiText *text, char *str) {
89 // set text
90 QTextDocument *doc = (QTextDocument*)text->obj;
91 QString qstr = QString::fromUtf8(str);
92 doc->setPlainText(qstr);
93 // cleanup
86 if(text->value) { 94 if(text->value) {
87 free(text->value); 95 free(text->value);
88 } 96 }
89 text->value = NULL; 97 text->value = NULL;
90
91 QTextDocument *doc = (QTextDocument*)text->obj;
92 QString qstr = QString::fromUtf8(str);
93 doc->setPlainText(qstr);
94 } 98 }
95 99
96 char* ui_textarea_getsubstr(UiText *text, int begin, int end) { 100 char* ui_textarea_getsubstr(UiText *text, int begin, int end) {
97 QTextDocument *doc = (QTextDocument*)text->obj; 101 QTextDocument *doc = (QTextDocument*)text->obj;
98 return NULL; // TODO 102 return NULL; // TODO

mercurial