ui/qt/tree.cpp

changeset 130
212b63dd61be
parent 72
a00b46d92c54
equal deleted inserted replaced
129:5babf09f5f19 130:212b63dd61be
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 }

mercurial