--- a/ui/qt/model.cpp Sun Dec 07 11:07:29 2025 +0100 +++ b/ui/qt/model.cpp Sun Dec 07 11:27:44 2025 +0100 @@ -29,9 +29,23 @@ #include "model.h" -ListModel::ListModel(UiObject *obj, QListView *view, UiVar *var, ui_getvaluefunc2 getvalue, void *getvaluedata){ +ListModel::ListModel(UiObject *obj, QListView *view, UiVar *var, ui_getvaluefunc2 getvalue, void *getvaluedata) { this->obj = obj; - this->view = view; + this->listview = view; + this->combobox = nullptr; + this->var = var; + this->getvalue = getvalue; + this->getvaluedata = getvaluedata; + this->onactivate = nullptr; + this->onactivatedata = nullptr; + this->onselection = nullptr; + this->onselectiondata = nullptr; +} + +ListModel::ListModel(UiObject *obj, QComboBox *view, UiVar *var, ui_getvaluefunc2 getvalue, void *getvaluedata) { + this->obj = obj; + this->combobox = view; + this->listview = nullptr; this->var = var; this->getvalue = getvalue; this->getvaluedata = getvaluedata; @@ -85,7 +99,12 @@ } void ListModel::selectionChanged(const QItemSelection& selected, const QItemSelection& deselected) { - UiListSelection sel = ui_selection_model_to_selection(view->selectionModel()); + UiListSelection sel; + if(listview) { + sel = ui_selection_model_to_selection(listview->selectionModel()); + } else { + // TODO + } UiEvent event; event.obj = obj; @@ -257,10 +276,19 @@ QModelIndex index = model->index(sel.rows[i]); selection.select(index, index); } - model->view->selectionModel()->select(selection, QItemSelectionModel::ClearAndSelect); + if(model->listview) { + model->listview->selectionModel()->select(selection, QItemSelectionModel::ClearAndSelect); + } else if(model->combobox) { + // TODO + } } UiListSelection ui_listmodel_getselection(UiList *list) { ListModel *model = (ListModel*)list->obj; - return ui_selection_model_to_selection(model->view->selectionModel()); + if(model->listview) { + return ui_selection_model_to_selection(model->listview->selectionModel()); + } else { + UiListSelection sel = { 0, NULL }; + return sel; + } }