diff options
| author | Amaury Pouly <amaury.pouly@gmail.com> | 2014-08-09 18:39:45 +0200 |
|---|---|---|
| committer | Amaury Pouly <amaury.pouly@gmail.com> | 2014-09-07 17:46:42 +0200 |
| commit | ef0299c62ee31d0c6cb3bc755457bf37647123ba (patch) | |
| tree | 1fd295f035214756c595c972ee2e488b3ab25088 /utils/regtools/qeditor/regtab.cpp | |
| parent | 3daa6d64f6337ce47bed7a30c3591c144a278f98 (diff) | |
| download | rockbox-ef0299c62ee31d0c6cb3bc755457bf37647123ba.zip rockbox-ef0299c62ee31d0c6cb3bc755457bf37647123ba.tar.gz rockbox-ef0299c62ee31d0c6cb3bc755457bf37647123ba.tar.bz2 rockbox-ef0299c62ee31d0c6cb3bc755457bf37647123ba.tar.xz | |
qeditor: add soc panel, to display soc information
Change-Id: Ie442b82d96fb150c7466f1a274240f9b111fd91e
Diffstat (limited to 'utils/regtools/qeditor/regtab.cpp')
| -rw-r--r-- | utils/regtools/qeditor/regtab.cpp | 43 |
1 files changed, 38 insertions, 5 deletions
diff --git a/utils/regtools/qeditor/regtab.cpp b/utils/regtools/qeditor/regtab.cpp index a335475..9fba9e9 100644 --- a/utils/regtools/qeditor/regtab.cpp +++ b/utils/regtools/qeditor/regtab.cpp @@ -16,7 +16,19 @@ namespace enum { RegTreeDevType = QTreeWidgetItem::UserType, - RegTreeRegType + RegTreeRegType, + RegTreeSocType +}; + +class SocTreeItem : public QTreeWidgetItem +{ +public: + SocTreeItem(const QString& string, const SocRef& ref) + :QTreeWidgetItem(QStringList(string), RegTreeSocType), m_ref(ref) {} + + const SocRef& GetRef() { return m_ref; } +private: + SocRef m_ref; }; class DevTreeItem : public QTreeWidgetItem @@ -293,6 +305,11 @@ void RegTab::OnRegItemClicked(QTreeWidgetItem *current, int col) Q_UNUSED(col); if(current == 0) return; + if(current->type() == RegTreeSocType) + { + SocTreeItem *item = dynamic_cast< SocTreeItem * >(current); + DisplaySoc(item->GetRef()); + } if(current->type() == RegTreeRegType) { RegTreeItem *item = dynamic_cast< RegTreeItem * >(current); @@ -329,6 +346,11 @@ void RegTab::DisplayDevice(const SocDevRef& ref) SetPanel(new DevDisplayPanel(this, ref)); } +void RegTab::DisplaySoc(const SocRef& ref) +{ + SetPanel(new SocDisplayPanel(this, ref)); +} + void RegTab::SetPanel(RegTabPanel *panel) { delete m_right_content; @@ -410,21 +432,32 @@ void RegTab::FillDevSubTree(QTreeWidgetItem *_item) } } -void RegTab::FillRegTree() +void RegTab::FillSocSubTree(QTreeWidgetItem *_item) { - for(size_t i = 0; i < m_cur_soc.GetSoc().dev.size(); i++) + SocTreeItem *item = dynamic_cast< SocTreeItem* >(_item); + const soc_t& soc = item->GetRef().GetSoc(); + for(size_t i = 0; i < soc.dev.size(); i++) { - const soc_dev_t& dev = m_cur_soc.GetSoc().dev[i]; + const soc_dev_t& dev = soc.dev[i]; for(size_t j = 0; j < dev.addr.size(); j++) { DevTreeItem *dev_item = new DevTreeItem(dev.addr[j].name.c_str(), SocDevRef(m_cur_soc, i, j)); FillDevSubTree(dev_item); - m_reg_tree->addTopLevelItem(dev_item); + item->addChild(dev_item); } } } +void RegTab::FillRegTree() +{ + SocTreeItem *soc_item = new SocTreeItem(m_cur_soc.GetSoc().name.c_str(), + m_cur_soc); + FillSocSubTree(soc_item); + m_reg_tree->addTopLevelItem(soc_item); + m_reg_tree->expandItem(soc_item); +} + void RegTab::FillAnalyserList() { m_analysers_list->clear(); |