Commit Graph

746 Commits

Author SHA1 Message Date
Seth Hillbrand 7c28c3838a Comment-only changes
Makes class comments conform to coding standards
2020-01-10 16:43:01 -08:00
Simon Richter 270aaec443 Rewrite FBP files generated with unreleased wxFB
These use a few features that are too new, causing errors when trying to
edit with a released version of wxFormBuilder.
2020-01-07 13:32:33 +00:00
Ian McInerney 25a302758e Fix macos plist version string generation
Generate these resource files similar to how it is done one Linux.

Fixes mac-builder issue https://gitlab.com/kicad/packaging/kicad-mac-builder/issues/275
2019-12-26 12:42:25 +00:00
Wayne Stambaugh 18ff60fbb9 Fix build error on non-macos builds. 2019-12-22 07:38:50 -05:00
Ian McInerney 5ed074b5c5 Add missing override specifier to fix warning 2019-12-22 11:21:54 +00:00
jean-pierre charras ad32c0e5e4 Kicad, tree project: refinement in multiple selection.
When editing files, the editor is called once to open multiple files.
2019-12-06 10:16:08 +01:00
Mikolaj Wielgus 350a991f26 Allow multiple selections in Kicad project manager (starting point) 2019-12-06 09:10:20 +01:00
Seth Hillbrand b5f021ff9f Cleanup: Replace push_back with emplace_back
In cases where we create a new item and immediately push into a
container, the emplace idiom is faster and more efficient.
2019-12-05 13:41:21 -08:00
Ian McInerney 99b9354a51 Add clear recent files action to the menus
ADDED: Menu item to allow the recent file lists in each program to be
cleared

Fixes: lp:1821685
* https://bugs.launchpad.net/kicad/+bug/1821685
2019-11-23 23:35:21 +00:00
M.Scholz dbb9b5f64f Corrects IsDirWritable check
The check for IsDirWritable needs to reference the absolute path to
return correct values.

Fixes: lp:1853421
* https://bugs.launchpad.net/kicad/+bug/1853421
2019-11-21 17:23:44 -08:00
jean-pierre charras 767d7f2009 Fix bug (typo?) in gestfich.cpp.
Minor enhancement in treeproject_item.cpp
2019-11-19 16:11:56 +01:00
Ian McInerney 9114709039 project manager: Clear rename flag in the rename event handling 2019-11-17 01:51:54 +00:00
Ian McInerney c31ac6c154 Clean up code inside the project manager tree 2019-11-17 01:01:12 +00:00
Ian McInerney 7b13eb46d8 After renaming a file, select the new one 2019-11-17 00:52:43 +00:00
Ian McInerney 2fc5e6c79f Fix renaming of files in the project tree
We must add the new node for the new file in the new directory,
not in the original root directory. The file watcher will also
delete the old node, so there is no point in renaming the file.

Fixes: lp:1852357
* https://bugs.launchpad.net/kicad/+bug/1852357
2019-11-17 00:17:08 +00:00
Ian McInerney 64e094f211 Revert changes in the project manager file tree for rename handling
Revert "Be a bit smarter about moving files through a rename."
Revert "Check for file moving directory and refresh entire tree if so."

This reverts commit f8aea249df.
This reverts commit 8ce04d3362.
2019-11-17 00:17:03 +00:00
Jeff Young f8aea249df Be a bit smarter about moving files through a rename.
Don't rely on rebuilding the tree as it collapses all open
directories.  Try and follow the file instead.

Fixes: lp:1852431
* https://bugs.launchpad.net/kicad/+bug/1852431
2019-11-16 00:00:16 +00:00
Ian McInerney 88e55bbf2d Recursively delete directories in the project tree
Ensure we iterate over all the sub directories and files inside of them
when deleting a directory from the project tree.

Fixes: lp:1852357
* https://bugs.launchpad.net/kicad/+bug/1852357
2019-11-15 00:26:52 +00:00
Jeff Young 8ce04d3362 Check for file moving directory and refresh entire tree if so.
Fixes: lp:1852431
* https://bugs.launchpad.net/kicad/+bug/1852431
2019-11-13 18:14:34 +00:00
Jeff Young 04b0feb365 Fix a couple of issues in new Save As command.
Handle symbols as well as strings in the "source" lists of
netlist files.

Handle Protex gerber file extensions.

Check for project_name-whatever pattern for files that we
don't recognize (such as project_name-NPTH-drl_map.ps)
2019-11-11 20:36:48 +00:00
jean-pierre charras 4de6ed6206 Fix issues created by Adds Save As... to the Kicad manger.
Mainly replacing std::string by wxString to manage filenames.
On Windows, a sdt::string cannot manage a filename, unless using
in many places TO_UTF8 and FROM_UTF8.
So the best way is to use a wxString for filenames and error messages.
2019-11-10 09:37:39 +01:00
Jeff Young b5904b0401 Installment one of project Save As... feature.
ADD: Adds Save As... to the File menu for the project window.

Fixes: lp:594051
* https://bugs.launchpad.net/kicad/+bug/594051
2019-11-09 20:22:44 +00:00
Jeff Young 114ea1f406 Cleanup. 2019-11-09 20:22:44 +00:00
Jeff Young 10c25a2290 Update frame type enum to match current class names. 2019-09-06 23:38:20 +01:00
Seth Hillbrand c0b4e10f87 Fix undef subdir macro in tree_project 2019-09-05 09:58:03 -07:00
Seth Hillbrand e7c07501c5 Minor compile warning cleanup 2019-09-05 09:47:52 -07:00
Jeff Young 2274895acf Add print preflight so the menu item is only shown when we can print.
Fixes: lp:1836473
* https://bugs.launchpad.net/kicad/+bug/1836473
2019-08-29 23:56:16 +01:00
Jeff Young 360a52399a Add printing to RMB project items.
Fixes: lp:1836473
* https://bugs.launchpad.net/kicad/+bug/1836473
2019-08-28 17:32:08 +01:00
Jeff Young a25368cc6b Improve spelling.
The groundwork here is thanks to kunda1.

Fixes: lp:1831510
* https://bugs.launchpad.net/kicad/+bug/1831510
2019-08-20 19:14:05 +01:00
jean-pierre charras 551eb56da0 Fix a minor I18n issue. 2019-08-18 18:38:42 +02:00
Jeff Young 3cdf88f2c6 CERN copyrights for work packages. 2019-08-14 09:35:15 +01:00
Ian McInerney 8493daf9ff Unify menu item creation for closing a window
* Push a function into CONDITIONAL_MENU that adds the item
* Modify the tooltip for close and exit items to have the
  program name

