TableTreeModel class reference
[Model/View module]
Declaration
#include <QtLua/TableTreeModel>
namespace QtLua {
class TableTreeModel;
};
This class is a member of the QtLua namespace.
Description
This class can be used to expose lua tables content to Qt view widgets in a flat or hierarchical manner.
Lua tables and UserData objects with valid table operations are handled.
Lua tables can be edited from Qt views using this model. The TableTreeModel::Attribute flags can be used to finely control which editing actions are allowed. User input may be evaluated as a lua expression when editing a table entry.
Lua tables change may not update the model on the fly and the TableTreeModel::update function must be called to refresh views on heavy modifications. This is partially due to lack of lua mechanism to implement efficient table change event.
Usage example:
// code from examples/cpp/mvc/tabletreeview.cc:30
state = new QtLua::State();
state->openlib(QtLua::AllLibs);
// Create a new model and expose lua global table
model = new QtLua::TableTreeModel((*state)["_G"], QtLua::TableTreeModel::Recursive);
// Create Qt view widget
treeview = new QTreeView(0);
treeview->setModel(model);
setCentralWidget(treeview);

See also TableDialog class.
Members
Types
- enum Attribute
- typedef [...] Attributes
Functions
- TableTreeModel(const Value &root, TableTreeModel::Attributes attr, QObject *parent = [...])
- ~TableTreeModel()
- QModelIndex buddy(const QModelIndex &index) const
- int columnCount(const QModelIndex &parent) const
- QVariant data(const QModelIndex &index, int role) const
- Qt::ItemFlags flags(const QModelIndex &index) const
- TableTreeModel::Attributes get_attr(const QModelIndex &index) const
- Value get_value(const QModelIndex &index) const
- bool hasChildren(const QModelIndex &parent) const
- QVariant headerData(int section, Qt::Orientation orientation, int role) const
- bool insertRows(int row, int count, const QModelIndex &parent)
- QModelIndex parent(const QModelIndex &index) const
- bool removeRows(int row, int count, const QModelIndex &parent)
- int rowCount(const QModelIndex &parent) const
- bool setData(const QModelIndex &index, const QVariant &value, int role)
- void update()
Members detail
TableTreeModel(const Value &root, TableTreeModel::Attributes attr, QObject *parent = 0)
Create a new lua table model.
No documentation available
Specifies TableTreeModel behavior for a given lua table
Identifier | Value | Description |
---|---|---|
Recursive | 0 | Expose nested tables too. |
UserDataIter | 0 | Iterate over UserData objects too. |
HideType | 0 | Do not show entry type in an additionnal column. |
UnquoteKeys | 0 | Strip double quotes from string keys |
UnquoteValues | 0 | Strip double quotes from string values |
Editable | 0 | Allow editing exposed lua tables. |
EditFixedType | 0 | Prevent value type change when editing. |
EditLuaEval | 0 | Evaluate user input as a lua expression. |
EditInsert | 0 | Allow insertion of new entries. |
EditRemove | 0 | Allow deletion of existing entries. |
EditKey | 0 | Allow entry key update. |
EditAll | 0 | Editable, EditInsert, EditRemove and EditKey allowed |
See also TableTreeModel::Attributes typedef.
typedef TableTreeModel::Attribute Attributes
No documentation available
QModelIndex buddy(const QModelIndex &index) const
No documentation available
int columnCount(const QModelIndex &parent) const
No documentation available
QVariant data(const QModelIndex &index, int role) const
No documentation available
Qt::ItemFlags flags(const QModelIndex &index) const
No documentation available
TableTreeModel::Attributes get_attr(const QModelIndex &index) const
Get supported operations for entry at given QModelIndex
Value get_value(const QModelIndex &index) const
Get lua value at given model index
bool hasChildren(const QModelIndex &parent) const
No documentation available
QVariant headerData(int section, Qt::Orientation orientation, int role) const
No documentation available
bool insertRows(int row, int count, const QModelIndex &parent)
No documentation available
QModelIndex parent(const QModelIndex &index) const
No documentation available
bool removeRows(int row, int count, const QModelIndex &parent)
No documentation available
int rowCount(const QModelIndex &parent) const
No documentation available
bool setData(const QModelIndex &index, const QVariant &value, int role)
No documentation available
Clear cached table content and reset model.