Commit Graph

83 Commits

Author SHA1 Message Date
Jeff Young 9481a218c7 Lazy loading of stackup UI widgets. 2023-05-11 14:37:48 +01:00
Jeff Young 03c9b1c202 Move remainder of Board Setup to lazy loading. 2023-05-11 11:43:10 +01:00
Jon Evans e2353a2849 PANEL_BOARD_STACKUP: Ensure UI is re-linked to storage when importing
Fixes https://gitlab.com/kicad/code/kicad/-/issues/13835
2023-02-10 12:58:04 -05:00
Jon Evans 595bf70d5d Do not try to read from UI elements that haven't been initialized yet
Fixes https://gitlab.com/kicad/code/kicad/-/issues/13480
2023-01-12 09:16:22 -05:00
Jeff Young 30c9deb9d5 Flat(er) look for paged dialogs. 2023-01-11 01:11:25 +00:00
jean-pierre charras 593dc9e8b6 Some fixes in Gerber job file:
- Ensure colors use a normalized value (normalized name or RnnGnnBnn notation).
- Better code.
2022-12-06 17:01:37 +01:00
jean-pierre charras d7368588db stackup manager: fix incorrect handling of colors for multi-layer dielectrics
The dialog allows a color selection for each dielectric layer.
However for a "dielectric" defined by more than one layer, the color was handled
only for the first layer, and not for the other sub-layers.
2022-12-01 16:19:13 +01:00
jean-pierre charras 6aa515e2f8 board_stackup_manager: fix incorrect behavior when adding a new dielectric layer.
Fixes #12680
https://gitlab.com/kicad/code/kicad/issues/12680
2022-10-20 11:27:35 +02:00
Jeff Young 631980b0ab We were saving the old board pointer, but not updating the current one.
This also makes a few other adjustments to order and to where we look
for the enabled layers which should make it more robust.

Fixes https://gitlab.com/kicad/code/kicad/issues/10925
2022-10-16 18:39:37 +01:00
Jeff Young 19d270fe74 Text size sanity checking for TEXT_ITEMS_GRID.
Oh dear, there was a bunch going on here.  Firstly the move from int
to long long int for ValueFromString() means that we were no longer
catching overflows (as we were C-style casting it back to int in many
places).  But even when the overflow is caught, it would run in to
wxWidgets' empty string bug while trying to log it.

Fixes https://gitlab.com/kicad/code/kicad/issues/12577
2022-10-06 13:19:08 +01:00
Jonathan Haas 6b15231f4b Add code to set better default layer widths.
This affects both the layer count dropdown and the "Adjust dielectric thickness" button. Changing layer widths will now maintain the same total board width and set layer widths to common manufacturer values. Layer widths can be locked (as before) to keep any manually defined values.
2022-09-27 21:24:48 +00:00
Jeff Young 45d6b4a9fc Readability improvements. 2022-09-19 11:18:20 +01:00
Marek Roszko ece23d434b Split up Double2Str to a format function to make its use case clear 2022-09-17 00:10:22 -04:00
Mark Roszko b00178adb3 Nuke base_units from orbit 2022-09-16 04:38:10 +00:00
Marek Roszko 03aa63bd50 Move 5 helpers to EDA_UNIT_UTILS since they aren't iu specific 2022-08-29 20:11:03 -04:00
jean-pierre charras 7de0159e0e pcbnew: fix incorrect calculation of the board thickness from board stackup.
dielectric sub layers were not taken in account.
Fixes #10899
https://gitlab.com/kicad/code/kicad/issues/10899
2022-02-18 18:09:16 +01:00
Jeff Young 7ccac79192 More wxString wide literals. 2022-02-05 21:29:34 +00:00
Jeff Young 815c2c69e7 Support for dielectric colors in board stackup.
Fixes https://gitlab.com/kicad/code/kicad/issues/8491
2021-12-24 11:39:50 +00:00
jean-pierre charras a0bcde088e Use ChangeValue() instead of SetValue() in some wxTextCtrl
(It avoids generating unused events)
2021-12-23 17:58:50 +01:00
jean-pierre charras 68d66af5bf PANEL_SETUP_BOARD_STACKUP: fix a typo that prevent displaying a color swatch.
Fixes #10027
https://gitlab.com/kicad/code/kicad/issues/10027
2021-12-23 17:57:25 +01:00
Jeff Young 8b52e969d6 Restore units to a bunch of wxGrids.
Fixes https://gitlab.com/kicad/code/kicad/issues/10063
2021-12-23 16:54:03 +00:00
Roberto Fernandez Bautista dadaf26ff1 Board Setup: Ensure board editor layers page always gets updated
We need to update it even if we move to a different page, as when moving
back to the physical stackup page it will reset the layers.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/9991
2021-12-15 10:39:44 +00:00
Roberto Fernandez Bautista aa64b739eb Board stackup: Ensure that m_choiceCopperLayers is updated
Need to do a full synchronisation with the board to ensure that the
drop down and other UI elements are reset