Fixes: lp:1835454
* https://bugs.launchpad.net/kicad/+bug/1835454
2019-08-14 09:35:15 +01:00
Ian McInerney d170243d61 Fix some memory leaks
Some elements of modules and boards were not deleted, so memory
was being leaked on some library loads and single-instance
pcbnew usage.
2019-08-12 15:03:25 -04:00
Wayne Stambaugh c7fc54b348 KiCad: fix new project from template bug.
Do no rename symbol library files to the new project name.  Only rename
the cache library.  This prevents breaking symbol library links in the
schematic due to the project symbol library table pointing to the wrong
library file name.

Fixes lp:1837667

https://bugs.launchpad.net/kicad/+bug/1837667
2019-08-07 15:37:46 -04:00
Jeff Young cc82e59003 Push the Quit/Close menu logic down into common. 2019-08-02 14:32:49 -06:00
jean-pierre charras 9e90cb9572 Kicad manager: fix incorrect handling of disabled state of tools in launcher toolbar 2019-07-24 18:04:04 +02:00
Seth Hillbrand 3514473a5a Project Templates: Allow multiple line titles
This fixes two display issues in the project template selector.  The
first captured HTML tags in the template title display and the second
prevented more than one line for showing (at least on GTK) in the
preview.  This prevented disambiguation between the various templates.

(cherry picked from commit 24b032ce5b)
2019-07-23 16:15:04 -07:00
jean-pierre charras 1402087562 Kicad manager: cosmetic fix: use small (26x26) icons in tool menu and big (48x48) icons in main frame. 2019-07-17 19:59:42 +02:00
Jeff Young 243a8b6843 Fix open in browser on Mac, and use correct terminology.
(Mac uses "Reveal in Finder").

Fixes: lp:1836837
* https://bugs.launchpad.net/kicad/+bug/1836837
2019-07-17 11:57:41 +01:00
Jeff Young adf06791eb Add tooltips for Kicad Manager launch bar.
Fixes: lp:1835105
* https://bugs.launchpad.net/kicad/+bug/1835105
2019-07-02 22:26:34 +01:00
Jeff Young f088d4d762 Add env-var setting to CommonSettingsChanged().
Fixes: lp:1804925
* https://bugs.launchpad.net/kicad/+bug/1804925
2019-06-25 11:34:28 +01:00
Seth Hillbrand 98124e68c7 Update exit strategy to match UI guidelines
In singletop mode, all frames show the "Quit" option in the file menu
and will quit on Ctrl-Q.  When launched from the main KiCad interface,
sub-programs show the "Close" option instead and will close with Ctrl-W.
In this mode, Ctrl-Q will instruct the main program to exit.

Fixes: lp:1779938
* https://bugs.launchpad.net/kicad/+bug/1779938
2019-06-24 21:46:42 -07:00
Wayne Stambaugh 57a60a32f5 KiCad: fix project tree open in system path bug.
Don't pass relative paths to the system file manager.  The current working
directory may not be the current project path which may end up opening the
system file manager in an unexpected folder.

Fallback to the user's document folder when a valid project path is not
found.
2019-06-20 15:18:43 -04:00
Jeff Young 7dd247f1dc Make better use of TOOL_EVENT parameters. 2019-06-18 20:24:15 +01:00
jean-pierre charras aba58e3e48 Kicad manager fix a not very well working left window size of the tree project files:
This size should be the last size saved when closing the manager.
However it was frequently clamped to a smaller size by the aui manager that set a "best" size, not the asked size.
2019-06-18 18:23:12 +02:00
Seth Hillbrand 21030fdfb2 Allow opening selected directory in the file system
Fixes: lp:1833052
* https://bugs.launchpad.net/kicad/+bug/1833052
2019-06-17 06:26:37 -07:00
Jeff Young e6d5110ccf Implement I18N for ACTIONs.
It's a bit of a hack because they're statically initialized and
so we can't make use of the _() macro.  We do still want it in the
code, however, because the string harvesting is based off of it.

Fixes: lp:1833000
* https://bugs.launchpad.net/kicad/+bug/1833000
2019-06-17 10:45:23 +01:00
Jeff Young b2ee2a4d88 Add checking to languages menu.
This also required having KICAD_MANAGER_CONTROL handle UpdateMenu
since there's no seletion tool for the Kicad Manager frame.
2019-06-16 20:26:43 +01:00
jean-pierre charras 66d2060942 Partial fix for missing language selection menu.
The fix is partial because in the list of languages the menuitem corresponding to the selected language is not checked.
2019-06-16 20:35:57 +02:00
Jeff Young 5610261dce Immediate-action hotkeys (and context menu actions) for eeschema. 2019-06-15 20:43:51 +01:00
Jeff Young b429dbfb88 Fix bugs with ACTIONs not being "honest" singletons.
Delete the copy ctor and assignment operator to start with, but
even then the separate apps each have their own statically allocated
copy of the common actions.  So we need to update all of them, which
also means having the kicad manager frame's set of actions on hand).

This changelist also adds a Clear Hotkey Assignment function since
the hotkeys set is now likely to be sparse with respect to the
actions.
2019-06-14 16:54:46 +01:00
Jeff Young 36f09cb29b Allow Kicad Manager frame to particapate in Preferences architecture. 2019-06-12 13:44:16 +01:00
Seppe Stas 455ee4c08c Set KiCad version in MacOS apps
Uses CMake's configure_file function [1] to automaticaly set the
CFBundleShortVersionString [2] value in every app's Info.plist file.

Also updates the CFBundleLongVersionString and CFBundleVersion with the
extended KiCad Version

[1]: https://cmake.org/cmake/help/latest/command/configure_file.html
[2]: https://developer.apple.com/documentation/bundleresources/information_property_list/cfbundleshortversionstring
2019-06-12 04:40:03 -07:00
jean-pierre charras 0359ffb6c7 * Fix a link issue issues on Windows, probably related toircular gal<->common dependency.
The fix used in commit 1e4abac57 to build kicad binary does not work for pcb_calculator.
So I used a ugly but basic trick to force linking some undefined functions found in gal lib.
This issue could be msys2 specific.
2019-06-11 16:20:28 +02:00
John Beard 1e4abac579 Fix multiple compilation issues on Linux
* Circular gal<->common dependency bites again. Add 'common'
  again to the 'kicad' target's link libraries. libgal.a depends
  on SHAPE_POLY_SET in common, but common depends on gal. This is
  not a real fix, but it unsticks Linux compilations. Fixing the
  circular dep is an existing bug: https://bugs.launchpad.net/kicad/+bug/1832229

