Commit Graph

1147 Commits

Author SHA1 Message Date
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 7d06651a10 Change top selection drop-down to combobox
wxChoice centers the selection on GTK.  So when switching from a
mid-list item to an item at the top, the list is always cut off for
choice lists located on the top toolbar.  Using a combobox provides a
drop-down that allows easier access to all elements in the box.

Fixes: lp:1808569
* https://bugs.launchpad.net/kicad/+bug/1808569
2019-01-03 14:48:28 -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
John Beard e856a7a09c Disable legacy canvas on GTK3
This make the use of legacy canvas on GTK3 a default-off
advanced config. Legacy is substantially broken on GTK3
and is of basically no use at all to general users on this
platform.

If the program starts with legacy canvas in the config,
it is forced into a GAL mode, as otherwise it could happen
that the user is stuck and unable to get into pcbnew to change
the setting.

Fixes: lp:1803156
* https://bugs.launchpad.net/kicad/+bug/1803156
2018-12-28 11:36:09 -05:00
jean-pierre charras 9dedbc74a3 Gerbview exporter: fix a wxASSERT. 2018-12-21 13:48:00 +01:00
jean-pierre charras 388397f97d Protect TesselatePolygon() against degenerated polygons (less than 3 corners) to avoid crashes.
Use TesselatePolygon() to draw polygons in Gerbview instead of GLU tesselation, much slower.
Add helper methods in GAL to know if the current GAL engine is Cairo, OpenGL or something else,
useful to optimize drawing code.
2018-12-18 12:49:14 +01:00
jean-pierre charras d546fce7c4 Gerbview: drill file dialog selector: add .nc and .xnc to drill file extension list.
Therefore file extension list is ".drl .nc .xnc" for NC (Excellon) drill files.
2018-12-07 11:25:30 +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
D4p0up e94752a6cf Added help string to select buttons.
Also moved highlight text string to help_common_strings.h

Fixes: lp:1497737
* https://bugs.launchpad.net/kicad/+bug/1497737
2018-12-05 20:13:03 -08:00
jean-pierre charras 2cb4187f52 Gerbview: small fix to speed up switching to opengl canvas.
* workaround to speed up switching canvas from legacy or Cairo to opengl (this is a workaround, not a fix)
2018-12-03 18:31:36 +01:00
jean-pierre charras ecfe564f4d Gerber viewer: Ensure arc interpolation is used only after a arc command.
Remove also non existing G command codes.
2018-12-01 18:52:27 +01:00
jean-pierre charras 3e2f8bcb1d Gerbview: fix broken behavior of "Reload file" tool.
Previous code was unable to reload drill files: they were reloaded as gerber files.
2018-11-26 12:49:13 +01:00
jean-pierre charras 542c57ff27 Gerbview, Excellon (NC) drill files reader: routing mode: better handling of malformed files.
Routing mode starts by M15 (or G01, G02, G03) and ends by M16 or M17.
Accept now a end routing if a G00 (start move) G05 (switch to drill mode) or M30 (end of file) is encountered.
2018-11-26 10:55:36 +01:00
jean-pierre charras 0e705cd338 Fix a minor issue in Legacy mode: DCodes were displayed regardless the visibility of the layers. 2018-11-24 10:14:33 +01:00
jean-pierre charras 73b52f2e23 Gerbview: fix incorrect initialization of WorldUnitLength.
Fix incorrect min zoom level to show D Code texts.
2018-11-20 10:27:59 +01:00
Jeff Young 0de9cb345c Add shortcuts to setting dialogs for track widths, via sizes and grid sizes.
Fixes: lp:1803671
* https://bugs.launchpad.net/kicad/+bug/1803671
2018-11-17 00:35:06 +00:00
jean-pierre charras 8c8ccf83e6 Fix a few I18n minor issues. 2018-11-16 09:43:40 +01:00
jean-pierre charras ffe4b745dd Opengl gal: Fix bug: segments with 0 length are not drawn. However the are equivalent to circles.
Using 0 length segments happen with oval pads having the same X and Y size, and in some other cases.

