QxOrm  1.4.3
C++ Object Relational Mapping library

qx::IxModel : interface to manage Qt model/view architecture with classes registered into QxOrm context (Qt widgets and/or QML views) More...

#include <IxModel.h>

Inheritance diagram for qx::IxModel:
qx::QxModel< T > qx::QxModelService< T, S >

List of all members.

Public Types

enum  e_auto_update_database { e_no_auto_update, e_auto_update_on_field_change }
typedef QHash< QString, IxModel * > type_relation_by_name
typedef QList
< type_relation_by_name
type_lst_relation_by_name

Public Member Functions

 IxModel (QObject *parent=0)
virtual ~IxModel ()
IxClassgetClass () const
IxCollectiongetCollection () const
QSqlDatabase getDatabase () const
QSqlError getLastError () const
Q_INVOKABLE QString getLastErrorAsString () const
Q_INVOKABLE QStringList getListOfColumns () const
QHash< QString, QString > getListOfHeaders () const
 Obsolete : use headerData() instead.
IxDataMembergetDataMember (int column) const
Q_INVOKABLE QString getDataMemberKey (int column) const
Q_INVOKABLE int getRowCount () const
Q_INVOKABLE QVariant getModelValue (int row, const QString &column) const
Q_INVOKABLE int getColumnIndex (const QString &sColumnName) const
Q_INVOKABLE int getAutoUpdateDatabase_ () const
e_auto_update_database getAutoUpdateDatabase () const
Q_INVOKABLE void dumpModel (bool bJsonFormat=true) const
Q_INVOKABLE QObject * cloneModel ()
void setDatabase (const QSqlDatabase &db)
Q_INVOKABLE void setListOfColumns (const QStringList &lst)
void setListOfHeaders (const QHash< QString, QString > &lst)
 Obsolete : use setHeaderData() instead.
Q_INVOKABLE bool setModelValue (int row, const QString &column, const QVariant &value)
void setParentModel (IxModel *pParent)
Q_INVOKABLE void setAutoUpdateDatabase_ (int i)
void setAutoUpdateDatabase (e_auto_update_database e)
Q_INVOKABLE QString toJson (int row=-1) const
 On QML side, use JSON.parse() to create a javascript object after calling this qx::IxModel::toJson() method.
Q_INVOKABLE bool fromJson (const QString &json, int row=-1)
 On QML side, use JSON.stringify() on a javascript object before calling this qx::IxModel::fromJson() method.
Q_INVOKABLE QVariant getRelationshipValues (int row, const QString &relation, bool bLoadFromDatabase=false, const QString &sAppendRelations=QString())
 Depending on relationship type (1-1, 1-n, n-1, n-n) : can return a QVariantMap type or a QVariantList type.
Q_INVOKABLE bool setRelationshipValues (int row, const QString &relation, const QVariant &values)
 Depending on relationship type (1-1, 1-n, n-1, n-n) : values parameter can be a QVariantMap type or a QVariantList type.
