Envision
A visual programming IDE for object-oriented languages
|
Public Types | |
using | const_iterator = QVector< Node * >::ConstIterator |
using | iterator = QVector< Node * >::Iterator |
Public Member Functions | |
List (::Model::Node *parent, ::Model::PersistentStore &store, bool loadPartially) | |
List (::Model::Node *parent=nullptr) | |
List (const List &other) | |
virtual | ~List () |
void | append (Node *node) |
template<typename T = Node> | |
T * | at (int i) const |
iterator | begin () |
const_iterator | begin () const |
const_iterator | cbegin () const |
const_iterator | cend () const |
virtual QList< Node * > | children () const override |
void | clear () |
List * | clone () const override |
bool | contains (const Node *node) const |
virtual Node * | createDefaultElement () |
Creates a new Node that is suitable for inserting in the list. More... | |
iterator | end () |
const_iterator | end () const |
virtual bool | findSymbols (std::unique_ptr< ResolutionRequest > request) const override |
template<typename T = Node> | |
T * | first () const |
int | indexOf (const Node *item) const |
int | indexToSubnode (const Node *node) const |
void | insert (int position, Node *node) |
bool | isEmpty () const |
bool | isTransparentForNameResolution () const override |
template<typename T = Node> | |
T * | last () const |
virtual void | load (PersistentStore &store) override |
virtual int | lowerTypeBoundForElements () const |
const QVector< Node * > & | nodes () |
void | paste (ClipboardStore &clipboard, int position) |
void | prepend (Node *node) |
void | remove (int index) |
Removes the child node at position index. More... | |
void | remove (Node *instance) |
Removes the child instance. More... | |
virtual bool | replaceChild (Node *child, Node *replacement) override |
virtual void | save (PersistentStore &store) const override |
TODO Document this somewhere useful. More... | |
int | size () const |
Static Public Member Functions | |
static List * | createDefaultInstance (Node *parent=nullptr) |
Private Member Functions | |
void | loadSubNodes (QList< LoadedNode > &nodeList) |
Private Attributes | |
QVector< Node * > | nodes_ |
Additional Inherited Members | |
Protected Types inherited from Core::Reflect< Base > | |
using | Super = Reflect< Base > |
using Model::List::const_iterator = QVector<Node*>::ConstIterator |
using Model::List::iterator = QVector<Node*>::Iterator |
Model::List::List | ( | ::Model::Node * | parent = nullptr | ) |
Model::List::List | ( | ::Model::Node * | parent, |
::Model::PersistentStore & | store, | ||
bool | loadPartially | ||
) |
Model::List::List | ( | const List & | other | ) |
|
virtual |
|
inline |
T * Model::List::at | ( | int | i | ) | const |
|
inline |
|
inline |
|
inline |
|
inline |
|
overridevirtual |
void Model::List::clear | ( | ) |
|
override |
|
inline |
|
virtual |
Creates a new Node that is suitable for inserting in the list.
The newly created node is not directly inserted into the list.
The default implementation returns nullptr. This behavior is suitable for lists that are not managed by standard interaction handlers or where the creation of item in standard ways is not necessary.
Reimplement this method in derived classes to control what Node is created.
This method is used by higher level abstractions and in TypedList to facilitate the automatic creation of list elements.
|
inline |
|
inline |
|
overridevirtual |
T * Model::List::first |
int Model::List::indexOf | ( | const Node * | item | ) | const |
int Model::List::indexToSubnode | ( | const Node * | node | ) | const |
void Model::List::insert | ( | int | position, |
Node * | node | ||
) |
|
inline |
|
override |
T * Model::List::last |
|
overridevirtual |
|
private |
|
virtual |
|
inline |
void Model::List::paste | ( | ClipboardStore & | clipboard, |
int | position | ||
) |
|
inline |
void Model::List::remove | ( | int | index | ) |
Removes the child node at position index.
void Model::List::remove | ( | Node * | instance | ) |
Removes the child instance.
|
overridevirtual |
TODO Document this somewhere useful.
Like in the Persistent store interface. If the node is partially loaded the Store will automatically fill in the missing fields by taking the old version of every subnode whose name is not specified here.
|
inline |
|
private |