44 UIWIDGET ui_listview_var(UiObject *obj, UiListPtr *list, ui_model_getvalue_f getvalue, ui_callback f, void *udata) { |
44 UIWIDGET ui_listview_var(UiObject *obj, UiListPtr *list, ui_model_getvalue_f getvalue, ui_callback f, void *udata) { |
45 QListView *view = new QListView(); |
45 QListView *view = new QListView(); |
46 ListModel *model = new ListModel(obj, view, list, getvalue, f, udata); |
46 ListModel *model = new ListModel(obj, view, list, getvalue, f, udata); |
47 view->setModel(model); |
47 view->setModel(model); |
48 |
48 |
|
49 // TODO: observer update |
|
50 |
49 QItemSelectionModel *s = view->selectionModel(); |
51 QItemSelectionModel *s = view->selectionModel(); |
50 QObject::connect( |
52 QObject::connect( |
51 s, |
53 s, |
52 SIGNAL(selectionChanged(const QItemSelection &, const QItemSelection &)), |
54 SIGNAL(selectionChanged(const QItemSelection &, const QItemSelection &)), |
53 model, |
55 model, |
82 view->setModel(model); |
84 view->setModel(model); |
83 |
85 |
84 view->setItemsExpandable(false); |
86 view->setItemsExpandable(false); |
85 view->setRootIsDecorated(false); |
87 view->setRootIsDecorated(false); |
86 |
88 |
|
89 // TODO: observer update |
|
90 UiTableView *u = new UiTableView(); |
|
91 u->widget = view; |
|
92 u->model = model; |
|
93 list->list->observers = ui_add_observer( |
|
94 list->list->observers, |
|
95 (ui_callback)ui_table_update, |
|
96 u); |
|
97 |
87 view->setSelectionMode(QAbstractItemView::ExtendedSelection); |
98 view->setSelectionMode(QAbstractItemView::ExtendedSelection); |
88 QItemSelectionModel *s = view->selectionModel(); |
99 QItemSelectionModel *s = view->selectionModel(); |
89 QObject::connect( |
100 QObject::connect( |
90 s, |
101 s, |
91 SIGNAL(selectionChanged(const QItemSelection &, const QItemSelection &)), |
102 SIGNAL(selectionChanged(const QItemSelection &, const QItemSelection &)), |
101 UiContainer *ct = uic_get_current_container(obj); |
112 UiContainer *ct = uic_get_current_container(obj); |
102 ct->add(view, true); |
113 ct->add(view, true); |
103 return view; |
114 return view; |
104 } |
115 } |
105 |
116 |
|
117 void ui_table_update(UiEvent *event, UiTableView *view) { |
|
118 // TODO |
|
119 printf("update\n"); |
|
120 |
|
121 //view->model->update(); |
|
122 view->widget->setModel(NULL); |
|
123 view->widget->setModel(view->model); |
|
124 } |
|
125 |
106 UIWIDGET ui_table(UiObject *obj, UiList *list, UiModelInfo *modelinfo) { |
126 UIWIDGET ui_table(UiObject *obj, UiList *list, UiModelInfo *modelinfo) { |
107 UiListPtr *listptr = (UiListPtr*)ucx_mempool_malloc(obj->ctx->mempool, sizeof(UiListPtr)); |
127 UiListPtr *listptr = (UiListPtr*)ucx_mempool_malloc(obj->ctx->mempool, sizeof(UiListPtr)); |
108 listptr->list = list; |
128 listptr->list = list; |
109 return ui_table_var(obj, listptr, modelinfo); |
129 return ui_table_var(obj, listptr, modelinfo); |
110 } |
130 } |