Fixes: lp:1801923
https://bugs.launchpad.net/kicad/+bug/1801923
2018-11-15 13:10:42 +01:00
jean-pierre charras f7cf40f2f4 Fix a few Coverity warnings.
Sometimes a dynamic_cast was used without testing the returned value.
Some are replaced by static_cast, when the dynamic_cast was useless.
2018-11-11 08:28:58 +01:00
jean-pierre charras 0980f7232c Gerbview: minor fixes. 2018-11-08 16:49:50 +01:00
Maciej Suminski afda69c9cc Removed default line width setting from the printing dialog 2018-10-31 19:17:30 +01:00
Maciej Suminski 3d15092643 Fixed loading layer visibility setting for printouts 2018-10-31 19:17:30 +01:00
Maciej Suminski d3ea63e133 Removed a redundant parameter from BOARD_PRINTOUT constructor 2018-10-31 19:17:30 +01:00
Maciej Suminski dea778842b Grand printing dialogs refactor
Patch introduces a generic printing settings window that is customized by pcbnew and gerbview.
2018-10-31 19:17:30 +01:00
Maciej Suminski e81c3a59a2 Refactored and unified board editor and footprint editor print dialogs 2018-10-31 19:17:30 +01:00
Maciej Suminski 92c5cb288e Fixed scale in Gerbview printouts 2018-10-31 19:17:30 +01:00
Maciej Suminski 698a380827 Clear selection before printing
Selected objects are hidden in VIEW, that makes them disappear from
printouts.
2018-10-31 19:17:30 +01:00
Maciej Suminski 1cce194c8a Handle layer settings in printouts 2018-10-31 19:17:30 +01:00
Maciej Suminski 5b94f20e6f Adapted printout controllers to the new printing routines 2018-10-31 19:17:30 +01:00
Jeff Young 3158273c1a Revert window-locking change which didn't fix preferences crash. 2018-10-13 15:53:54 +01:00
Jeff Young 6a5744adb1 Show compile errors and go back to GLSL V120. 2018-10-13 12:39:53 +01:00
Seth Hillbrand d03b08a03f gerbview: Prevent NULL dereference
There was a possible NULL dereference when executing tool_up even
though we should never hit it, we protect against bad files.

Also converts a couple untranslated error strings.
2018-10-11 14:23:07 -07:00
Jeff Young 9dfcc839a4 Fix color issues with cursor and sheet pins. 2018-10-09 11:08:56 +01:00
Tomasz Wlostowski e439b17fa1 eeschema-gal: make sure all other Kicad apps compile after eeschema gal hacks 2018-10-09 11:08:52 +01:00
Nabeel Ahmad 664fb234ff GerbView: Add actions to reload files
NEW: Adds new items in File Menu and Toolbar to reload the Gerber files
for all layers.

Fixes: lp:1794004
* https://bugs.launchpad.net/kicad/+bug/1794004
2018-10-09 09:16:06 +02:00
jean-pierre charras 606096b548 Gerbview: fix a overzealous wxASSERT
Fixes: lp:1796744
https://bugs.launchpad.net/kicad/+bug/1796744
2018-10-09 08:39:21 +02:00
John Beard 445a9fa963 Put cursor and pan control in libcommon/tool, enable in Gerbview
Put the cursor and pan control TOOL_ACTIONs in ACTION,
and refer to them in that way.

The handlers are currently identical in Pcbnew and Cvpcb,
and Gerbview (and all canvases) can benefit from them as well
if they are in libcommon. Also saves duplicated code.

Fixes: lp:1795855
* https://bugs.launchpad.net/kicad/+bug/1795855
2018-10-04 11:41:06 +02:00
jean-pierre charras 4136aca221 Gerbview: Excellon drill files reader: add a better support of routing mode.
Previously, the M and G00, G01, G02 and G03 commands were read, but nothing was actually done.
The current support is a bit rough, but it allows reading some drill files with routing commands.
2018-09-24 13:12:47 +02:00
Jeff Young 5974899fa5 Clean up file locations and names. 2018-09-22 16:23:13 +01:00
Jeff Young 666da3849b Make esc dismiss net and layer selector popups. 2018-09-22 16:23:13 +01:00
Maciej Suminski 40a3b4a533 GERBVIEW_RENDER_SETTINGS: verify item type
Not all items displayed by Gerbview are GERBER_DRAW_ITEMs (e.g. WORKSHEET_VIEWITEM),
so appropriate checks have been added.
2018-09-18 15:18:55 +02:00
Seth Hillbrand 0109641c2f gal: correct layer ordering
Net labels need to be rendered under the selected item.

Fixes: lp:1790016
* https://bugs.launchpad.net/kicad/+bug/1790016
2018-08-30 16:55:48 -07:00
Seth Hillbrand 5f74560a46 gerbview: Add LAYER_SELECT_OVERLAY to GAL
Ensure selected gerbview layers plotted on newly created SELECT layer
2018-08-28 15:13:54 -07: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
Jeff Young acec00f80a Fix bug displaying canvasses when starting in Legacy mode. 2018-08-11 23:43:19 +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 33fc74a04d Performance enhancements for Footprint Editor construction. 2018-08-04 10:29:17 +01:00
jean-pierre charras 6e9990449f Gerbview: fix a minor log warning. 2018-07-30 16:19:35 +02:00
Jeff Young 977f27f3c4 Adjust spacing on preference panels.
Giving them the correct parent changed the spacing.

(cherry picked from commit 7f602f3)

