Complexity of Symbol Editor > Quit dialog

Bug #1783444 reported by Evan Shultz on 2018-07-25
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Jeff Young

Bug Description

This "Save Libraries" dialog seems like it could be a bit simplified.

Here are the 3 uses for it I see:
1. User wants to save all changes made.
2. User wants to cancel and return to Symbol Editor.
3. User wants to quit and save no changes.
4. User wants to quit and save only some changes.

The dialog supports #1 easily because all libraries are checked initially and one can click the "OK" button.

#2 is also easily handled because of the "Cancel" button.

So IMO the first two workflows are straightforward and fine.

The last item will always take some work of clicking libraries individually and doesn't seem any simplification can be made.

However, #3 is tricky. It requires de-selecting all libraries individually or clicking the "Unselect All" button and then the "OK" button, two clicks. Clicking twice isn't excessively draining to the user, but it made me think about the generic text of the "OK" button. Let's say the "OK" button was renamed to "Save" and a third button named "Don't Save" was added. Then not only are the button functions salient without reading any other text, but #3 above becomes a single click too. That would seem to fit better with modern OSes (Windows and Mac, at least) which have or are getting more explicit button names.

It's just a little bit of polish. At least, I view it at polish.

Application: kicad
Version: (5.0.0), release build
    wxWidgets 3.0.3
    libcurl/7.54.1 OpenSSL/1.0.2l zlib/1.2.11 libssh2/1.8.0 nghttp2/1.23.1 librtmp/2.3
Platform: Windows 8 (build 9200), 64-bit edition, 64 bit, Little endian, wxMSW
Build Info:
    wxWidgets: 3.0.3 (wchar_t,wx containers,compatible with 2.8)
    Boost: 1.60.0
    OpenCASCADE Community Edition: 6.8.0
    Curl: 7.54.1
    Compiler: GCC 7.1.0 with C++ ABI 1011

Build settings:

Changed in kicad:
status: New → Opinion
Maciej Suminski (orsonmmz) wrote :

If anything, I would be more inclined to 'Cancel', 'Save None', 'Save Selected'. Then having 'Select All' and 'Unselect All' buttons makes this simple dialog too busy.

I think that in the current form the dialog is more flexible. You are faced with choice to close the dialog without taking any action ('Cancel' button) or save libraries ('OK' button). Having 'Select All' and 'Unselect All' simplifies the #4 scenario, as you may want to save all but one or just one library equally easily.

Jeff Young (jeyjey) wrote :

I think case (4) is a red herring. It's like showing a dialog of all undoable actions on a document and asking which ones you want to save.

If you really need to save only some libraries, then use the Component Tree to either Revert those you don't want changed, or Save those that you do.

This dialog should just be the standard Save / Discard / Cancel dialog.

Evan Shultz (evan-shultz) wrote :

Yes, either way above would be simpler and work just as well. It is too busy.

I think #4 is bogus too, and only included it because the current dialog seemed (over-)designed just to support this feature. A simple three-button dialog would cover all reasonable workflows IMO.

Jeff Young (jeyjey) wrote :

Any dissenting opinions on comment #2? If so, now's the time to speak up. ;)

Changed in kicad:
status: Opinion → Triaged
importance: Undecided → Low
assignee: nobody → Jeff Young (jeyjey)
Maciej Suminski (orsonmmz) wrote :


Are you going to keep showing a list of unsaved libraries? I think it would help the user to decide whether (s)he wants to save changes or not.

Jeff Young (jeyjey) wrote :

Yes, but text-only (no checkboxes).

Seth Hillbrand (sethh) wrote :

@Jeff- There was some discussion around this before 5 but I can't seem to find the bug report at the moment. We had decided not to modify the dialog at the time due to string freeze but re-address after v5. So that's now I guess.

My 2c, I don't like the idea of an un-editable list of changed files. There's no benefit to that over the list of checkboxes. Same space, less function.

If we want to minimize the buttons on the dialog, then we can have a dialog that says something like "Library XXXXX is unsaved, do you wish to save it?" Then have 3 buttons at the bottom "Yes, No, Cancel" and a single checkbox on the dialog that says "Apply to All". If there are more, this dialog will pop up for each. This hits 1-3 and allows 4 for a bit more effort (it is presumably rare)

Jeff Young (jeyjey) wrote :

I like Seth's suggestion, but with "Save and Exit", "Discard Changes" and "Cancel" buttons.

Jeff Young (jeyjey) on 2018-08-01
Changed in kicad:
status: Triaged → In Progress
milestone: none → 5.1.0
KiCad Janitor (kicad-janitor) wrote :

Fixed in revision 2155dd659185a627f8c139e9b0d24cd0add3e683

Changed in kicad:
status: In Progress → Fix Committed
Nick Østergaard (nickoe) wrote :

Mmm, I am not quite sure the new dialog is much better. I think it is bad that you can not get a list over the libs that are modified. I very much liked the checkbox list. I made it easy to see and figure out what lib you wanted to save.

The new behavior have a dialog for each edited library. I would rather like a combo of the new buttons added and the old checkbox list.

tags: added: libiedit ux
tags: added: ui
removed: ux
tags: added: libedit
removed: libiedit

I fully agree with Nick: the old checkbox list was very handy.

Jeff Young (jeyjey) wrote :

Is is just a list you guys are looking for, or do you really make a bunch of changes and then save only some of them? (That seems very unlikely to me, but who knows....)

Evan Shultz (evan-shultz) wrote :

What about keeping the original dialog but changing the buttons to "Save and Exit", "Exit without Save", and "Cancel" like on the dialog when Eeschema is closed with unsaved changes?

Evan Shultz (evan-shultz) wrote :

I often make a bunch of changes and only want to save some of them. This is common as a librarian because I may be doodling around with a new symbol or modifying a contribution from a user to provide another option. I don't know that's it would be as common for a typical KiCad user, though. But for me, the dialog is quite busy and an occasional speedbump in my workflow.

Evan Shultz (evan-shultz) wrote :

FYI, in 5.1 RC1 this is the single dialog for each changed library so it does not have a list of all changed libraries. Since this bug will get cleaned out after 5.1 is released, I'm surfacing it so that any requested changes can be moved to a later release or it can be closed even with the comments above.

Opinion to follow...
I think it's much simpler for most users and, even with my librarian workflow I outlined above, there are only a fraction of the Symbol Editor invocations where the old dialog is faster. Again, that's what I've found to far. I'm happy with this. Thanks Jeff!

Changed in kicad:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers