* When multiple pins are in the same position and one is not connected,
show connection indicator correctly.
* LIB_PIN::IsVisible should be a const method so it can be called on
DANGLING_END_ITEM children without having to discard const.
* Test the (!IsVisible() && GetType() == PIN_POWER_IN) condition in a method
LIB_PIN::IsPowerConnection to avoid duplicating that condition if the test
needs to be performed in more than one place. (e.g. dunderheads like myself
might forget about the necessary GetType() == PIN_POWER_IN and just check
visibility.)
* Coding style fix: break a couple lines that were above the 99-column maximum.
* Add and/or improve Doxygen comments on SCH_COMPONENT::IsPinDanglingStateChanged
and SCH_COMPONENT::IsDanglingStateChanged.
- Slightly change the info text in the dialog. Add a definition of exactly what it means to "rescue" a component.
- Reload the project libraries when a project is opened, even if kicad is already running and the same project is open (to be sure the lib cache is up to date).
- Set the Modified flag on cancel, because a change has indeed been made (choosing not to rescue is equivalent to updating the components)
* Components with multiple "converts" were rendered with all of them overlapping instead
of just one.
* Schematics missing a -cache.lib resulted in unnecessary renaming suggestions.
* The dialog title "Conflicts Checking" is inaccurate now (as we're checking for more than
just conflicts) and also somewhat awkward, unidiomatic GUI English; I renamed it to
"Project Rescue Helper".
* Eliminate modal annotation warning dialog when generating a netlist fails
due to components that are not annotated.
* Add warning message to annotate dialog.
Fix also an issue on Windows, when using the footprint viewer or the component viewer in modal mode:
Reason: these frames (when run under the Kicad manager) have the Kicad manager as parent, and were built with wxFRAME_FLOAT_ON_PARENT style.
On windows, when the frame with style wxFRAME_FLOAT_ON_PARENT is displayed its parent frame is brought to the foreground, on the top of the calling frame.
and stays displayed when closing the frame in modal mode.
This issue does not happen on unix so we use now wxSTAY_ON_TOP on Windows, and wxFRAME_FLOAT_ON_PARENT on unix to simulate a dialog called by ShowModal.
This is not perfect, but at least it works.
* Change 'Silent mode' -> 'Always ask for confirmation'. Default on
(Same behavior as before, though arguably, it is very annoying and
should probably be default off)
* 'Automatically close dialog' -> 'Keep this dialog open'. Also changed
the default to _not_ keep the dialog open (what is keeping it open even
useful for ?)
* Change leave sheet hot key from back space to alt + back space. Note: for
some reason ctrl + back space did not work at least on windows.
* Add back space as delete node hot key which is consistent with the delete
track segment hot key in Pcbnew.
Now all are calculated using the top to bottom draw Y axis. This is perhaps not a good idea, but at least it will be easy to change, later.
Code cleaning relative to these bounding boxes.
* If a bus entry is drawn between two WIRES (not a wire and a bus, or two
buses), it looks like it's connecting the wires together, but doesn't
actually represent a connection. Display them as dangling in that case,
to make it clear to the user that a connection has not actually been made.
* Enable and disable save schematic button and menu entry depending on
modification status.
* Add toolbar and menu entries for leaving sheet.
* Enable and disable leave sheet menu entry and toolbar when in root sheet
or descended into the hierarchy.
* Add code to test for sheet path recursion to SCH_SHEET_PATH and SCH_SHEET_LIST.
* Add recursion tests to edit sheet code in Eeschema.
* Add recursion tests to block paste code in Eeschema.
* Remove global s_NetObjectslist.
* Separate out non-owning version of NETLIST_OBJECTS_LIST into NETLIST_OBJECTS.
* Fix double free pertaining to ~NETLIST_READER().
* Remove all file-io from CvPCB.
* Remove exe launcher cvpcb, retain only cvpcb.kiface, since cvpcb.kiface has no file i/o.
* Add void CVPCB_MAINFRAME::KiwayMailIn( KIWAY_EXPRESS& mail ) and teach it to use old
netlist loading code with a STRING_LINE_READER LINE_READER.
* Fix BEGIN_EVENT_TABLE( CVPCB_MAINFRAME, KIWAY_PLAYER )
Previously, acute angles (especially small angles) in zone outlines create incorrect shapes and sometimes strange shapes for clearance areas, when using generic algorithms.
This happens when zones outlines have "spikes", but not usually for smooth outlines.
* auto-save was broken for all sub sheets with are in a sub-directory of the project directory. (reason wxFileName::Normalize(), used to create the absolute path has issues with filenames starting by '$', perhaps due to env var which also start by $). the auto-save prefix is modified ( now AUTOSAVE_PREFIX_FILENAME which defines "_save_" ) and defined only once.
* auto-save files from sub-sheets were not found due to the fact the path was not set (fixed by Blair Bonnet's patch)
added the example gen_gerber_and_drill_files_board.py in demos, which shows how to do that.
Fix a Printf format issue (shown in Debug mode) in Libedit (%d used for a size_t, changed in %zu)
Fix a i18n issue in field names when loading a component, if the language was changed during a session, and kicad not restarted (see Bug #1448654).
However changing the language needs restarting kicad, in order to have all messages or menus translated.
* Add code to test if any of the components in the schematic cache have been changed
in the component libraries.
* Prompt user to accept or reject components when changes are found.
* If the user chooses to use the components in the cache, create a new library with the old
components and add it to the beginning of the component library list so the schematic will
not be changed.
* Create dialogs to handle user feedback and status.
* Use "Close" in the file menu of every main frame window instead of the
mismatch of the terms "Close", "Exit", and "Quit".
* Change the terminology in the Pcbnew graphic text edit dialog to match the
module text edit dialog.
* Improve the layout of the Pcbnew graphic text dialog.
* Fix some wxPrintf parameter type assertions for 64 bit time_t.
* Fix all (at least I think I got all of them) duplicate menu accelerator
characters.
Now these parameters are stored in user config, not project config ( they are not really related to a given project, they are just a setup during an edition),
and the schematic editor and the component editor have now separate parameters, because they are separate editors with different constraints.
component editor: repeat pin enhancement (from and idea of Edward Johns)
Previously, only the lib named "power" was used (and therefore power parts defined in other libs not shown).
Now, all power parts can be loaded from any library.
Also, when loading power parts from the chose component dialog or the lib viewer, libs and parts are filtered: only power parts and libs containing power parts are listed.
Hotkeys: move a few global strings in the files where ther are actually used (and make them local.) and code cleaning.
Fix a few other minor issues.
* The SCH_COLLECTOR m_foundItems was being obsoleted after a pin name search.
If a library edit changed the found pin name, the cache still held the now
missing library pin and would segfault on next search due to the cache being
out of date.
This is due to the fact static strings flagged translated ( _("string") notation) are not translated when they are static only if they are not inside a dll.
When they are static inside a dll, the dictionary is already loaded, and the constructor translate them.
Therefore they can be translated twice in dialogs are calling wxGetTranslation to show them, if the application is run from kicad.
But if the application is run as stand alone, the translation is made only once (as expected).
Fix minor 3D viewer issues (includling change number of segments and its optimization to draw pad holes.)
Fix Bug #1439132 (track and via list on toolbar not always refresh after loading a board).
Remove useless tool in Modedit.
* Add footprint and drop table from the Pcbnew footprint library table menu
entry to make it clear to new users.
* Add component to the Eeschema library configuration menu entry.
legacy plugin: better compatibility with old brd files (current track width and current vias size, stored in SETUP section, were not read from file and incorrectly set)
Eeschema now uses dashed lines for graphic lines (to be consistent with plot functions and toolbal icon).
Fix an old bug in some envionments which warp the mouse on a bad monitor when opening eeschema, pcbnew and some other windows, only noticeable guys who are lucky enough to have more than one monitor.
Move items rework: enhancements: for some items (sheets, components, bus entries) the mouse cursor is no more wrapped to the anchor. For large symbols, this is better: they are more easy to place.
There is also a change when starting a move item command: the full screen is redraw, and therefore there is no artifact due to the XOR draw mode.
Some other minor coverity fixes (uninitialized members).
* move not shared files (sch_item_struct.*, sch_base_frame.h) to eeschema;
* move wxEeschemaStruct.h to eeschema and rename it schframe.h to be consistent with the other corresponding file name schframe.cpp;
* remove few not needed #include
Rename eeschema/dialogs/dialog_sch_find.fbp to dialog_schematic_find_base.fbp, to be consistent with other dialogs.
Pcbnew run from the project manager: add menu Save Copy As..., which is the same command as Save As ... in stand alone mode, but with the constraints of a project (no cwd change, no board filename change, and keep project settings)
- the net file now has all project sheet title block using node 'sheets' and 'sheet'
- Updated bom_with_title_block_2_csv. Note, its only going to output the root title block.
- corrected the code that violated the code policy. i.e. added the extra space to make the code more readable
- Restored bom2csv.xsl to its original form
- Added bom_with_title_block_2_csv.xsl which has the new BOM generator.
For example:
- Company name
- Project title
- issue date
- Revision
- Comment 1 to 4
- updated bom2csv.xsl plugin to take advatage of the extra project information that the net file now outputs.
Overall this improvement will make it easier to automatically make controlled and traceable documents.
* Fix -Woverloaded-virtual warning in DIALOG_LIB_NEW_COMPONENT class
definition.
* Make EDA_ITEM::Matches( const wxString& wxFindReplaceData& ) protected
since it's a helper function that should only be called by derived objects.
* Check to see if image handler is already initialized to prevent warning
on debug builds.
* Change LIB_PART destructor message output to use wxLogDebug for debugging
on windows builds.
* Minor code cleaning and coding policy fixes.
* if the current select plugin is the github plugin, one can select some of these libraries and add them to the table
* if the current select plugin is the kicad plugin, one can select some of these libraries and download them to make alocal copy.
They can added to the table after they are downloaded.
* Make generate button the default in Eeschema netlist dialog.
* Fix spacing issues in export IDF dialog.
* Make OK button the default in export IDF dialog.
* Remove unnecessary end dialog code from export IDF dialog.
* Improve resizing of export IDF dialog.
* Change Read to Load in Pcbnew and Eeschema preference menus.
* Make electrical rules check status bar message the same for both the menu
and toolbar entries.
When the filename is not absolute, the page layout file is now searched first in project folder, and then in kicad template folder, if not found in project.
Fix issue when using a page layout file in project folder: eeschema and Pcbnew did not use it, unless using an absolute path.
Now, if the file path is nor absolute, it is seen as relative to the project (which is the expected behavior)
fp lib wizard: when pcbnew id compiled with USE_GITHUB_PLUGIN=OFF, the github plugin option is no more accessible (and the web viewer no more used).
BOM dialog: remove a not very useful button, and merge its function with an other (not perfect, need more work)
Add message box to show info added in BOM python scripts (See scripts/bom-in-python/README-bom.txt about this info)
* Make title capitalization consistant.
* Replace some instances of module with footprint.
* Use angle instead of orientation where appropriate.
* Remove abbreviations where it made sense.
* Coding policy fixes.
* Fix assertions in Eeschema when editing net labels, electronic rules check,
and plotting.
* Fix assertion when opening PCB calculator.
* Fix assertions in Pcbnew when changing footprints in footprint properties
dialog and adding or editing text.
steps to better support devices with precise scrolling deltas (trackpads).
Scrolling is done in the handler rather than creating and firing cmd events.
This is intended to support two-finger scrolling on the Magic Trackpad.
- Added a preference, 'Use mousewheel to pan', to allow panning by default
on mousewheel events. This reverses the existing behavior where unmodified
mousewheel zooms and Shift/Cmd modified pans.
The old behavior was:
- Unmodified scrollwheel performed zoom in/out
- Shift modified scrollwheel performed pan up/down
- Cmd modified scrollwheel performed pan left/right
- Shift+Cmd modified scrollwheel performed zoom in/out
with no cursor warp
With the new preference checked, this changes to:
- Unmodified scrollwheel performs pan up/down
- Shift modified scrollwheel performs pan left/right
- Cmd modified scrollwheel performs zoom in/out
- Shift+Cmd modified scrollwheel performs zoom in/out
with no cursor warp
With the preference unchecked, this is now:
- Unmodified scrollwheel performed zoom in/out
- Shift modified scrollwheel performed pan left/right
- Cmd modified scrollwheel performed pan up/down
- Shift+Cmd modified scrollwheel performed zoom in/out
with no cursor warp
It should be noted that for the last case, the behavior has changed.
This is not arbitrary. This now matches expected behavior for an OS X
application. This also matches what wxWidgets expects on this platform
as wxWidgets changes the axis of mousewheel events to horizontal when
the event is shift-modified.
The preference is added everwhere that mouse preferences previously
existed, i.e., eeschema, pcbnew and gerbview. The 3D Viewer does
not yet honor this preference, but behaves as if it was checked.
The pl_editor does not currently have any preferences to honor.
As with the magnify event support, this covers canvases for all
current tools, EDA_DRAW_PANEL, EDA_3D_CANVAS and EDA_DRAW_PANEL_GAL.
This does NOT modify the behavior of mousewheel zooming, though it
probably should. This remains unsuitable for use with a trackpad,
use pinch-to-zoom instead.
* Make all files generated by make_lexer() dependencies of thier respective build targets.
* Make building Boost a dependency for all libraries.
* Remove duplicate make_lexer() call for Specctra lexer files.
Rename "Switch highcontrast" to "Toggle High Contrast".
Eliminate most of the abbreviated hotkey titles.
Doxygenize dialog_hotkeys_editor.h and add missing license block.
Display <unassigned> if key code is 0 (NULL).
Refactor hotkey editor to use tab control instead of one giant list.
Each tab is a separate hotkey section.
Modify EDA_HOTKEY_CONFIG to change the m_Comment member to m_Title for a new purpose.
We want a pretty title in the hotkey editor. We use m_Title for the key export comment which
still conveys the purpose just as easily.
Refactored usage of wxGrid into wxListCtrl which allows capturing navigation characters
and also works better (single selection is built in).
Add hotkey overwrite prompts that are paired with "Common" section. It will check if a hotkey
overlaps with the proper sections. i.e. Common with the all other sections; or Section 1 with just Common.
Right-click menu removed due to wxListCtrl being able to catch the special keys properly.
* Include new field template editor
- Removes 10 template limitation
- Adds ability to set default value
- Adds ability to set default visibility
* Documentation to follow
* Tested in Linux (Ubuntu 14.04) + Windows, Windows has issue with displaying highlight for selected template, fix to follow
* Use the proper verb Annotate in the Annotate dialog for the action button
* Used the proper verb Generate in the Netlist dialog for the action button
* Fix ERC dialog title to be "Electrical Rules Checker".
* Fix all usages of "Erc" to "ERC" consistently in ERC dialog.
* Move action buttons to bottom of ERC dialog and change Del Markers to
Delete Markers.
* Add tooltips to ERC options matrix buttons to indicate their current state.
* Cleanup ERC options code that for some reason decided to delete the button
and recreate it instead of just updating it's bitmap directly.
* Rename "Test ERC" to "Run" to describe what it's actually doing properly
* Fix creation of single app bundle with respect to scripting support.
* Cleanup scripting search paths for OSX.
* Fix some small CMake bugs from previous OSX build change.
* Optimize bundle file structure to be consistent with Apple specs.
* Add helper script for compiling wxWidgets and wxPython
* Update OSX build instructions.
Fix dialog title to be "Electrical Rules Checker" to match everywhere else.
Fix all usages of "Erc" to "ERC" consistently.
Move action buttons to bottom of dialog, make Del Markers actually say Delete Markers.
Add tooltips to ERC options matrix buttons to indicate what their current state is, for newb friendliness.
Cleanup ERC options code that for some reason decided to delete the button and recreate it instead of just updating it's bitmap directly.
Rename "Test Erc" to "Run" because you are running ERC and not testing it.
Fix improper usage of SetLabel on a wxTextCtrl instead of SetValue so the ERC totals now work!
* Compile all binaries into a single application bundle.
* Use CMake BundleUtilities to make application bundle relocatable.
* Restructure build output to directly create an image file.
* Fix default search paths.
* Set KIGITHUB environment variable.
* Added patch to fix wxWidgets so names for OSX.