Thank you very much for your answers
@dheerendra sure, here is the declaration of the class
class PresetModel : public QAbstractListModel
{
Q_OBJECT
private:
QQuickView * mp_view;
QList<Preset> m_preset_list;
/*!
* \brief constructeur par copie
*
* constructeur par copie privé
*
* \param [IN] air_presetModel : référence à l'objet à copier.
*/
PresetModel(const PresetModel& air_presetModel);
Preset* mp_preset_base;
public:
enum t_presetRole
{
NameRole = Qt::UserRole + 1
} mstruct_roles;
static const int ms_NameRole = Qt::UserRole +1;
/*!
* \brief constructeur
*
* \param [IN] aip_view : pointeur sur la QQuickView correspondant à la fenêtre principale
* \param [IN] aip_parent : parent QObject de la classe, null par défaut
*/
PresetModel(QQuickView* aip_view, QObject* aip_parent = nullptr);
/*!
* \brief donne le nombre d'éléments du model
*/
~PresetModel();
/*!
* \brief ajoute un modèle Preset à la fin de la QList
*
* \param [IN] aip_p : référence const sur le Preset à ajouter
*/
void addPreset(const Preset& air_p);
/*!
* \brief donne le nombre d'éléments du model
*
* \param [IN] air_parent : QModelIndex& qui localise les données dans le model de données
* \return int : nombre de lignes du parent
*/
int rowCount(const QModelIndex& air_parent = QModelIndex())const override;
/*!
* \brief donne accès à l'objet enregistré sous un certain index
*
* \param [IN] air_index : QModelIndex& qui localise les données dans le model de données
* _param [IN] ai_role : int correspondant au role. Aucune idée de ce que c'est que cette histoire
* \return QVariant : nom de l'Item enregistré à l'index donné si tout va bien. Sinon, un QVariant vide
*/
QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override;
/*!
* \brief getter de mstruct_roles
*
* \return t_presetRole : contenu de la structure. A savoir un integer
*/
t_presetRole roleName(void);
/*!
* \brief initilialise un élément de base dans la liste
*
*/
void setPresetBase(void);
/*!
* \brief
*
* \param ai_index correspond à la configuration à charger
*/
Q_INVOKABLE void applyPreset(int ai_index);
/*!
* \brief sauvegarde la configuration actuelle
*/
Q_INVOKABLE void savePreset(void);
/*!
* \brief charge les paramètres des items QML depuis un fichier
*
*/
bool loadPresetFromFile(void);
public slots:
void onPresetChanged();
};
Can you try registering the objects using setContextProperty & check it works ?
I tried again, the behaviour of the program is exactly the same. Do you think i should use 2 setContextProperty instead of setContextProperties ?
@J-Hilk Yes, the methods are public
Here is the definition of the method savePreset that can't get CALLED. As you can see, it's the simplest I can do.
void PresetModel::savePreset(void)
{
TRACE_DEBUG("presetModel::savePreset....................CALLED");
printf("but does nothing yet\n");
}