* Missing LEGACY_HK_NAME for ACT_EndTuning: this was probably accidentally
  allowed on some other platform due to different wxString constructors.
  On Linux/GCC, it breaks.

* Unused include from /kicad in export_vrml.cpp. This is not findable
  on Linux, as pcbnew does not include the right dirs for this to be
  found. But it's not used, so just remove it.
2019-06-11 13:58:38 +01:00
Jeff Young b0e8443383 Sync-ing of menu has been done in CONDITIONAL_MENU for some time now. 2019-06-10 23:46:01 +01:00
Jeff Young 19638b2226 Simplification. 2019-06-10 23:46:01 +01:00
Jeff Young 620395608c Move Kicad Manager launch bar to ACTIONs.
Also fixes a bug where hotkeys weren't getting put in menus.
2019-06-10 23:46:01 +01:00
Jeff Young 5e49517781 Move hotkeys to ACTION architecture. 2019-06-10 23:46:00 +01:00
Jeff Young c13ef839c1 Tool framework for Kicad Manager frame. 2019-06-10 23:46:00 +01:00
Jeff Young 193ec692a9 Follow naming conventions. 2019-06-10 23:46:00 +01:00
Jeff Young 6025256e07 Push KIWAY_HOLDER down a level so we can move a bunch of stuff that doesn't belong there out. 2019-06-10 23:46:00 +01:00
Jeff Young e517199794 Move ConfigurePaths and LibTable management to common ACTIONs. 2019-06-03 21:08:30 +01:00
Jeff Young 74e10791ff Fix some Mac-specific issues with the Preferences... menu item. 2019-06-01 16:29:12 +01:00
Jon Evans f2d7bb7b0c KiCad: Update window title after importing Eagle project 2019-05-28 22:59:36 -04:00
jean-pierre charras 7bb1d50d55 Add missing file 2019-05-26 08:42:47 +02:00
jean-pierre charras 568d4e2b19 Avoid including id.h in a lot of files that do not use it. 2019-05-26 08:14:25 +02:00
Seth Hillbrand 9992839c78 Eagle: Allow directory creation when importing
The DD_MUST_EXIST flag prevents users from creating a new directory for
their imported eagle project.  This is a UX annoyance.
2019-05-21 13:49:18 -07:00
Jeff Young 7d9a0b06e0 Push help menu down into EDA_BASE_FRAME. 2019-05-18 13:14:08 +01:00
Jeff Young 7452e98655 Update Kicad window tooltips, etc. when language changes.
Fixes: lp:1828616
* https://bugs.launchpad.net/kicad/+bug/1828616
2019-05-17 01:30:47 +01:00
Jeff Young 69afa27a5f Implement ACTION_TOOLBAR and update some of the menus to ACTION_MENU.
This gives us better separation of MVC in line with the design of
the modern toolset.  It also reduces a whole bunch of duplicated
data.
2019-05-15 17:50:52 +01:00
Wayne Stambaugh 3c4f8c1bf7 Fix frame name capitalization in all about dialogs.
This is a stop gap fix.  It should be possible to use the wxFrame title
string for this but some of the frame windows have appropriated the title
string for configuration file naming purposes which is less than ideal.

Fixes lp:1825977

https://bugs.launchpad.net/kicad/+bug/1825977
2019-05-13 15:40:44 -04:00
Jeff Young b526461a8e Fix colliding hotkeys issue.
All grid commands need to be shared now as they're implemented
by a common tool.
2019-05-05 17:12:59 +01:00
jean-pierre charras 0997ecf446 Fix incorrect conversion from wxString to std::string 2019-04-08 17:10:54 +02:00
Jeff Young 77f15eeeaf Support synchronous messaging over KIWAY EXPRESS.
This allows us to make the various netlist and pcb update routines
more atomic and less reliant on carefully sequenced asynchronous
messages.

This is also a prelude to adding support for footprint testing
without a netlist.
2019-04-08 13:26:09 +01:00
Michael Kavanagh b0674b8802 Add Ctrl+, hotkey to preferences dialog
Also change interactive router settings from Ctrl+, to Ctrl+Shift+,
2019-04-02 12:57:27 -04:00
Michael Kavanagh fe6bc411dd Fix 'hokey' -> 'hotkey' typo 2019-04-02 12:57:26 -04:00
jean-pierre charras e1d3df54eb Kicad and Gerbview: add .nc and .xnc file ext to files seen as drill files.
.nc is an other usual Excellon drill file ext, and .xnc will be soon also in use.
2019-03-27 16:47:13 +01:00
Michael Kavanagh b681e4a68e Open drill file in gerbview from KiCad manager tree
Fixes lp:1819754
https://bugs.launchpad.net/kicad/+bug/1819754
2019-03-27 09:04:16 -04:00
Seth Hillbrand d2d2101170 templates: Create template like normal project
When creating a new project from a template, we should follow the
same workflow as creating an empty project.  Without this, the project
requires the directory to exist and the form doesn't allow creating new
directories (in GTK3 at least).
2019-03-06 20:01:30 -08:00
Michael c3928c21eb Fix template selector notebook behaviour
Also replace "validate" button with standard refresh icon button.

Fixes: lp:1773510
https://bugs.launchpad.net/kicad/+bug/1773510
2019-03-03 19:43:41 -08:00
Seth Hillbrand b9097c2c1d Test for extension before adding to new project
Fixes: lp:1818136
* https://bugs.launchpad.net/kicad/+bug/1818136
2019-02-28 12:33:41 -08:00
Seth Hillbrand 51fce4bad8 Force X11 on linux
Wayland is not yet compatible with wxWidgets (or rather the other way
around).  Until this happens, we must force the x11 compositor while
running.  Under wayland, this will map to the wayland-x11 compatibility
layer.

Fixes: lp:1816637
* https://bugs.launchpad.net/kicad/+bug/1816637
2019-02-26 08:51:12 -08:00
Seth Hillbrand 49d3440529 Prevent stripping preceived extensions from new proj
wxFilename automatically detects extensions based on the last "." in a
full filename.  We need to re-add the extension if it is removed.

