HAL  v4.5.0-137-gacc899e29
The Hardware Analyzer - a comprehensive reverse engineering and manipulation framework for gate-level netlists.
hal::BaseTreeModel Class Reference

The BaseTreeModel implements generic standard functions of a tree model. More...

#include </home/runner/work/hal/hal/plugins/gui/include/gui/basic_tree_model/base_tree_model.h>

Inheritance diagram for hal::BaseTreeModel:
Inheritance graph
Collaboration diagram for hal::BaseTreeModel:
Collaboration graph

Public Member Functions

 BaseTreeModel (QObject *parent=nullptr)
 
void setContent (QList< BaseTreeItem * > firstLevelItems)
 
virtual void clear ()
 
void setHeaderLabels (const QStringList &label)
 
QStringList headerLabels () const
 
QModelIndex getIndexFromItem (BaseTreeItem *item) const
 
BaseTreeItem * getItemFromIndex (QModelIndex index) const
 
BaseTreeItem * getRootItem () const
 
void insertChildItem (BaseTreeItem *childItem, BaseTreeItem *parentItem=nullptr, int row=-1)
 
Overwritten model functions
virtual QVariant data (const QModelIndex &index, int role=Qt::DisplayRole) const override
 
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 Qt::ItemFlags flags (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, QVariant > itemData (const QModelIndex &index) const const
 
virtual bool setItemData (const QModelIndex &index, const QMap< int, QVariant > &roles)
 
virtual QStringList mimeTypes () const const
 
virtual QMimeData * mimeData (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, QByteArray > roleNames () 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 QMetaObject * metaObject () 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)
 
QThread * thread () 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)
 
T 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 QObjectList & children () 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< QByteArray > dynamicPropertyNames () const const
 
void destroyed (QObject *obj)
 
void objectNameChanged (const QString &objectName)
 
QObject * parent () const const
 
bool inherits (const char *className) const const
 
void deleteLater ()
 
 Q_DISABLE_COPY (Class)
 
 Q_DISABLE_MOVE (Class)
 
 Q_DISABLE_COPY_MOVE (Class)
 
T qobject_cast (QObject *object)
 
T qobject_cast (const QObject *object)
 
T 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
 

Protected Attributes

RootTreeItem * mRootItem
 

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
QObject * sender () 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)
 
- Properties inherited from QObject
 objectName
 

Detailed Description

The BaseTreeModel implements generic standard functions of a tree model.

Explain usage here:

Definition at line 39 of file base_tree_model.h.

Constructor & Destructor Documentation

◆ BaseTreeModel()

hal::BaseTreeModel::BaseTreeModel ( QObject *  parent = nullptr)

The constructor.

Parameters
parent- The model's parent.

Definition at line 7 of file base_tree_model.cpp.

References mRootItem.

Member Function Documentation

◆ clear()

◆ columnCount()

int hal::BaseTreeModel::columnCount ( const QModelIndex &  parent = QModelIndex()) const
overridevirtual

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

Implements QAbstractItemModel.

Definition at line 77 of file base_tree_model.cpp.

References hal::RootTreeItem::getColumnCount(), mRootItem, and QObject::parent().

Referenced by hal::ModulePinsTreeModel::handleModulePortsChanged(), and headerLabels().

◆ data()

QVariant hal::BaseTreeModel::data ( const QModelIndex &  index,
int  role = Qt::DisplayRole 
) const
overridevirtual

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

Implements QAbstractItemModel.

Reimplemented in hal::SelectGateModel, hal::ModuleModel, and hal::ContextTreeModel.

Definition at line 12 of file base_tree_model.cpp.

References QModelIndex::column(), Qt::DisplayRole, hal::BaseTreeItem::getData(), getItemFromIndex(), index(), and QModelIndex::isValid().

Referenced by hal::ModulePinsTreeModel::canDropMimeData(), hal::ModulePinsTreeModel::dropMimeData(), and hal::ModulePinsTreeModel::mimeData().

◆ flags()

Qt::ItemFlags hal::BaseTreeModel::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 QAbstractItemModel.

Reimplemented in hal::SelectGateModel, hal::ModulePinsTreeModel, hal::PinModel, hal::ModuleModel, and hal::ContextTreeModel.

Definition at line 62 of file base_tree_model.cpp.

References QAbstractItemModel::flags(), and index().

Referenced by hal::ContextTreeModel::flags(), hal::PinModel::flags(), and hal::ModulePinsTreeModel::flags().

◆ getIndexFromItem()

◆ getItemFromIndex()

◆ getRootItem()

◆ headerData()

QVariant hal::BaseTreeModel::headerData ( int  section,
Qt::Orientation  orientation,
int  role = Qt::DisplayRole 
) const
overridevirtual

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

