--- a/ui/qt/model.h Sun Apr 20 10:56:50 2025 +0200 +++ b/ui/qt/model.h Mon Apr 21 11:03:17 2025 +0200 @@ -44,15 +44,23 @@ class ListModel : public QAbstractListModel { Q_OBJECT + ui_getvaluefunc getvalue; + ui_callback onactivate; + void *onactivatedata; + ui_callback onselection; + void *onselectiondata; + +public: UiObject *obj; UiVar *var; - ui_getvaluefunc getvalue; - ui_callback callback; - void *userdata; QListView *view; -public: - ListModel(UiObject *obj, QListView *view, UiVar *var, ui_getvaluefunc getvalue, ui_callback f, void *userdata); + ListModel(UiObject *obj, QListView *view, UiVar *var, ui_getvaluefunc getvalue); + + void setActivationCallback(ui_callback f, void *userdata); + void setSelectionCallback(ui_callback f, void *userdata); + + void update(int row); int rowCount(const QModelIndex &parent = QModelIndex()) const; QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const; @@ -64,6 +72,15 @@ }; +UiListSelection ui_selection_model_to_selection(QItemSelectionModel *model); + +extern "C" { + + void ui_listmodel_update(UiList *list, int row); + void ui_listmodel_setselection(UiList *list, UiListSelection sel); + UiListSelection ui_listmodel_getselection(UiList *list); + +} #endif /* MODEL_H */