summaryrefslogtreecommitdiff
path: root/utils/regtools/qeditor/regdisplaypanel.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'utils/regtools/qeditor/regdisplaypanel.cpp')
-rw-r--r--utils/regtools/qeditor/regdisplaypanel.cpp35
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
129namespace
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
129RegDisplayPanel::RegDisplayPanel(QWidget *parent, IoBackend *io_backend, 144RegDisplayPanel::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);