Reimplemented from QAbstractItemModel.

Definition at line 28 of file base_tree_model.cpp.

References Qt::DisplayRole, hal::RootTreeItem::getData(), Qt::Horizontal, and mRootItem.

Referenced by headerLabels().

◆ headerLabels()

QStringList hal::BaseTreeModel::headerLabels ( ) const

Getter for header labels stored in root element

Returns
List of header labels

Definition at line 101 of file base_tree_model.cpp.

References QList::append(), columnCount(), Qt::DisplayRole, headerData(), and Qt::Horizontal.

Referenced by hal::ModuleWidget::ModuleWidget().

◆ index()

QModelIndex hal::BaseTreeModel::index ( int  row,
int  column,
const QModelIndex &  parent = QModelIndex() 
) const
overridevirtual

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

Implements QAbstractItemModel.

Definition at line 36 of file base_tree_model.cpp.

References QAbstractItemModel::createIndex(), hal::BaseTreeItem::getChild(), getItemFromIndex(), QAbstractItemModel::hasIndex(), mRootItem, and QObject::parent().

Referenced by hal::ContextTreeModel::addContext(), hal::ContextTreeModel::addDirectory(), hal::ModuleModel::createChildItem(), hal::ContextTreeModel::data(), hal::ModuleModel::data(), data(), hal::SelectGateModel::data(), hal::ContextProxyModel::dropMimeData(), flags(), hal::ContextTreeModel::flags(), hal::ModuleModel::flags(), hal::PinModel::flags(), hal::ModulePinsTreeModel::flags(), hal::SelectGateModel::flags(), hal::ContextTreeModel::getContext(), hal::ModuleModel::getItem(), getItemFromIndex(), hal::PinModel::handleDeleteItem(), hal::PinModel::handleEditDirection(), hal::PinModel::handleEditName(), hal::PinModel::handleEditType(), hal::ModulePinsTree::handlePinsAboutToReload(), hal::ModulePinsTree::handlePinsReloaded(), hal::ContextManagerWidget::handleRowsInserted(), insertChildItem(), parent(), hal::ModuleModel::removeChildItem(), hal::ContextTreeModel::removeContext(), hal::ContextTreeModel::removeDirectory(), hal::SelectGateModel::setData(), hal::ModuleModel::updateGateName(), hal::ModuleModel::updateModuleName(), hal::ModuleModel::updateModuleParent(), hal::ModuleModel::updateModuleType(), and hal::ModuleModel::updateNetName().

◆ insertChildItem()

void hal::BaseTreeModel::insertChildItem ( BaseTreeItem *  childItem,
BaseTreeItem *  parentItem = nullptr,
int  row = -1 
)

◆ parent()

QModelIndex hal::BaseTreeModel::parent ( const QModelIndex &  index) const
overridevirtual

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

Implements QAbstractItemModel.

Definition at line 46 of file base_tree_model.cpp.

References getIndexFromItem(), getItemFromIndex(), hal::BaseTreeItem::getParent(), index(), QModelIndex::isValid(), and mRootItem.

◆ rowCount()

int hal::BaseTreeModel::rowCount ( const QModelIndex &  parent = QModelIndex()) const
overridevirtual

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

Implements QAbstractItemModel.

Definition at line 67 of file base_tree_model.cpp.

References hal::BaseTreeItem::getChildCount(), getItemFromIndex(), mRootItem, and QObject::parent().

Referenced by hal::ModulePinsTree::handlePinsAboutToReload(), and hal::ModulePinsTree::handlePinsReloaded().

◆ setContent()

void hal::BaseTreeModel::setContent ( QList< BaseTreeItem * >  firstLevelItems)

Sets the content the tree then represents. An already complete tree (or rather all their first-level items) must be provided.

Parameters
firstLevelItems- All items that will be appended to this model's root item.

Definition at line 83 of file base_tree_model.cpp.

References hal::BaseTreeItem::appendChild(), and mRootItem.

◆ setHeaderLabels()

void hal::BaseTreeModel::setHeaderLabels ( const QStringList &  label)

This function must be called first (as of now) in the constructor of the derived classed to initialize

Parameters
label

Definition at line 110 of file base_tree_model.cpp.

References QList::at(), mRootItem, hal::RootTreeItem::setDataAtColumn(), and QList::size().

Referenced by hal::ContextTreeModel::ContextTreeModel(), hal::GatePinsTreeModel::GatePinsTreeModel(), hal::ModuleModel::ModuleModel(), hal::ModulePinsTreeModel::ModulePinsTreeModel(), and hal::PinModel::PinModel().

Member Data Documentation

◆ mRootItem


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