(cherry picked from commit 718db46)
2018-07-17 15:14:25 +01:00
Jeff Young abae094955 Remove unused variables.
(cherry picked from commit 4fc5281)

(cherry picked from commit b151c8d)
2018-07-17 15:14:22 +01:00
Jeff Young 909f850d16 Give panels the correct parent (the treebook, not the dialog).
(cherry picked from commit 7338533)

(cherry picked from commit 3ce75be)
2018-07-17 15:14:19 +01:00
Jeff Young e329a411bf Add grid and zone dropdowns to GerbView frame.
(cherry picked from commit be5c1e2)
2018-07-17 15:13:58 +01:00
Jeff Young a747d074c4 Add Worksheet to Render Items for GerbView.
Also added PCB Background Color.

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

(cherry picked from commit f789ef1)
2018-07-17 15:13:43 +01:00
Jeff Young df863e44e2 Wire m_showPageLimits control up to GAL canvas.
Fixes: lp:1499285
* https://bugs.launchpad.net/kicad/+bug/1499285

(cherry picked from commit 4cb7442)
2018-07-17 15:13:29 +01:00
Jeff Young 5f3ee1e7ce More g_UserUnit erradication.
(cherry picked from commit 3f08780)
2018-07-17 15:12:31 +01:00
Jeff Young 7841f8a466 Unified preferences dialog framework.
(cherry picked from commit 8ee3e77)
2018-07-17 15:11:17 +01:00
Jeff Young eacaa39aa2 Remove global units usage from GetSelectionText...
... and GetMsgPanelInfo.

Step 4 in the g_UserUnit eradication effort.

Also removes a couple of conversion routines that were close
enough to extinction.

(cherry picked from commit c75da51)
2018-07-17 15:11:09 +01:00
Jeff Young 0010ad37d1 In-place editing for footprint TEXTE_MODULEs.
Fixes: lp:1102168
* https://bugs.launchpad.net/kicad/+bug/1102168

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

(cherry picked from commit 83781ab)
2018-07-17 15:11:04 +01:00
Jeff Young 05ef6f05d1 Move SanitizePads to CLIENT_SELECTION_FILTER architecture.
This not only reduces the number of different mechanisms, but
will also reduce (yet again) the number of Clarify Selection
pop-ups (because the CLIENT_SELECTION_FILTER runs before the
pop-up, while SanitizePads ran after it).

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

(cherry picked from commit e50a993)
2018-07-17 15:10:18 +01:00
Jeff Young a39fb03822 Remove some references to g_UserUnit
(cherry picked from commit 614d832)
2018-07-17 15:09:56 +01:00
Jeff Young 4f8c546140 Implement user units uniformly in EDA_DRAW_FRAME
Step 1 of the g_UserUnit global eradication.  This commit includes
basic hookup of hotkeys, units tool-buttons and grid dialogs.

(cherry picked from commit e0500ab)
2018-07-17 15:09:51 +01:00
Jeff Young b99ea159c8 Rationalize select menu texts.
Be consistent with order, formatting, etc.
Remove debug stuff such as zone timestamp and net code.
Clean up misleading pad messages.

(cherry picked from commit 2132109)
2018-07-17 15:09:48 +01:00
jean-pierre charras c291505830 Gerbview, read Excellon files: fix a few issues.
The main issue is the fact Excellon files have no coordinate fine format definition.
Only the units are defined.
Units are floating point numbers or integer numbers.
Integer numbers can be defined as 3.3 or 2.4 numbers (mm/inches)
However some files (altium drill files for instance) use an other notation.
This fix is a workaround to accept 2.x (inch) or 3.x (mm) notations.

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

Fixes: lp:1782053
https://bugs.launchpad.net/kicad/+bug/1782053
2018-07-17 14:29:28 +02:00
jean-pierre charras 2af5fb51f2 Revert "Perform coordinate format detection on Excellon drill files"
This reverts commit 3e033aee0c.
2018-07-17 14:29:27 +02:00
Carsten Schoenert 9f7109826d fix misspelled 'allows to' -> 'allows one to'
Fixup small grammar issues around used 'allows to ...' almost in
code comments.
2018-07-11 10:35:03 -04:00
jean-pierre charras ef38a198d1 GerbView: incorrect handling of polygon primitive: broken parameters rotation and drill size.
Fixes: lp:1778459
https://bugs.launchpad.net/kicad/+bug/1778459
2018-06-25 11:00:53 +02:00
Maciej Suminski e4a6f2e523 Switch canvas to Cairo if OpenGL is not supported on the first run 2018-06-04 12:17:58 +02:00
Maciej Suminski 27c9c6ceed Enable the accelerated canvas on the first gerbview run if requested
Commit 8910894f applied to gerbview.
2018-06-04 10:47:44 +02:00
jean-pierre charras 8f984c2899 OpenGL, DrawGrid(): use grid and axis alpha color value setting, instead of the fixed 1.0
In Cairo mode, this function uses already the alpha color value setting.
Now for low alpha values (usually they are low, as said in many GAL comments),
Cairo mode and OpenGL mode should have a similar look.
2018-06-01 18:29:04 +02:00
jean-pierre charras bfa89039c4 Gerbview, GAL mode: fix "Zoom to fit" area size calculation when nothing is loaded.
Also ensure the worksheet is displayed after clearing the gerber layers.
2018-06-01 11:39:08 +02:00
jean-pierre charras 9a228d8ec9 Gerbview: GAL mode: shows the page worksheet, similar to legacy mode. 2018-06-01 09:11:43 +02:00
jean-pierre charras fc71fc6474 Gerbview: Fit to page: use the page size when nothing is loaded.
Previously, due to a minor bug, a very small default size was used (therefore a high zoom value), that was not a good choice.
2018-05-31 11:22:33 +02:00
Jeff Young cd5f727880 Fix off-by-1 errors in zoom menus & use zoom steps in GAL canvas.
Also bumps the maximums a bit (at user request).