Fixes https://gitlab.com/kicad/code/kicad/-/issues/9991
2021-12-14 18:00:07 +00:00
Seth Hillbrand 78ff9a857a Jerry-rig HTML-format alpha parsing
On wx3.0, the HTML format #RRGGBBAA cannot handle the alpha channel.
Instead, we route this through a COLOR4D routine when we need to use
these colors

Fixes https://gitlab.com/kicad/code/kicad/issues/9963
2021-12-13 16:04:40 -08:00
Seth Hillbrand 1b7358f93a Import layer settings before swapping boards
The rebuildLayerStackPanel() reads from the current board to setup the
panel.  We maintain the board swap until after the setup is completed

Fixes https://gitlab.com/kicad/code/kicad/issues/9370
2021-10-11 11:47:22 -07:00
Jeff Young 2ac03e2cdb Change Loss Tg to Loss Tan.
We'll need Tg in the future for glass transition temp.

Fixes https://gitlab.com/kicad/code/kicad/issues/4734
2021-09-07 10:49:17 +01:00
Jeff Young 2b3477ca28 Handle RGBA conversion to hexadecimal format for wxWidgets 3.0 2021-08-25 02:40:17 +01:00
Jeff Young 21f2b235ce Rework stackup colors a bit to support opacity for 3D viewer.
Fixes https://gitlab.com/kicad/code/kicad/issues/9012
2021-08-23 20:00:17 +01:00
jean-pierre charras 3d61c8b0c4 PANEL_SETUP_BOARD_STACKUP: Do not limit the EpsilonR mantissa to 1 or 2 digits.
Fixes #8956
https://gitlab.com/kicad/code/kicad/issues/8956
2021-08-14 09:42:05 +02:00
Jeff Young 95b87ba29a Freshen microwave polygon dialog and remove a bunch of dead code. 2021-08-03 01:11:11 +01:00
Wayne Stambaugh cf00319c85 More NULL expunging. 2021-07-20 07:27:18 -04:00
jean-pierre charras 1a5e63bcab PANEL_SETUP_BOARD_STACKUP: fix a incorrect behavior when changing layer count,
and add a button to adjust dielectric thickness (regression fix)
Fixes #8800
https://gitlab.com/kicad/code/kicad/issues/8800
2021-07-16 20:39:00 +02:00
Jeff Young 1fcd7992a0 Performance improvement for adding/removing dielectric layers.
(Roughly a 10X speedup on Mac.)
2021-06-27 09:43:20 +01:00
Jeff Young 0f27618125 Use a list dialog that can be parented by the Board Setup dialog.
(The current one keeps pulling the Kicad Manager window to the front
on OSX.)

I also removed the UpdateUI stuff which was probably causing:

Fixes https://gitlab.com/kicad/code/kicad/issues/5049
2021-06-27 01:41:35 +01:00
Marek Roszko 10e60acf34 Clean up including of board_design_settings.h 2021-06-06 15:03:42 -04:00
Wayne Stambaugh 7c14e4e967 Common widget header housekeeping. 2021-06-03 12:02:45 -04:00
Marek Roszko 4df3cb912d Remove another leaky wx/log.h header 2021-06-03 08:11:15 -04:00
Roberto Fernandez Bautista ae009e0758 Ensure clipboard data is available after KiCad closes
Always Flush() after SetData()
2021-05-03 19:38:31 +01:00
jean-pierre charras 675ec70f0f PANEL_SETUP_BOARD_STACKUP: fix a wxassert due to a "C" locale test in a format function.
A call to FormatInternalUnits() was made without switching to "C" locale.
In this case it was not necessary, but FormatInternalUnits() expects in some tests
this locale, thus creating issues (assert and incorrect conversion)