virtual long qxCount (const qx::QxSqlQuery &query=qx::QxSqlQuery(), QSqlDatabase *pDatabase=NULL)=0
virtual QSqlError qxCount (long &lCount, const qx::QxSqlQuery &query=qx::QxSqlQuery(), QSqlDatabase *pDatabase=NULL)=0
virtual QSqlError qxFetchById (const QVariant &id, const QStringList &relation=QStringList(), QSqlDatabase *pDatabase=NULL)=0
virtual QSqlError qxFetchAll (const QStringList &relation=QStringList(), QSqlDatabase *pDatabase=NULL)=0
virtual QSqlError qxFetchByQuery (const qx::QxSqlQuery &query, const QStringList &relation=QStringList(), QSqlDatabase *pDatabase=NULL)=0
virtual QSqlError qxFetchRow (int row, const QStringList &relation=QStringList(), QSqlDatabase *pDatabase=NULL)=0
virtual QSqlError qxInsert (const QStringList &relation=QStringList(), QSqlDatabase *pDatabase=NULL)=0
virtual QSqlError qxInsertRow (int row, const QStringList &relation=QStringList(), QSqlDatabase *pDatabase=NULL)=0
virtual QSqlError qxUpdate (const qx::QxSqlQuery &query=qx::QxSqlQuery(), const QStringList &relation=QStringList(), QSqlDatabase *pDatabase=NULL)=0
virtual QSqlError qxUpdateRow (int row, const qx::QxSqlQuery &query=qx::QxSqlQuery(), const QStringList &relation=QStringList(), QSqlDatabase *pDatabase=NULL)=0
virtual QSqlError qxSave (const QStringList &relation=QStringList(), QSqlDatabase *pDatabase=NULL)=0
virtual QSqlError qxSaveRow (int row, const QStringList &relation=QStringList(), QSqlDatabase *pDatabase=NULL)=0
virtual QSqlError qxDeleteById (const QVariant &id, QSqlDatabase *pDatabase=NULL)=0
virtual QSqlError qxDeleteAll (QSqlDatabase *pDatabase=NULL)=0
virtual QSqlError qxDeleteByQuery (const qx::QxSqlQuery &query, QSqlDatabase *pDatabase=NULL)=0
virtual QSqlError qxDeleteRow (int row, QSqlDatabase *pDatabase=NULL)=0
virtual QSqlError qxDestroyById (const QVariant &id, QSqlDatabase *pDatabase=NULL)=0
virtual QSqlError qxDestroyAll (QSqlDatabase *pDatabase=NULL)=0
virtual QSqlError qxDestroyByQuery (const qx::QxSqlQuery &query, QSqlDatabase *pDatabase=NULL)=0
virtual QSqlError qxDestroyRow (int row, QSqlDatabase *pDatabase=NULL)=0
virtual QSqlError qxExecuteQuery (qx::QxSqlQuery &query, QSqlDatabase *pDatabase=NULL)=0
virtual qx_bool qxExist (const QVariant &id, QSqlDatabase *pDatabase=NULL)=0
virtual qx::QxInvalidValueX qxValidate (const QStringList &groups=QStringList())=0
virtual qx::QxInvalidValueX qxValidateRow (int row, const QStringList &groups=QStringList())=0
Q_INVOKABLE int qxCount_ (const QString &sQuery)
Q_INVOKABLE bool qxFetchById_ (const QVariant &id, const QStringList &relation=QStringList())
Q_INVOKABLE bool qxFetchAll_ (const QStringList &relation=QStringList())
Q_INVOKABLE bool qxFetchByQuery_ (const QString &sQuery, const QStringList &relation=QStringList())
Q_INVOKABLE bool qxFetchRow_ (int row, const QStringList &relation=QStringList())
Q_INVOKABLE bool qxInsert_ (const QStringList &relation=QStringList())
Q_INVOKABLE bool qxInsertRow_ (int row, const QStringList &relation=QStringList())
Q_INVOKABLE bool qxUpdate_ (const QString &sQuery, const QStringList &relation=QStringList())
Q_INVOKABLE bool qxUpdateRow_ (int row, const QString &sQuery, const QStringList &relation=QStringList())
Q_INVOKABLE bool qxSave_ (const QStringList &relation=QStringList())
Q_INVOKABLE bool qxSaveRow_ (int row, const QStringList &relation=QStringList())
Q_INVOKABLE bool qxDeleteById_ (const QVariant &id)
Q_INVOKABLE bool qxDeleteAll_ ()
Q_INVOKABLE bool qxDeleteByQuery_ (const QString &sQuery)
Q_INVOKABLE bool qxDeleteRow_ (int row)
Q_INVOKABLE bool qxDestroyById_ (const QVariant &id)
Q_INVOKABLE bool qxDestroyAll_ ()
Q_INVOKABLE bool qxDestroyByQuery_ (const QString &sQuery)
Q_INVOKABLE bool qxDestroyRow_ (int row)
Q_INVOKABLE bool qxExecuteQuery_ (const QString &sQuery)
Q_INVOKABLE bool qxExist_ (const QVariant &id)
Q_INVOKABLE QString qxValidate_ (const QStringList &groups=QStringList())
Q_INVOKABLE QString qxValidateRow_ (int row, const QStringList &groups=QStringList())
Q_INVOKABLE void clear (bool bUpdateColumns=false)
virtual int rowCount (const QModelIndex &parent=QModelIndex()) const
virtual int columnCount (const QModelIndex &parent=QModelIndex()) const
virtual QModelIndex index (int row, int column, const QModelIndex &parent=QModelIndex()) const
virtual QModelIndex parent (const QModelIndex &index) const
virtual bool hasChildren (const QModelIndex &parent=QModelIndex()) const
virtual QVariant headerData (int section, Qt::Orientation orientation, int role=Qt::DisplayRole) const
virtual Qt::ItemFlags flags (const QModelIndex &index) const
virtual Qt::DropActions supportedDropActions () const
virtual bool removeRows (int row, int count, const QModelIndex &parent=QModelIndex())
virtual bool setHeaderData (int section, Qt::Orientation orientation, const QVariant &value, int role=Qt::EditRole)
bool setHeaderData (const QString &sColumnName, const QVariant &value, int role=Qt::EditRole)

