HAL
hal::ContextTreeModel Class Reference

Base model for the ContextManagerWidget to manage GraphContexts. More...

#include <context_tree_model.h>

Inheritance diagram for hal::ContextTreeModel:
Inheritance graph
Collaboration diagram for hal::ContextTreeModel:
Collaboration graph

Signals

void directoryCreatedSignal (ContextTreeItem *item)
 

Public Member Functions

 ContextTreeModel (QObject *parent=nullptr)
 
BaseTreeItemgetDirectory (u32 directoryId) const
 
BaseTreeItemgetContext (u32 contextId) const
 
ContextDirectoryaddDirectory (QString name, BaseTreeItem *parentItem, u32 id)
 
void addContext (GraphContext *context, BaseTreeItem *parent=nullptr)
 
void removeContext (GraphContext *context)
 
void removeDirectory (ContextDirectory *directory)
 
GraphContextgetContext (const QModelIndex &index) const
 
QModelIndex getIndexFromContext (GraphContext *context) const
 
void clear () override
 
Qt::ItemFlags flags (const QModelIndex &index) const override
 
QStringList mimeTypes () const override
 
const QVector< GraphContext * > & list ()
 
const QVector< ContextDirectory * > & directoryList ()
 
void setCurrentDirectory (ContextTreeItem *currentItem)
 
ContextTreeItemgetCurrentDirectory ()
 
bool moveItem (ContextTreeItem *itemToMove, BaseTreeItem *newParent, int row=-1)
 
std::vector< u32getChildDirectoriesOf (u32 directoryId)
 
std::vector< u32getChildContextsOf (u32 directoryId)
 
Overwritten model functions
QVariant data (const QModelIndex &inddex, int role=Qt::DisplayRole) const override
 
- Public Member Functions inherited from hal::BaseTreeModel
 BaseTreeModel (QObject *parent=nullptr)
 
void setContent (QList< BaseTreeItem * > firstLevelItems)
 
void setHeaderLabels (const QStringList &label)
 
QStringList headerLabels () const
 
QModelIndex getIndexFromItem (BaseTreeItem *item) const
 
BaseTreeItemgetItemFromIndex (QModelIndex index) const
 
BaseTreeItemgetRootItem () const
 
void insertChildItem (BaseTreeItem *childItem, BaseTreeItem *parentItem=nullptr, int row=-1)
 
virtual QVariant headerData (int section, Qt::Orientation orientation, int role=Qt::DisplayRole) const override
 
virtual QModelIndex index (int row, int column, const QModelIndex &parent=QModelIndex()) const override
 
virtual QModelIndex parent (const QModelIndex &index) const override
 
virtual int rowCount (const QModelIndex &parent=QModelIndex()) const override
 
virtual int columnCount (const QModelIndex &parent=QModelIndex()) const override
 
- Public Member Functions inherited from QAbstractItemModel
 QAbstractItemModel (QObject *parent)
 
virtual ~QAbstractItemModel ()
 
bool hasIndex (int row, int column, const QModelIndex &parent) const const
 
virtual QModelIndex sibling (int row, int column, const QModelIndex &index) const const
 
virtual bool hasChildren (const QModelIndex &parent) const const
 
virtual bool setData (const QModelIndex &index, const QVariant &value, int role)
 
virtual bool setHeaderData (int section, Qt::Orientation orientation, const QVariant &value, int role)
 
virtual QMap< int, QVariantitemData (const QModelIndex &index) const const
 
virtual bool setItemData (const QModelIndex &index, const QMap< int, QVariant > &roles)
 
virtual QMimeDatamimeData (const QModelIndexList &indexes) const const
 
virtual bool canDropMimeData (const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent) const const
 
virtual bool dropMimeData (const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent)
 
virtual Qt::DropActions supportedDropActions () const const
 
virtual Qt::DropActions supportedDragActions () const const
 
void setSupportedDragActions (Qt::DropActions actions)
 
