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.tar.gz
rockbox-ef0299c62ee31d0c6cb3bc755457bf37647123ba.zip
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 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();