Protected Member Functions

void raiseEvent_headerDataChanged (Qt::Orientation orientation, int first, int last)
void raiseEvent_dataChanged (const QModelIndex &topLeft, const QModelIndex &bottomRight)
void raiseEvent_layoutAboutToBeChanged ()
void raiseEvent_layoutChanged ()
virtual QObject * cloneModelImpl ()=0
virtual void dumpModelImpl (bool bJsonFormat) const =0
virtual void syncNestedModel (int row, const QStringList &relation)
virtual void syncAllNestedModel (const QStringList &relation)
void syncNestedModelRecursive (IxModel *pNestedModel, const QStringList &relation)
void generateRoleNames ()
QSqlDatabase * database (QSqlDatabase *other)
IxModelgetChild (long row, const QString &relation)
void insertChild (long row, const QString &relation, IxModel *pChild)
void removeListOfChild (long row)
virtual QString toJson_Helper (int row) const =0
virtual bool fromJson_Helper (const QString &json, int row)=0
virtual QVariant getRelationshipValues_Helper (int row, const QString &relation, bool bLoadFromDatabase, const QString &sAppendRelations)=0
virtual bool setRelationshipValues_Helper (int row, const QString &relation, const QVariant &values)=0

Protected Attributes

IxClassm_pClass
 Class introspection registered into QxOrm context associated to the model.
IxDataMemberXm_pDataMemberX
 List of properties defined into QxOrm context.
IxDataMemberm_pDataMemberId
 Primary key (property id) defined into QxOrm context.
IxCollectionm_pCollection
 Interface to store a list of items.
QHash< int, QByteArray > m_lstRoleNames
 List of model's role names to expose data to QML.
QList< IxDataMember * > m_lstDataMember
 List of data member exposed by the model.
QHash< QString, int > m_lstDataMemberByKey
 List of data member key to get column index in model.
QHash< QString, QVariant > m_lstHeadersData
 List of headers data by role and data member key.
QStringList m_lstColumns
 List of columns exposed by the model (if empty, all columns)
QSqlDatabase m_database
 Database connexion to execute SQL queries (if empty, default database connexion)
QSqlError m_lastError
 Last SQL error.
IxModelm_pParent
 Parent model, NULL if current model is the root model.
type_lst_relation_by_name m_lstChild
 List of child model : QxEntityEditor uses this property to manage relationships and create complex data structure.
e_auto_update_database m_eAutoUpdateDatabase
 Auto-update database on field change (detected by the setData() method)

Detailed Description

qx::IxModel : interface to manage Qt model/view architecture with classes registered into QxOrm context (Qt widgets and/or QML views)

QxModelView module provides an easy way to work with Qt model/view engine with all classes registered into QxOrm context :

  • Qt widgets : QTableView or QListView for example to display/modify a database table content ;
  • QML : each property defined in QxOrm context is exposed to QML engine : QxModelView module makes easier integration between QML and databases.

qx::IxModel interface provides a generic way for all models linked to persistents classes registered into QxOrm context. All methods of this class prefixed by qx call functions from qx::dao namespace and then communicate with database.

The qxBlogModelView sample project in ./test/ directory of QxOrm package shows how to create quickly a model and associate it to the Qt model/view engine (first with a Qt widget, then with a QML view).

1- Here is an example to display/modify data from 'author' table (go to qxBlog tutorial for 'author' class definition) in a QTableView :

// Create a model and fetch all data from database
qx::IxModel * pModel = new qx::QxModel<author>();
pModel->qxFetchAll();

// Associate the model to a QTableView and display it
QTableView tableView;
tableView.setModel(pModel);
tableView.show();

2- Here is another example in QML (with Qt5, QxModelView module works fine with Qt4 too) :

// Create a model and fetch all data from database
qx::IxModel * pModel = new qx::QxModel<author>();
pModel->qxFetchAll();

