6 #include <QApplication>
30 if (!mGrouping)
return 0;
31 return mGrouping->
get_id();
36 if (!mGrouping)
return QString();
42 if (!mGrouping)
return QString();
48 if (!mGrouping)
return;
54 if (!mGrouping)
return;
66 mDisableEvents =
true;
69 int n = mGroupings.size();
70 mGroupings.append(gte);
72 mDisableEvents =
false;
83 mDisableEvents =
true;
86 int n = mGroupings.size();
87 mGroupings.append(gte);
89 mDisableEvents =
false;
112 return mGroupings.size();
124 case 0:
return "Grouping Name";
126 case 2:
return "Color";
180 mDisableEvents =
true;
181 int nrows = mGroupings.size();
182 if (row >= nrows)
return false;
183 Grouping* grp = mGroupings.at(row).grouping();
192 mGroupings.removeAt(row);
194 mDisableEvents =
false;
202 if (
input.isEmpty())
return false;
203 if (
input == mAboutToRename)
return true;
206 if (gte.name() ==
input.trimmed())
218 if (gte.id() > maxId) maxId = gte.id();
219 existingNames.
insert(gte.name());
222 mDisableEvents =
true;
225 int n = mGroupings.size();
226 mGroupings.append(gte);
228 mDisableEvents =
false;
237 if (mDisableEvents)
return;
238 for (
auto it = mGroupings.begin(); it != mGroupings.end(); ++it)
239 if (it->grouping() == grp)
242 it = mGroupings.erase(it);
251 if (mDisableEvents || mIsHistory)
return;
253 int n = mGroupings.size();
262 if (mDisableEvents)
return;
264 for (
auto it = mGroupings.begin(); it != mGroupings.end(); ++it)
266 if (it->grouping() == grp)
278 if (mDisableEvents)
return;
279 mDisableEvents =
true;
281 for (
auto it = mGroupings.begin(); it != mGroupings.end(); ++it)
283 if (it->grouping() == grp)
291 mDisableEvents =
false;
296 for (
int irow = 0; irow < mGroupings.size(); irow++)
298 if (mGroupings.at(irow).id() !=
id)
continue;
299 mDisableEvents =
true;
300 QString oldName = mGroupings.at(irow).name();
301 mGroupings[irow].setName(groupingName);
304 mDisableEvents =
false;
312 for (
int irow = 0; irow < mGroupings.size(); irow++)
314 if (mGroupings.at(irow).id() !=
id)
continue;
315 mDisableEvents =
true;
316 QColor oldColor = mGroupings.at(irow).color();
317 mGroupings[irow].setColor(c);
321 mDisableEvents =
false;
331 while (existingNames.
contains(retval) && itry < 27*26)
334 if (itry >= 26) retval += (char) (
'a' + itry/26 -1);
335 retval += (char) (
'a' + itry%26);
344 const Module* m =
nullptr;
345 const Gate*
g =
nullptr;
346 const Net*
n =
nullptr;
354 if (
g) itemGrouping =
g->get_grouping();
358 if (
n) itemGrouping =
n->get_grouping();
366 if (gte.grouping() == itemGrouping)
375 if (grouping !=
nullptr)
378 if (gte.grouping() == grouping)
388 if (gte.name() ==
name)
389 return gte.grouping();
397 retval << gte.name();
404 const int GroupingTableHistory::sMaxEntries = 10;
452 Q_UNUSED(deselected);
453 if (selected.
indexes().empty())
458 const GroupingProxyModel* prox =
static_cast<const GroupingProxyModel*
>(
model());
460 const GroupingTableModel* modl =
static_cast<const GroupingTableModel*
>(prox->sourceModel());
462 u32 groupId = modl->groupingAt(sourceIndex.
row()).
id();
466 void GroupingTableView::handleDoubleClick(
const QModelIndex& index)
468 const GroupingProxyModel* prox =
static_cast<const GroupingProxyModel*
>(
model());
470 const GroupingTableModel* modl =
static_cast<const GroupingTableModel*
>(prox->sourceModel());
471 QModelIndex sourceIndex = prox->mapToSource(index);
472 u32 groupId = modl->groupingAt(sourceIndex.
row()).
id();
Displays a colored box for the GroupingManagerWidget.
const std::vector< Gate * > & get_gates() const
utils::Color get_color() const
bool remove_net(Net *net)
void set_color(utils::Color c)
std::string get_name() const
bool remove_gate(Gate *gate)
void set_name(std::string name)
const std::vector< Net * > & get_nets() const
const std::vector< Module * > & get_modules() const
bool remove_module(Module *module)
Helper model to make filtering available.
An entry within a GroupingTableModel.
Grouping * grouping() const
void setColor(const QColor &c)
void setName(const QString &n)
GroupingTableEntry(const QString &n)
static GroupingTableHistory * instance()
Table that holds information about all groupings.
QColor colorForGrouping(Grouping *grouping) const
int columnCount(const QModelIndex &parent=QModelIndex()) const override
QVariant headerData(int section, Qt::Orientation orientation, int role) const override
GroupingTableModel(bool history, QObject *parent=nullptr)
QString renameGrouping(u32 id, const QString &groupingName)
bool validate(const QString &input)
bool setData(const QModelIndex &index, const QVariant &value, int role) override
void createGroupingEvent(Grouping *grp)
void groupingColorChangedEvent(Grouping *grp)
QVariant data(const QModelIndex &index, int role) const override
void groupingColorChanged(Grouping *grp)
int rowCount(const QModelIndex &parent=QModelIndex()) const override
Grouping * groupingByName(const QString &name) const
void groupingNameChangedEvent(Grouping *grp)
bool removeRows(int row, int count=1, const QModelIndex &parent=QModelIndex()) override
void newEntryAdded(QModelIndex &index)
QStringList groupingNames() const
QColor recolorGrouping(u32 id, const QColor &groupingColor)
Grouping * addDefaultEntry()
void deleteGroupingEvent(Grouping *grp)
QColor colorForItem(ItemType itemType, u32 itemId) const
GroupingTableView(bool history, QWidget *parent=nullptr)
void groupingSelected(u32 id, bool doubleClick)
Grouping * get_grouping() const
Grouping * create_grouping(const u32 grouping_id, const std::string &name="")
Gate * get_gate_by_id(const u32 gate_id) const
bool delete_grouping(Grouping *grouping)
Module * get_module_by_id(u32 module_id) const
Net * get_net_by_id(u32 net_id) const
const std::vector< Grouping * > & get_groupings() const
Grouping * get_grouping_by_id(u32 grouping_id) const
void groupingColorChanged(Grouping *grp) const
void groupingCreated(Grouping *grp) const
void groupingRemoved(Grouping *grp) const
void groupingNameChanged(Grouping *grp) const
ItemType
The ItemType enum provides the enum type to classify graphic items into Modules, Gates or Nets....
NetlistRelay * gNetlistRelay
QColor toQColor(utils::Color c)
void dataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight, const QVector< int > &roles)
void layoutAboutToBeChanged(const QList< QPersistentModelIndex > &parents, QAbstractItemModel::LayoutChangeHint hint)
void layoutChanged(const QList< QPersistentModelIndex > &parents, QAbstractItemModel::LayoutChangeHint hint)
void doubleClicked(const QModelIndex &index)
QAbstractItemModel * model() const const
void setSelectionBehavior(QAbstractItemView::SelectionBehavior behavior)
void setSelectionMode(QAbstractItemView::SelectionMode mode)
QItemSelectionModel * selectionModel() const const
void setItemDelegateForColumn(int column, QAbstractItemDelegate *delegate)
virtual QModelIndex index(int row, int column, const QModelIndex &parent) const const override
QColor fromHsv(int h, int s, int v, int a)
QString name() const const
int saturation() const const
QModelIndexList indexes() const const
void selectionChanged(const QItemSelection &selected, const QItemSelection &deselected)
void prepend(const T &value)
int removeAll(const T &value)
bool isValid() const const
QMetaObject::Connection connect(const QObject *sender, const char *signal, const QObject *receiver, const char *method, Qt::ConnectionType type)
QObject * parent() const const
bool contains(const T &value) const const
QSet::iterator insert(const T &value)
virtual void setSourceModel(QAbstractItemModel *sourceModel) override
QString fromStdString(const std::string &str)
QString trimmed() const const
void sortByColumn(int column)
virtual void setModel(QAbstractItemModel *model) override
void setSortingEnabled(bool enable)
QString toString() const const