virtual bool insertRows (int row, int count, const QModelIndex &parent)
 
virtual bool insertColumns (int column, int count, const QModelIndex &parent)
 
virtual bool removeRows (int row, int count, const QModelIndex &parent)
 
virtual bool removeColumns (int column, int count, const QModelIndex &parent)
 
virtual bool moveRows (const QModelIndex &sourceParent, int sourceRow, int count, const QModelIndex &destinationParent, int destinationChild)
 
virtual bool moveColumns (const QModelIndex &sourceParent, int sourceColumn, int count, const QModelIndex &destinationParent, int destinationChild)
 
bool insertRow (int row, const QModelIndex &parent)
 
bool insertColumn (int column, const QModelIndex &parent)
 
bool removeRow (int row, const QModelIndex &parent)
 
bool removeColumn (int column, const QModelIndex &parent)
 
bool moveRow (const QModelIndex &sourceParent, int sourceRow, const QModelIndex &destinationParent, int destinationChild)
 
bool moveColumn (const QModelIndex &sourceParent, int sourceColumn, const QModelIndex &destinationParent, int destinationChild)
 
virtual void fetchMore (const QModelIndex &parent)
 
virtual bool canFetchMore (const QModelIndex &parent) const const
 
virtual void sort (int column, Qt::SortOrder order)
 
virtual QModelIndex buddy (const QModelIndex &index) const const
 
virtual QModelIndexList match (const QModelIndex &start, int role, const QVariant &value, int hits, Qt::MatchFlags flags) const const
 
virtual QSize span (const QModelIndex &index) const const
 
virtual QHash< int, QByteArrayroleNames () const const
 
bool checkIndex (const QModelIndex &index, QAbstractItemModel::CheckIndexOptions options) const const
 
void dataChanged (const QModelIndex &topLeft, const QModelIndex &bottomRight, const QVector< int > &roles)
 
void headerDataChanged (Qt::Orientation orientation, int first, int last)
 
void layoutChanged (const QList< QPersistentModelIndex > &parents, QAbstractItemModel::LayoutChangeHint hint)
 
void layoutAboutToBeChanged (const QList< QPersistentModelIndex > &parents, QAbstractItemModel::LayoutChangeHint hint)
 
void rowsAboutToBeInserted (const QModelIndex &parent, int start, int end)
 
void rowsInserted (const QModelIndex &parent, int first, int last)
 
void rowsAboutToBeRemoved (const QModelIndex &parent, int first, int last)
 
void rowsRemoved (const QModelIndex &parent, int first, int last)
 
void columnsAboutToBeInserted (const QModelIndex &parent, int first, int last)
 
void columnsInserted (const QModelIndex &parent, int first, int last)
 
void columnsAboutToBeRemoved (const QModelIndex &parent, int first, int last)
 
void columnsRemoved (const QModelIndex &parent, int first, int last)
 
void modelAboutToBeReset ()
 
void modelReset ()
 
void rowsAboutToBeMoved (const QModelIndex &sourceParent, int sourceStart, int sourceEnd, const QModelIndex &destinationParent, int destinationRow)
 
void rowsMoved (const QModelIndex &parent, int start, int end, const QModelIndex &destination, int row)
 
void columnsAboutToBeMoved (const QModelIndex &sourceParent, int sourceStart, int sourceEnd, const QModelIndex &destinationParent, int destinationColumn)
 
void columnsMoved (const QModelIndex &parent, int start, int end, const QModelIndex &destination, int column)
 
virtual bool submit ()
 
virtual void revert ()
 
- Public Member Functions inherited from QObject
virtual const QMetaObjectmetaObject () const const
 
 QObject (QObject *parent)
 
virtual ~QObject ()
 
virtual bool event (QEvent *e)
 
virtual bool eventFilter (QObject *watched, QEvent *event)
 
QString objectName () const const
 
void setObjectName (const QString &name)
 
bool isWidgetType () const const
 