// Associate the model to a QML view and display it
QQuickView qmlView;
qmlView.rootContext()->setContextProperty("myModel", pModel);
qmlView.setSource(QUrl("qrc:/documents/main.qml"));
qmlView.show();

And here is the 'main.qml' file content :

import QtQuick 2.1
import QtQuick.Controls 1.0

Item {
   width: 400
   height: 300
   Row {
      height: 20
      spacing: 20
      Button {
         text: "Clear"
         onClicked: myModel.clear()
      }
      Button {
         text: "Fetch All"
         onClicked: myModel.qxFetchAll_()
      }
      Button {
         text: "Save"
         onClicked: myModel.qxSave_()
      }
   }
   ListView {
      y: 30
      height: 270
      model: myModel
      delegate: Row {
         height: 20
         spacing: 10
         Text { text: "id: " + author_id }
         TextField {
            text: name
            onTextChanged: name = text
         }
      }
   }
}

As you can see in the 'main.qml' file, 'author_id' and 'name' properties of 'author' model ('myModel' variable) can be automatically read and write (because they are registered into QxOrm context). Moreover, qx::IxModel interface provides a list of methods for QML side (Q_INVOKABLE) to communicate with database : for example, the 'Save' button will save the model in database without having to write a C++ function.

Note : a QxEntityEditor plugin generates automatically the code to manage models with relationships. Then it is possible to work with nested C++ models.

Definition at line 150 of file IxModel.h.


Member Typedef Documentation

Definition at line 160 of file IxModel.h.

typedef QHash<QString, IxModel *> qx::IxModel::type_relation_by_name

Definition at line 159 of file IxModel.h.


Member Enumeration Documentation

Enumerator:
e_no_auto_update 
e_auto_update_on_field_change 

Definition at line 157 of file IxModel.h.


Constructor & Destructor Documentation

qx::IxModel::IxModel ( QObject *  parent = 0)
virtual qx::IxModel::~IxModel ( ) [virtual]

Member Function Documentation

Q_INVOKABLE void qx::IxModel::clear ( bool  bUpdateColumns = false)
Q_INVOKABLE QObject* qx::IxModel::cloneModel ( )
virtual QObject* qx::IxModel::cloneModelImpl ( ) [protected, pure virtual]

Implemented in qx::QxModel< T >.

virtual int qx::IxModel::columnCount ( const QModelIndex &  parent = QModelIndex()) const [virtual]
QSqlDatabase* qx::IxModel::database ( QSqlDatabase *  other) [protected]
Q_INVOKABLE void qx::IxModel::dumpModel ( bool  bJsonFormat = true) const
virtual void qx::IxModel::dumpModelImpl ( bool  bJsonFormat) const [protected, pure virtual]

Implemented in qx::QxModel< T >.

virtual Qt::ItemFlags qx::IxModel::flags ( const QModelIndex &  index) const [virtual]
Q_INVOKABLE bool qx::IxModel::fromJson ( const QString &  json,
int  row = -1 
)

On QML side, use JSON.stringify() on a javascript object before calling this qx::IxModel::fromJson() method.

virtual bool qx::IxModel::fromJson_Helper ( const QString &  json,
int  row 
) [protected, pure virtual]

Implemented in qx::QxModel< T >.

void qx::IxModel::generateRoleNames ( ) [protected]
e_auto_update_database qx::IxModel::getAutoUpdateDatabase ( ) const
Q_INVOKABLE int qx::IxModel::getAutoUpdateDatabase_ ( ) const
IxModel* qx::IxModel::getChild ( long  row,
const QString &  relation 
) [protected]
IxClass* qx::IxModel::getClass ( ) const
IxCollection* qx::IxModel::getCollection ( ) const
Q_INVOKABLE int qx::IxModel::getColumnIndex ( const QString &  sColumnName) const
QSqlDatabase qx::IxModel::getDatabase ( ) const
IxDataMember* qx::IxModel::getDataMember ( int  column) const
Q_INVOKABLE QString qx::IxModel::getDataMemberKey ( int  column) const
QSqlError qx::IxModel::getLastError ( ) const
Q_INVOKABLE QString qx::IxModel::getLastErrorAsString ( ) const
Q_INVOKABLE QStringList qx::IxModel::getListOfColumns ( ) const
QHash<QString, QString> qx::IxModel::getListOfHeaders ( ) const

Obsolete : use headerData() instead.