Fixes: lp:1816862
* https://bugs.launchpad.net/kicad/+bug/1816862
2019-02-23 09:06:10 -08:00
jean-pierre charras aca1835610 Fix minor wxWidgets alerts. 2019-02-23 09:33:59 +01:00
jean-pierre charras 7b75629a67 rename file 2019-02-23 09:18:02 +01:00
Seth Hillbrand 484c1f63ba gtk3: Force GTK2-style input handling
GTK3 provides for additional input devices via xinput2.  These include
touchscreens and continuous scroll devices.  But wxWidgets does not have
specialized handlers for these events, so they double up for some
devices.  Until wxWidgets allows us to handle these events, we specify
that the input handler should be the old-style GDK_CORE.
2019-02-19 11:03:20 -08:00
Seth Hillbrand 69c1263c02 GTK3: Force scrollbars visible
GTK3 does a fade in/fade out routine for scrollbars by default.  This
was problematic as it caused a cascade of full-screen repaint events on
each mouse event.  Instead of disabling scrollbars (which only helped
the full canvas), we force the old scrollbar behavior is environmental
variables.

Revert "gtk3: Remove scrollbars"

This reverts commit db43bd82a7.
2019-02-19 10:52:39 -08:00
Seth Hillbrand ac460466b6 Archive fp-lib-table and sym-lib-table from project
The local library tables should be archived with the project
2019-02-11 07:21:22 -08:00
John Beard e6a6266f3d Build: libpolygon provides its own includes
Libpolygon can provide its own includes via target_include_dirs PUBLIC.
This means any linking targets do not need to specifiy them manually.

As common requires polygon, the polygon dep is also now no longer
required downstream of libcommon, as it's transisitvely implied
by libcommon's target_link_libraries.

This resolves a circular dependency previously detected and also
simplifies CMakeLists.
2019-02-04 19:29:31 -08:00
John Beard bb2ae8e13b Bitmaps: move bitmap defs to bitmaps library
The bitmap definitions (BITMAP_DEF and so on) do not
have any dependencies on other libs, including WX. This
means the bitmaps library can be isolated from the other
dependencies.

Common now depends on bitmaps, and libraries that depend
on common can pick it up from the common target_link_libraries,
as it is PUBLIC. This means a lot of targets no longer
need manual bitmap linkage.

This avoids a circular dependency that was previously reported
by static analysis.

Avoiding pulling in WX and other headers into the include
tree of each bitmap .cpp is a huge speed up (around 10x) in
compilation, and the generated static library is also 10x
smaller (20MB vs 200MB)

Add common as a link library to pnsrouter,connectivity.
THese library do still use common code (including bitmaps,
via base_screen.h) and this allows them to pick up the libcommon
includes correctly.
2019-02-04 19:29:31 -08:00
Seth Hillbrand b9483ae66f Adding additional archive extensions
These include standard protel extensions and 3d-model extensions

Fixes: lp:1812639
* https://bugs.launchpad.net/kicad/+bug/1812639
2019-01-21 07:27:20 -08:00
Seth Hillbrand 3a1e66dba3 kicad: URI-encode zip names to handle unicode
Workaround for wx not handling unicode strings in the archive file
system handler.

Fixes: lp:1812516
* https://bugs.launchpad.net/kicad/+bug/1812516
2019-01-20 16:41:55 -08:00
John Beard 658cc8fd96 Wildcards: unify handling of all files wildcards
Use the AddFileExtListToFilter() to also generate the
wildcard for "all files". This is because:

* Users can use AddFileExtListToFilter for the all files WC
  with the same interface as for any other extensions.
* Users do not need to worry about wxGetTranslation, as the
  _() is applied in the same way as the other *Wildcard() helpers,
  and it is a function just like the others, so it is consistent
* There is a testable interface to document the expected result.
  The test is added.
2019-01-09 08:57:42 -05:00
Seth Hillbrand 1e5ba6f1b1 Replace DIM() macro
The standard DIM() macro was not typesafe as it happily deferred errors
to runtime that can be caught at compile time.  Replacing it with a
generic C++11 constexpr allows for typecasting, comparison and compile
time error checking.
2019-01-06 08:43:12 -08:00
Seth Hillbrand 3b54a44540 wildcard strings update
Replace a few other cases where we used Windows-only or *nix specific
wildcard strings
2019-01-05 20:26:45 -08:00
Seth Hillbrand 6662891f34 string update: Help->List hotkeys
The hotkey name "Help (this window)" does not describe what the hotkey
and associated action does.  It displays the current hotkey list, so the
action name should reflect that behavior
2019-01-02 15:44:13 -08:00
Maciej Suminski 24f9bfa13b Fixed memory leaks
This is commit a9efbf47 with a fix for SWIG to deal with unique_ptr.
2018-12-20 10:05:58 +01:00
Seth Hillbrand e307d9318b Revert "Fixed memory leaks"
This reverts commit a9efbf4716.

The commit broke compiles with scripting
2018-12-11 10:12:44 -08:00
Maciej Suminski a9efbf4716 Fixed memory leaks 2018-12-11 16:21:43 +01:00
Maciej Suminski 766156ed87 Fix for dark mode on macOS Mojave
Thanks to Scott Rapson and Justace Clutter for the solution.

Fixes: lp:1797989
* https://bugs.launchpad.net/kicad/+bug/1797989
2018-12-07 09:03:56 +01:00
Jeff Young 78daaa8825 Allow cancel, delete or rescue when opening pcbs with undefined layers.
Fixes: lp:1796596
* https://bugs.launchpad.net/kicad/+bug/1796596
2018-12-07 00:26:10 +00:00
Jeff Young c0d713b2d2 Implement OSX-specific method for opening project directory.
Sadly, the wxWidgets one doesn't work.

Fixes: lp:1804937
* https://bugs.launchpad.net/kicad/+bug/1804937
2018-11-24 16:19:38 +00:00
jean-pierre charras 65a967dca1 Fix minor I10n issues. 2018-11-18 14:40:36 +01:00
Jeff Young 8725511c3c OSX fix to bring launched apps to the front.
Fixes: lp:1154859
* https://bugs.launchpad.net/kicad/+bug/1154859
2018-11-13 17:13:03 +00:00
jean-pierre charras 54fe060b5a add tool to open system file browser to main toolbar 2018-11-02 13:51:13 +01:00
jean-pierre charras 601e0a31b5 Open project folder in host OS: refinements.
Remove 2 png files that should not be is trunk.
2018-11-01 15:11:29 +01:00
Ashutosh Gangwar efe6b04ca2 kicad: Open project folder in host OS
NEW: Adds support to browse project directory in default file manager in the host OS
CHANGED: Main frame's Browse menu now contains third option to Browse Project Files

