void RegEdit::AddRegister(QTreeWidgetItem *_item) { NewRegTreeItem *item = dynamic_cast< NewRegTreeItem * >(_item); item->GetRef().GetDev().reg.push_back(soc_reg_t()); RegTreeItem *reg_item = new RegTreeItem("", SocRegRef(item->GetRef(), item->GetRef().GetDev().reg.size() - 1, -1)); FixupEmptyItem(reg_item); item->parent()->insertChild(item->parent()->indexOfChild(item), reg_item); CreateNewFieldItem(reg_item); m_soc_tree->setCurrentItem(reg_item); emit OnModified(true); }
void RegEdit::FillDevTreeItem(QTreeWidgetItem *_item) { DevTreeItem *item = dynamic_cast< DevTreeItem* >(_item); const soc_dev_t& dev = item->GetRef().GetDev(); for(size_t i = 0; i < dev.reg.size(); i++) { const soc_reg_t& reg = dev.reg[i]; RegTreeItem *reg_item = new RegTreeItem(QString::fromStdString(reg.name), SocRegRef(item->GetRef(), i, -1)); FixupEmptyItem(reg_item); FillRegTreeItem(reg_item); item->addChild(reg_item); } CreateNewRegisterItem(item); }
bool BackendHelper::GetRegRef(const SocDevRef& dev, const QString& sreg, SocRegRef& ref) { const soc_dev_t& sdev = dev.GetDev(); for(size_t i = 0; i < sdev.reg.size(); i++) { const soc_reg_t& reg = sdev.reg[i]; for(size_t j = 0; j < reg.addr.size(); j++) { if(reg.addr[j].name.c_str() == sreg) { ref = SocRegRef(dev, i, j); return true; } } } return false; }