Q_INVOKABLE QVariant qx::IxModel::getModelValue ( int  row,
const QString &  column 
) const
Q_INVOKABLE QVariant qx::IxModel::getRelationshipValues ( int  row,
const QString &  relation,
bool  bLoadFromDatabase = false,
const QString &  sAppendRelations = QString() 
)

Depending on relationship type (1-1, 1-n, n-1, n-n) : can return a QVariantMap type or a QVariantList type.

virtual QVariant qx::IxModel::getRelationshipValues_Helper ( int  row,
const QString &  relation,
bool  bLoadFromDatabase,
const QString &  sAppendRelations 
) [protected, pure virtual]
Q_INVOKABLE int qx::IxModel::getRowCount ( ) const
virtual bool qx::IxModel::hasChildren ( const QModelIndex &  parent = QModelIndex()) const [virtual]
virtual QVariant qx::IxModel::headerData ( int  section,
Qt::Orientation  orientation,
int  role = Qt::DisplayRole 
) const [virtual]
virtual QModelIndex qx::IxModel::index ( int  row,
int  column,
const QModelIndex &  parent = QModelIndex() 
) const [virtual]
void qx::IxModel::insertChild ( long  row,
const QString &  relation,
IxModel pChild 
) [protected]
virtual QModelIndex qx::IxModel::parent ( const QModelIndex &  index) const [virtual]
virtual long qx::IxModel::qxCount ( const qx::QxSqlQuery query = qx::QxSqlQuery(),
QSqlDatabase *  pDatabase = NULL 
) [pure virtual]
virtual QSqlError qx::IxModel::qxCount ( long &  lCount,
const qx::QxSqlQuery query = qx::QxSqlQuery(),
QSqlDatabase *  pDatabase = NULL 
) [pure virtual]
Q_INVOKABLE int qx::IxModel::qxCount_ ( const QString &  sQuery)
virtual QSqlError qx::IxModel::qxDeleteAll ( QSqlDatabase *  pDatabase = NULL) [pure virtual]
Q_INVOKABLE bool qx::IxModel::qxDeleteAll_ ( )
virtual QSqlError qx::IxModel::qxDeleteById ( const QVariant &  id,
QSqlDatabase *  pDatabase = NULL 
) [pure virtual]
Q_INVOKABLE bool qx::IxModel::qxDeleteById_ ( const QVariant &  id)
virtual QSqlError qx::IxModel::qxDeleteByQuery ( const qx::QxSqlQuery query,
QSqlDatabase *  pDatabase = NULL 
) [pure virtual]
Q_INVOKABLE bool qx::IxModel::qxDeleteByQuery_ ( const QString &  sQuery)
virtual QSqlError qx::IxModel::qxDeleteRow ( int  row,
QSqlDatabase *  pDatabase = NULL 
) [pure virtual]
Q_INVOKABLE bool qx::IxModel::qxDeleteRow_ ( int  row)
virtual QSqlError qx::IxModel::qxDestroyAll ( QSqlDatabase *  pDatabase = NULL) [pure virtual]
Q_INVOKABLE bool qx::IxModel::qxDestroyAll_ ( )
virtual QSqlError qx::IxModel::qxDestroyById ( const QVariant &  id,
QSqlDatabase *  pDatabase = NULL 
) [pure virtual]
Q_INVOKABLE bool qx::IxModel::qxDestroyById_ ( const QVariant &  id)
virtual QSqlError qx::IxModel::qxDestroyByQuery ( const qx::QxSqlQuery query,
QSqlDatabase *  pDatabase = NULL 
) [pure virtual]
Q_INVOKABLE bool qx::IxModel::qxDestroyByQuery_ ( const QString &  sQuery)
virtual QSqlError qx::IxModel::qxDestroyRow ( int  row,
QSqlDatabase *  pDatabase = NULL 
) [pure virtual]
Q_INVOKABLE bool qx::IxModel::qxDestroyRow_ ( int  row)
virtual QSqlError qx::IxModel::qxExecuteQuery ( qx::QxSqlQuery query,
QSqlDatabase *  pDatabase = NULL 
) [pure virtual]
Q_INVOKABLE bool qx::IxModel::qxExecuteQuery_ ( const QString &  sQuery)
virtual qx_bool qx::IxModel::qxExist ( const QVariant &  id,
QSqlDatabase *  pDatabase = NULL 
) [pure virtual]
Q_INVOKABLE bool qx::IxModel::qxExist_ ( const QVariant &  id)
virtual QSqlError qx::IxModel::qxFetchAll ( const QStringList &  relation = QStringList(),
QSqlDatabase *  pDatabase = NULL 
) [pure virtual]
Q_INVOKABLE bool qx::IxModel::qxFetchAll_ ( const QStringList &  relation = QStringList())
virtual QSqlError qx::IxModel::qxFetchById ( const QVariant &  id,
const QStringList &  relation = QStringList(),
QSqlDatabase *  pDatabase = NULL 
) [pure virtual]
Q_INVOKABLE bool qx::IxModel::qxFetchById_ ( const QVariant &  id,
const QStringList &  relation = QStringList() 
)
virtual QSqlError qx::IxModel::qxFetchByQuery ( const qx::QxSqlQuery query,
const QStringList &  relation = QStringList(),
QSqlDatabase *  pDatabase = NULL 
) [pure virtual]
Q_INVOKABLE bool qx::IxModel::qxFetchByQuery_ ( const QString &  sQuery,
const QStringList &  relation = QStringList() 
)
virtual QSqlError qx::IxModel::qxFetchRow ( int  row,
const QStringList &  relation = QStringList(),
QSqlDatabase *  pDatabase = NULL 
) [pure virtual]
Q_INVOKABLE bool qx::IxModel::qxFetchRow_ ( int  row,
const QStringList &  relation = QStringList() 
)
virtual QSqlError qx::IxModel::qxInsert ( const QStringList &  relation = QStringList(),
QSqlDatabase *  pDatabase = NULL 
) [pure virtual]
Q_INVOKABLE bool qx::IxModel::qxInsert_ ( const QStringList &  relation = QStringList())
virtual QSqlError qx::IxModel::qxInsertRow ( int  row,
const QStringList &  relation = QStringList(),
QSqlDatabase *  pDatabase = NULL 
) [pure virtual]
Q_INVOKABLE bool qx::IxModel::qxInsertRow_ ( int  row,
const QStringList &  relation = QStringList() 
)
virtual QSqlError qx::IxModel::qxSave ( const QStringList &  relation = QStringList(),
QSqlDatabase *  pDatabase = NULL 
) [pure virtual]
Q_INVOKABLE bool qx::IxModel::qxSave_ ( const QStringList &  relation = QStringList())
virtual QSqlError qx::IxModel::qxSaveRow ( int  row,
const QStringList &  relation = QStringList(),
QSqlDatabase *  pDatabase = NULL 
) [pure virtual]
Q_INVOKABLE bool qx::IxModel::qxSaveRow_ ( int  row,
const QStringList &  relation = QStringList() 
)
virtual QSqlError qx::IxModel::qxUpdate ( const qx::QxSqlQuery query = qx::QxSqlQuery(),
const QStringList &  relation = QStringList(),
QSqlDatabase *  pDatabase = NULL 
) [pure virtual]
Q_INVOKABLE bool qx::IxModel::qxUpdate_ ( const QString &  sQuery,
const QStringList &  relation = QStringList() 
)
virtual QSqlError qx::IxModel::qxUpdateRow ( int  row,
const qx::QxSqlQuery query = qx::QxSqlQuery(),
const QStringList &  relation = QStringList(),
QSqlDatabase *  pDatabase = NULL 
) [pure virtual]
Q_INVOKABLE bool qx::IxModel::qxUpdateRow_ ( int  row,
const QString &  sQuery,
const QStringList &  relation = QStringList() 
)
virtual qx::QxInvalidValueX qx::IxModel::qxValidate ( const QStringList &  groups = QStringList()) [pure virtual]
Q_INVOKABLE QString qx::IxModel::qxValidate_ ( const QStringList &  groups = QStringList())
virtual qx::QxInvalidValueX qx::IxModel::qxValidateRow ( int  row,
const QStringList &  groups = QStringList() 
) [pure virtual]
Q_INVOKABLE QString qx::IxModel::qxValidateRow_ ( int  row,
const QStringList &  groups = QStringList() 
)
void qx::IxModel::raiseEvent_dataChanged ( const QModelIndex &  topLeft,
const QModelIndex &  bottomRight 
) [protected]
void qx::IxModel::raiseEvent_headerDataChanged ( Qt::Orientation  orientation,
int  first,
int  last 
) [protected]
void qx::IxModel::raiseEvent_layoutAboutToBeChanged ( ) [protected]
void qx::IxModel::raiseEvent_layoutChanged ( ) [protected]
void qx::IxModel::removeListOfChild ( long  row) [protected]
virtual bool qx::IxModel::removeRows ( int  row,
int  count,
const QModelIndex &  parent = QModelIndex() 
) [virtual]
virtual int qx::IxModel::rowCount ( const QModelIndex &  parent = QModelIndex()) const [virtual]
void qx::IxModel::setAutoUpdateDatabase ( e_auto_update_database  e)
Q_INVOKABLE void qx::IxModel::setAutoUpdateDatabase_ ( int  i)
void qx::IxModel::setDatabase ( const QSqlDatabase &  db)
virtual bool qx::IxModel::setHeaderData ( int  section,
Qt::Orientation  orientation,
const QVariant &  value,
int  role = Qt::EditRole 
) [virtual]
bool qx::IxModel::setHeaderData ( const QString &  sColumnName,
const QVariant &  value,
int  role = Qt::EditRole 
)
Q_INVOKABLE void qx::IxModel::setListOfColumns ( const QStringList &  lst)
void qx::IxModel::setListOfHeaders ( const QHash< QString, QString > &  lst)