Fixes: lp:1584977
https://bugs.launchpad.net/kicad/+bug/1584977
2018-11-01 09:11:42 +01:00
Wayne Stambaugh 29092c3b3d Fix broken log trace name in previous commit. 2018-10-17 15:34:46 -04:00
Wayne Stambaugh f584b30c73 Replace log debugging output with tracing.
Replace all instances of wxLogDebug with wxLogTrace in the common and
kicad folders to prevent unwanted debugging output.

Add new trace flags for locale and screen object tracing.

The usual smattering of code policy fixes.
2018-10-17 15:03:33 -04:00
Jeff Young 9a213207fb Clearer titles for editing board footprints.
Also cleans up the naming on the symbol editor side.
2018-10-05 14:17:58 +01:00
Jeff Young 7bcb5fd720 Make app names and tooltips consistent.
Fixes: lp:1795236
* https://bugs.launchpad.net/kicad/+bug/1795236
2018-09-30 17:46:45 +01:00
Jeff Young c90a3efea2 Change KIDIALOG hashing algorithm to __FILE__ + __LINE__.
Using Title + Message wasn't working for all the dialogs which
did substitutions in the message (which was a lot of them).

Fixes: lp:1789348
* https://bugs.launchpad.net/kicad/+bug/1789348
2018-08-29 23:38:23 +01:00
Jeff Young a97d2f8cf3 Fix compile error on non-OSX platforms. 2018-08-29 22:32:38 +01:00
Jeff Young f9412f0fd4 Implement double-click for other filetypes in project tree.
Fixes: lp:1787207
* https://bugs.launchpad.net/kicad/+bug/1787207
2018-08-29 19:59:02 +01:00
jean-pierre charras 90788a5a72 Kicad archive project: add missing file extensions (.kicad_mod, .gbrjob) in files to archive filter.
Fixes: lp:1789038
https://bugs.launchpad.net/kicad/+bug/1789038
2018-08-26 13:35:33 +02:00
Jeff Young 86a801aabc Allow updating of file history size on the fly.
Also updates the file menu IDs so that we can actually handle
more than 9 items in the file history.

Also adds configurable file history length to the other gerber
files (zip, drill and job).

Fixes: lp:1745729
* https://bugs.launchpad.net/kicad/+bug/1745729
2018-08-21 10:34:41 +01:00
José Jorge Enríquez 8d625854b8 Allows custom number of entries in recently opened files menu.
NEW: Adds a configuration option to set number of entries in the "Open Recent" menu.

Fixes: lp:1745729
* https://bugs.launchpad.net/kicad/+bug/1745729
2018-08-21 10:34:41 +01:00
Jeff Young d81faa72c9 Overhaul border drawing in all the Kicad frames.
Primary change is to replace most control/window borders with
AUI pane borders.  We implement our own AUI border drawing
routine which avoids the ugly one-pixel white frames around
dark canvasses.

Also increases the signal-to-noise ratio of all the pane
creation code in the various frames.
2018-08-11 17:25:38 +01:00
Jeff Young d788c9d479 Move library table dialogs from PLAYER to KIFACE interface.
Spooling up a full PLAYER in the background takes too long.

This also fixes bugs around how the tables are saved, although
that was just missing code rather than anything architectural.

Fixes: lp:1785436
* https://bugs.launchpad.net/kicad/+bug/1785436
2018-08-06 21:31:53 +01:00
jean-pierre charras 7fa5456d71 Kicad: fast switch to an other project sharing the same folder.
If a .pro file is inside the current project, double clicking on this .pro file switches to this project.
(It happens when 2 projects share the same folder).
2018-08-05 09:04:39 +02:00
Wayne Stambaugh 8e7d6063fd Minor dialog and frame window improvements.
Drop all uses of wxRAISED_BORDER and wxSUNKEN_BORDER from dialogs and
panels used in main frame windows.

Drop use of wxSP_3DSASH options on all wxSplitterWindow definitions.

Minor dialog alignment and spacing fixes.
2018-08-02 13:00:41 -04:00
Jeff Young eaf5b913b6 Add Manage Symbol and Footprint Library tables to project frame.
Fixes: lp:1780604
* https://bugs.launchpad.net/kicad/+bug/1780604
2018-07-19 21:46:41 +01:00
Jeff Young 99db5cb543 Allow for reduced nagging with wider use of KIDIALOG.
(cherry picked from commit c2dd5df)
2018-07-17 15:13:53 +01:00
Jeff Young 7841f8a466 Unified preferences dialog framework.
(cherry picked from commit 8ee3e77)
2018-07-17 15:11:17 +01:00
Jeff Young 8f0aa68ab8 Fold 3D Search Paths dialog into Configure Paths.
Use in-place editing for both.

Fixes: lp:1743823
* https://bugs.launchpad.net/kicad/+bug/1743823

(cherry picked from commit 33622cd)
2018-07-17 15:11:01 +01:00
Wayne Stambaugh bded0cfc19 KiCad: make initial minimum main frame width show all icons.
Fixes lp:1780300

https://bugs.launchpad.net/kicad/+bug/1780300
2018-07-13 15:53:03 -04:00
Martin Aberg 47a4099e64 Disable logging at exit on FreeBSD.
This commit fixes a crash on KiCad exit for FreeBSD.

Usage of the wxLog functions in destructors on program generates an
infinite recursive call loop and segfault on this platform.

The workaround is inpired by:
  https://people.freebsd.org/~wpaul/kicad/kicad_instructions.txt

Fixes: lp:1778334
* https://bugs.launchpad.net/kicad/+bug/1778334
2018-06-23 15:11:32 +02:00
John Beard 58814e838d Common: Fix -Wcatch-value warnings (catching exceptions by value)
This fixes some warnings on GCC 8.1:

warning: catching polymorphic type ‘class std::out_of_range’ by value [-Wcatch-value=]
         catch( std::out_of_range )
                     ^~~~~~~~~~~~