Fixes: lp:1773215
* https://bugs.launchpad.net/kicad/+bug/1773215
2018-05-25 13:01:58 +01:00
Jeff Young 81af2db614 Even out the Gerbveiw zoom steps and increase the max.
Fixes: lp:1773215
* https://bugs.launchpad.net/kicad/+bug/1773215
2018-05-24 19:04:10 +01:00
Seth Hillbrand 8506cdf3ae Avoid numerical dereference of selections
The SELECTION is a std::set.  Numerical dereference of item n is O(n) as
the iterator is not random access.  Therefore, a for loop using
numerical dereference is O(n!) and quickly slows.

We avoid this by storing items to remove separately while iterating and
then removing the items after we complete.

Fixes: lp:1692081
* https://bugs.launchpad.net/kicad/+bug/1692081
2018-05-22 16:37:45 -07:00
Seth Hillbrand 8c5037a48b Optionally sort reporter messages
It can be useful to have similar class messages grouped together so that
error messages in a larger report don't get lost among the
warning/info/action messages.

This patch allows sorting of messages for dialogs that benefit from
organization.  Default behavior of reporter messages remains
unchanged by this patch.

Fixes: lp:1772090
* https://bugs.launchpad.net/kicad/+bug/1772090
2018-05-22 13:55:02 -07:00
Jeff Young 5010a461e1 Make polar coordinates consistent.
Use theta instead of phi (which normally describes the azimuth
angle).

Fixes: lp:1545107
* https://bugs.launchpad.net/kicad/+bug/1545107
2018-05-18 12:22:14 +01:00
jean-pierre charras 7c52af2d50 Gerbview: cosmetic enhancement: add icons in Clarify menu. 2018-05-17 10:24:09 +02:00
jean-pierre charras 93e75af388 Rename plot_auxiliary_data.h file to gbr_metadata.h, according to the class names defined by this file 2018-05-17 08:07:29 +02:00
jean-pierre charras d8687e4eaf Gerbview: minor code cleanup 2018-05-14 09:05:11 +02:00
jean-pierre charras 8da242c593 Gerbview: accept any structured comment as X2 attribute.
A structured comment is a comment line starting by "G04 #@! " and in fact containing
a X2 attribute. It is used to create Gerber files contianing X2 metadata, but compatible
with X1 file format
2018-05-14 09:05:09 +02:00
jean-pierre charras a3770bf6e1 Gerbview: fix a crash when Gerbview starts by loading a gerber job file (run from a command line) 2018-05-07 12:47:11 +02:00
Jeff Young 106dd60e45 Only adjust LAYER_WIDGET font size if larger than indicator.
Also moves adjustment into LAYER_WIDGET so all the callers don't
have to deal with it individually.

Fixes: lp:1767965
* https://bugs.launchpad.net/kicad/+bug/1767965
2018-05-02 21:49:57 +01:00
Seth Hillbrand f911ef5186 Standardize print scale label for gerbview 2018-04-23 13:14:06 -07:00
Seth Hillbrand ca06e67ffc Standardize colons in gerbview display options dialog 2018-04-23 13:11:53 -07:00
Seth Hillbrand aa0d67bdde Standardize colons in gerbview print dialog 2018-04-23 13:10:53 -07:00
jean-pierre charras 2925b93571 Gerbview: Remove dead code that handled a experimental .gbrjob file, now no longer existing. 2018-04-23 13:04:21 +02:00
Maciej Suminski cfa9916836 Prevent issuing a print command before the previous one is finished
Fixes: lp:1765965
* https://bugs.launchpad.net/kicad/+bug/1765965
2018-04-23 11:25:28 +02:00
Maciej Suminski 3cc0554e33 Code formatting 2018-04-23 11:18:51 +02:00
jean-pierre charras 07dc12fdd3 Fix incorrect UI management of Zoom to Selection, created by fix 2a419156 2018-04-14 17:44:17 +02: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 2a419156e0 Don't try to check uncheckable menu items.
When updating toolbars make sure the events are coming from the
toolbar in question (and not the menus which share the same ID).