bool isWindowType () const const
 
bool signalsBlocked () const const
 
bool blockSignals (bool block)
 
QThreadthread () const const
 
void moveToThread (QThread *targetThread)
 
int startTimer (int interval, Qt::TimerType timerType)
 
int startTimer (std::chrono::milliseconds time, Qt::TimerType timerType)
 
void killTimer (int id)
 
findChild (const QString &name, Qt::FindChildOptions options) const const
 
QList< T > findChildren (const QString &name, Qt::FindChildOptions options) const const
 
QList< T > findChildren (const QRegExp &regExp, Qt::FindChildOptions options) const const
 
QList< T > findChildren (const QRegularExpression &re, Qt::FindChildOptions options) const const
 
const QObjectListchildren () const const
 
void setParent (QObject *parent)
 
void installEventFilter (QObject *filterObj)
 
void removeEventFilter (QObject *obj)
 
QMetaObject::Connection connect (const QObject *sender, const char *signal, const char *method, Qt::ConnectionType type) const const
 
bool disconnect (const char *signal, const QObject *receiver, const char *method) const const
 
bool disconnect (const QObject *receiver, const char *method) const const
 
void dumpObjectTree ()
 
void dumpObjectInfo ()
 
void dumpObjectTree () const const
 
void dumpObjectInfo () const const
 
bool setProperty (const char *name, const QVariant &value)
 
QVariant property (const char *name) const const
 
QList< QByteArraydynamicPropertyNames () const const
 
void destroyed (QObject *obj)
 
void objectNameChanged (const QString &objectName)
 
QObjectparent () const const
 
bool inherits (const char *className) const const
 
void deleteLater ()
 
 Q_DISABLE_COPY (Class)
 
 Q_DISABLE_MOVE (Class)
 
 Q_DISABLE_COPY_MOVE (Class)
 
qobject_cast (QObject *object)
 
qobject_cast (const QObject *object)
 
qFindChild (const QObject *obj, const QString &name)
 
QList< T > qFindChildren (const QObject *obj, const QString &name)
 
QList< T > qFindChildren (const QObject *obj, const QRegExp &regExp)
 
 Q_CLASSINFO (Name, Value)
 
 Q_INTERFACES (...)
 
 Q_PROPERTY (...)
 
 Q_ENUMS (...)
 
 Q_FLAGS (...)
 
 Q_ENUM (...)
 
 Q_FLAG (...)
 
 Q_ENUM_NS (...)
 
 Q_FLAG_NS (...)
 
 Q_OBJECT Q_OBJECT
 
 Q_GADGET Q_GADGET
 
 Q_NAMESPACE Q_NAMESPACE
 
 Q_NAMESPACE_EXPORT (EXPORT_MACRO)
 
 Q_SIGNALS Q_SIGNALS
 
 Q_SIGNAL Q_SIGNAL
 
 Q_SLOTS Q_SLOTS
 
 Q_SLOT Q_SLOT
 
 Q_EMIT Q_EMIT
 
 Q_INVOKABLE Q_INVOKABLE
 
 Q_REVISION Q_REVISION
 
 Q_SET_OBJECT_NAME (Object)
 
 QT_NO_NARROWING_CONVERSIONS_IN_CONNECT QT_NO_NARROWING_CONVERSIONS_IN_CONNECT
 

Additional Inherited Members

- Public Types inherited from QAbstractItemModel
enum  LayoutChangeHint
 
enum  CheckIndexOption
 
- Static Public Member Functions inherited from QObject
QString tr (const char *sourceText, const char *disambiguation, int n)
 
QString trUtf8 (const char *sourceText, const char *disambiguation, int n)
 
QMetaObject::Connection connect (const QObject *sender, const char *signal, const QObject *receiver, const char *method, Qt::ConnectionType type)
 
QMetaObject::Connection connect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method, Qt::ConnectionType type)
 
