diff options
-rw-r--r-- | utils/regtools/qeditor/regdisplaypanel.cpp | 36 | ||||
-rw-r--r-- | utils/regtools/qeditor/regdisplaypanel.h | 17 | ||||
-rw-r--r-- | utils/regtools/qeditor/regtab.cpp | 43 | ||||
-rw-r--r-- | utils/regtools/qeditor/regtab.h | 2 |
4 files changed, 92 insertions, 6 deletions
diff --git a/utils/regtools/qeditor/regdisplaypanel.cpp b/utils/regtools/qeditor/regdisplaypanel.cpp index 8d7bf582f1..d450b4e203 100644 --- a/utils/regtools/qeditor/regdisplaypanel.cpp +++ b/utils/regtools/qeditor/regdisplaypanel.cpp | |||
@@ -17,6 +17,40 @@ QByteArray RegItemEditorCreator::valuePropertyName () const | |||
17 | } | 17 | } |
18 | 18 | ||
19 | /** | 19 | /** |
20 | * SocDisplayPanel | ||
21 | */ | ||
22 | SocDisplayPanel::SocDisplayPanel(QWidget *parent, const SocRef& dev_ref) | ||
23 | :QGroupBox(parent), m_soc(dev_ref) | ||
24 | { | ||
25 | QVBoxLayout *right_layout = new QVBoxLayout; | ||
26 | |||
27 | m_name = new QLabel(this); | ||
28 | m_name->setTextFormat(Qt::RichText); | ||
29 | m_name->setText("<h1>" + QString::fromStdString(m_soc.GetSoc().name) + "</h1>"); | ||
30 | |||
31 | m_desc = new QLabel(this); | ||
32 | m_name->setTextFormat(Qt::RichText); | ||
33 | m_desc->setText(QString::fromStdString(m_soc.GetSoc().desc)); | ||
34 | |||
35 | right_layout->addWidget(m_name, 0); | ||
36 | right_layout->addWidget(m_desc, 0); | ||
37 | right_layout->addStretch(1); | ||
38 | |||
39 | setTitle("System-on-Chip Description"); | ||
40 | setLayout(right_layout); | ||
41 | } | ||
42 | |||
43 | void SocDisplayPanel::AllowWrite(bool en) | ||
44 | { | ||
45 | Q_UNUSED(en); | ||
46 | } | ||
47 | |||
48 | QWidget *SocDisplayPanel::GetWidget() | ||
49 | { | ||
50 | return this; | ||
51 | } | ||
52 | |||
53 | /** | ||
20 | * DevDisplayPanel | 54 | * DevDisplayPanel |
21 | */ | 55 | */ |
22 | DevDisplayPanel::DevDisplayPanel(QWidget *parent, const SocDevRef& dev_ref) | 56 | DevDisplayPanel::DevDisplayPanel(QWidget *parent, const SocDevRef& dev_ref) |
@@ -51,8 +85,8 @@ DevDisplayPanel::DevDisplayPanel(QWidget *parent, const SocDevRef& dev_ref) | |||
51 | m_name->setTextFormat(Qt::RichText); | 85 | m_name->setTextFormat(Qt::RichText); |
52 | m_desc->setText(QString::fromStdString(m_dev.GetDev().desc)); | 86 | m_desc->setText(QString::fromStdString(m_dev.GetDev().desc)); |
53 | 87 | ||
54 | right_layout->addLayout(top_layout, 0); | ||
55 | right_layout->addWidget(m_name, 0); | 88 | right_layout->addWidget(m_name, 0); |
89 | right_layout->addLayout(top_layout, 0); | ||
56 | right_layout->addWidget(m_desc, 0); | 90 | right_layout->addWidget(m_desc, 0); |
57 | right_layout->addStretch(1); | 91 | right_layout->addStretch(1); |
58 | 92 | ||
diff --git a/utils/regtools/qeditor/regdisplaypanel.h b/utils/regtools/qeditor/regdisplaypanel.h index a000fa5611..ce6f108350 100644 --- a/utils/regtools/qeditor/regdisplaypanel.h +++ b/utils/regtools/qeditor/regdisplaypanel.h | |||
@@ -23,6 +23,23 @@ public: | |||
23 | virtual QByteArray valuePropertyName () const; | 23 | virtual QByteArray valuePropertyName () const; |
24 | }; | 24 | }; |
25 | 25 | ||
26 | class SocDisplayPanel : public QGroupBox, public RegTabPanel | ||
27 | { | ||
28 | Q_OBJECT | ||
29 | public: | ||
30 | SocDisplayPanel(QWidget *parent, const SocRef& reg); | ||
31 | void Reload(); | ||
32 | void AllowWrite(bool en); | ||
33 | QWidget *GetWidget(); | ||
34 | bool Quit(); | ||
35 | |||
36 | protected: | ||
37 | |||
38 | const SocRef& m_soc; | ||
39 | QLabel *m_name; | ||
40 | QLabel *m_desc; | ||
41 | }; | ||
42 | |||
26 | class DevDisplayPanel : public QGroupBox, public RegTabPanel | 43 | class DevDisplayPanel : public QGroupBox, public RegTabPanel |
27 | { | 44 | { |
28 | Q_OBJECT | 45 | Q_OBJECT |
diff --git a/utils/regtools/qeditor/regtab.cpp b/utils/regtools/qeditor/regtab.cpp index a335475e48..9fba9e9cb9 100644 --- a/utils/regtools/qeditor/regtab.cpp +++ b/utils/regtools/qeditor/regtab.cpp | |||
@@ -16,7 +16,19 @@ namespace | |||
16 | enum | 16 | enum |
17 | { | 17 | { |
18 | RegTreeDevType = QTreeWidgetItem::UserType, | 18 | RegTreeDevType = QTreeWidgetItem::UserType, |
19 | RegTreeRegType | 19 | RegTreeRegType, |
20 | RegTreeSocType | ||
21 | }; | ||
22 | |||
23 | class SocTreeItem : public QTreeWidgetItem | ||
24 | { | ||
25 | public: | ||
26 | SocTreeItem(const QString& string, const SocRef& ref) | ||
27 | :QTreeWidgetItem(QStringList(string), RegTreeSocType), m_ref(ref) {} | ||
28 | |||
29 | const SocRef& GetRef() { return m_ref; } | ||
30 | private: | ||
31 | SocRef m_ref; | ||
20 | }; | 32 | }; |
21 | 33 | ||
22 | class DevTreeItem : public QTreeWidgetItem | 34 | class DevTreeItem : public QTreeWidgetItem |
@@ -293,6 +305,11 @@ void RegTab::OnRegItemClicked(QTreeWidgetItem *current, int col) | |||
293 | Q_UNUSED(col); | 305 | Q_UNUSED(col); |
294 | if(current == 0) | 306 | if(current == 0) |
295 | return; | 307 | return; |
308 | if(current->type() == RegTreeSocType) | ||
309 | { | ||
310 | SocTreeItem *item = dynamic_cast< SocTreeItem * >(current); | ||
311 | DisplaySoc(item->GetRef()); | ||
312 | } | ||
296 | if(current->type() == RegTreeRegType) | 313 | if(current->type() == RegTreeRegType) |
297 | { | 314 | { |
298 | RegTreeItem *item = dynamic_cast< RegTreeItem * >(current); | 315 | RegTreeItem *item = dynamic_cast< RegTreeItem * >(current); |
@@ -329,6 +346,11 @@ void RegTab::DisplayDevice(const SocDevRef& ref) | |||
329 | SetPanel(new DevDisplayPanel(this, ref)); | 346 | SetPanel(new DevDisplayPanel(this, ref)); |
330 | } | 347 | } |
331 | 348 | ||
349 | void RegTab::DisplaySoc(const SocRef& ref) | ||
350 | { | ||
351 | SetPanel(new SocDisplayPanel(this, ref)); | ||
352 | } | ||
353 | |||
332 | void RegTab::SetPanel(RegTabPanel *panel) | 354 | void RegTab::SetPanel(RegTabPanel *panel) |
333 | { | 355 | { |
334 | delete m_right_content; | 356 | delete m_right_content; |
@@ -410,21 +432,32 @@ void RegTab::FillDevSubTree(QTreeWidgetItem *_item) | |||
410 | } | 432 | } |
411 | } | 433 | } |
412 | 434 | ||
413 | void RegTab::FillRegTree() | 435 | void RegTab::FillSocSubTree(QTreeWidgetItem *_item) |
414 | { | 436 | { |
415 | for(size_t i = 0; i < m_cur_soc.GetSoc().dev.size(); i++) | 437 | SocTreeItem *item = dynamic_cast< SocTreeItem* >(_item); |
438 | const soc_t& soc = item->GetRef().GetSoc(); | ||
439 | for(size_t i = 0; i < soc.dev.size(); i++) | ||
416 | { | 440 | { |
417 | const soc_dev_t& dev = m_cur_soc.GetSoc().dev[i]; | 441 | const soc_dev_t& dev = soc.dev[i]; |
418 | for(size_t j = 0; j < dev.addr.size(); j++) | 442 | for(size_t j = 0; j < dev.addr.size(); j++) |
419 | { | 443 | { |
420 | DevTreeItem *dev_item = new DevTreeItem(dev.addr[j].name.c_str(), | 444 | DevTreeItem *dev_item = new DevTreeItem(dev.addr[j].name.c_str(), |
421 | SocDevRef(m_cur_soc, i, j)); | 445 | SocDevRef(m_cur_soc, i, j)); |
422 | FillDevSubTree(dev_item); | 446 | FillDevSubTree(dev_item); |
423 | m_reg_tree->addTopLevelItem(dev_item); | 447 | item->addChild(dev_item); |
424 | } | 448 | } |
425 | } | 449 | } |
426 | } | 450 | } |
427 | 451 | ||
452 | void RegTab::FillRegTree() | ||
453 | { | ||
454 | SocTreeItem *soc_item = new SocTreeItem(m_cur_soc.GetSoc().name.c_str(), | ||
455 | m_cur_soc); | ||
456 | FillSocSubTree(soc_item); | ||
457 | m_reg_tree->addTopLevelItem(soc_item); | ||
458 | m_reg_tree->expandItem(soc_item); | ||
459 | } | ||
460 | |||
428 | void RegTab::FillAnalyserList() | 461 | void RegTab::FillAnalyserList() |
429 | { | 462 | { |
430 | m_analysers_list->clear(); | 463 | m_analysers_list->clear(); |
diff --git a/utils/regtools/qeditor/regtab.h b/utils/regtools/qeditor/regtab.h index b5b1f56775..5c694464ab 100644 --- a/utils/regtools/qeditor/regtab.h +++ b/utils/regtools/qeditor/regtab.h | |||
@@ -57,11 +57,13 @@ protected: | |||
57 | }; | 57 | }; |
58 | 58 | ||
59 | void FillDevSubTree(QTreeWidgetItem *item); | 59 | void FillDevSubTree(QTreeWidgetItem *item); |
60 | void FillSocSubTree(QTreeWidgetItem *item); | ||
60 | void FillRegTree(); | 61 | void FillRegTree(); |
61 | void FillAnalyserList(); | 62 | void FillAnalyserList(); |
62 | void UpdateSocList(); | 63 | void UpdateSocList(); |
63 | void DisplayRegister(const SocRegRef& ref); | 64 | void DisplayRegister(const SocRegRef& ref); |
64 | void DisplayDevice(const SocDevRef& ref); | 65 | void DisplayDevice(const SocDevRef& ref); |
66 | void DisplaySoc(const SocRef& ref); | ||
65 | void SetDataSocName(const QString& socname); | 67 | void SetDataSocName(const QString& socname); |
66 | void SetPanel(RegTabPanel *panel); | 68 | void SetPanel(RegTabPanel *panel); |
67 | void UpdateSocFilename(); | 69 | void UpdateSocFilename(); |