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 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. If you need to edit the underlying data from lua and have the views updated automatically, you might use the UserItemModel approach instead.
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->at("_G"), QtLua::TableTreeModel::Recursive);
// Create Qt view widget
treeview = new QTreeView(0);
treeview->setModel(model);
setCentralWidget(treeview);

See also ItemViewDialog class.
Members
Types
- enum Attribute
- typedef [...] Attributes
Functions
- TableTreeModel(const Value &root, TableTreeModel::Attributes attr, QObject *parent = [...])
- ~TableTreeModel()
- TableTreeModel::Attributes get_attr(const QModelIndex &index) const
- Value get_value(const QModelIndex &index) const
- void update()
Static functions
- static void table_dialog(QWidget *parent, const QString &title, const Value &table, TableTreeModel::Attributes attr = [...])
- static void tree_dialog(QWidget *parent, const QString &title, const Value &table, TableTreeModel::Attributes attr = [...])
Signal
- void edit_error(const QString &message)
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 | 0x00000001 | Expose nested tables too. |
UserDataIter | 0x00000002 | Iterate over UserData objects too. |
HideKey | 0x00000020 | Do not show key column. |
HideValue | 0x00000040 | Do not show value column. |
HideType | 0x00000004 | Do not show value type column. |
UnquoteKeys | 0x00000008 | Strip double quotes from string keys |
UnquoteValues | 0x00000010 | Strip double quotes from string values |
Editable | 0x00001000 | Allow editing exposed lua tables. |
EditFixedType | 0x00002000 | Prevent value type change when editing. |
EditLuaEval | 0x00004000 | Evaluate user input as a lua expression. |
EditInsert | 0x00008000 | Allow insertion of new entries. |
EditRemove | 0x00010000 | Allow deletion of existing entries. |
EditKey | 0x00020000 | Allow entry key update. |
EditAll | 0x00039000 | Editable, EditInsert, EditRemove and EditKey allowed |
See also TableTreeModel::Attributes typedef.
typedef TableTreeModel::Attribute Attributes
No documentation available
void edit_error(const QString &message)
This member is a Qt signal.
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
static void table_dialog(QWidget *parent, const QString &title, const Value &table, TableTreeModel::Attributes attr = Recursive)
Shortcut function to display a modal lua table dialog.
Parameter list:
- parent: parent widget
- title: dialog window title
- table: lua table to expose
- attr: model attributes, control display and edit options
static void tree_dialog(QWidget *parent, const QString &title, const Value &table, TableTreeModel::Attributes attr = Recursive)
Shortcut function to display a modal lua table dialog.
Parameter list:
- parent: parent widget
- title: dialog window title
- table: lua table to expose
- attr: model attributes, control display and edit options
Clear cached table content and reset model.