KiCad bug squashing, round 1

We have taken over the project bug tracker to get some issues fixed. Bugfixing is sometimes an annoying task , but provides one of the most tangible sensations of contribution as you see how real problems that affect to your users disappear 🙂

 

Here is a list of our recent contributions:

Eeschema: actions disabled during move operation can be accessed via hotkeys (#1092837): some actions that were disabled from the menus while doing special operations (drag, move) were accessible using their corresponding hotkeys. The fix of this bug resulted on a review of the hotkeys code: some new ones were added, and we made sure that their actions were undoable.

Set focus on the exit confirmation dialog button (#1092873): there are some UI behaviours we all are used to; one of them is using tab + enter or space to manipulate options in modal dialogs. You couldn’t do that in some dialogs because focus was not being correctly set, but it seemed to happen only in version 2.8 of wxWidgets for GTK+. After some discussion and patches back and forth, Dick Hollenbeck commited a fix.

Empty plot filename (#1101718): after you first save a project, some internal structures were not refreshed correctly, which caused that output operations that use the file name didn’t work as expected. In particular, when plotting a schematic the output file got an empty name.

Eeschema: -cache.lib file not created the first time you save (#1102381): as another consequence of the previous bug, the library cache files were saved with an empty name too. Our patches for both are already merged.

Pcbnew: crash when deleting a track (#1108717): a blocking stdout operation was freezing the UI when the program was launched under certain conditions. It seems to be a problem happening only in debug builds and there’s no agreement about how to fix it, so we will live with it; after all, real users are not affected.

Eeschema: error message when opening a file with a long path from the command line (#1108838): this bug was a consequence of file paths not being correctly normalized (make absolute, remove .. and . directories) when creating the lock files. A patch is waiting to be pushed.

We detected and reported other bugs, some were already fixed by other community members and others are patiently waiting for the next bug squashing round, live from Igalia!

Introducing KiCad: because open hardware needs open tools

Lately you have had the chance to read some posts related to open hardware in Planet Igalia. It’s natural for a company with strong roots in the free software movement like ours to jump into this exciting new world.

While some igalians started working in the kernel support of some open hardware boards, others have noticed that there is a lack of specialized free software to work with schematic, PCB designs and so. That’s why we decided to start contributing to KiCad project.

While there are other alternatives, KiCad is in a really good position to become the reference software in this field. It already has a good number of features and a strong user base. It just needs some push to grow and catch up with the existing privative tools.

Our first patches focus on usability issues; it has allowed us to get to know the code base while generating useful contributions. You can already see some of them in the project repository or in the developers list, like:

  • Double click on the component name in the library browser will add it to the document, no need to click on the component and then press “insert component”  in the menu bar.
  • While performing a drag operation, now you can open the component edition dialog from the context menu or using the hotkey. By extension, you can do this also when you select a group and that group contains only one component.
  • Protect the application from opening the same document more than once.
  • Added an import feature in the schematic editor, so you can quickly copy the components from another sheet into yours. It’s useful if you periodically repeat some components among your sheets (for example, placing your logo and some information in a corner).
  • Added a log to KiCad launcher, informing the user about the applications that have been opened or closed.

You will be able to read about our next steps here, and if you need assistance on KiCad, now you can knock at our door!