![]() |
HAL
|
A model for displaying multiple netlist elements. More...
#include <module_model.h>
Public Member Functions | |
ModuleModel (QObject *parent=nullptr) | |
QVariant | data (const QModelIndex &index, int role) const override |
Qt::ItemFlags | flags (const QModelIndex &index) const override |
ModuleItem * | getItem (const QModelIndex &index) const |
ModuleItem * | getItem (const u32 id, ModuleItem::TreeItemType type=ModuleItem::TreeItemType::Module) const |
QList< ModuleItem * > | getItems (const u32 id, ModuleItem::TreeItemType type=ModuleItem::TreeItemType::Module) const |
void | clear () override |
QMimeData * | mimeData (const QModelIndexList &indexes) const override |
void | populateTree (const QVector< u32 > &modIds={}, const QVector< u32 > &gatIds={}, const QVector< u32 > &netIds={}) |
void | populateFromGatelist (const std::vector< Gate * > &gates) |
void | addModule (const u32 id, const u32 parentId) |
void | addGate (const u32 id, const u32 parentId) |
void | addNet (const u32 id, const u32 parentId) |
void | addRecursively (const Module *module, BaseTreeItem *parentItem=nullptr) |
void | removeModule (const u32 id) |
void | removeGate (const u32 id) |
void | removeNet (const u32 id) |
void | moduleAssignGate (const u32 moduleId, const u32 gateId) |
void | moduleAssignNets (const QList< u32 > &gateIds=QList< u32 >()) |
void | updateNetParent (const Net *net, const QHash< const Net *, ModuleItem * > *parentAssignment=nullptr) |
void | updateModuleParent (const Module *module) |
void | updateModuleName (const u32 id) |
void | updateGateName (const u32 id) |
void | updateNetName (const u32 id) |
bool | isModifying () |
![]() | |
BaseTreeModel (QObject *parent=nullptr) | |
void | setContent (QList< BaseTreeItem * > firstLevelItems) |
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) |
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 |
![]() | |
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 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 () |
![]() | |
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 ®Exp, 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 ®Exp) |
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 Member Functions | |
ModuleItem * | createChildItem (u32 id, ModuleItem::TreeItemType itemType, BaseTreeItem *parentItem=nullptr) |
void | removeChildItem (ModuleItem *itemToRemove, BaseTreeItem *parentItem) |
void | setIsModifying (bool pIsModifying) |
![]() | |
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) |
![]() | |
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) |
Friends | |
class | ModuleItem |
Additional Inherited Members | |
![]() | |
enum | LayoutChangeHint |
enum | CheckIndexOption |
![]() | |
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) |
![]() | |
typedef | CheckIndexOptions |
NoLayoutChangeHint | |
VerticalSortHint | |
HorizontalSortHint | |
NoOption | |
IndexIsValid | |
DoNotUseParent | |
ParentIsInvalid | |
![]() | |
typedef | QObjectList |
![]() | |
RootTreeItem * | mRootItem |
![]() | |
objectName | |
A model for displaying multiple netlist elements.
An item model that manages a specifiable set of netlist elements in a tree-styled fashion. May contain a single netlist element multiple times. See populateTree() for more information.
Definition at line 53 of file module_model.h.
|
explicit |
Constructor.
Constructs an empty item model and connects relevant slots to the global netlist relay.
parent | - The parent object. |
Definition at line 14 of file module_model.cpp.
References QObject::connect(), hal::NetlistRelay::gateNameChanged(), hal::gNetlistRelay, hal::NetlistRelay::moduleCreated(), hal::NetlistRelay::moduleGateAssigned(), hal::NetlistRelay::moduleGateRemoved(), hal::NetlistRelay::moduleGatesAssignBegin(), hal::NetlistRelay::moduleGatesAssignEnd(), hal::NetlistRelay::moduleNameChanged(), hal::NetlistRelay::moduleParentChanged(), hal::NetlistRelay::moduleRemoved(), hal::NetlistRelay::moduleSubmoduleAdded(), hal::NetlistRelay::moduleSubmoduleRemoved(), hal::NetlistRelay::netCreated(), hal::NetlistRelay::netDestinationAdded(), hal::NetlistRelay::netDestinationRemoved(), hal::NetlistRelay::netNameChanged(), hal::NetlistRelay::netRemoved(), hal::NetlistRelay::netSourceAdded(), hal::NetlistRelay::netSourceRemoved(), and hal::BaseTreeModel::setHeaderLabels().
Add a gate to the item model. For the specified gate new ModuleItems are created and stored.
id | - The id of the gate to add. |
parent_module | - The id of the parent module of the gate to add. |
Definition at line 250 of file module_model.cpp.
References createChildItem(), hal::ModuleItem::Gate, hal::Netlist::get_gate_by_id(), hal::Netlist::get_module_by_id(), and hal::gNetlist.
Add a module to the item model. For the specified module new ModuleItems are created and stored.
id | - The id of the module to add. |
parent_module | - The id of the parent module of the module to add. |
Definition at line 238 of file module_model.cpp.
References createChildItem(), hal::Netlist::get_module_by_id(), hal::gNetlist, and hal::ModuleItem::Module.
Add a net to the item model. For the specified net new ModuleItems are created and stored.
id | - The id of the net to add. |
parent_module | - The id of the parent module of the net to add. |
Definition at line 262 of file module_model.cpp.
References createChildItem(), hal::Netlist::get_module_by_id(), hal::Netlist::get_net_by_id(), hal::gNetlist, and hal::ModuleItem::Net.
void hal::ModuleModel::addRecursively | ( | const Module * | module, |
BaseTreeItem * | parentItem = nullptr |
||
) |
Recursively adds the given module with all of its submodules (and their submodules and so on...) and the gates of those modules to the item model. Nets have to be added in another way, like for example using moduleAssignNets().
module | - The module which should be added to the item model together with all its submodules and gates. |
Definition at line 273 of file module_model.cpp.
References createChildItem(), test_plugin::g, hal::ModuleItem::Gate, hal::Module::get_gates(), hal::Module::get_id(), hal::Module::get_submodules(), hal::ModuleItem::Module, hal::ShortestPath::module(), and hal::BaseTreeModel::mRootItem.
Referenced by populateTree(), and updateModuleParent().
|
overridevirtual |
Clears the item model and deletes all ModuleItems.
Reimplemented from hal::BaseTreeModel.
Definition at line 162 of file module_model.cpp.
References QAbstractItemModel::beginResetModel(), hal::BaseTreeModel::clear(), and QAbstractItemModel::endResetModel().
Referenced by hal::SelectionTreeView::populate(), populateFromGatelist(), populateTree(), and hal::ModuleElementsTree::removeContent().
|
protected |
Factory method to append new tree items. Insert signals are sent to view. New items are put into hash table.
id | - ID of new tree item |
itemType | - Whether new tree item is module, gate, or net |
parentItem | - Parent to new tree item. Will create top-level item if parent is nullptr |
Definition at line 327 of file module_model.cpp.
References hal::BaseTreeItem::appendChild(), QAbstractItemModel::beginInsertRows(), QAbstractItemModel::endInsertRows(), hal::BaseTreeItem::getChildCount(), hal::BaseTreeModel::getIndexFromItem(), hal::BaseTreeModel::index(), ModuleItem, and hal::BaseTreeModel::mRootItem.
Referenced by addGate(), addModule(), addNet(), addRecursively(), moduleAssignGate(), and updateNetParent().
|
overridevirtual |
Returns the data stored under the given role for the item referred to by the index.
index | - The model index |
role | - The role the model is accessed with |
Reimplemented from hal::BaseTreeModel.
Definition at line 38 of file module_model.cpp.
References Qt::AlignLeft, Qt::AlignRight, QModelIndex::column(), Qt::DecorationRole, Qt::DisplayRole, Qt::ForegroundRole, hal::ModuleItem::Gate, hal::SelectionDetailsIconProvider::GateIcon, hal::ModuleItem::getData(), hal::ModuleItem::getType(), hal::ModuleItem::highlighted(), hal::ModuleItem::id(), hal::BaseTreeModel::index(), hal::SelectionDetailsIconProvider::instance(), QModelIndex::internalPointer(), QModelIndex::isValid(), hal::ModuleItem::Module, hal::SelectionDetailsIconProvider::ModuleIcon, hal::ModuleItem::Net, hal::SelectionDetailsIconProvider::NetIcon, and Qt::TextAlignmentRole.
|
overridevirtual |
Returns the item flags for the given index.
index | - The model index to get the flags for |
Reimplemented from hal::BaseTreeModel.
Definition at line 136 of file module_model.cpp.
References QAbstractItemModel::flags(), hal::BaseTreeModel::index(), QModelIndex::isValid(), and Qt::ItemIsDragEnabled.
ModuleItem * hal::ModuleModel::getItem | ( | const QModelIndex & | index | ) | const |
Returns the ModuleItem stored under the specified model index.
index | - The model index to get the ModuleItem from |
Definition at line 144 of file module_model.cpp.
References hal::BaseTreeModel::index(), QModelIndex::internalPointer(), and QModelIndex::isValid().
Referenced by hal::ModuleElementsTree::setModule().
ModuleItem * hal::ModuleModel::getItem | ( | const u32 | id, |
ModuleItem::TreeItemType | type = ModuleItem::TreeItemType::Module |
||
) | const |
Returns the first ModuleItem for a specified id and type.
module_id | - The id of the ModuleItem |
type | - The type of the ModuleItem |
Definition at line 152 of file module_model.cpp.
References type.
QList< ModuleItem * > hal::ModuleModel::getItems | ( | const u32 | id, |
ModuleItem::TreeItemType | type = ModuleItem::TreeItemType::Module |
||
) | const |
Returns all ModuleItems for a specified id and type.
module_id | - The id of the ModuleItems |
type | - The type of the ModuleItems |
Definition at line 157 of file module_model.cpp.
References type.
Referenced by hal::ModuleWidget::handleSelectionChanged().
bool hal::ModuleModel::isModifying | ( | ) |
Returns true if the item model is currently changed/updated. This is the case while adding and removing modules to/from the item model. It can be used to ignore certain signals sent by the item model while the model is modified.
Definition at line 829 of file module_model.cpp.
Referenced by hal::ModuleWidget::handleTreeSelectionChanged().
|
overridevirtual |
Reimplemented from QAbstractItemModel.
Definition at line 86 of file module_model.cpp.
References hal::ModuleItem::Gate, hal::BaseTreeModel::getItemFromIndex(), hal::BaseTreeItem::getParent(), hal::ModuleItem::getType(), hal::ModuleItem::id(), hal::ModuleItem::Module, hal::ModuleItem::Net, hal::PyCodeProvider::pyCodeGate(), hal::PyCodeProvider::pyCodeModule(), hal::PyCodeProvider::pyCodeNet(), QModelIndex::row(), QMimeData::setData(), QMimeData::setText(), and QIODevice::WriteOnly.
Handles the assigment of gates to modules. If the gate does not yet exist in the item model, a new one is created.
Definition at line 575 of file module_model.cpp.
References QList::append(), QSet::contains(), createChildItem(), hal::ModuleItem::Gate, hal::Netlist::get_gate_by_id(), hal::BaseTreeItem::getParent(), hal::gNetlist, hal::ModuleItem::id(), QSet::insert(), hal::ModuleItem::isToplevelItem(), and removeChildItem().
Handles the assigment of nets to modules for nets connected to gates of list. If the gate list is empty all nets connected to modules in tree are considered.
Definition at line 613 of file module_model.cpp.
References QList::begin(), QList::end(), hal::Gate::get_fan_in_nets(), hal::Gate::get_fan_out_nets(), hal::Netlist::get_gate_by_id(), hal::gNetlist, QSet::insert(), QList::isEmpty(), QHash::keys(), hal::BaseTreeModel::mRootItem, test::n, and updateNetParent().
Referenced by populateTree().
void hal::ModuleModel::populateFromGatelist | ( | const std::vector< Gate * > & | gates | ) |
Clears current tree item model and repopulates it by a list of gates. This function will automatically load all parent modules to gates listed. Thus gates will be shown at their place within the module hierarchy.
gates | std::vector of gates to be added to the item model. |
Definition at line 173 of file module_model.cpp.
References hal::BaseTreeItem::appendChild(), QAbstractItemModel::beginResetModel(), clear(), QAbstractItemModel::endResetModel(), test_plugin::g, hal::ModuleItem::Gate, hal::Module::get_id(), hal::Module::get_parent_module(), QMap::insert(), hal::ModuleItem::Module, ModuleItem, hal::BaseTreeModel::mRootItem, setIsModifying(), and QMap::value().
void hal::ModuleModel::populateTree | ( | const QVector< u32 > & | modIds = {} , |
const QVector< u32 > & | gatIds = {} , |
||
const QVector< u32 > & | netIds = {} |
||
) |
Clears current tree item model and repopulates it with new ModuleItems for the netlist elements specified in the parameters. All netlist elements present in the parameters are added to the root of the tree. All submodules, gates and nets of given modules will also be added to the tree as children of those modules. This way some netlist elements may be present in the item model multiple times.
modIds | QVector of ids of modules to be added to the item model. |
gateIds | QVector of ids of gates to be added to the item model. |
netIds | QVector of ids of nets to be added to the item model. |
Definition at line 214 of file module_model.cpp.
References addRecursively(), QList::append(), hal::BaseTreeItem::appendChild(), QAbstractItemModel::beginResetModel(), clear(), QAbstractItemModel::endResetModel(), hal::ModuleItem::Gate, hal::Netlist::get_module_by_id(), hal::gNetlist, moduleAssignNets(), ModuleItem, hal::BaseTreeModel::mRootItem, hal::ModuleItem::Net, and setIsModifying().
Referenced by hal::ModuleWidget::ModuleWidget(), hal::SelectionTreeView::populate(), and hal::ModuleElementsTree::setModule().
|
protected |
Method to remove and delete tree items. Remove signals are sent to view. Hash table will NOT be updated since caller can do it more efficiently.
itemToRemove | - Item to be removed from tree |
parentItem | - Parent item. Must be present. |
Definition at line 343 of file module_model.cpp.
References QAbstractItemModel::beginRemoveRows(), QAbstractItemModel::endRemoveRows(), hal::BaseTreeItem::getChildCount(), hal::BaseTreeItem::getChildren(), hal::BaseTreeModel::getIndexFromItem(), hal::BaseTreeItem::getOwnRow(), hal::BaseTreeModel::index(), and hal::BaseTreeItem::removeChild().
Referenced by moduleAssignGate(), removeGate(), removeModule(), removeNet(), updateModuleParent(), and updateNetParent().
void hal::ModuleModel::removeGate | ( | const u32 | id | ) |
Removes a gate from the item model. The specified gate MUST be contained in the item model.
id | - The id of the gate to remove |
Definition at line 299 of file module_model.cpp.
References QList::append(), hal::BaseTreeItem::getParent(), and removeChildItem().
void hal::ModuleModel::removeModule | ( | const u32 | id | ) |
Removes a module from the item model. The specified module MUST be contained in the item model.
id | - The id of the module to remove |
Definition at line 285 of file module_model.cpp.
References QList::append(), hal::BaseTreeItem::getParent(), and removeChildItem().
void hal::ModuleModel::removeNet | ( | const u32 | id | ) |
Removes a net from the item model.
id | - The id of the net to remove |
Definition at line 313 of file module_model.cpp.
References QList::append(), hal::BaseTreeItem::getParent(), and removeChildItem().
|
protected |
See isModifying()
Definition at line 834 of file module_model.cpp.
Referenced by populateFromGatelist(), and populateTree().
void hal::ModuleModel::updateGateName | ( | const u32 | id | ) |
Updates the ModuleItems for the specified gate. The specified gate MUST be contained in the item model.
id | - The id of the gate to update |
Definition at line 796 of file module_model.cpp.
References QAbstractItemModel::dataChanged(), QString::fromStdString(), hal::Netlist::get_gate_by_id(), hal::Gate::get_name(), hal::BaseTreeModel::getIndexFromItem(), hal::gNetlist, hal::BaseTreeModel::index(), QObject::Q_EMIT(), and hal::ModuleItem::setName().
void hal::ModuleModel::updateModuleName | ( | const u32 | id | ) |
Updates the ModuleItems for the specified module. The specified module MUST be contained in the item model.
id | - The id of the module to update |
Definition at line 780 of file module_model.cpp.
References QAbstractItemModel::dataChanged(), QString::fromStdString(), hal::Netlist::get_module_by_id(), hal::Module::get_name(), hal::BaseTreeModel::getIndexFromItem(), hal::gNetlist, hal::BaseTreeModel::index(), QObject::Q_EMIT(), and hal::ModuleItem::setName().
void hal::ModuleModel::updateModuleParent | ( | const Module * | module | ) |
Reattaches the ModuleItems corresponding to the specified module to new parent items. The new parent must already be set in the Module object.
module | - The module whose ModuleItems will be reattached to new parents in the item model. |
Definition at line 698 of file module_model.cpp.
References addRecursively(), QList::append(), hal::BaseTreeItem::appendChild(), QAbstractItemModel::beginInsertRows(), QAbstractItemModel::beginRemoveRows(), QSet::contains(), QAbstractItemModel::endInsertRows(), QAbstractItemModel::endRemoveRows(), hal::Module::get_id(), hal::Module::get_parent_module(), hal::BaseTreeItem::getChildCount(), hal::BaseTreeModel::getIndexFromItem(), hal::BaseTreeItem::getOwnRow(), hal::BaseTreeItem::getParent(), hal::ModuleItem::id(), hal::BaseTreeModel::index(), QSet::insert(), hal::ModuleItem::isToplevelItem(), hal::ShortestPath::module(), hal::BaseTreeItem::removeChild(), and removeChildItem().
void hal::ModuleModel::updateNetName | ( | const u32 | id | ) |
Updates the ModuleItems for the specified net. The specified gate MUST be contained in the item model.
id | - The id of the net to update |
Definition at line 812 of file module_model.cpp.
References QAbstractItemModel::dataChanged(), QString::fromStdString(), hal::Net::get_name(), hal::Netlist::get_net_by_id(), hal::BaseTreeModel::getIndexFromItem(), hal::gNetlist, hal::BaseTreeModel::index(), QObject::Q_EMIT(), and hal::ModuleItem::setName().
void hal::ModuleModel::updateNetParent | ( | const Net * | net, |
const QHash< const Net *, ModuleItem * > * | parentAssignment = nullptr |
||
) |
Updates the position of a net in the ModuleTree. The net will be placed under the deepest module, that contains all sources and destinations of the net. If no suitable parent could be found, then the net will instead be placed under the top module. If the net does not exist in the item model (e.g. it's a global net), then nothing is updated.
net | The net whose source or destination might have changed. |
Definition at line 645 of file module_model.cpp.
References QList::append(), QSet::contains(), createChildItem(), hal::Module::get_id(), hal::BaseTreeItem::getParent(), hal::ModuleItem::id(), QSet::insert(), hal::ModuleItem::Net, net, removeChildItem(), and QHash::value().
Referenced by moduleAssignNets().
|
friend |
Definition at line 55 of file module_model.h.
Referenced by createChildItem(), populateFromGatelist(), and populateTree().