← Back to team overview

kicad-developers team mailing list archive

Re: [FEATURE] Component table viewer


On 4/17/2017 10:21 AM, jp charras wrote:
> Le 17/04/2017 à 04:11, Oliver Walters a écrit :
>> JP, others,
>> After further investigation, I have worked out why the components with duplicated references were
>> displaying incorrectly.
>> Patch_004 is attached, Thomas can you confirm that it fixes the display for you?
>> Kind Regards,
>> Oliver
>> On Mon, Apr 17, 2017 at 7:53 AM, Oliver Walters <oliver.henry.walters@xxxxxxxxx
> Good work, Oliver!
> I found 2 issues (tested on W7)
> 1 - m_reloadTableButton is not correctly enabled/disabled.
> This is due to the way events are managed, and this is OS dependent.
> To avoid this issue, enable/disable it inside a wxUpdateUIEvent attached to this button.
> 2 - ESC key and ENTER keys do not dismiss the dialog.
> This is due to the fact you do not have a wxStdDialogButtonSizer, and no OK and Cancel button.
> Please, add it and use the OK button (as usual in a dialog) to transfer changes to schematic (do not
> use a wxCloseEvent to manage that), and obviously Cancel just closes the dialog.
> To do this transfer, just  override TransferDataFromWindow(), that is called by wxWidgets when
> closing a dialog by the OK button.
> About other things, undo/redo lists should manage only changes made inside the corresponding sheet,
> not in other sheets, to avoid inconsistencies and therefore crashes.

This is one of the reasons I've been reluctant to accept code that
attempts to change the state of a SCH_SCREEN object other than the
current SCH_SCREEN object.  It exposes a known flaw in our schematic
undo/redo design and I have yet to see anyone update the undo/redo
SCH_SCREEN stacks correctly.  I see the potential for serious issues if
you do not keep the undo/redo stacks properly synced.  Once you allow
the modification of information in the SCH_SCREEN object other than the
current one, you need to update the undo/redo stack for the appropriate
SCH_SCREEN object.  Otherwise, you wont be able to undo all of the
changes correctly.