Fixes: lp:1763563
* https://bugs.launchpad.net/kicad/+bug/1763563
2018-04-13 21:42:31 +01:00
Maciej Suminski df8bc93e4b gerbview: Removed duplicate zoom-to-selection handler, made the toolbar button checkable
Fixes: lp:1763270
* https://bugs.launchpad.net/kicad/+bug/1763270
2018-04-12 11:52:08 +02:00
Carsten Schoenert a11714b1a4 fix misspelled 'an other' -> 'another' 2018-04-08 13:24:37 -04: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
jean-pierre charras a2f118d2fa Gerbview: fix not working menu item "Zoom to Selection" in main menu. This also fixes a wxASSERT for this menu item 2018-04-03 16:30:16 +02:00
jean-pierre charras f8a3ec4974 Add a method to facilitate Tools handling in main frame toolbars.
Fix also a bug in gerbview_frame.cpp, about a broken toolbar accessor (fortunately not used in current code)
2018-04-03 13:00:20 +02:00
jean-pierre charras 54f14b08ca commit forgotten change in my previous commit 2018-03-31 18:46:29 +02:00
jean-pierre charras fa39acfc2f Gerbview, export to pcbnew : export polygons as new DRAWSEGMENT polygonal shape.
It can creates issues on copper layers, but the only one other alternative is to ignore polygons in export,
and this is worst.
2018-03-31 18:43:12 +02:00
jean-pierre charras 5b8c35f64d Gerbview: minor fix: do not report error if in header INCH ot METRIC command has no parameter (,LZ or ,TZ format)
I am not sure it should be reported, because LZ or TZ format has no meaning in decimal format, and can be omitted.
2018-03-31 18:40:29 +02:00
Jon Evans 1ec217d70e Fix hit testing for zero-width gerber items 2018-03-29 22:04:51 -04:00
Wayne Stambaugh 8d8c422a19 Add zoom to selection menu entry to all editors.
Fixes lp:1753339

https://bugs.launchpad.net/kicad/+bug/1753339
2018-03-25 12:34:19 -04:00
jean-pierre charras 29ebca4053 Very minor fix: make a menu string more easily translatable 2018-03-22 21:00:41 +01: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
Jon Evans a931ac436a Add some safety checks to Excellon number format detection
Fixes: lp:1754121
* https://bugs.launchpad.net/kicad/+bug/1754121
2018-03-21 22:29:43 -04:00
jean-pierre charras 2ff74cb3fc Add support for .gbrjob new file format (JSON format) in Gerbview
Add experimental code to generate .gbrjob files in the new JSON file format
2018-03-19 15:14:20 +01:00
jean-pierre charras 5e34563f52 Fix a long calculation time that happens with some gerber files when closing Gerbview in legacy display mode. 2018-03-19 10:58:27 +01:00
Jon Evans 4e76a18d5d Add checks against missing D-Codes in flashed Gerber items
Fixes: lp:1756710
* https://bugs.launchpad.net/kicad/+bug/1756710
2018-03-18 21:55:27 -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
Marco Ciampa 9e8bcbea04 Gerbview: fix typo in tooltip string. 2018-03-16 09:41:53 -04:00
Jon Evans 213b600b54 Revert active layer behavior so gerber/drill load behavior matches
Fixes: lp:1755713
* https://bugs.launchpad.net/kicad/+bug/1755713
2018-03-14 21:52:06 -04:00
jean-pierre charras fa41026f36 Fix issue in aperture macro with some strange gerber files.
Fixes: lp:1755623
https://bugs.launchpad.net/kicad/+bug/1755623
2018-03-14 14:55:51 +01:00
jean-pierre charras 66d5d10b49 Gerbview: bigger line buffer to read some gerber files that have only one (very long) line.
small code refactor.
2018-03-14 10:42:18 +01:00
Wayne Stambaugh 71d8a1ea1e GerbView: fix legacy canvas refresh when drawing outline modes. 2018-03-13 18:25:03 -04:00
Wayne Stambaugh a5cca18dd1 GerbView: add view menu.
Include all actions provided by left vertical toolbar in a new view
menu for consistency with other main frames.

Move show/hide layer manager to view menu.

Simplify some toolbar and menu update logic.

Fixes lp:1753337

