UNDO disabled following ERC process.

Bug #1586722 reported by jbdw
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
KiCad
Fix Committed
High
Unassigned

Bug Description

Unintentionally I found the UNDO ( Ctrl-Z ) is disabled following the ERC process.

Application: kicad
Version: (2016-05-26 BZR 6832, Git 25c808b)-product, release build
Libraries: wxWidgets 3.0.2
           libcurl/7.46.0 OpenSSL/1.0.2d zlib/1.2.8 libidn/1.32 libssh2/1.6.0 librtmp/2.3
Platform: Windows 8 (build 9200), 64-bit edition, 64 bit, Little endian, wxMSW

Tags: eeschema erc
Revision history for this message
Chris Pavlina (pavlina-chris) wrote :

I can't reproduce this problem. Can you explain a bit more clearly what you mean? Maybe I misunderstood.

Changed in kicad:
status: New → Incomplete
Revision history for this message
jbdw (jbdwiyono) wrote :

Hi Chris, You are correct, my report was not complete.

In this case : when I drag a component, and then execute ERC, the ctrl-Z does not work.
Otherwise, if the execute ctrl-Z without / before performing ERC, it works normally, the component back to its previous position.

The case also happens when I delete a component and followed with performing ERC, the ctrl-Z doesn't work.

The case does not happen for MOVE command. Move a component followed with performing ERC, the ctrl-z works normally.

Hope this gives a more clear explanation.

Revision history for this message
jbdw (jbdwiyono) wrote :

This screen shots might be help my explanation.
( Very sorry with my bad english )

Revision history for this message
Chris Pavlina (pavlina-chris) wrote :

Interesting, this seems specific to dragging. Confirmed.

Application: eeschema
Version: (2016-06-02 BZR 6871, Git 368bd14)-product, debug build
Libraries: wxWidgets 3.0.2
           libcurl/7.48.0 OpenSSL/1.0.2h zlib/1.2.8 libidn/1.32 libssh2/1.7.0
Platform: Linux 4.5.4-1-ARCH x86_64, 64 bit, Little endian, wxGTK
- Build Info -
wxWidgets: 3.0.2 (wchar_t,wx containers,compatible with 2.8)
Boost: 1.60.0
Curl: 7.48.0
KiCad - Compiler: Clang 3.8.0 with C++ ABI 1002
        Settings: USE_WX_GRAPHICS_CONTEXT=OFF
                  USE_WX_OVERLAY=OFF
                  KICAD_SCRIPTING=ON
                  KICAD_SCRIPTING_MODULES=ON
                  KICAD_SCRIPTING_WXPYTHON=ON
                  USE_FP_LIB_TABLE=HARD_CODED_ON
                  BUILD_GITHUB_PLUGIN=ON

Changed in kicad:
status: Incomplete → Confirmed
importance: Undecided → Low
tags: added: eeschema
Revision history for this message
Wayne Stambaugh (stambaughw) wrote :

The problem is that SchematicCleanUp() is called for each sheet before running the ERC. If SchematicCleanUp() performs any clean up actions, the undo buffer is cleared to prevent broken pointers due to the changes. This may not be that simple to resolve. We could remove SchematicCleanUp() from the ERC and take our chances with the state of each sheet object. This would be the easiest fix. The other choice would be to have SchematicCleanUp() add any changes it makes as part of the current undo action which could be rather tricky.

Revision history for this message
Michael Kavanagh (michaelkavanagh) wrote :

Can't reproduce this, maybe its been inadvertently fixed?

Application: kicad
Version: (5.1.0)-1, release build
Libraries:
    wxWidgets 3.0.4
    libcurl/7.61.1 OpenSSL/1.1.1 (WinSSL) zlib/1.2.11 brotli/1.0.6 libidn2/2.0.5 libpsl/0.20.2 (+libidn2/2.0.5) nghttp2/1.34.0
Platform: Windows 8 (build 9200), 64-bit edition, 64 bit, Little endian, wxMSW
Build Info:
    wxWidgets: 3.0.4 (wchar_t,wx containers,compatible with 2.8)
    Boost: 1.68.0
    OpenCASCADE Community Edition: 6.9.1
    Curl: 7.61.1
    Compiler: GCC 8.2.0 with C++ ABI 1013

Build settings:
    USE_WX_GRAPHICS_CONTEXT=OFF
    USE_WX_OVERLAY=OFF
    KICAD_SCRIPTING=ON
    KICAD_SCRIPTING_MODULES=ON
    KICAD_SCRIPTING_PYTHON3=OFF
    KICAD_SCRIPTING_WXPYTHON=ON
    KICAD_SCRIPTING_WXPYTHON_PHOENIX=OFF
    KICAD_SCRIPTING_ACTION_MENU=ON
    BUILD_GITHUB_PLUGIN=ON
    KICAD_USE_OCE=ON
    KICAD_USE_OCC=OFF
    KICAD_SPICE=ON

Changed in kicad:
status: Confirmed → Incomplete
Revision history for this message
Jeff Young (jeyjey) wrote :

See Wayne's post #5. It only happens if the cleanup routine finds something to clean up.

Changed in kicad:
status: Incomplete → Triaged
Jon Evans (craftyjon)
Changed in kicad:
assignee: nobody → Jon Evans (craftyjon)
tags: added: erc
Revision history for this message
Jeff Young (jeyjey) wrote :

SchematicCleanup() now handles undo.
ERC no longer clears the undo.

Changed in kicad:
status: Triaged → Fix Committed
Revision history for this message
Jeff Young (jeyjey) wrote :

Note: I'm not entirely sure when the above happened, but happen it did. ;)

Changed in kicad:
importance: Low → Medium
importance: Medium → High
Revision history for this message
Jeff Young (jeyjey) wrote :

Note 2: Clearing the undo stack loses customer data. All undo bugs should be marked "High". (Well, unless they crash/hang, in which case "Critical" is appropriate.)

Jon Evans (craftyjon)
Changed in kicad:
assignee: Jon Evans (craftyjon) → nobody
Revision history for this message
Michael Kavanagh (michaelkavanagh) wrote :

@Jeff, is this fixed in 5.1 as well?

Changed in kicad:
milestone: none → 6.0.0-rc1
Revision history for this message
Jeff Young (jeyjey) wrote :

It appears Seth fixed it in October of 2017. That might even be 4.0.something?

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.