Only read through this quickly as I'm pretty busy, but it looks good to
me. There's another issue I've had in mind with the pcbnew OOBE: now
that I'm adding footprint preview to eeschema, the pcbnew init routines
happen on the first run of the eeschema component selector...

I was thinking about consolidating the whole thing into one big KiCad
init routine. Thoughts?

On Sun, Mar 05, 2017 at 07:01:03AM +0800, John Beard wrote:
> Hi,
> 
> Here is a (proposed) patchset to modify the "user experience" (to use
> a buzzword) of Pcbnew and cvPcb when the user loads it for the first
> time with no fp-library-table.
> 
> The current behaviour is quite unfriendly, as it doesn't get the user
> to consent to an action when initialising the library, it does one of
> two actions (cpopy default table, or create empty table - which one
> depends on various conditions) which means that users click the OK
> button not fully knowing what just happened.
> 
> Furthermore, if they click though that dialog without reading it, they
> will then be frustrated by the lack of libraries later, which
> manifests as an error or an empty footprint chooser. Bear in mind, as
> far as users are concerned, the libraries are installed (e.g.
> /usr/share/kicad has content), but as far as KiCad is concerned, they
> are not necessarily configured (empty or default fp-lib-table in
> user's home).
> 
> This has caused several people to struggle with getting started with
> KiCad, and people asking how to proceed is a semi-regular occurence on
> IRC.
> 
> This patch changes to the following process:
> 
> * If user fp-lib-table is found and it has at least one library,
> everything is normal
>   and the user isn't disturbed.
> * If fp-lib-table is missing:
>     * On Pcbnew/Cvpcb start, pop up a dialog saying this and giving
> these options:
>         * Quit - exit Pcbnew/cvPcb witohut attempting to create
> fp-lib-table. Users can then make their own arrangements.
>         * Copy default table - attempt to copy the default table. If
> this fails, return to the choice dialog.
>         * Create empty table - if this fails return to the dialog.
>     * In no case did the user get an fp-lib-table they didn't ask for.
>     * If a blank or default table is created, a second dialog appears,
> informing the user that the library table might need configuration.
> This provides three options:
>         * Cancel - user doesn't want to configure the table now, table
> is unchanged
>         * Open Manual - the manual referenced in the dialog message is
> opened so the user can read about library configuration
>         * Open FP Library Manager - go directly to the library
> manager, rather than expecting the user to cancel the dialog and find
> it themselves. The wizard is accessible from the manager dialog.
> * If fp-lib-table is found, but it's empty when the user goes to use
> it (e.g. on a keyword search for footprints), the
> Cancel/Manual/Manager dialog is shown again, but it's a warning rather
> than informational, as it was before.
> 
> The aim here is to ensure that the configuration is "management by
> consent" and that the user is:
> 
> * Not surprised by "secret" configuration behind the scenes
> * Informed of and consenting to specific actions
> * Guided though configuration with dialogs that give access to
> mentioned tools, rather than a block of text and an OK/Cancel button,
> after which they are on their own.
> 
> Technically speaking, this is done by moving the global fp-lib-table
> loading into common, and invoking it only when the frame is shown
> (rather than prior to the kiface load). The reason for this is so that
> the followup dialog can access the manager. Also, it reduces special
> casing before kiface load.
> 
> The on-show invocation is done by a small class subscribed to the
> frame's wx "Show" event, and once the event is received, the class
> unsubscribes itself (so it's a one-shot), and executes a lits of
> startup actions. The class is such that you can add multiple startup
> actions, any of which can "veto" startup if needed.
> 
> Sorry for the long email: the change is not really that complex, but
> the configuration process has several paths. As the first thing a new
> user to Pcbnew sees, I think this is a fairly important thing to get
> right.
> 
> Cheers,
> 
> John


_______________________________________________
Mailing list: https://launchpad.net/~kicad-developers
Post to     : kicad-developers@lists.launchpad.net
Unsubscribe : https://launchpad.net/~kicad-developers
More help   : https://help.launchpad.net/ListHelp

Reply via email to