https://bugs.launchpad.net/kicad/+bug/1753337
2018-03-13 18:00:15 -04:00
Jeff Young 43899bbe0e Fix compile issues under some compilers. 2018-03-12 21:02:04 +00:00
Jeff Young 4eedb3a27d The _() macro affords some nullptr safety over a naked immediate.
Fixes: lp:1477448
* https://bugs.launchpad.net/kicad/+bug/1477448
2018-03-12 19:18:05 +00:00
Jon Evans e4b847b345 GerbView: fix a few issues with layer selection / info synchronization
Fixes: lp:1754135
* https://bugs.launchpad.net/kicad/+bug/1754135
2018-03-08 18:19:48 -05:00
Seth Hillbrand 9bede6900c Standardize Kicad -> KiCad 2018-03-08 12:33:32 -08:00
Jon Evans 23f49f014b Code style fixes 2018-03-07 22:14:24 -05:00
Jon Evans 3e033aee0c Perform coordinate format detection on Excellon drill files
Fixes: lp:1754121
* https://bugs.launchpad.net/kicad/+bug/1754121
2018-03-07 22:08:59 -05:00
Jon Evans c3333d4665 GerbView: ensure view settings are saved/restored in measure tool
Fixes: lp:1754100
* https://bugs.launchpad.net/kicad/+bug/1754100
2018-03-07 18:56:59 -05:00
Clemens Koller f7ef010fe1 GerbView: Minor cleanup of Menus + Toolbar for consistency.
replace: File -> File(s) when wxFD_MULTIPLE
replace: Load -> Open
replace: Erase -> Clear
add Excellon / Gerber where it makes sense
re-sort File menu
2018-03-05 18:33:21 -05:00
jean-pierre charras 5a33f09608 Fix memory leak 2018-03-05 20:18:55 +01:00
Jon Evans cd2224b94d Add missing hotkey support to GerbView
Fixes: lp:1752982
* https://bugs.launchpad.net/kicad/+bug/1752982
2018-03-04 16:59:23 -05:00
Jon Evans d2c86f8594 GerbView: Disable legacy-only event handlers when GAL is active
Fixes: lp:1752209
* https://bugs.launchpad.net/kicad/+bug/1752209
2018-03-04 16:21:24 -05:00
Jon Evans 2da7199a37 GerbView: Fix active layer synchronization 2018-03-03 23:43:16 -05:00
jean-pierre charras 2c85de3ab2 gerbview layer manager: fix a minor issue, and and icons in context menu, similar to pcbnew layer manager context menu 2018-02-28 10:21:37 +01:00
Jon Evans 2c54f6fe32 GerbView: Fix DCode reordering; ensure loaded layers are visible 2018-02-28 08:23:41 +01:00
Jon Evans de483ac1aa GerbView: only erase current layer if a new file is chosen 2018-02-28 08:23:40 +01:00
Jon Evans 490a2105c3 Properly update view when GerbView display settings changed 2018-02-28 08:23:39 +01:00
Jon Evans cd14525839 GerbView: More accurate selection of arc shapes 2018-02-28 08:23:39 +01:00
Jon Evans e2408989a4 GerbView: redraw negative items when visibility changes 2018-02-27 20:59:08 +01:00
Jon Evans 37beb726e3 GerbView: Implement in-place GAL layer reordering (for X2 sorting) 2018-02-27 20:59:07 +01:00
jean-pierre charras eb94d2fcd0 Gerbview: fix an issue when loading files: Layer filenames order in right tab view modified each time a new file is loaded.
It creates strange issues (inconsistent layer filenames order, inconsistent items colors) especially with non X2 files.
2018-02-27 19:58:07 +01:00
Jon Evans 80035661dc Use proper path when loading files from Gerber job file 2018-02-26 14:26:58 -05:00
Jon Evans 5292829e05 Fix edge case GERBER_FILE_IMAGE creation logic 2018-02-26 14:26:47 -05:00
Jon Evans b03ac1f614 Only update item color when highlighting items in GerbView 2018-02-26 13:48:16 -05:00
Jon Evans 449da4303e Remove more unnecessary calls to RecacheAllItems 2018-02-26 13:47:55 -05:00
Jon Evans 319b7cfc67 Remove extra call to SetTopLayer() when switching active layer 2018-02-25 19:19:45 -05:00
Jon Evans 4ec7a02ccd Add a method to conditionally update VIEW_ITEMs (GerbView performance) 2018-02-25 18:20:44 -05:00
Jon Evans d7bb83ddcb Add a REPAINT flag for faster redraw when bounding box hasn't changed 2018-02-25 18:20:34 -05:00
Jon Evans be8bb24390 Make all new hotkeys editable; label some GAL-only hotkeys
Fixes: lp:1751183
* https://bugs.launchpad.net/kicad/+bug/1751183
2018-02-25 17:57:36 -05:00
Jon Evans b90528a7ae Fix regression in GerbView display settings; some optimization too 2018-02-25 17:35:26 -05:00
Jon Evans 9a3ea1d53c Rename "Render" to "Items" and a few other wording changes 2018-02-23 06:57:27 -05:00
Jon Evans 1ed7d5f816 Clear out old layer data when loading on top of an existing image
Fixes: lp:1747443
* https://bugs.launchpad.net/kicad/+bug/1747443
2018-02-23 11:59:40 +01:00
Jon Evans f7d0c3997d Don't recache items unnecessarily when toggling D-code display 2018-02-22 08:52:43 +01:00
Jon Evans 0c9d11c180 Add progress reporting for GerbView file loading 2018-02-21 13:17:02 -05:00
Jeff Young 4d5e1489fb New menu structure for ModEdit.
Includes some dialog changes to go with the menu update.
Includes promoting the Pcbnew graphics mode back to main menu.
Includes renaming Graphics modes to Toolsets.
2018-02-20 10:49:41 -05:00
Jeff Young 7e0ff6fe8d Fix current directory issue loading Gerbers.
Fixes: lp:1750361
* https://bugs.launchpad.net/kicad/+bug/1750361
2018-02-19 15:09:54 -05:00
Maciej Suminski bfa0b98b14 Corrected hotkey description to reflect new canvas naming 2018-02-15 09:30:10 +01:00
Jeff Young 4bae901dc8 Centralize zoom-to-fit code.
Fixes a bunch of errors:
- libedit and libbrowser would zoom to bounding box but centre on canvas
- libedit, libbrowser and gerbview didn’t take the scroll bars into account
- pcbnew didn’t take scroll bars into account or apply the 10% margin
- appending a board file would re-centre, but not re-zoom

