Merge remote-tracking branch 'origin/master' into master-mac-qt6

This commit is contained in:
Kazunari Sekigawa 2022-07-08 18:41:24 +09:00
commit 9cd0017d0d
13 changed files with 71 additions and 24 deletions

View File

@ -1530,8 +1530,10 @@ Service::mouse_click_event (const db::DPoint &p, unsigned int buttons, bool prio
db::DPoint pt = snap1 (p, m_obj_snap && tpl.snap ()).second;
// begin the transaction
tl_assert (! manager ()->transacting ());
manager ()->transaction (tl::to_string (tr ("Create ruler")));
if (manager ()) {
tl_assert (! manager ()->transacting ());
manager ()->transaction (tl::to_string (tr ("Create ruler")));
}
m_current = ant::Object (pt, pt, 0, tpl);
show_message ();
@ -1539,7 +1541,9 @@ Service::mouse_click_event (const db::DPoint &p, unsigned int buttons, bool prio
insert_ruler (m_current, true);
// end the transaction
manager ()->commit ();
if (manager ()) {
manager ()->commit ();
}
} else if (tpl.mode () == ant::Template::RulerAutoMetric) {
@ -1567,8 +1571,10 @@ Service::mouse_click_event (const db::DPoint &p, unsigned int buttons, bool prio
if (ee.any) {
// begin the transaction
tl_assert (! manager ()->transacting ());
manager ()->transaction (tl::to_string (tr ("Create ruler")));
if (manager ()) {
tl_assert (! manager ()->transacting ());
manager ()->transaction (tl::to_string (tr ("Create ruler")));
}
m_current = ant::Object (ee.first, ee.second, 0, tpl);
show_message ();
@ -1576,7 +1582,9 @@ Service::mouse_click_event (const db::DPoint &p, unsigned int buttons, bool prio
insert_ruler (m_current, true);
// end the transaction
manager ()->commit ();
if (manager ()) {
manager ()->commit ();
}
}
@ -1603,8 +1611,10 @@ Service::mouse_click_event (const db::DPoint &p, unsigned int buttons, bool prio
// create the ruler object
// begin the transaction
tl_assert (! manager ()->transacting ());
manager ()->transaction (tl::to_string (tr ("Create ruler")));
if (manager ()) {
tl_assert (! manager ()->transacting ());
manager ()->transaction (tl::to_string (tr ("Create ruler")));
}
show_message ();
@ -1615,7 +1625,9 @@ Service::mouse_click_event (const db::DPoint &p, unsigned int buttons, bool prio
clear_transient_selection ();
// end the transaction
manager ()->commit ();
if (manager ()) {
manager ()->commit ();
}
}
@ -2256,9 +2268,13 @@ Service::menu_activated (const std::string &symbol)
if (symbol == "ant::clear_all_rulers_internal") {
clear_rulers ();
} else if (symbol == "ant::clear_all_rulers") {
manager ()->transaction (tl::to_string (tr ("Clear all rulers")));
if (manager ()) {
manager ()->transaction (tl::to_string (tr ("Clear all rulers")));
}
clear_rulers ();
manager ()->commit ();
if (manager ()) {
manager ()->commit ();
}
} else {
lay::Plugin::menu_activated (symbol);
}

View File

@ -82,7 +82,7 @@ void FlatEdges::invalidate_cache ()
void FlatEdges::init ()
{
m_is_merged = true;
m_is_merged = false;
m_merged_edges_valid = false;
}
@ -321,9 +321,7 @@ const db::RecursiveShapeIterator *FlatEdges::iter () const
void
FlatEdges::do_insert (const db::Edge &edge)
{
if (! empty ()) {
m_is_merged = false;
}
m_is_merged = empty ();
mp_edges->insert (edge);
invalidate_cache ();

View File

@ -82,7 +82,7 @@ void FlatRegion::invalidate_cache ()
void FlatRegion::init ()
{
m_is_merged = true;
m_is_merged = false;
m_merged_polygons_valid = false;
}

View File

@ -270,7 +270,7 @@ OriginalLayerEdges::less (const Edges &other) const
void
OriginalLayerEdges::init ()
{
m_is_merged = true;
m_is_merged = false;
m_merged_edges_valid = false;
}

View File

@ -382,7 +382,7 @@ OriginalLayerRegion::less (const Region &other) const
void
OriginalLayerRegion::init ()
{
m_is_merged = true;
m_is_merged = false;
m_merged_polygons_valid = false;
}

View File

@ -260,7 +260,7 @@ static const db::Net *net_for_terminal_by_name_const (const db::Device *device,
}
}
static const db::Net *net_for_terminal_by_name (db::Device *device, const std::string &name)
static db::Net *net_for_terminal_by_name (db::Device *device, const std::string &name)
{
if (! device->device_class () || ! device->device_class ()->has_terminal_with_name (name)) {
return 0;
@ -2832,7 +2832,7 @@ Class<db::NetlistSpiceReader> db_NetlistSpiceReader (db_NetlistReader, "db", "Ne
"Use the SPICE reader like this:\n"
"\n"
"@code\n"
"writer = RBA::NetlistSpiceReader::new\n"
"reader = RBA::NetlistSpiceReader::new\n"
"netlist = RBA::Netlist::new\n"
"netlist.read(path, reader)\n"
"@/code\n"

View File

@ -1318,3 +1318,13 @@ TEST(54_issue1011)
run_test (_this, "54", false);
}
TEST(55_drccount)
{
run_test (_this, "55", false);
}
TEST(55d_drccount)
{
run_test (_this, "55", true);
}

View File

@ -98,13 +98,16 @@ connect_global(ptie, "SUBSTRATE")
# -------------------------------------------------------------------
# Netlist and compare
# Netlist normalization
netlist.simplify
# Netlist extraction
netlist
# Hierarchy alignment (flatten out unmatched cells)
# Hierarchy alignment (flatten out unmatched cells, specifically device cells)
align
# Netlist vs. netlist
# Netlist normalization and device combination
netlist.simplify
# Netlist vs. netlist check
compare
</text>
</klayout-macro>

20
testdata/drc/drcSimpleTests_55.drc vendored Normal file
View File

@ -0,0 +1,20 @@
source $drc_test_source
target $drc_test_target
if $drc_test_deep
deep
end
licon = input(66, 44)
licon.output(66, 44)
licon_cluster = licon.sized(0.2).sized(-0.2)
single = licon_cluster.drc(secondary(licon).count == 1)
single.sized(0.1).output(100, 0)
single = licon_cluster.drc(if_any(secondary(licon).count == 1))
single.sized(0.1).output(101, 0)

BIN
testdata/drc/drcSimpleTests_55.gds vendored Normal file

Binary file not shown.

BIN
testdata/drc/drcSimpleTests_55d.gds vendored Normal file

Binary file not shown.

BIN
testdata/drc/drcSimpleTests_au55.gds vendored Normal file

Binary file not shown.

BIN
testdata/drc/drcSimpleTests_au55d.gds vendored Normal file

Binary file not shown.