This fix is along the same lines as:

* ff1802d7a "Fix Coverity "Big parameter passed by value" warnings"
2018-06-05 11:46:17 +02:00
Wayne Stambaugh ff1802d7a1 Fix Coverity "Big parameter passed by value" warnings.
Fixes Coverity CIDs:

- 175846
- 175841
- 175840
- 175837
- 175836
- 175834
- 102524
2018-06-04 12:30:00 -04:00
Wayne Stambaugh 5678a166ee Fix template path bugs.
Remove KICAD_PTEMPLATE environment variable as it's purpose was not
clear and was often poorly defined as the path to the KiCad installed
templates.

Add a new KICAD_TEMPLATE_DIR environment variable which clearly should
be the path of the KiCad installed templates.  Make this environment
variable available in the user settings in case the default is wrong
which has been the case in some instances.  Use the standard search
stack to set the default system template path which has a much greater
chance of being correct.

Add a new KICAD_USER_TEMPLATE_DIR environment variable which clearly
should be the path of the user defined templates.  Users most likely
were not even aware of the old default user path unless they read the
fine manual.

Set template path search stack priority as follows:

* KICAD_USER_TEMPLATE_DIR
* KICAD_TEMPLATE_DIR
* Search stack template paths

Reverse template selection dialog and project path dialog for improved
user experience.

Fixes lp:1543443

https://bugs.launchpad.net/kicad/+bug/1543443
2018-05-20 18:56:11 -04:00
Shivpratap Chauhan 26197c333e At very first launch, old settings/config does not exist
KiCad read incorrect value for window position and it's size at very
first launch, which results in invisble/inaccessible window on Mac OSX.
Set correct default values for these settings fixes this issue.
And fix a typo in comment.
2018-05-01 09:19:27 -04:00
Seth Hillbrand 3d76fcaa3b Standardize colons in kicad template dialog 2018-04-23 13:15:02 -07:00
jean-pierre charras e9ef555c6a Use Ctrl+F1 to display hotkey list also in Gerbview and Kicad manager 2018-04-14 17:12:28 +02:00
Jeff Young baef22df9a Fix memory leak and push menu change to other apps.
Fixes: lp:1761848
* https://bugs.launchpad.net/kicad/+bug/1761848
2018-04-07 14:14:55 +01:00
Jon Evans c6e6134ebd Set appropriate parent for new directory checkbox
Fixes: lp:1754731
* https://bugs.launchpad.net/kicad/+bug/1754731
2018-03-25 10:25:40 -04:00
Jon Evans 5b653c0c1e Update MacOS icons
Fixes: lp:1750284
* https://bugs.launchpad.net/kicad/+bug/1750284
2018-03-22 11:45:42 -04:00
Wayne Stambaugh 620c2af356 KiCad: fix template folder load bug.
Add a check to see if the folder selected by the user contains a
project template meta data folder and use that folder instead of
assuming that it is a folder containing sub-folders with project
templates.  The normal behavior is preserved when no meta data
folder is detected.

Fixes lp:1751465

https://bugs.launchpad.net/kicad/+bug/1751465
2018-03-19 12:49:57 -04:00
jean-pierre charras 827b818b5d Very minor fixes in Gerbview and Kicad:
Gerbview: fix X2 z order display of Adhesive (Glue) layers.
Kicad: very minor cosmetic enhancement in Create Project dialog.
2018-03-18 16:04:23 +01:00
Jeff Young fb31bc1ca7 Add separators to kicad window.
Fixes: lp:1750409
* https://bugs.launchpad.net/kicad/+bug/1750409
2018-03-15 19:14:49 +00:00
Seth Hillbrand 2e12175c13 Spelling Plese -> Please 2018-03-09 09:43:54 -08:00
Seth Hillbrand 583ee0e4c3 Standardize Favourite -> Favorite 2018-03-08 12:33:32 -08:00
Maciej Suminski 49486b83b0 Add "create a new directory" checkbox to the Create Project dialog
Fixes: lp:1753325
* https://bugs.launchpad.net/kicad/+bug/1753325
2018-03-06 16:22:46 +01:00
Maciej Suminski 1f078f533b Refactor Eagle project import to use Kiway::ExpressMail() 2018-03-04 16:45:42 +01:00
Russell Oliver 9016344bb3 Eagle Schematic Import: Fix netlist mapping for zones and vias. 2018-03-04 16:45:11 +01:00
Jeff Young 63e113740b Fix copy/paste compile error on Mac. 2018-02-23 14:10:06 +01:00
Michael 1e7275c712 Kicad: Minor menubar changes 2018-02-22 20:43:10 -05:00
Maciej Suminski 9e80eff90a Eagle importer: two stage netlist update
After Eagle project import, schematic and board netlists are inconsistent:
footprints do not have sheetpaths assigned, schematics are unannotated.

One can update netlist either by references or timestamps, but timestamps
are empty in pcbnew, and updating by reference must by preceded by
annotation which may lead to broken links between board and schematics
(Eagle does not require references to end with a number, so KiCad annotater
will add numbers in such cases).

To fix the problem, there is a two step netlist update:
- update by reference without the annotation step, to assign
correct sheetpaths to footprints
- update by timestamp, after symbols are annotated, in order to
update references in the board

Fixes: lp:1748502
* https://bugs.launchpad.net/kicad/+bug/1748502
2018-02-16 19:37:23 +01:00
Jeff Young e2f82118a2 Rebuild project tree when unarchiving into project dir.
Fixes: lp:1749955
* https://bugs.launchpad.net/kicad/+bug/1749955
2018-02-16 16:01:32 +01:00
Jeff Young 1afbfad44a Use "..." uniformly in menus.
See the bug report for some wording changes and a couple of
menu restructurings that were also cleaned up.

Fixes: lp:1597827
* https://bugs.launchpad.net/kicad/+bug/1597827
2018-02-10 17:32:28 -05:00
jean-pierre charras a088ea84fd Rename files 2018-02-07 14:16:05 +01:00
jean-pierre charras eb9070fa74 forgotten fix after renaming files 2018-01-30 13:31:50 +01:00
jean-pierre charras 8552f3fedf fix code after renaming files 2018-01-29 22:00:44 +01:00
jean-pierre charras 5d72aebd22 Fix code after renaming files 2018-01-29 16:40:22 +01:00
Jeff Young 947a4839fd Use generic Save (and New and Open) commands where unambiguous.
Fixes: lp:1743426
* https://bugs.launchpad.net/kicad/+bug/1743426
2018-01-16 08:39:12 -05:00
jean-pierre charras 6b9740e681 Fix issues when in Pcbnew the Update PCB from schematic command is run.
Now, if not yet opened, the schematic editor frame is created, and shown iconized.
(although iconize it is perhaps not the best option)

