Here and there it had some magical values, like 12.
Now m_port_width means distance between side port edges. For polygon
type it means distance between outer edge and corner point.
Distance between ports is now set correct, and may be configured in
theme (value 0 will place them side to side or corner to corner, without
intersetions).
Box port placing part in updatePositions() is also compacted.
Original classic theme had thing and sharp borders for both boxes and ports.
Port border color was same as text. And they where looking like with
additive blending, instead of alpha based.
Obviously, rubberband line should be thin too.
Yet, all colors are smoother - more eye-friendly, not silly mimics.
Draw highlight outline, for if outline is empty (Qt.NoPen), highlight entire background.
TODO: Do we need full bg/fg/outline hover-highlighting support?
First attempt to use HSV model - no need to dance with RGB equalizing.
Two utility functions are added to complement missing QColor functionality.
Strange border with audio jack ports in very begining seems to be accedental,
so trying to improve original color scheme. Background is light grey (some least
color contrast would be great, even with border). Unselected port text is colored.
Now it is also compact. Port groups (by type) now look monolithic (with saw-like internal side as feature).
Space between port groups reduced to 1 pixel, right enough to distinguish.
Reduced transparency for port text - font is too small for that (may be make slightly bigger font).
Original look has all port colors close to dark style, and border color was not contrast, but rather intermediate.
Also use some alpha for text, for some color hinting.
Another trouble with this theme - jack port sel color is painted black, ignoring theme.