ui/qt/model.cpp

changeset 516
4b31c74666d7
parent 130
212b63dd61be
--- a/ui/qt/model.cpp	Wed Mar 26 20:27:20 2025 +0100
+++ b/ui/qt/model.cpp	Wed Mar 26 20:39:04 2025 +0100
@@ -28,143 +28,3 @@
 
 #include "model.h"
 
-UiListSelection* listSelection(QItemSelectionModel *s) {
-    UiListSelection *selection = new UiListSelection();
-    
-    QModelIndexList list = s->selectedRows();
-    selection->count = list.count();
-    if(selection->count > 0) {
-        selection->rows = new int[selection->count];
-    }
-    
-    QModelIndex index;
-    int i=0;
-    foreach(index, list) {
-        selection->rows[i] = index.row();
-        i++;
-    }
-    return selection;
-}
-
-ListModel::ListModel(UiObject* obj, QListView* view, UiListPtr* list, ui_model_getvalue_f getvalue, ui_callback f, void* userdata) {
-    this->obj = obj;
-    this->view = view;
-    this->list = list;
-    this->getvalue = getvalue;
-    this->callback = f;
-    this->userdata = userdata;
-}
-
-int ListModel::rowCount(const QModelIndex& parent) const {
-    return list->list->count(list->list);
-}
-
-QVariant ListModel::data(const QModelIndex &index, int role) const {
-    if(role == Qt::DisplayRole) {
-        UiList *ls = list->list;
-        void *rowData = ls->get(ls, index.row());
-        if(rowData && getvalue) {
-            void *value = getvalue(rowData, 0);
-            return QString::fromUtf8((char*)value); 
-        }
-    }
-    return QVariant();
-}
-
-void ListModel::selectionChanged(const QItemSelection& selected, const QItemSelection& deselected) {
-    UiListSelection *selection = listSelection(view->selectionModel());
-    
-    UiEvent e;
-    e.obj = obj;
-    e.window = obj->window;
-    e.document = obj->ctx->document;
-    e.eventdata = selection;
-    e.intval = selection->count > 0 ? selection->rows[0] : -1;
-    callback(&e, userdata);
-    
-    if(selection->count > 0) {
-        delete selection->rows;
-    }
-    delete selection;
-}
-
-TableModel::TableModel(UiObject *obj, QTreeView *view, UiListPtr *list, UiModelInfo *info) {
-    this->obj = obj;
-    this->list = list;
-    this->info = info;
-    this->view = view;
-}
-
-int TableModel::rowCount(const QModelIndex &parent) const {
-    return list->list->count(list->list);
-}
-
-int TableModel::columnCount(const QModelIndex &parent) const {
-    return info->columns;
-}
-
-QVariant TableModel::data(const QModelIndex &index, int role) const {
-    if(role == Qt::DisplayRole) {
-        UiList *ls = list->list;
-        void *rowData = ls->get(ls, index.row());
-        if(rowData && info->getvalue) {
-            void *value = info->getvalue(rowData, index.column());
-            switch(info->types[index.column()]) {
-                case UI_STRING: {
-                    return QString::fromUtf8((char*)value); 
-                }
-                case UI_INTEGER: {
-                    int *intptr = (int*)value;
-                    return QVariant(*intptr);
-                }
-            }
-        }
-    }
-    return QVariant();
-}
-
-QVariant TableModel::headerData(int section, Qt::Orientation orientation, int role) const {
-    if(role == Qt::DisplayRole) {
-        char *label = info->titles[section];
-        return QString::fromUtf8(label);
-    }
-    return QVariant();
-}
-
-void TableModel::update() {
-    emit dataChanged(QModelIndex(),QModelIndex());
-}
-
-void TableModel::selectionChanged(const QItemSelection& selected, const QItemSelection& deselected) {
-    UiListSelection *selection = listSelection(view->selectionModel());
-    
-    UiEvent e;
-    e.obj = obj;
-    e.window = obj->window;
-    e.document = obj->ctx->document;
-    e.eventdata = selection;
-    e.intval = selection->count > 0 ? selection->rows[0] : -1;
-    info->selection(&e, info->userdata);
-    
-    if(selection->count > 0) {
-        delete selection->rows;
-    }
-    delete selection;
-}
-
-void TableModel::activate(const QModelIndex &) {
-    UiListSelection *selection = listSelection(view->selectionModel());
-    
-    UiEvent e;
-    e.obj = obj;
-    e.window = obj->window;
-    e.document = obj->ctx->document;
-    e.eventdata = selection;
-    e.intval = selection->count > 0 ? selection->rows[0] : -1;
-    info->activate(&e, info->userdata);
-    
-    if(selection->count > 0) {
-        delete selection->rows;
-    }
-    delete selection;
-}

mercurial