HAL
groupings_of_item_widget.h
Go to the documentation of this file.
1
// MIT License
2
//
3
// Copyright (c) 2019 Ruhr University Bochum, Chair for Embedded Security. All Rights reserved.
4
// Copyright (c) 2019 Marc Fyrbiak, Sebastian Wallat, Max Hoffmann ("ORIGINAL AUTHORS"). All rights reserved.
5
// Copyright (c) 2021 Max Planck Institute for Security and Privacy. All Rights reserved.
6
// Copyright (c) 2021 Jörn Langheinrich, Julian Speith, Nils Albartus, René Walendy, Simon Klix ("ORIGINAL AUTHORS"). All Rights reserved.
7
//
8
// Permission is hereby granted, free of charge, to any person obtaining a copy
9
// of this software and associated documentation files (the "Software"), to deal
10
// in the Software without restriction, including without limitation the rights
11
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
12
// copies of the Software, and to permit persons to whom the Software is
13
// furnished to do so, subject to the following conditions:
14
//
15
// The above copyright notice and this permission notice shall be included in all
16
// copies or substantial portions of the Software.
17
//
18
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
19
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
20
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
21
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
22
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
23
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
24
// SOFTWARE.
25
26
#pragma once
27
28
#include "
gui/selection_details_widget/selection_details_widget.h
"
29
#include "
gui/selection_details_widget/tree_navigation/selection_tree_view.h
"
30
#include "
data_table_model.h
"
31
32
#include "
hal_core/netlist/gate.h
"
33
#include "
groupings_of_item_model.h
"
34
35
#include <QWidget>
36
#include <QTableWidget>
37
38
39
namespace
hal
40
{
41
42
class
GroupingTableEntry;
55
class
GroupingsOfItemWidget
:
public
QTableView
56
{
57
Q_OBJECT
58
59
public
:
60
66
GroupingsOfItemWidget
(
QWidget
*
parent
=
nullptr
);
67
73
GroupingsOfItemModel
*
getModel
();
74
80
void
setGate
(
Gate
* gate);
81
87
void
setNet
(
Net
*
net
);
88
94
void
setModule
(
Module
*
module
);
95
96
Q_SIGNALS
:
97
void
updateText
(
const
QString
& text);
98
99
private
Q_SLOTS
:
105
void
resizeEvent(
QResizeEvent
*
event
)
override
;
106
107
void
handleContextMenuRequest(
const
QPoint
&
pos
);
108
109
void
handleLayoutChanged(
const
QList<QPersistentModelIndex>
&parents,
QAbstractItemModel::LayoutChangeHint
hint);
110
111
112
private
:
113
void
updateAppearance();
114
115
void
adjustTableSizes();
116
117
void
notifyNewTitle(
int
elementCount);
118
119
void
changeNameTriggered(
GroupingTableEntry
entry);
120
121
void
changeColorTriggered(
GroupingTableEntry
entry);
122
123
ItemType
mCurrentObjectType;
124
u32
mCurrentObjectId;
125
GroupingsOfItemModel
* mGroupingsOfItemModel;
126
127
const
QString
mFrameTitleNoItem =
"Groupings (0)"
;
128
const
QString
mFrameTitleSingleItem =
"Grouping"
;
129
const
QString
mFrameTitleMultipleItems =
"Groupings (%1)"
;
130
131
};
132
}
// namespace hal
hal::Gate
Definition:
gate.h:58
hal::GroupingTableEntry
An entry within a GroupingTableModel.
Definition:
grouping_table_model.h:49
hal::GroupingsOfItemModel
A TableModel to store all Groupings that contain a specified Gate, Net or Module.
Definition:
groupings_of_item_model.h:56
hal::GroupingsOfItemWidget
A TableView to display all groupings that contain a specified Gate, Net or Module.
Definition:
groupings_of_item_widget.h:56
hal::GroupingsOfItemWidget::GroupingsOfItemWidget
GroupingsOfItemWidget(QWidget *parent=nullptr)
Definition:
groupings_of_item_widget.cpp:18
hal::GroupingsOfItemWidget::setNet
void setNet(Net *net)
Definition:
groupings_of_item_widget.cpp:55
hal::GroupingsOfItemWidget::getModel
GroupingsOfItemModel * getModel()
Definition:
groupings_of_item_widget.cpp:38
hal::GroupingsOfItemWidget::setModule
void setModule(Module *module)
Definition:
groupings_of_item_widget.cpp:67
hal::GroupingsOfItemWidget::setGate
void setGate(Gate *gate)
Definition:
groupings_of_item_widget.cpp:43
hal::GroupingsOfItemWidget::updateText
void updateText(const QString &text)
hal::Module
Definition:
module.h:66
hal::Net
Definition:
net.h:58
data_table_model.h
gate.h
hal::ItemType
ItemType
The ItemType enum provides the enum type to classify graphic items into Modules, Gates or Nets....
Definition:
gui_def.h:45
groupings_of_item_model.h
hal::ShortestPath::module
const Module * module(const Gate *g, const NodeBoxes &boxes)
Definition:
graph_graphics_view.cpp:741
hal
Definition:
parser_liberty.cpp:10
u32
quint32 u32
Definition:
net_layout_point.h:40
net
Net * net
Definition:
netlist_serializer.cpp:57
QAbstractItemModel::LayoutChangeHint
LayoutChangeHint
QAbstractItemView::event
virtual bool event(QEvent *event) override
QList
QObject::Q_OBJECT
Q_OBJECTQ_OBJECT
QObject::Q_SIGNALS
Q_SIGNALSQ_SIGNALS
QObject::Q_SLOTS
Q_SLOTSQ_SLOTS
QObject::parent
QObject * parent() const const
QPoint
QResizeEvent
QString
QTableView
QWidget
QWidget::pos
pos
selection_details_widget.h
selection_tree_view.h
plugins
gui
include
gui
selection_details_widget
groupings_of_item_widget.h
Generated on Fri Feb 14 2025 14:22:41 for HAL by
1.9.1