Pcbnew: disable module numbering in pcbnew arrays

The module refdes always increment by one. This is problematic
for two reasons:

* It doesn't work when more than one FP is selected (say you have
  C1 and C2, you get C1, C2, C2, C3)
* It messes with simple panellisations

The 5.0.x behaviour is to not renumber in Pcbnew, so revert to
that behaviour.

Better refdes incrementation can come post 5.1, as this will need
new strings and UI.

Fixes: lp:1819106
* https://bugs.launchpad.net/kicad/+bug/1819106
This commit is contained in:
John Beard 2019-03-08 10:32:34 +00:00
parent 6eb84e42f2
commit 26d04269ac
1 changed files with 7 additions and 4 deletions

View File

@ -112,10 +112,13 @@ void ARRAY_CREATOR::Invoke()
{
new_item.reset( getBoard()->Duplicate( item ) );
// Incrementing the reference number won't always be correct, but leaving
// it the same is always incorrect.
if( new_item->Type() == PCB_MODULE_T )
static_cast<MODULE&>( *new_item ).IncrementReference( ptN );
// PCB items keep the same numbering
// @TODO: renumber modules if asked. This needs UI to enable.
// something like this, but needs a "block offset" to prevent
// multiple selections overlapping.
// if( new_item->Type() == PCB_MODULE_T )
// static_cast<MODULE&>( *new_item ).IncrementReference( ptN );
// @TODO: we should merge zones. This is a bit tricky, because
// the undo command needs saving old area, if it is merged.