QMetaObject::Connection connect (const QObject *sender, PointerToMemberFunction signal, const QObject *receiver, PointerToMemberFunction method, Qt::ConnectionType type)
 
QMetaObject::Connection connect (const QObject *sender, PointerToMemberFunction signal, Functor functor)
 
QMetaObject::Connection connect (const QObject *sender, PointerToMemberFunction signal, const QObject *context, Functor functor, Qt::ConnectionType type)
 
bool disconnect (const QObject *sender, const char *signal, const QObject *receiver, const char *method)
 
bool disconnect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method)
 
bool disconnect (const QMetaObject::Connection &connection)
 
bool disconnect (const QObject *sender, PointerToMemberFunction signal, const QObject *receiver, PointerToMemberFunction method)
 
- Public Attributes inherited from QAbstractItemModel
typedef CheckIndexOptions
 
 NoLayoutChangeHint
 
 VerticalSortHint
 
 HorizontalSortHint
 
 NoOption
 
 IndexIsValid
 
 DoNotUseParent
 
 ParentIsInvalid
 
- Public Attributes inherited from QObject
typedef QObjectList
 
- Protected Member Functions inherited from QAbstractItemModel
void resetInternalData ()
 
QModelIndex createIndex (int row, int column, void *ptr) const const
 
QModelIndex createIndex (int row, int column, quintptr id) const const
 
void beginInsertRows (const QModelIndex &parent, int first, int last)
 
void endInsertRows ()
 
void beginRemoveRows (const QModelIndex &parent, int first, int last)
 
void endRemoveRows ()
 
bool beginMoveRows (const QModelIndex &sourceParent, int sourceFirst, int sourceLast, const QModelIndex &destinationParent, int destinationChild)
 
void endMoveRows ()
 
void beginInsertColumns (const QModelIndex &parent, int first, int last)
 
void endInsertColumns ()
 
void beginRemoveColumns (const QModelIndex &parent, int first, int last)
 
void endRemoveColumns ()
 
bool beginMoveColumns (const QModelIndex &sourceParent, int sourceFirst, int sourceLast, const QModelIndex &destinationParent, int destinationChild)
 
void endMoveColumns ()
 
void reset ()
 
void beginResetModel ()
 
void endResetModel ()
 
void changePersistentIndex (const QModelIndex &from, const QModelIndex &to)
 
void changePersistentIndexList (const QModelIndexList &from, const QModelIndexList &to)
 
QModelIndexList persistentIndexList () const const
 
void setRoleNames (const QHash< int, QByteArray > &roleNames)
 
- Protected Member Functions inherited from QObject
QObjectsender () const const
 
int senderSignalIndex () const const
 
int receivers (const char *signal) const const
 
bool isSignalConnected (const QMetaMethod &signal) const const
 
virtual void timerEvent (QTimerEvent *event)
 
virtual void childEvent (QChildEvent *event)
 
virtual void customEvent (QEvent *event)
 
virtual void connectNotify (const QMetaMethod &signal)
 
virtual void disconnectNotify (const QMetaMethod &signal)
 
- Protected Attributes inherited from hal::BaseTreeModel
RootTreeItemmRootItem
 
- Properties inherited from QObject
 objectName
 

Detailed Description

Base model for the ContextManagerWidget to manage GraphContexts.

The ContextTableModel implements a standard table model to manage the GraphContexts that are created/deleted/modified by the user. It provides the neccessary interface for the ContextManagerWidget to store and display the data. For specific information on how to implement a table model, refer to qt's QAbstractTableModel class and its examples.

Definition at line 96 of file context_tree_model.h.

Constructor & Destructor Documentation

◆ ContextTreeModel()

hal::ContextTreeModel::ContextTreeModel ( QObject parent = nullptr)

The constructor.

Parameters
parent- The widget's parent.

Definition at line 129 of file context_tree_model.cpp.

References hal::BaseTreeModel::setHeaderLabels().

Member Function Documentation

◆ addContext()

◆ addDirectory()

