summaryrefslogtreecommitdiff
path: root/utils/regtools/qeditor/regtab.cpp
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/regtab.cpp
parent3daa6d64f6337ce47bed7a30c3591c144a278f98 (diff)
downloadrockbox-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.cpp43
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();