It fixes a few (minor) issues (when the schematic editor frame is created, but not shown):
- On OSX the schematic frame is shown as a "ghost" frame.
- If later, the schematic editor is opened from Kicad, a message saying the schematic is already opened is shown.
This is technically true, but unexpected by user.
- If symbols need an annotation, the annotation dialog is opened, can can modify the schematics.
  So it could be better to really open the schematic editor frame.
2018-01-16 13:53:03 +01:00
Oliver 195b85b0c5 Cleanup of KiCad Icons
Major cleanup of many icons (started as a simple effort to tweak libedit and modedit icons)
Ref: https://lists.launchpad.net/kicad-developers/msg32860.html
* Each application icon has been updated
* Consolidated icon "modifiers" across many icons
* Replaced confusing arrows with "load" and "save" icons
* Slight code updates to reference correct icons
* Consolidate multiple representations of single icon type(s)
2018-01-12 14:06:45 -05:00
Chris Pavlina 7e6a6540c8 Implement primitive icon scaling for high DPI
This is meant as a stopgap for 5.0, with plans to add proper scaled
icons in the 6.0 cycle. A function KiScaledBitmap() is added, which
works like KiBitmap() except it scales the bitmap according to the
calling window's font size. Controls have been added to all the main
applications to let the user select scaling manually (these were omitted
from smaller apps that didn't already have a place to put them).

In addition, in eeschema only, the pixel height of the system font is
shown in the options dialog for diagnostics. This is only for collecting
feedback before 5.0 release from users with different displays and will
be removed.
2018-01-10 21:26:06 -07:00
Camille f5f7ba4746 Fix loop variable copy in for-range loop, use const reference instead 2018-01-09 19:18:44 -05:00
Camille 9ff66a5274 Fix unnecessary value parameter detected by clang-tidy. - Replace value parameter by const reference parameter or move-assignement in some cases 2018-01-09 18:55:51 -05:00
Camille 3168d03fe5 Fix unnecessary copy initialization detected by clang-tidy 2018-01-09 18:22:10 -05:00
Simon Richter a9ccf1161b Fix quotes in UI messages
This replaces all single and angle bracket quotes in UI messages with
double quotes, for consistency.

Sorry to all translators.
2017-12-15 07:33:07 -05:00
Maciej Suminski 542040c474 Enable active project flag after importing an Eagle project
When active project flag is disabled, the application buttons are
disabled in the main launcher window. It usually happens when 'kicad'
runs without any project preloaded.
2017-11-23 10:33:40 +01:00
jean-pierre charras 821c02af3c Kicad, menu Browse/Open Local file : shows all files by default, because all kicad files are editable ASCII files. 2017-11-22 09:43:29 +01:00
jean-pierre charras 8507ea45fc Add a dialog to edit/change components LIB_ID inside a schematic.
This is useful for instance after moving a symbol from a lib to an other lib.
2017-11-21 11:52:40 +01:00
jean-pierre charras 31083a4060 Better menu item label and tool tip.
Modify incorrect menu label.

Fixes: lp:1733113
https://bugs.launchpad.net/kicad/+bug/1733113
2017-11-19 10:49:28 +01:00
Wayne Stambaugh 753f24aaaa Fix Eagle project import bug on Linux.
There is a significant difference in the behavior of wxFileDialog
between Windows and Linux (GTK+).  On windows, wxFileDialog will
return the path chosen even if no file is selected.  On Linux,
wxFileDialog returns the default path when no file is selected.  This
caused the destination path to be the same path as the source which
was causing the issue.  Use wxDirDialog instead so the selected path
is returned.

Fixes lp:1732759

https://bugs.launchpad.net/kicad/+bug/1732759
2017-11-18 12:28:59 -05:00
Wayne Stambaugh 652b969193 GTK+ file dialog wildcard improvements.
The GTK+ file dialog is case sensitive however it does support regular
expressions.  Most of the file dialog wildcards are lower case so only
files with the lower case extensions will show up in the file dialog.
This code adds a method to convert file extensions of any case to the
appropriate (sch -> [sS][cC][hH]) regular expression on GTK+ builds so
all file extension case combinations will show up in the file dialog.

A note to developers: make sure to add a file extension when setting
when setting the default file argument.  If you do don't set an
extension, the GTK+ file dialog will happily append the regular
expression as the file extension which is surely not what you want.

There are still a few known places (mostly gerbview) where there are
some complex wildcard code that has not been converted.

Fixes lp:1720542

https://bugs.launchpad.net/kicad/+bug/1720542
2017-11-11 19:32:26 -05:00
Marvin Schmidt 69974b73db Remove some extra semicolons 2017-11-09 19:52:18 +01:00
Russell Oliver 2a0a999350 Eeschema Eagle Import: Code clean-up and formatting 2017-10-20 09:34:32 +02:00
Russell Oliver 3b0855d204 Eagle Project Import: Code cleanup and documentation.
- Also makes the project and file import functions filetype dependent.
- The change from IO_MGR::KICAD to IO_MGR::KICAD_SEXP removes a conflict from a compile definition for KICAD when compiling kicad/import_project.cpp
2017-10-20 08:58:40 +02:00
Russell Oliver 869743d573 Kicad Eagle Project Import Improvements. -- schematic and board files are both visible in file selection dialog. -- Allows for the selection of either the board or schematic file. -- silently fails on not detecting the corrosponding board or schematic file. -- all new kicad files are generated in new project directory -- Silently read netlist without generating annotation warnings which synchronises timestamps and paths based on given eagle references, otherwise renumbering schematic references will break links accross schematic and pcbnew. 2017-10-20 08:58:40 +02:00
Russell Oliver 433aa653fe Kicad: Add Project import function. -- add menu entry -- add ImportFile kiway function -- expose functions for creating/reading netlist -- add example eagle boad file as well 2017-10-20 08:38:42 +02:00
Maciej Suminski 068a29952c Changed AUI toolbars background from gradient to solid
Based on patches from Windsor Schmidt <windsor.schmidt@gmail.com>
2017-09-27 23:23:06 +02:00
jean-pierre charras 4e8ad8516a Update gerber job file format and job file extension.
Gerber job file extension is now .gbrjob, according to latest changes in Gerber job file spec.
2017-09-20 18:14:20 +02:00
Fabrizio Tappero d2d665e540 library option reviewed and renamed, minor menu text changes 2017-09-19 08:11:24 -04:00
Seppe Stas 3b7fbad1b9 Improve template selector for macOS
Fixes: lp:1492577 (and probably also lp:1672116).
*https://bugs.launchpad.net/kicad/+bug/1492577
*https://bugs.launchpad.net/kicad/+bug/1672116

- Fixes a race condition causing the wrong page to be selected in
  `OnPageChange`
- Allows the validate path and browse button to refresh the
  template page even when the path was not changed. This is needed
  since on OSX the page needs to be active for the templates to be
  rendered.
2017-09-18 16:40:50 +02:00
Michael Kavanagh b6029cd8ac Minor UI improvements 2017-09-14 07:38:56 -04:00
Wayne Stambaugh 8d14751352 Fix missing project file when creating a new project.
Fixes lp:1714522

https://bugs.launchpad.net/kicad/+bug/1714522
2017-09-01 15:31:03 -04:00
metacollin a490144183 fix missing parenthesis in a "#if defined (__WXMAC__)" block 2017-09-01 11:15:51 +02:00
Wayne Stambaugh bd64b70f0b Prevent KiCad from creating an empty project file history entry. 2017-08-31 11:33:39 -04:00
Wayne Stambaugh 525e04ce75 Prevent KiCad from overwriting existing files with template files.
Add tests to check for existing files before copying template files.

Split load project, create new project, create new project from template,
and load project from history command events into simple methods that
perform the correct actions before loading the project.  This greatly
simplifies the code.

Create a load project method that can be called from the event handlers
above.  This simplified a lot of duplicate code that existed in many of
these event handlers.

Remove the dummy "noname.pro" file creation which created required some
ugly code to prevent this file from being created unexpectedly.  Now
KiCad launches without setting a project file name when appropriate.

Fixes lp:1713951

https://bugs.launchpad.net/kicad/+bug/1713951
2017-08-31 11:15:20 -04:00
jean-pierre charras 50164e9968 Add Gerber job file writer in Pcbnew, and a basic reader in Gerbview. Currently disabled
Fix also very minor issues in Gerbview
2017-08-30 11:04:33 +02:00
jean-pierre charras 622ba4f11b kicad: create zip archive: test for write file error 2017-07-24 09:20:44 +02:00
Oliver Walters 29557e4d9e Fixed button sizing for launcher panel
- Increased expansion so bitmaps are fully visible
2017-06-05 09:29:45 -04:00
Fabrizio Tappero ac9a64a173 general UI fix. Fixed a lot of icons and a lot of menu.
Also a few no longer used .cpp icon files are removed.
2017-06-02 11:51:11 +02:00
Oliver Walters e6baaa6164 Improved button layout on splash screen
- Simplified code
- Button bar expands to fill entire screen width
2017-05-30 08:13:32 -04:00
John Beard e98ae3e463 Move executable name constants to own file
The executable name constants are only used by two files, they do not
have to be in common.h.

Also converted to const wxString for better type-safety and removed
old-style wxT macros.
2017-03-23 09:23:45 -04:00
John Beard ece7eeb280 Move SystemDirsAppend to own header
This function is called only from three sites, it doesn't need to be in
common.h.

The implementation was already in systemdirsappend.cpp, so a matching
header was created for it.

This reduces the visibility of the function to only the files that need
it and slightly shrinks common.h.
2017-03-23 09:23:45 -04:00
Chris Pavlina 74dfe80e21 Fix warning about creation of null reference
This is a code path that should never run.
2017-03-17 22:15:23 -04:00
jean-pierre charras 4eeed8d04f Icons options menu: code rework 2017-03-03 14:18:25 +01:00
jean-pierre charras e7e972804a Make show/hide icons in menus a run time option, instead of compil option. 2017-03-02 15:45:54 +01:00
jean-pierre charras 11dcb76fc9 Add -Wshadow compil option, if exists to warn about shadowed variables.
Swig auto generated .cxx file has a lot of shadowed variables, so this option cannot be used to compil all files.
2017-02-23 13:17:23 +01:00
Jon Evans a52250a91e Change from EDA_COLOR_T to COLOR4D globally; arbitrary color support
eeschema now supports arbitrary colors for all object types, and
pcbnew does in GAL canvas.  When switching from GAL to legacy canvas,
pcbnew will convert colors to the nearest legacy color.
2017-02-22 17:35:00 +01:00
John Beard a8eea6155a Move bitmaps.h out of base_struct.h
bitmaps.h was included in nearly every file in the project due to it
being included by base_struct.h

Only about 130 files actually use the XPM definitions defined there, and
many of those already included bitmaps.h themselves, or via
menu_helpers.h. However, touching bitmaps.h would result in over 400
rebuilt files for pcbnew alone.

This commit moves the bitmap-related types like BITMAT_DEF out to a new
header, which is still included by base_struct.h, which is less
avoidable for now, it's it's used in the interface.

The icon list is still in bitmaps.h. This has the side effect that's
it's now easier to automatically generate this file.

Many classes in pcbnew and eeschema needed some functions moved
to the implementaitons from the headers too.
2017-02-21 09:50:15 -05:00
jean-pierre charras dba49ab299 fix incorrect wxWindow style for TREE_PROJECT_FRAME 2017-02-21 09:37:13 +01:00
Clemens Koller d99da201fb kicad: tree_project_frame: fixup drawframe style.
wxNO_BORDER and wxSW_3D seem incompatible and the border flickers
when the tree frame gets resized. Using KICAD_DEFAULT_DRAWFRAME_STYLE
avoids this.

Signed-off-by: Clemens Koller <cko@embeon.de>
2017-02-18 18:07:26 -05:00
Chris Pavlina b7edc464b0 kicad: menu bar UI compliance tweaks 2017-02-07 16:38:27 -05:00
Cirilo Bernardo 48ed9f080e Add Help Menu item to open browser at kicad-pcb.org/contribute 2016-10-10 19:01:45 -04:00
Fabrizio Tappero 194bd1d617 Minor menu text consistency improvements. 2016-10-10 18:54:58 -04:00