ContextDirectory * hal::ContextTreeModel::addDirectory ( QString  name,
BaseTreeItem parentItem,
u32  id 
)

◆ clear()

void hal::ContextTreeModel::clear ( )
overridevirtual

◆ data()

◆ directoryCreatedSignal

void hal::ContextTreeModel::directoryCreatedSignal ( ContextTreeItem item)
signal

◆ directoryList()

const QVector< ContextDirectory * > & hal::ContextTreeModel::directoryList ( )

Get all ContextDirectories of the model.

Returns
A vector of all ContextDirectories.

Definition at line 390 of file context_tree_model.cpp.

Referenced by hal::GraphContextManager::handleSaveTriggered().

◆ flags()

Qt::ItemFlags hal::ContextTreeModel::flags ( const QModelIndex index) const
overridevirtual

Overwritten Qt function that is necessary for the model. For further information pleaser refer to the Qt documentation.

Reimplemented from hal::BaseTreeModel.

Definition at line 172 of file context_tree_model.cpp.

References hal::BaseTreeModel::flags(), hal::BaseTreeModel::getItemFromIndex(), hal::BaseTreeModel::index(), hal::ContextTreeItem::isContext(), hal::ContextTreeItem::isDirectory(), Qt::ItemFlags, Qt::ItemIsDragEnabled, and Qt::ItemIsDropEnabled.

◆ getChildContextsOf()

std::vector< u32 > hal::ContextTreeModel::getChildContextsOf ( u32  directoryId)

Returns the ids of all direct child contexts of a given parent directory.

Parameters
directoyId- The id of the parent directory.
Returns
List of IDs of all contexts, that are ordered directly under the parent directory.

Definition at line 471 of file context_tree_model.cpp.

References QObject::children(), hal::BaseTreeItem::getChildren(), getDirectory(), hal::ContextTreeItem::getId(), hal::BaseTreeModel::getRootItem(), and hal::ContextTreeItem::isContext().

Referenced by hal::GuiApiClasses::View::getChildViews().

◆ getChildDirectoriesOf()

std::vector< u32 > hal::ContextTreeModel::getChildDirectoriesOf ( u32  directoryId)

Returns the ids of all direct child directories of a given parent directory.

Parameters
directoyId- The id of the parent directory.
Returns
List of IDs of all directories, that are ordered directly under the parent directory.

Definition at line 452 of file context_tree_model.cpp.

References QObject::children(), hal::BaseTreeItem::getChildren(), getDirectory(), hal::ContextTreeItem::getId(), hal::BaseTreeModel::getRootItem(), and hal::ContextTreeItem::isDirectory().

Referenced by hal::GuiApiClasses::View::getChildDirectories().

◆ getContext() [1/2]

GraphContext * hal::ContextTreeModel::getContext ( const QModelIndex index) const

Get the GraphContext from a given index.

Parameters
index- The index of the requested GraphContext.
Returns
The requested GraphContext.

Definition at line 366 of file context_tree_model.cpp.

References hal::BaseTreeModel::getItemFromIndex(), and hal::BaseTreeModel::index().

◆ getContext() [2/2]

BaseTreeItem * hal::ContextTreeModel::getContext ( u32  contextId) const

Returns the ContextTreeItem of a context specified by an id.

Parameters
contextId- The id of the context whose ContextTreeItem should be returned.
Returns
The ContextTreeItem for the context specified by the id.

Definition at line 202 of file context_tree_model.cpp.

References hal::BaseTreeModel::mRootItem.

Referenced by hal::ActionMoveItem::exec(), hal::ContextManagerWidget::getCurrentContext(), hal::GraphContextManager::moveItem(), and hal::GuiApiClasses::View::moveView().

◆ getCurrentDirectory()

ContextTreeItem * hal::ContextTreeModel::getCurrentDirectory ( )

Gets the CurrentDirectory.

Returns
current directory.

Definition at line 407 of file context_tree_model.cpp.