Fixes: lp:1504302
* https://bugs.launchpad.net/kicad/+bug/1504302
2018-02-13 20:06:03 -05: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
Jon Evans a35cc44bd1 Change mechanism for updating gerbview toolbar widths 2018-02-06 17:44:15 +01:00
Jon Evans 1f487593fa Respect item polarity when redrawing cached gerber view items
Fixes: lp:1746825
* https://bugs.launchpad.net/kicad/+bug/1746825
2018-02-05 07:55:15 +01:00
jean-pierre charras 821668d96c rename class_collector.h to collector.h 2018-02-04 10:49:37 +01:00
jean-pierre charras 39b4afecfa fix code after file renaming 2018-01-31 09:24:02 +01:00
jean-pierre charras 5d72aebd22 Fix code after renaming files 2018-01-29 16:40:22 +01:00
jean-pierre charras a0ac1a48c2 Gerbview: fix code after renaming files 2018-01-29 13:26:58 +01:00
jean-pierre charras 6255239b52 Gerbview: rename files class_xxx to xxx according to the class names of classes defined inside the files 2018-01-29 11:51:47 +01:00
jean-pierre charras d0754acf00 Fix code after renaming files 2018-01-29 11:37:29 +01:00
Jon Evans 14abe8723d Rework GERBVIEW_FRAME::ReCreateAuxiliaryToolbar to fix layout issues
Fixes: lp:1745203
* https://bugs.launchpad.net/kicad/+bug/1745203
2018-01-29 07:52:42 +01:00
jean-pierre charras 4c5bd01887 Rename a few files 2018-01-28 22:02:31 +01:00
Jeff Young 899afa1e90 Reinstate OSX cursor shape selection
Mark it as not supported in Legacy graphics.

Fixes: lp:1745097
* https://bugs.launchpad.net/kicad/+bug/1745097
2018-01-28 10:47:20 -05:00
Martin Sivak d5cdd78062 eeschema: keystroke zoom should obey disabled centering
Keystroke zoom (F1/F2) always centered the screen, because it
was handled as ID_POPUP_ZOOM_IN event. Mousewheel scrolling
was ok, because it is handled using different event based
on the configuration.

This patch introduces special event ids for keystroke
zooming that are then properly translated to either
ID_POPUP_ZOOM_IN or ID_OFFCENTER_ZOOM_IN depending
on the configuration.

The same issue is fixed for legacy canvas pcbnew.

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

