Hi,
this is my current stack; not all of this may be appropriate for the next
stable release.
The first two I've posted earlier -- a bugfix and an enhancement to the
build.
The next two are small and self-explanatory.
Number five explicitly acknowledges that the
NETLIST_OBJECT::m_ElectricalType can be an ElectricPinType or a
TypeSheetLabel, depending on the type of netlist object, and provides an
explicit conversion to ElectricPinType for the ERC to use.
The "Edit Pin" dialog is regenerated because the old version used the wrong
parent element in some cases.
I replace the DrawPinShape bitfield enumeration with a simple enumeration,
because only a few combinations were ever valid to begin with, and error
checking and recovery for invalid combinations did not really exist, while
the new version doesn't leave much room for error.
Then, I introduce a new widget type, a derived bitmap combo box for pin
shapes, and move a bit of code around to make it more generally accessible,
to make both the widget and the associated data useful outside the "Edit
Pin" dialog -- these will be used later in the pin table.
The same thing then happens to the ElectricPinType enum, and a new combobox
derivative is added to edit pin types.
For more type safety, TypeSheetLabel is also used instead of int in various
places, although that cleanup probably isn't complete yet.
Finally, the pin table dialog is extended to show the icon in the pin type
column, and sorting on pin position is enabled.
Simon
Simon Richter (27):
Move feature check before dependent tests
Use Link Time Optimization with GCC in Release builds
Make NETLIST_OBJECT::GetConnectionType() const
Remove superfluous cast
Separate ElectricPinType and TypeSheetLabel
Regenerate "Edit Pin" dialog with newer wxFormBuilder
Replace DrawPinShape enum with PinShape
PinShapeComboBox: Introduce widget
PinShapeComboBox: Fully initialize in c'tor
PinShapeComboBox: typesafe Get/Set
PinShape: move enum to own header
PinShape: move text lookup
PinShape: drop list interfaces
PinShape: move bitmap lookup
ElectricPinType: move definition to pin_type.h
ElectricPinType: Use enum rather than int where possible
ElectricPinType: Rename PIN_NMAX to PINTYPE_COUNT
ElectricPinType: Separate PINTYPE_COUNT from enum
PinTypeComboBox: Introduce widget
PinTypeComboBox: fully initialize in c'tor
PinTypeComboBox: typesafe Get/Set
ElectricPinType: move text lookup
ElectricPinType: remove list interfaces
ElectricPinType: move bitmap lookup
TypeSheetLabel: use enum
Pin Table: display icon in pin type column
Pin Table: Make pin position column sortable
CMakeLists.txt | 24 +-
CMakeModules/PerformFeatureChecks.cmake| 1 +
eeschema/CMakeLists.txt| 6 +
eeschema/class_netlist_object.cpp | 37 ++-
eeschema/class_netlist_object.h| 11 +-
eeschema/dialogs/dialog_edit_label.cpp | 3 +-
eeschema/dialogs/dialog_erc.cpp| 14 +-
eeschema/dialogs/dialog_erc.h | 6 +-
eeschema/dialogs/dialog_lib_edit_pin.cpp | 29 +--
eeschema/dialogs/dialog_lib_edit_pin.h | 12 +-
eeschema/dialogs/dialog_lib_edit_pin_base.cpp | 14 +-
eeschema/dialogs/dialog_lib_edit_pin_base.fbp | 4 +-
eeschema/dialogs/dialog_lib_edit_pin_base.h| 8 +-
eeschema/dialogs/dialog_lib_edit_pin_table.cpp | 52 +++-
eeschema/dialogs/dialog_sch_edit_sheet_pin.h | 8 +-
eeschema/edit_label.cpp| 8 +-
eeschema/erc.cpp | 30 +--
eeschema/lib_pin.cpp | 347 ++---
eeschema/lib_pin.h | 128 ++---
eeschema/pin_shape.cpp | 104
eeschema/pin_shape.h | 57
eeschema/pin_type.cpp | 116 +
eeschema/pin_type.h| 59 +
eeschema/pinedit.cpp | 23 +-
eeschema/sch_component.cpp | 4 +-
eeschema/sch_sheet.cpp | 2 +-
eeschema/sch_sheet_pin.cpp | 2 +-
eeschema/sch_text.cpp | 4 +-
eeschema/sch_text.h| 6 +-
eeschema/schframe.h| 4 +-
eeschema/sheetlab.cpp | 2 +-
eeschema/widgets/pin_shape_combobox.cpp| 69 +
eeschema/widgets/pin_shape_combobox.h | 51
eeschema/widgets/pin_type_combobox.cpp | 69 +
eeschema/widgets/pin_type_combobox.h | 51
35 files changed, 932 insertions(+), 433 deletions(-)
create mode 100644 eeschema/pin_shape.cpp
create mode 100644 eeschema/pin_shape.h
create mode 100644 eeschema/pin_type.cpp
create mode 100644 eeschema/pin_type.h
create mode 100644 eeschema/widgets/pin_shape_combobox.