← Back to team overview

kicad-developers team mailing list archive

Re: KIDIALOG broken

 

On 7/23/2018 2:00 PM, jp charras wrote:
> Le 23/07/2018 à 18:29, Wayne Stambaugh a écrit :
>> Orson,
>>
>> On 7/23/2018 12:03 PM, Maciej Sumiński wrote:
>>> Hi Wayne,
>>>
>>> On 07/23/2018 05:40 PM, Wayne Stambaugh wrote:
>>>> In the process of fixing this bug
>>>> https://bugs.launchpad.net/kicad/+bug/1782708 I discovered that the
>>>> KIDIALOG object called when editing an externally defined environment
>>>> variable will completely lock up kicad on windows.  Clicking the dialog
>>>> OK button or hitting the escape keep does not close the dialog and I
>>>> have to manually kill the running kicad process.  When I convert this
>>>> code over to use wxRichMessageDialog directly, it works as expected.
>>>> It's possible that wxRichMessageDialog::ShowModal() does not like being
>>>> overridden.  Will someone check to see if this issue occurs on macos or
>>>> linux?
>>>
>>> I have just tried to recreate the mentioned bug report on Linux, but it
>>> works fine here. I have successfully changed the path, got the dialog
>>> displayed and confirmed everything by clicking OK.
>>
>> I confirmed with a debugger that it is definitely hanging on the
>> wxRichMessageDialog::ShowModal() call.  This may not be a viable
>> solution on windows.  Technically ShowModal() is implemented in
>> wxDialog.  Calling wxDialog::ShowModal() doesn't work either.  I can
>> change this to use wxRichMessageDialog rather than KIDIALOG to fix the
>> bug but that doesn't fix every place else KIDIALOG is being used.
>>
> 
> Hi Wayne,
> 
> Only FYI, I can reproduce this hang on wxWidgets 3.0.4, but not on 3.1.1
> 
> It looks like a wxWidgets bug fixed in 3.1.1 version (I am using this version for my daily work on
> Kicad on Windows when I do not need the wxPython support).

I wondered about that.  Orson may be using a later version of wxWidgets.
 I'm currently using 3.0.4.  I only use 3.1 when I'm messing around with
the gtk3 fix stuff.

A quick reminder developers, 3.0 is the currently supported version of
wxWidgets.  Please test all new code against this version before pushing
code to the dev branch.

> 
>>>
>>>> Also, what is the purpose of the "Do not show this message again"
>>>> checkbox when it's only for the current session?  Generally speaking
>>>> checking this option would not show the message forever.  This seems
>>>> like it would be confusing to the user.
>>>
>>> It is the same kind of relief you get with wxWidgets asserts. If there
>>> is a window that will keep nagging you because you have done something
>>> wonky on purpose, then you have a choice to ignore a warning dialog
>>> instead of straining your finger. I have added this option to handle
>>> warnings about malformed polygons, as without do-not-show-again checkbox
>>> you can spend a lot of time closing warnings before you even get a
>>> chance to fix polygons.
>>
>> This is fine but I think users will expect the dialog to be gone forever
>> not just the current session.
>>
>>>
>>> Cheers,
>>> Orson
>>>
>>>> Cheers,
>>>>
>>>> Wayne
> 


Follow ups

References