Rename FPID to LIB_ID as is now used as a generic library identifier and
is no longer specific to footprints.
Remove all mention of footprint from the new LIB_ID doxygen comments and
code.
Rename files fpid.h and fpid.cpp to lib_id.h and lib_id.cpp.
Rename fp_lib_table.keywords file to lib_table.keywords and adjust CMake
build dependencies accordingly.
Update all source files effected by the code and file name changes.
Update .gitignore for file name changes.
Derive LIB_TABLE_ROW from boost::noncopyable for use in boost pointer
containers.
Use std::unique_ptr to manage PROPERTIES pointer.
Add clone support for boost pointer containers.
Split common library table code out from FP_LIB_TABLE into base LIB_TABLE
object. The FP_LIB_TABLE object only contains the code specific to
footprint library tables.
Use boost::vector_ptr for storing library table row objects.
Fix move up and down bugs in footprint library table edit dialog.
Factor out ROW object from FP_LIB_TABLE so it can be reused to create a
symbol library table row object.
Create base LIB_TABLE_ROW object from ROW object common code.
Derived FP_LIB_TABLE_ROW object from LIB_TABLE_ROW to provide support for
footprint library table rows.
Update all instances of FP_LIB_TABLE::ROW with FP_LIB_TABLE_ROW.
Purge wxT() macros from modified files where possible.
On windows when the project path include a remote volume name (\\NAME),
the volume name does not get cleared by calling wxFileName.SetDir( "" ).
This caused the volume name to be prepended to the file name when
calling wxFileName::GetFullPath(). Use wxFileName::GetFullName()
which resolves the issue.
Fix some minor grammar errors.
Fix some minor coding policy issues.
Fixes lp:1606240
https://bugs.launchpad.net/kicad/+bug/1606240
This option is not yet activated because the net attributes are not yet fully fixed by Ucamco, in Gerber file format specifications.
(To activate it, see dialog_plot.cpp, line 43)
* Split and rewrite the preview window and canvas.
* Create a new class for handling the board information.
* Adds new render targets: openGL, legacy, and ray tracing.
* Render targets take full advantage of the new 3D plugins system and 3D cache
for a fast 3D model loading.
* Faster board loading.
* New OpenGL render is faster than the old one.
* New ray tracing render target with a post processing shader.
* Use of new 3D plugins (WRL, X3D, STEP and IGES) and 3D model caching.
* Preview of 3D model while browsing the file name.
* 3D preview of the footprint while adding / align 3D shapes.
* Render of 3D models according to attributes: Normal, Normal+Insert, Virtual.
* Pivot rotation centered in one point over the PCB board.
* Shortcuts keys improved for XYZ orientation..
* Animated camera.
It is especially true in some Window Managers like KDE, but can be true in any WM, when initializations are made by TransferDataToWindow() method, called by the default wxInitDialogEvent handler.
This feature was not reliably available: neither pl_editor nor GAL supported
it. It has been replaced over the past few commits with a new zoom-to-selection
tool available in all applications and modes.
This feature cannot work reliably for reasons explained in lp:1463505. Remove
the option on OS X builds and force cursor to the small one.
https://bugs.launchpad.net/kicad/+bug/1463505
> Bernhard Stegmaier (stegmaier) wrote on 2016-01-14:
>
> As far as I see from the code this is no bug but done on intention.
>
> The reason probably is that on OSX in the legacy canvas you don't have the
> XOR-drawing as on other platforms. To the best of my knowledge, this would
> mean that on every mouse move you would have to repaint the whole window just
> to get rid of the "old" cross.
>
> So, I would say this is a clear "won't fix".
> We could think of just removing/disabling the button in the legacy canvas.
It should help if (or when) the internal angle unit used in kicad will be changed from 0.1 degree (a relic of code written for PCs without fpu) to degree ( a more natural unit).
* Paths defined via pcbnew->Preferences->Configure Paths are now included in
the 3D file browser's drop-down list except for KICAD_PTEMPLATES, KIGITHUB,
KISYSMOD, any paths resembling a URL, and any non-existent paths. When an
absolute path is shortened using one of these path aliases, let's say
'KISYS3DMOD' then the name appears in the pcb file as "${KISYS3DMOD}/blah.wrl".
If a user defines and actual environment variable with the same name, then
that user defined variable will have precedence over the internally defined
variable.
* Paths relative to the current project directory are no longer represented
as "some/path/to/file.wrl". For compatibility with previous KiCad versions
it shall always be stored as ${KIPRJMOD}/some/path/to/file.wrl.
* Various restrictions on alias path values have been removed since the
imposed restrictions could result in corrupted user data as aliases are
silently dropped.
* Overall the patch should improve back-compatibility by providing a ${ENV_VAR}
mechanism for supporting different model root directories and ensuring that
paths relative to KIPRJMOD are expressed in a way that is compatible with
earlier KiCad versions. This allows users more flexibility and the ability
to work in a way that ensures 3D model files can be correctly resolved in
earlier versions of KiCad. Users who do not care about back-compatibility
may prefer to use the newer alias system.
Fixa also a corner case which crashes Pcbnew: if the dialog is opened, and the board was changed (reloaded, cleared), pcbnew crashed because many pointers stored in dialog become invalid. Now the dialog is just closed.
I tried to merge some constants used both in legacy mode and gal mode (which were, before this patch, separate constants).
There is still a serious work to avoid different calculation code for the same text in draw and plot functions.
Work in progress to merge these calculation functions.
* No initial copied object changed (this was a serious bug to modify these objects. Previous version modified references and other texts using a very stupid algorithm).
It also fixes bug 1549231
* only new pads are numbered (therefore renumbering is used only in footprint editor)
* remove not working and useless feature in circular array: now only use number for pads (others options using alphabetical letters are removed: did not work corectly, and were useless)
* a more clear option is used to choose if the pads are numbered from a choosen value, or from the first avaible value
* Adding a warning messsage if a parameter is incorrect.
* Dialog copper zones: Always enable thermal shape settings, because even with no thermal, some pads can use thermal option in local pad settings.
* GAL mode: shows page limits in gray color, like in legacy mode, and according to comments in sources.
Pcbnew: auxiliary axis shape: use the same look as GAL, to be consistent with GAL.
Minor change in dialog_env_var_config (use the wxStdDialogButtonSize for usual OK, Cancel and help buttons)
* Replace the term module with footprint.
* Use default dialog size to allow sizers to determine the size of the dialog.
* Fix a few alignment and spacing issues.
* Fix some minor grammatical issues.
* Use front and back for board side instead of top and bottom to be consistent
with layer naming scheme.
reasons:
* This option is called "bad practice" in gerber files format specifications and is even forbidden in gerber drill files.
* Generates problems with some board makers because these holes are not identified in a single NC file.
* No one was able to explain us how to identified them in a single NC file.
* Recent change in drill file generation is not compatible with merged holes (minor reason)
Drill report: serious enhancements.
Plot files names for copper layers: build from the user layer name, like in bzr 4022 stable version. no change for other layers.
Pcbnew: Plot files: for copper layers, create suffix from user copper layer names instead of default copper layer names, like in last stable Kicad version (bzr 4022), to build the plot files filenames.
Better test of illegal chars in plot filename, both in plot dialog and functions aclled by Python scripts.
Fix a Plotcontroller issue to make SetUseGerberExtensions() work as expected from Python scripts ( from Henner Zeller'patch with a fix to be sure it works properly from a Python script)
Note also using Protel Gerber Extensions is now a bad practice, because the official Gerber extension is .gbr since X2 Gerber version. But some users still use them)
* The board ratsnest visibility state was being saved in both the board file
and the Pcbnew configuration files causing visibility state issues. Use the
board file to save the board ratsnest visibility state.
* Remove all of the board ratsnest save visibility state to configuration file
code.
* Add code to set the board modified property when layer visibility states
change to give the user a chance to save the state in the board file.
* Some minor code cleaning and coding policy fixes.
* Make the about dialog help string consistent across all menus.
* Improve print preview window and print initialization error messages.
* The usual smattering of coding policy fixes.
* Add skip event to notebook page changed event handler. Apparently OSX
updates the selected notebook page in this event instead of the page
changing event used on Window and Linux.
* Improve duplicate net class name error message.
* Use default dialog size to allow sizers to do their job.
* General layout and sizer improvements.
* Remove HTML message window which could not be used when error dialog was displayed.
* Use wxStdDialogButtonSizer for the OK and Cancel buttons.
* Check for design rule validity in TransferDataFromWindow() to prevent dialog from being
closed and all new design rules being lost when an error is detected. This gives the user a
chance to fix any design rules errors before dismissing the dialog.
* Add missing test for extra via drill diameter violations.
* Remove unnecessary OK and Cancel butten clicked event handlers.
* Rename Eda_FileSelector to EDA_FILE_SELECTOR.
* Add optional pointer to wxString to save the most recently used path to EDA_FILE_SELECTOR.
* Rename Eda_DirectorySelector to EDA_PATH_SELECTOR.
* Replace wxGetCwd() with wxStandardPaths::GetDocumentsDir(). This fixes the windows issue
where wxGetCwd() returns the path where the executable files are located.
* Add code to handle most recently used path to EDA_BASE_FRAME.
* Fix string formatting error in kicad/files-io.cpp.
* Remove setting and restoring current working directory when launching GerbView. Setting the CWD
has no effect on the launched executable which starts with it's own CWD.
* Allow project path to be passed to GerbView when launched from KiCad.
* Note: this is a work in progress. Do not expect every path and/or file selection dialog to properly
update the most recently used path. The correct solution to this problem requires a much more
well though out solution which will not happen until after the next stable release.
* UI capitalization policy fixes.
* Set OK button as the default.
* Use default dialog size to allow sizers to do their job.
* Minor grammar and abbreviation string fixes.
* Make OK button the default in the copper zones properties dialog.
* Change the set global text edit properties menu entry so that is describes
what the dialog actually does.
* Make the clean up tracks and vias menu entry description more accurate.
* Track the last used path for the current session.
* Set focus back to OK button after wxFilePickerCtrl button is pressed to change file path
and/or file name so next return key press fires OK event.
* Use default dialog size to let the sizers set initial dialog size.
* Add spacer to improve layout when resizing dialog.
* Use colons for consistency with other dialogs.
* Use default size to allow sizers to determine dialog size.
* Use "segment" rather than abbreviation "segm".
* Use width and height to describe text instead of X and Y.
* Add spacer to improve layout when resizing dialog.
* Use colons consistently in labels.
* Use default dialog size to allow sizers to size dialog.
* Fix control alignment and spacing consistency.
* Add spacer to improve layout when resizing dialog.
* Make control spacing and alignment consistent.
* Use default dialog size and to allow the sizers to do thier job.
* Add colons to per item labels for consistency.
* Fix error message box title capitalization per UI policy.
* Remove hard coded dialog size and let the sizers do their job.
* Minor UI policy text fixes.
* Minor text changes to improve readability.
* Minor tool tip changes to improve readability.
PAD_SHAPE_T and PAD_ATTR_T still have a double definition (new names and old names) to be sure python scripts are nor broken by the change.
PAD_DRILL_SHAPE_T does not have a double definition, because it is unlikely oblong holes are used in python scripts.
Double definitions will be removed in the (next) future.
* The exchange dialog can be now called from the footprint popup menu.
* It can be (as before) called from the footprint properties menu, but in this case, the footprint properties menu is closed before calling the exchange menu.
* Changes in exchange dialog to avoid truncation of long FPIDs
* Changes in exchange dialog to make some texts translatable (Previously, the same English sentence was used in very different contexts)
* Cleanup namespace in enum ZoneConnection in pcbnew/zones.h to self-explained names unification: PAD_ZONE_CONN_INHERITED, PAD_ZONE_CONN_NONE,PAD_ZONE_CONN_THERMAL,PAD_ZONE_CONN_FULL, PAD_ZONE_CONN_THT_THERMAL
* Adds a "Grid Reference Point" to the VRML export; this allows a user to specify the (X,Y) coordinate which will be the origin point on the output
* Adds a "Grid Reference Point" to the IDF export; this is similar in purpose to the corresponding VRML export feature.
* Replace module nomenclature with footprint for improved consistency.
* Replace abbreviations in control text.
* Replace exchange nomenclature with change.
* Add code to allow each editing window it's own undo/redo count.
* Add code to allow for infinite undo/redo when count is set to 0.
* Add edit control to all editing windows general options dialog for
user configuration of undo/redo count.
* Add code to save and restore undo/redo count for each editing window.
* Clean up formatting and make OK button the default in the array dialog.
* Make the OK button the default in the move exact dialog.
* Change the directory picker control from wxGenericDirCtrl to wxDirPickerCtrl so the native
directory picker dialog is used to select the directory in the select pretty library path dialog.
* Make the OK button the default in the select pretty library path 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.
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.
* 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.
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)
* Fix default KISYSMOD/KISYS3DMOD (#ifdef typo) for OSX builds.
* Remove setting KIGITHUB from kicad/pcbnew Info.plist in favor of hardcoded default
setting for OSX builds.
* Remove now unneeded Set3DShapesDefaultPath() and other small things.
Text arrays can now use "%s" as a placeholder to be substituted with the array index.
Also expand menu options for move exact, arrays and duplicate.
Minor fixes for arrays - use proper unit parsing, add numbering start for circular arrays
Add circle radius indicator to array dialogue
These settings are now not common to the board editor, because the footprint editor can be run outside the board editor.
download_boost.cmake: ignore .htm* files when installing boost. They are not used, and often have a very very long (and stupid) name which sometimes creates issues.
* 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.
this option was possible only by modifying the way display options are managed.
before these changes, display options were a global DISPLAY_OPTIONS class instance.
Now each EDA_DRAW_FRAME(and derivated classes) includes its own DISPLAY_OPTIONS class instance.
As a consequence, some duplicate display option variables in these classes have been removed, because there were just duplicate variables of the DISPLAY_OPTIONS class instance.
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).
- re-worked PNS_LINE_PLACER and PNS_ROUTER classes a bit, removing duplicate class members
- cleaned up Andrew's blind/buried via fixes
- fixed 'custom via width' dialog bug updating the width even when closed/cancelled
- fixed incorrect radius of drawn microvias