Fixes #8177
https://gitlab.com/kicad/code/kicad/issues/8177
2021-04-12 09:57:40 +02:00
Ian McInerney 9939af3e27 Fix color handling in the stackup manager panel
Fixes https://gitlab.com/kicad/code/kicad/issues/5671
2021-04-09 00:56:31 +01:00
Ian McInerney 5490a85f97 Don't recompute the board thickness on UI update
The thickness only needs to be computed when the actual
values change, so computing on UI update is a waste of
resources and can cause UI lag.

Fixes https://gitlab.com/kicad/code/kicad/issues/5049
2021-04-09 00:56:31 +01:00
Ian McInerney 1a727558b0 Switch update event handlers to use the event instead of pointers
It is safer to use the event to pass the enable/string
instead of pointers, since using the pointers could trigger
other UI events.
2021-04-07 17:39:48 +01:00
Jon Evans 18037e2f65 Rework bitmap system to load from archived PNGs
Bitmaps are now identified by an enum class instead of by pointers.
Bitmap loading and caching is now handled by a class in common, and
we no longer compile most bitmaps into the binary, so there is no
longer a bitmaps static library.

Instead, bitmaps are archived to a .tar.gz file which is installed
in ${KICAD_DATA}/resources/images.tar.gz

The source PNGs are checked in to Git as the original CPP files were,
so that people can build without the required dependencies to convert
SVGs to PNGs.

Initial support is also added for dark theme icons, although this
is not yet exposed in the GUI.

Stubs are present for multi-resolution image resources, but this is
not fully-baked yet and could use some refinement.
2021-03-11 08:37:35 -05:00
Jeff Young 91350ec9ea Don't update thickness unless it really changed.
Otherwise we're going to generate a continuous stream of OnUpdateUI
events....

Fixes https://gitlab.com/kicad/code/kicad/issues/5049
2021-03-04 14:15:39 +00:00
Jon Evans bba7fae104 Coverity fixes 2021-02-24 22:55:11 -05:00
Jeff Young d384316335 Fix some layout issues in board stackup pane.
Also decided the extra paramaters on the right weren't working out
on smaller screens and so moved Board Finish to its own panel.
2021-02-24 21:42:00 +00:00
Jon Evans 887ad1c30d CHANGED: Copper layer count is now set on physical stackup page
REMOVED: Board layer stackup presets that were not very useful

Fixes https://gitlab.com/kicad/code/kicad/-/issues/6765
2021-02-23 21:31:12 -05:00
Seth Hillbrand 10442b98df Unify thickness
The removal of the pcbnew general section was meant for v6 but passed
the deadline.  This removes the duplication of thickness.  We do not
allow the thickness to be different between nominal and stackup, so
keeping separate text fields is unnecesarily confusing to users
2021-02-11 11:28:00 -08:00
Roberto Fernandez Bautista 9aedeae5c3 Don't log error messages when using the clipboard
wxClipboard::GetData()and wxClipboard::SetData() both log a "wxLogSysError" error-level message (see for example:  https://github.com/wxWidgets/wxWidgets/blob/v3.1.4/src/msw/clipbrd.cpp#L703 ). This logged message gets displayed as a messagebox to the user.

The logging can be disabled temporarily by creating a wxLogNull object. See https://docs.wxwidgets.org/3.0/classwx_log_null.html

Fixes https://gitlab.com/kicad/code/kicad/-/issues/6956
2021-02-03 01:55:05 +00:00
jean-pierre charras 96af236493 Code cleanup: remove include wx.h from pcb_plot_params.h.
including wx.h is useless for this file, and include wx.h in a lot of other files.
Include wx.h must be made only when needed in a given file, because on Windows
it include some headers that frequently create collision with kicad declarations
2021-01-25 16:18:46 +01:00