Skip to content

Commit 503671f

Browse files
committed
gui: provide links between mod and flat objects in the inspector
Net -> ModNets ITerm -> ModNet BTerm -> ModNet ModNet -> Net Signed-off-by: Matt Liberty <[email protected]>
1 parent 398628e commit 503671f

File tree

1 file changed

+27
-0
lines changed

1 file changed

+27
-0
lines changed

src/gui/src/dbDescriptors.cpp

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1830,6 +1830,7 @@ bool DbNetDescriptor::isNet(const std::any& object) const
18301830
Descriptor::Properties DbNetDescriptor::getDBProperties(odb::dbNet* net) const
18311831
{
18321832
auto gui = Gui::get();
1833+
18331834
Properties props({{"Block", gui->makeSelected(net->getBlock())},
18341835
{"Signal type", net->getSigType().getString()},
18351836
{"Source type", net->getSourceType().getString()},
@@ -1854,6 +1855,15 @@ Descriptor::Properties DbNetDescriptor::getDBProperties(odb::dbNet* net) const
18541855
}
18551856
props.push_back({"BTerms", bterms});
18561857

1858+
std::set<odb::dbModNet*> modnet_set;
1859+
if (net->findRelatedModNets(modnet_set)) {
1860+
SelectionSet mod_nets;
1861+
for (odb::dbModNet* mod_net : modnet_set) {
1862+
mod_nets.insert(gui->makeSelected(mod_net));
1863+
}
1864+
props.push_back({"ModNets", mod_nets});
1865+
}
1866+
18571867
auto* ndr = net->getNonDefaultRule();
18581868
if (ndr != nullptr) {
18591869
props.push_back({"Non-default rule", gui->makeSelected(ndr)});
@@ -2119,6 +2129,13 @@ Descriptor::Properties DbITermDescriptor::getDBProperties(
21192129
} else {
21202130
net_value = "<none>";
21212131
}
2132+
auto mod_net = iterm->getModNet();
2133+
std::any mod_net_value;
2134+
if (mod_net != nullptr) {
2135+
mod_net_value = gui->makeSelected(mod_net);
2136+
} else {
2137+
mod_net_value = "<none>";
2138+
}
21222139
SelectionSet aps;
21232140
for (const auto& [mpin, ap_vec] : iterm->getAccessPoints()) {
21242141
for (const auto& ap : ap_vec) {
@@ -2128,6 +2145,7 @@ Descriptor::Properties DbITermDescriptor::getDBProperties(
21282145
}
21292146
Properties props{{"Instance", gui->makeSelected(iterm->getInst())},
21302147
{"Net", std::move(net_value)},
2148+
{"ModNet", std::move(mod_net_value)},
21312149
{"Special", iterm->isSpecial()},
21322150
{"MTerm", gui->makeSelected(iterm->getMTerm())},
21332151
{"Access Points", aps}};
@@ -2209,8 +2227,16 @@ Descriptor::Properties DbBTermDescriptor::getDBProperties(
22092227
aps.insert(gui->makeSelected(bap));
22102228
}
22112229
}
2230+
auto mod_net = bterm->getModNet();
2231+
std::any mod_net_value;
2232+
if (mod_net != nullptr) {
2233+
mod_net_value = gui->makeSelected(mod_net);
2234+
} else {
2235+
mod_net_value = "<none>";
2236+
}
22122237
Properties props{{"Block", gui->makeSelected(bterm->getBlock())},
22132238
{"Net", gui->makeSelected(bterm->getNet())},
2239+
{"ModNet", std::move(mod_net_value)},
22142240
{"Signal type", bterm->getSigType().getString()},
22152241
{"IO type", bterm->getIoType().getString()},
22162242
{"Access Points", aps}};
@@ -3992,6 +4018,7 @@ Descriptor::Properties DbModNetDescriptor::getDBProperties(
39924018
bterms.insert(gui->makeSelected(bterm));
39934019
}
39944020
props.push_back({"BTerms", bterms});
4021+
props.push_back({"Net", gui->makeSelected(modnet->findRelatedNet())});
39954022

39964023
return props;
39974024
}

0 commit comments

Comments
 (0)