Referenced by hal::GuiApiClasses::View::getCurrentDirectory().

◆ getDirectory()

◆ getIndexFromContext()

QModelIndex hal::ContextTreeModel::getIndexFromContext ( GraphContext context) const

Converts a given GraphContext into its corresponding index.

Parameters
context- The context to convert.
Returns
The resulting index.

Definition at line 361 of file context_tree_model.cpp.

References hal::BaseTreeModel::getIndexFromItem().

Referenced by hal::GraphContextManager::getParentId(), hal::GraphContextManager::handleSaveTriggered(), and hal::ContextManagerWidget::selectViewContext().

◆ list()

const QVector< GraphContext * > & hal::ContextTreeModel::list ( )

Get all GraphContexts of the model.

Returns
A vector of all GraphContexts.

Definition at line 381 of file context_tree_model.cpp.

Referenced by hal::GraphContextManager::clear(), hal::GraphContextManager::contextWithNameExists(), hal::GraphContextManager::getCleanContext(), hal::GraphContextManager::getContextByExclusiveModuleId(), hal::GraphContextManager::getContextById(), hal::GraphContextManager::getContexts(), hal::GraphContextManager::handleGateNameChanged(), hal::GraphContextManager::handleGateRemoved(), hal::GraphContextManager::handleMarkedGlobalInput(), hal::GraphContextManager::handleMarkedGlobalOutput(), hal::GraphContextManager::handleModuleColorChanged(), hal::GraphContextManager::handleModuleCreated(), hal::GraphContextManager::handleModuleGateAssigned(), hal::GraphContextManager::handleModuleGateRemoved(), hal::GraphContextManager::handleModuleNameChanged(), hal::GraphContextManager::handleModulePortsChanged(), hal::GraphContextManager::handleModuleRemoved(), hal::GraphContextManager::handleModuleSubmoduleAdded(), hal::GraphContextManager::handleModuleSubmoduleRemoved(), hal::GraphContextManager::handleModuleTypeChanged(), hal::GraphContextManager::handleNetDestinationAdded(), hal::GraphContextManager::handleNetDestinationRemoved(), hal::GraphContextManager::handleNetNameChanged(), hal::GraphContextManager::handleNetRemoved(), hal::GraphContextManager::handleNetSourceAdded(), hal::GraphContextManager::handleNetSourceRemoved(), hal::GraphContextManager::handleSaveTriggered(), hal::GraphContextManager::handleUnmarkedGlobalInput(), and hal::GraphContextManager::handleUnmarkedGlobalOutput().

◆ mimeTypes()

QStringList hal::ContextTreeModel::mimeTypes ( ) const
overridevirtual

Reimplemented from QAbstractItemModel.

Definition at line 190 of file context_tree_model.cpp.

◆ moveItem()

bool hal::ContextTreeModel::moveItem ( ContextTreeItem itemToMove,
BaseTreeItem newParent,
int  row = -1 
)

Removes a tree item and inserts it under a new parent into a specific row.

Parameters
itemToMove- The tree item to be moved.
newParent- The parent item, under which itemToMove is placed.
row- The row in newParent, where itemToMove is inserted. If -1, then itemToMove is instead just appended to newParent.
Returns
True, if the operation succeded. False, if not.

Definition at line 412 of file context_tree_model.cpp.

References QAbstractItemModel::beginRemoveRows(), QAbstractItemModel::endRemoveRows(), hal::BaseTreeModel::getIndexFromItem(), hal::BaseTreeItem::getParent(), hal::BaseTreeModel::insertChildItem(), hal::ContextTreeItem::isDirectory(), hal::BaseTreeModel::mRootItem, hal::BaseTreeItem::removeChild(), and hal::ContextTreeItem::row().

Referenced by hal::GraphContextManager::moveItem().

◆ removeContext()

void hal::ContextTreeModel::removeContext ( GraphContext context)

◆ removeDirectory()

◆ setCurrentDirectory()


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