Obsolete : use setHeaderData() instead.

Q_INVOKABLE bool qx::IxModel::setModelValue ( int  row,
const QString &  column,
const QVariant &  value 
)
void qx::IxModel::setParentModel ( IxModel pParent)
Q_INVOKABLE bool qx::IxModel::setRelationshipValues ( int  row,
const QString &  relation,
const QVariant &  values 
)

Depending on relationship type (1-1, 1-n, n-1, n-n) : values parameter can be a QVariantMap type or a QVariantList type.

virtual bool qx::IxModel::setRelationshipValues_Helper ( int  row,
const QString &  relation,
const QVariant &  values 
) [protected, pure virtual]

Implemented in qx::QxModel< T >.

virtual Qt::DropActions qx::IxModel::supportedDropActions ( ) const [virtual]
virtual void qx::IxModel::syncAllNestedModel ( const QStringList &  relation) [protected, virtual]
virtual void qx::IxModel::syncNestedModel ( int  row,
const QStringList &  relation 
) [protected, virtual]
void qx::IxModel::syncNestedModelRecursive ( IxModel pNestedModel,
const QStringList &  relation 
) [protected]
Q_INVOKABLE QString qx::IxModel::toJson ( int  row = -1) const

On QML side, use JSON.parse() to create a javascript object after calling this qx::IxModel::toJson() method.

