34 #include <QAbstractItemModel>
35 #include <QModelIndex>
40 #include <QTextStream>
61 class TempGateAssignment
68 TempGateAssignment() : mAccumulate(0) {;}
69 void removeGateFromModule(
u32 gateId,
Module* m)
72 mGateRemove[gateId] = m;
74 void assignGateToModule(
u32 gateId, Module* m)
76 mGateAssign[gateId] = m;
78 bool isAccumulate()
const {
return mAccumulate > 0; }
79 void beginAccumulate() { mAccumulate++; }
80 void endAccumulate() { mAccumulate--; }
143 void clear()
override;
285 void handleModuleNameChanged(Module* mod);
287 void handleModuleRemoved(Module* mod);
289 void handleModuleCreated(Module* mod);
298 void handleModuleParentChanged(
const Module* mod);
300 void handleModuleSubmoduleAdded(Module* mod,
u32 submodId);
302 void handleModuleSubmoduleRemoved(Module* mod,
u32 submodId);
304 void handleModuleGateAssigned(Module* mod,
u32 gateId);
306 void handleModuleGateRemoved(Module* mod,
u32 gateId);
308 void handleModuleGatesAssignBegin(Module* mod,
u32 numberGates);
310 void handleModuleGatesAssignEnd(Module* mod,
u32 numberGates);
312 void handleGateCreated(Gate* gat);
314 void handleGateNameChanged(Gate* gat);
316 void handleGateRemoved(Gate* gat);
318 void handleNetCreated(Net*
net);
320 void handleNetNameChanged(Net*
net);
322 void handleNetRemoved(Net*
net);
359 Module* findNetParent(
const Net*
net)
const;
375 TempGateAssignment mTempGateAssignment;
The BaseTreeModel implements generic standard functions of a tree model.
virtual QModelIndex index(int row, int column, const QModelIndex &parent=QModelIndex()) const override
An item in the ModuleModel.
A model for displaying multiple netlist elements.
void updateModuleParent(const Module *module)
Qt::ItemFlags flags(const QModelIndex &index) const override
void updateNetName(const u32 id)
void addRecursively(const Module *module, BaseTreeItem *parentItem=nullptr)
void addNet(const u32 id, const u32 parentId)
void removeGate(const u32 id)
void moduleAssignNets(const QList< u32 > &gateIds=QList< u32 >())
void removeModule(const u32 id)
QList< ModuleItem * > getItems(const u32 id, ModuleItem::TreeItemType type=ModuleItem::TreeItemType::Module) const
void addGate(const u32 id, const u32 parentId)
ModuleItem * getItem(const QModelIndex &index) const
void populateFromGatelist(const std::vector< Gate * > &gates)
ModuleItem * createChildItem(u32 id, ModuleItem::TreeItemType itemType, BaseTreeItem *parentItem=nullptr)
void updateGateName(const u32 id)
void addModule(const u32 id, const u32 parentId)
QVariant data(const QModelIndex &index, int role) const override
void updateNetParent(const Net *net, const QHash< const Net *, ModuleItem * > *parentAssignment=nullptr)
void setIsModifying(bool pIsModifying)
ModuleModel(QObject *parent=nullptr)
void removeNet(const u32 id)
QMimeData * mimeData(const QModelIndexList &indexes) const override
void updateModuleName(const u32 id)
void removeChildItem(ModuleItem *itemToRemove, BaseTreeItem *parentItem)
void populateTree(const QVector< u32 > &modIds={}, const QVector< u32 > &gatIds={}, const QVector< u32 > &netIds={})
void moduleAssignGate(const u32 moduleId, const u32 gateId)
const Module * module(const Gate *g, const NodeBoxes &boxes)
bool contains(const Key &key) const const
QObject * parent() const const