Another improvement to the pin/entry targets: if a bus entry is drawn between two WIRES (not a wire and a bus, or two buses), it looks like it's connecting the wires together, but doesn't actually represent a connection. This patch makes it display as dangling in that case, to make it clear to the user that a connection has not actually been made.
-- Chris
commit 04217c50d45ce0ed4e291c24e559da133aa4e181 Author: Chris Pavlina <[email protected]> Date: Mon Jun 15 11:05:25 2015 -0400 Show bus entry joining two wires as dangling diff --git a/eeschema/sch_bus_entry.cpp b/eeschema/sch_bus_entry.cpp index c655750..1819cae 100644 --- a/eeschema/sch_bus_entry.cpp +++ b/eeschema/sch_bus_entry.cpp @@ -258,6 +258,12 @@ bool SCH_BUS_ENTRY_BASE::IsDanglingStateChanged( std::vector<DANGLING_END_ITEM>& // when the end position is found. wxPoint seg_start; + // Special case: if both items are wires, show as dangling. This is because + // a bus entry between two wires will look like a connection, but does NOT + // actually represent one. We need to clarify this for the user. + bool start_is_wire = false; + bool end_is_wire = false; + BOOST_FOREACH( DANGLING_END_ITEM& each_item, aItemList ) { if( each_item.GetItem() == this ) @@ -269,17 +275,29 @@ bool SCH_BUS_ENTRY_BASE::IsDanglingStateChanged( std::vector<DANGLING_END_ITEM>& case BUS_START_END: seg_start = each_item.GetPosition(); break; + case WIRE_END_END: + if( IsPointOnSegment( seg_start, each_item.GetPosition(), m_pos ) ) + start_is_wire = true; + if( IsPointOnSegment( seg_start, each_item.GetPosition(), m_End() ) ) + end_is_wire = true; + // Fall through + case BUS_END_END: if( IsPointOnSegment( seg_start, each_item.GetPosition(), m_pos ) ) m_isDanglingStart = false; if( IsPointOnSegment( seg_start, each_item.GetPosition(), m_End() ) ) m_isDanglingEnd = false; + break; default: break; } } + // See above: show as dangling if joining two wires + if( start_is_wire && end_is_wire ) + m_isDanglingStart = m_isDanglingEnd = true; + return (previousStateStart != m_isDanglingStart) || (previousStateEnd != m_isDanglingEnd); }
_______________________________________________ Mailing list: https://launchpad.net/~kicad-developers Post to : [email protected] Unsubscribe : https://launchpad.net/~kicad-developers More help : https://help.launchpad.net/ListHelp

