ui/qt/model.cpp

Sun, 20 Apr 2025 10:56:50 +0200

author
Olaf Wintermann <olaf.wintermann@gmail.com>
date
Sun, 20 Apr 2025 10:56:50 +0200
changeset 578
950d2e38957b
parent 577
c2e854820922
child 579
810b848e2e4f
permissions
-rw-r--r--

fix ui_image_load_* functions would not set the type to UI_IMAGE_OBJECT_TYPE in case UiGeneric is not bound to an widget

/*
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
 *
 * Copyright 2014 Olaf Wintermann. All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions are met:
 *
 *   1. Redistributions of source code must retain the above copyright
 *      notice, this list of conditions and the following disclaimer.
 *
 *   2. Redistributions in binary form must reproduce the above copyright
 *      notice, this list of conditions and the following disclaimer in the
 *      documentation and/or other materials provided with the distribution.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
 * POSSIBILITY OF SUCH DAMAGE.
 */

#include "model.h"


ListModel::ListModel(UiObject *obj, QListView *view, UiVar *var, ui_getvaluefunc getvalue, ui_callback f, void *userdata){
    this->obj = obj;
    this->view = view;
    this->var = var;
    this->getvalue = getvalue;
    this->callback = f;
    this->userdata = userdata;
}

int ListModel::rowCount(const QModelIndex& parent) const {
    UiList *list = (UiList*)var->value;
    return ui_list_count(list);
}

QVariant ListModel::data(const QModelIndex &index, int role) const {
    if(role == Qt::DisplayRole) {
        UiList *ls = (UiList*)var->value;
        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) {
    
}

mercurial