summaryrefslogtreecommitdiff
path: root/utils/regtools/qeditor
diff options
context:
space:
mode:
authorAmaury Pouly <amaury.pouly@gmail.com>2014-08-09 18:39:45 +0200
committerAmaury Pouly <amaury.pouly@gmail.com>2014-09-07 17:46:42 +0200
commitef0299c62ee31d0c6cb3bc755457bf37647123ba (patch)
tree1fd295f035214756c595c972ee2e488b3ab25088 /utils/regtools/qeditor
parent3daa6d64f6337ce47bed7a30c3591c144a278f98 (diff)
downloadrockbox-ef0299c62ee31d0c6cb3bc755457bf37647123ba.tar.gz
rockbox-ef0299c62ee31d0c6cb3bc755457bf37647123ba.zip
qeditor: add soc panel, to display soc information
Change-Id: Ie442b82d96fb150c7466f1a274240f9b111fd91e
Diffstat (limited to 'utils/regtools/qeditor')
-rw-r--r--utils/regtools/qeditor/regdisplaypanel.cpp36
-rw-r--r--utils/regtools/qeditor/regdisplaypanel.h17
-rw-r--r--utils/regtools/qeditor/regtab.cpp43
-rw-r--r--utils/regtools/qeditor/regtab.h2
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 */
22SocDisplayPanel::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
43void SocDisplayPanel::AllowWrite(bool en)
44{
45 Q_UNUSED(en);
46}
47
48QWidget *SocDisplayPanel::GetWidget()
49{
50 return this;
51}
52
53/**
20 * DevDisplayPanel 54 * DevDisplayPanel
21 */ 55 */
22DevDisplayPanel::DevDisplayPanel(QWidget *parent, const SocDevRef& dev_ref) 56DevDisplayPanel::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
26class SocDisplayPanel : public QGroupBox, public RegTabPanel
27{
28 Q_OBJECT
29public:
30 SocDisplayPanel(QWidget *parent, const SocRef& reg);
31 void Reload();
32 void AllowWrite(bool en);
33 QWidget *GetWidget();
34 bool Quit();
35
36protected:
37
38 const SocRef& m_soc;
39 QLabel *m_name;
40 QLabel *m_desc;
41};
42
26class DevDisplayPanel : public QGroupBox, public RegTabPanel 43class 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
16enum 16enum
17{ 17{
18 RegTreeDevType = QTreeWidgetItem::UserType, 18 RegTreeDevType = QTreeWidgetItem::UserType,
19 RegTreeRegType 19 RegTreeRegType,
20 RegTreeSocType
21};
22
23class SocTreeItem : public QTreeWidgetItem
24{
25public:
26 SocTreeItem(const QString& string, const SocRef& ref)
27 :QTreeWidgetItem(QStringList(string), RegTreeSocType), m_ref(ref) {}
28
29 const SocRef& GetRef() { return m_ref; }
30private:
31 SocRef m_ref;
20}; 32};
21 33
22class DevTreeItem : public QTreeWidgetItem 34class 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
349void RegTab::DisplaySoc(const SocRef& ref)
350{
351 SetPanel(new SocDisplayPanel(this, ref));
352}
353
332void RegTab::SetPanel(RegTabPanel *panel) 354void 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
413void RegTab::FillRegTree() 435void 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
452void 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
428void RegTab::FillAnalyserList() 461void 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();