kicad-developers team mailing list archive
-
kicad-developers team
-
Mailing list archive
-
Message #42439
Symbol library code changes
-
To:
KiCad Developers <kicad-developers@xxxxxxxxxxxxxxxxxxx>
-
From:
Wayne Stambaugh <stambaughw@xxxxxxxxx>
-
Date:
Wed, 6 Nov 2019 15:34:18 -0500
-
Autocrypt:
addr=stambaughw@xxxxxxxxx; prefer-encrypt=mutual; keydata= mQGiBEM0hxQRBAC2fNh3YOVLu1d5GZ0SbrTNldGiGnCJPLqzEnqFX9v6jmf33TMt6EmSLkl6 Wtfkoj0nVwKxcYmJkA8DX0QAokBkwNIzhSsBzQvthBLIk/5LnPVVKrEXOcL4mUyH1doKlkaE slgJozNa6Av+oavcvD02o1zJOloBbaHlNlyRt7fKswCgtIFlVjWggVH/15KfWk+Qo5JVPbME AIUBAQyL2OAx0n60AWec2WHnO9buHuG0ibtICgUMkE+2MRmYyKwYRdyVwGoIUemFuOyHp0AJ InX4T+vy2E7vkwODqjtMLfIoRkokW74Fi4nrvjlhOAw/vdq/twLbAmR9MOfPTpR4y7kQy1O2 /n+RkkRvh26vTzfbQmrH7cBJhk6aA/9Uwvu3E4zNJgHVZeS0HyWtmR1eOPPRbnkPgJTToX5O KMKzTJI/FX6kT7cFoCamitHrW3BJP4Dx+cMMsa47EGxqVTdbVJ4LjogsXTXxb+0Fn1u4zBdx x3Cer6O7+hqWy7zvpzeC6nSREjqDKa5CgHtv/GLm5uFPOmsjAsnHj2tlBrQmV2F5bmUgU3Rh bWJhdWdoIDxzdGFtYmF1Z2h3QGdtYWlsLmNvbT6IeAQTEQIAOBYhBOffs6CbblRzBkv33BtR cWlZ+CReBQJbFBS2AhsDBQsJCAcCBhUKCQgLAgQWAgMBAh4BAheAAAoJEBtRcWlZ+CReMI8A nRbrLkzp7+c2f0vX7sfg4ICX8LAKAJ9uClo4uJajmZa5zZrL2nKdZlUwIrkCDQRDNIcxEAgA gCru+3/aOC6RCjpvYC72wY+d5SmHphC6yeiV2/mOumyt5MLo/Ps2GznZr11JspqFk5K/Zpvp MMLqqjDZ39+50a2iKRQFJ6NlK+hJWMmj6eJygQrCwYo3Gjc6CqfrqUv+8VSnf/i5sIZmtOVA 4ZjML18MuBvMSsNdVLFJd5HNnYb1iOECpvqdPVh/21LLCEw7MUUGGnHBhCrmk2aJe5hFmcSN g4ldBcXrgMQBwf7aMVoobXBMFDb/IENByXn0llB7Gr2IFMRmNS9/p8s/II1Yl2bTqyX4FSz8 cfn7C9KEz7faZ7wzAcpwHFC/zs3JoAjJ0IEKdNUpIwAlKMzT3CzctwADBQf/cxpG28MKyrqk nNmq/8LQLy+x6FSYXBLjxQz9BiBNYeesDZQ6J5UbL1mjpJzMa5tLZypPYo4bbGyR22hrbyDF K7m6AcVaMIJKl98g4ukMutFfAJyRDaREH5Zl/X1P4u1Z/yaAIy9mKaNbaK1/5djNJ5wCTFen TUgAp9xdc30kGkFDdLJFp5uxDY4P0vaZiZdjUCvDM3Zjv5IzpNOfxVqTUBQNUP/BnnKhkk0p DTD6s3X8S+D0rOtEBQ8K0cwERI/E8EFa8nj0TNw4e2MYGR8wg+SxqJ7z5f0zPY0bO6G9DDFB wYCqzzPWGqdAh9vA5971TAbPERtdFybhkurozp2SfYhJBBgRAgAJBQJDNIcxAhsMAAoJEBtR cWlZ+CResHUAniULLCWiT26ieRTl7N2vS6vBo/DuAJ4m7Ss/gyiW6ybTn1ctDXAUgm2QVQ==
-
Openpgp:
preference=signencrypt
-
User-agent:
Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.9.0
I finally finish up the initial attempt at simple inheritance for the
symbol library code. The change is non-trivial and will likely have
some unexpected side affects that I missed. I pushed the branch to my
personal repo[1] and I would like a few pair of extra eyes on it before
I merge it into master. If you prefer, I can set up a merge request
from this branch in Launchpad.
The biggest user facing change is that the concept of aliases is gone
which means internally, the LIB_ALIAS object has been removed and all of
the information it managed was moved into LIB_PART. This actually
simplified some of the UI code but made the LIB_MANAGER and LIB_PART
object code more complicated. The symbol library editor works
significantly different now. When you select a derived part (formerly a
LIB_ALIAS), it will show the parent symbol that it was derived from
darkened and all of the edit features disabled. Until the new symbol
file format is done and writing to the legacy symbol file format is
deprecated, this restriction will have to remain in place. The
properties editor no longer has an aliases panel and is limited to what
it can change in the derived or parent symbols depending on which symbol
is currently being edited. I suspect this will be the biggest stumbling
block for existing users so if you can think of a better way to handle
this, I'm open to suggestion. The other thing that I am concerned about
is symbol library editing. There were a lot of LIB_MANAGER object
changes which I am not 100% confident in.
Just a couple of other internal changes to be aware of:
A flattened copy of the symbol is used in SCH_COMPONENT instead of
relying on the weak reference to the library symbol. This way we don't
have to worry about the shared pointer disappearing and causing issues.
However, this will require that we be diligent about updating modified
symbol libraries in the schematic. Otherwise, the schematic could
change the next time it is loaded. I'm open to changing this back if we
think it's going to be an issue.
There is now a compare function for the LIB_PART object which can be
rather tricky. I created a new test suite inside the current LIB_PART
test file so if you change anything, please run the test to ensure
nothing gets broken. I also added a bunch of other new tests for the
LIB_PART object.
I added code to DIALOG_SHIM to allow the caller to reset the last dialog
size when hiding dialog control state changes between dialog instances.
We have some dialog windows that are not the correct default size
depending on which controls are shown so there is now a convenient way
to address this.
Please let me know if you find anything so I can get it fixed and merged
into master. The next step is to convert the schematic internal units
from 1mil to 10nm. Once that step is complete, I will knock out the new
symbol library format. Thanks in advance for the help.
Cheers,
Wayne
[1]:https://code.launchpad.net/~stambaughw/kicad/+git/kicad-dev/+ref/lib-alias-merge
Follow ups