diff options
Diffstat (limited to 'utils/regtools/qeditor/regdisplaypanel.cpp')
-rw-r--r-- | utils/regtools/qeditor/regdisplaypanel.cpp | 35 |
1 files changed, 31 insertions, 4 deletions
diff --git a/utils/regtools/qeditor/regdisplaypanel.cpp b/utils/regtools/qeditor/regdisplaypanel.cpp index a72d280d6c..1c2f1db9a9 100644 --- a/utils/regtools/qeditor/regdisplaypanel.cpp +++ b/utils/regtools/qeditor/regdisplaypanel.cpp | |||
@@ -46,7 +46,7 @@ SocDisplayPanel::SocDisplayPanel(QWidget *parent, IoBackend *io_backend, | |||
46 | right_layout->addWidget(m_desc, 0); | 46 | right_layout->addWidget(m_desc, 0); |
47 | right_layout->addStretch(1); | 47 | right_layout->addStretch(1); |
48 | 48 | ||
49 | setTitle("System-on-Chip Description"); | 49 | setTitle(""); |
50 | setLayout(right_layout); | 50 | setLayout(right_layout); |
51 | } | 51 | } |
52 | 52 | ||
@@ -108,7 +108,7 @@ NodeDisplayPanel::NodeDisplayPanel(QWidget *parent, IoBackend *io_backend, | |||
108 | right_layout->addWidget(m_inst_desc, 0); | 108 | right_layout->addWidget(m_inst_desc, 0); |
109 | right_layout->addStretch(1); | 109 | right_layout->addStretch(1); |
110 | 110 | ||
111 | setTitle("Device Description"); | 111 | setTitle(""); |
112 | setLayout(right_layout); | 112 | setLayout(right_layout); |
113 | } | 113 | } |
114 | 114 | ||
@@ -126,6 +126,21 @@ QWidget *NodeDisplayPanel::GetWidget() | |||
126 | * RegDisplayPanel | 126 | * RegDisplayPanel |
127 | */ | 127 | */ |
128 | 128 | ||
129 | namespace | ||
130 | { | ||
131 | QString access_string(soc_desc::access_t acc, QString dflt = "") | ||
132 | { | ||
133 | switch(acc) | ||
134 | { | ||
135 | case soc_desc::UNSPECIFIED: return dflt; | ||
136 | case soc_desc::READ_ONLY: return "Read only"; | ||
137 | case soc_desc::READ_WRITE: return "Read-write"; | ||
138 | case soc_desc::WRITE_ONLY: return "Write-only"; | ||
139 | default: return ""; | ||
140 | } | ||
141 | } | ||
142 | } | ||
143 | |||
129 | RegDisplayPanel::RegDisplayPanel(QWidget *parent, IoBackend *io_backend, | 144 | RegDisplayPanel::RegDisplayPanel(QWidget *parent, IoBackend *io_backend, |
130 | const soc_desc::node_inst_t& ref) | 145 | const soc_desc::node_inst_t& ref) |
131 | :QGroupBox(parent), m_io_backend(io_backend), m_node(ref), m_reg_font(font()) | 146 | :QGroupBox(parent), m_io_backend(io_backend), m_node(ref), m_reg_font(font()) |
@@ -139,16 +154,18 @@ RegDisplayPanel::RegDisplayPanel(QWidget *parent, IoBackend *io_backend, | |||
139 | m_reg_font.setKerning(false); | 154 | m_reg_font.setKerning(false); |
140 | 155 | ||
141 | QString reg_name = helper.GetPath(ref); | 156 | QString reg_name = helper.GetPath(ref); |
142 | QStringList names; | 157 | QStringList names, access; |
143 | QVector< soc_addr_t > addresses; | 158 | QVector< soc_addr_t > addresses; |
144 | names.append(reg_name); | 159 | names.append(reg_name); |
145 | addresses.append(ref.addr()); | 160 | addresses.append(ref.addr()); |
161 | access.append(access_string(ref.node().reg().get()->access)); | ||
146 | 162 | ||
147 | std::vector< soc_desc::variant_ref_t > variants = ref.node().reg().variants(); | 163 | std::vector< soc_desc::variant_ref_t > variants = ref.node().reg().variants(); |
148 | for(size_t i = 0; i < variants.size(); i++) | 164 | for(size_t i = 0; i < variants.size(); i++) |
149 | { | 165 | { |
150 | names.append(reg_name + "/" + QString::fromStdString(variants[i].get()->type)); | 166 | names.append(reg_name + "/" + QString::fromStdString(variants[i].get()->type)); |
151 | addresses.append(ref.addr() + variants[i].get()->offset); | 167 | addresses.append(ref.addr() + variants[i].get()->offset); |
168 | access.append(access_string(ref.node().reg().get()->access, access[0])); | ||
152 | } | 169 | } |
153 | 170 | ||
154 | QString str; | 171 | QString str; |
@@ -169,10 +186,20 @@ RegDisplayPanel::RegDisplayPanel(QWidget *parent, IoBackend *io_backend, | |||
169 | label_addr->setTextFormat(Qt::RichText); | 186 | label_addr->setTextFormat(Qt::RichText); |
170 | label_addr->setText(str_addr); | 187 | label_addr->setText(str_addr); |
171 | 188 | ||
189 | QString str_acc; | ||
190 | str_acc += "<table align=left>"; | ||
191 | for(int i = 0; i < names.size(); i++) | ||
192 | str_acc += "<tr><td><b>" + access[i] + "</b></td></tr>"; | ||
193 | str_acc += "</table>"; | ||
194 | QLabel *label_access = new QLabel; | ||
195 | label_access->setTextFormat(Qt::RichText); | ||
196 | label_access->setText(str_acc); | ||
197 | |||
172 | QHBoxLayout *top_layout = new QHBoxLayout; | 198 | QHBoxLayout *top_layout = new QHBoxLayout; |
173 | top_layout->addStretch(); | 199 | top_layout->addStretch(); |
174 | top_layout->addWidget(label_names); | 200 | top_layout->addWidget(label_names); |
175 | top_layout->addWidget(label_addr); | 201 | top_layout->addWidget(label_addr); |
202 | top_layout->addWidget(label_access); | ||
176 | top_layout->addStretch(); | 203 | top_layout->addStretch(); |
177 | 204 | ||
178 | m_raw_val_name = new QLabel; | 205 | m_raw_val_name = new QLabel; |
@@ -250,7 +277,7 @@ RegDisplayPanel::RegDisplayPanel(QWidget *parent, IoBackend *io_backend, | |||
250 | right_layout->addWidget(m_value_table); | 277 | right_layout->addWidget(m_value_table); |
251 | right_layout->addStretch(); | 278 | right_layout->addStretch(); |
252 | 279 | ||
253 | setTitle("Register Description"); | 280 | setTitle(""); |
254 | m_viewport = new QWidget; | 281 | m_viewport = new QWidget; |
255 | m_viewport->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); | 282 | m_viewport->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); |
256 | m_viewport->setLayout(right_layout); | 283 | m_viewport->setLayout(right_layout); |