Signed-off-by: Martin Sivak <mars@montik.net>
2018-01-27 20:20:32 -05:00
jean-pierre charras 61193dcd13 Fix assertion failure quitting gerbview
Fixes: lp:1744600
https://bugs.launchpad.net/kicad/+bug/1744600
2018-01-22 21:16:10 +01:00
Maciej Suminski da305e7750 Move SwitchCanvas() implementation to EDA_DRAW_FRAME
Share more code between pcbnew and gerbview. Fix warnings regarding
shadowing EDA_DRAW_FRAME::SwitchCanvas().
2018-01-22 09:06:55 +01:00
Maciej Suminski b3cb6be48e Minor memleak fixed in gerbview 2018-01-22 09:04:24 +01:00
Jon Evans 5ea277d229 Reset tools when clearing gerber draw layers
Fixes: lp:1744600
* https://bugs.launchpad.net/kicad/+bug/1744600
2018-01-22 08:44:55 +01:00
Jon Evans b21f301097 Defer canvas type setting save until destruction of EDA_DRAW_FRAME
Fixes: lp:1741787
* https://bugs.launchpad.net/kicad/+bug/1741787
2018-01-18 10:17:06 +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
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 3168d03fe5 Fix unnecessary copy initialization detected by clang-tidy 2018-01-09 18:22:10 -05:00
jean-pierre charras b98f6a2fd1 Minor fixes in strings and I18N fix. 2018-01-06 10:57:46 +01:00
Mark Roszko b98cc0b937 Some coverity fixes 2018-01-05 22:51:03 -07:00
jean-pierre charras 33cbbc95d9 * Gerbview: update a old code in a dialog.
Fixes: lp:1741410
https://bugs.launchpad.net/kicad/+bug/1741410
2018-01-05 11:45:50 +01:00
Jon Evans 2dec95b4e6 Add a first-run dialog to encourage user to switch to OpenGL 2018-01-04 10:14:40 -05:00
Wayne Stambaugh 5102c8ac1f Gerbview and Pcbnew dialog tweaks.
Improve dialog layout and fix UI policy issues with all of the dialog
boxes in the Gerbview and Pcbnew code paths.

Updated the use of component to footprint where appropriate.
2017-12-27 12:09:56 -05:00
Tomasz Włostowski a4528988ca pcbnew: fix graphical polygon movement, rotation, flipping and edit points synchronization.
Fixes: lp:1738449
* https://bugs.launchpad.net/kicad/+bug/1738449

Fixes: lp:1738032
* https://bugs.launchpad.net/kicad/+bug/1738032
2017-12-18 18:25:45 +01: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
Jon Evans 1955f25226 Remove outdated check on endAngle to fix arc draw direction
Fixes: lp:1737420
* https://bugs.launchpad.net/kicad/+bug/1737420
2017-12-10 11:45:33 -07:00
jean-pierre charras c0a539959e Fix a few Coverity warnings 2017-12-04 12:46:11 +01:00
Jon Evans 0564d3456b Preserve color scheme when switching to legacy (Fixes lp:1670669)
Instead of modifying the colors when switching to legacy canvas,
they will now be preserved and only returned as the "legacy" colors.
2017-11-28 10:47:04 +01:00
Jon Evans e5847b7953 Gerbview: apply layer colors to GAL after sorting (Fixes lp:1720540) 2017-11-27 08:23:17 +01:00
jean-pierre charras f7c0562c8b Gerbview: refinements in D_Code display.
Remove duplicate code between legacy and Gal canvas to calculate D_Code id draw parameters.
2017-11-13 11:30:23 +01:00
jean-pierre charras e14a1656db Add comments. Gerbview: in legacy mode, do not display D_Code id text when it is too small to be readable. 2017-11-13 09:11:54 +01:00
Jon Evans cabc92bd48 Fix aperture macro and arc bounding boxes (Fixes lp:1730249) 2017-11-13 08:17:43 +01:00
Jon Evans a1acf705e8 Fix aperture macro hit testing (partial fix of lp:1730249)
Also update various things in class_aperture_macro.cpp to take a const
parent argument so that it is callable from within GERBER_DRAW_ITEM
2017-11-12 10:22:18 +01: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
Marvin Schmidt 2b78183bb4 Fix a typo 2017-11-09 19:52:17 +01:00
Tomasz Włostowski 1959af1ad1 refactoring: forgot to add VIEW/VIEW_CONTROLS initialization in gerber, causig a crash. Fixing. 2017-11-05 22:09:56 +01:00
Tomasz Włostowski 9932ff32ae refactoring: wrapped boost::optional in OPT<> class for the purpose of easier transition to C++17 in the future 2017-11-03 23:59:02 +01:00
jean-pierre charras c536364f05 Fix a few coverity warnings. very minor other changes. 2017-11-02 18:18:57 +01:00
Maciej Suminski 5eb56dd8b0 Coverity fixes
CIDs:
102571
168696
168701
168704
168706
168708
168710
168713
168716
168717
2017-11-01 10:24:26 +01:00
Maciej Suminski 3a8b4a2fb7 Fixed a memleak in GerbView
Changed m_painter PAINTER* to unique_ptr<PAINTER> to avoid confusion
regarding the objection destruction.
2017-10-30 09:36:34 +01:00
Baranovskiy Konstantin a4440395be Gerbview: fix zoom to selection tool duplication. 2017-10-30 09:05:35 +01:00
Jon Evans b18cd4cb19 Fix arc drawing algorithm in GerbView GAL (Fixes lp:1720384) 2017-10-26 08:18:09 +02:00