virtual QString qx::IxModel::toJson_Helper ( int  row) const [protected, pure virtual]

Implemented in qx::QxModel< T >.


Member Data Documentation

QSqlDatabase qx::IxModel::m_database [protected]

Database connexion to execute SQL queries (if empty, default database connexion)

Definition at line 173 of file IxModel.h.

Auto-update database on field change (detected by the setData() method)

Definition at line 177 of file IxModel.h.

QSqlError qx::IxModel::m_lastError [protected]

Last SQL error.

Definition at line 174 of file IxModel.h.

List of child model : QxEntityEditor uses this property to manage relationships and create complex data structure.

Definition at line 176 of file IxModel.h.

QStringList qx::IxModel::m_lstColumns [protected]

List of columns exposed by the model (if empty, all columns)

Definition at line 172 of file IxModel.h.

List of data member exposed by the model.

Definition at line 169 of file IxModel.h.

QHash<QString, int> qx::IxModel::m_lstDataMemberByKey [protected]

List of data member key to get column index in model.

Definition at line 170 of file IxModel.h.

QHash<QString, QVariant> qx::IxModel::m_lstHeadersData [protected]

List of headers data by role and data member key.

Definition at line 171 of file IxModel.h.

QHash<int, QByteArray> qx::IxModel::m_lstRoleNames [protected]

List of model's role names to expose data to QML.

Definition at line 168 of file IxModel.h.

Class introspection registered into QxOrm context associated to the model.

Definition at line 164 of file IxModel.h.

Interface to store a list of items.

Definition at line 167 of file IxModel.h.

Primary key (property id) defined into QxOrm context.

Definition at line 166 of file IxModel.h.

List of properties defined into QxOrm context.

Definition at line 165 of file IxModel.h.

Parent model, NULL if current model is the root model.

Definition at line 175 of file IxModel.h.


The documentation for this class was generated from the following file: