Commit Graph

7692 Commits

Author SHA1 Message Date
Jeff Young 509d233d97 Fix knockout text bounding boxes and hit testing.
Fixes https://gitlab.com/kicad/code/kicad/issues/12133
2022-08-06 00:00:04 +01:00
jean-pierre charras d0d19423e0 Eeschema: Try to fix bitmap printing in wx version > 3.1.5
We had on a regular basis problems when printing bitmaps.
Probably due to issues in wx and in our code.
2022-08-04 14:25:52 +02:00
Jeff Young e4b6da287f Fix errant string format char. 2022-08-03 14:27:56 +01:00
Jeff Young 96f01d33c8 Performance improvements.
1) Move a bunch of std::map's to std::unordered_map to get constant-time
look-ups
2) Lengthen progress-reporting intervals to spend more time doing work
and less time talking about it
3) Reverse order of SHAPE_LINE_CHAINs in thermal intersection checks to
make (much) better use of bbox caches
4) Don't re-generate bboxes we already have
5) Fix some autos that weren't by reference (and were therefore copying
large datasets)
6) Rename delta progressDelta so it's easier to search for in future
7) Get rid of a few more autos (because I don't like them)
8) Pass large items to lambdas by reference

Fixes https://gitlab.com/kicad/code/kicad/issues/12130
2022-08-03 11:59:42 +01:00
Jeff Young 0304ad4494 Move connection width testing to rule system.
Also copies connection width progress reporting architecture over to
the sliver checker.
2022-08-01 13:09:51 +01:00
Jeff Young 6f49b57f9b Cleanup & performance enhancements. 2022-08-01 13:09:51 +01:00
jean-pierre charras d1ff8f4781 PROGRESS_REPORTER_BASE: call code to resize it only if the message has change.
In wxWidgets 3.15 (and perhaps older version) the call to GetTextExtent() probably
creates major issues when called too many times, at least oo msys2.
It was probably also time costly.
Calling it and resize the PROGRESS_REPORTER only when needed fixes these serious issues.
Issues happened only when the board has a lot of zones (when teardrops are added)
2022-08-01 13:18:50 +02:00
jean-pierre charras 32551cf1ea minor coding style fix. 2022-07-31 18:35:37 +02:00
jean-pierre charras 4bfbf91369 3D viewer: Fix incorrect behavior when moving the scene
Fixes #12114
https://gitlab.com/kicad/code/kicad/issues/12114
2022-07-30 13:27:25 +02:00
Mikolaj Wielgus 7cf5138c63 Sim: Bugfixes, mostly for MS Windows compilation errors
Unfortunately, Windows headers define a lot of macros for common words,
so we had to rename some enums to not collide.

We also fix some of the many bugs related to the new simulation
architecture and the Spice Model Editor dialog.
2022-07-30 02:25:34 +00:00
Marek Roszko a8505d9c76 SEARCH_RESULT -> INSPECT_RESULT
To fix the name squatting it's doing for future functionality
2022-07-29 20:01:10 -04:00
jean-pierre charras 490875e222 Fix a missing call to aEvent.Skip() in commit 753f2f3.
Any wxSizeEvent handler must call Skip() to propagate the event.
2022-07-29 16:46:35 +02:00
jean-pierre charras 905df71977 Fix an issue when printing bitmaps when not on wxWidgets 3.1.6 and 3.1.7
Commit 6e35d5473 added a hack to fix an issue on wxWidgets 3.1.6. But this hack
must by applied to 3.1.6 and 3.1.7, not to other versions.
Modify commit 048cf6df that applied the fix to 3.1.6 only
2022-07-29 13:09:20 +02:00
jean-pierre charras 048cf6df7a Fix an issue when printing bitmaps when not on wxWidgets 3.1.6
Commit 6e35d5473 added a hack to fix an issue on wxWidgets 3.1.6. But this hack
must by applied only to 3.1.6, not to other versions.
Fixes #12108
https://gitlab.com/kicad/code/kicad/issues/12108
2022-07-29 10:26:45 +02:00
Jeff Young 753f2f3e4c Display descriptions in second column of library trees.
Also fixes some bugs in how the columns are sized.

Fixes https://gitlab.com/kicad/code/kicad/issues/12090
2022-07-28 14:51:47 +01:00
Seth Hillbrand ee8116e55f Protect against double-refresh
The wxtimer can fire multiple times and there exists the possiblity for
this to happen before the flags are properly set to prevent it.  This
creates a concurrency mutex to skip the EDA_DRAW_PANEL_GAL refresh if
one is already underway.

Fixes https://gitlab.com/kicad/code/kicad/issues/12094

(cherry picked from commit 39dd51490d)
2022-07-27 20:28:48 -07:00
Jeff Young bb43d923af Save preferences immediately (in case of future crash).
Fixes https://gitlab.com/kicad/code/kicad/issues/11162
2022-07-27 18:57:45 +01:00
Jeff Young 4a40d94b5a More hotkey label cleanup. 2022-07-27 12:29:01 +01:00
Jeff Young 6e0d31b812 Improve grid tooltip.
Fixes https://gitlab.com/kicad/code/kicad/issues/9841
2022-07-27 12:29:01 +01:00
Jeff Young d9d579c895 Clean strings before displaying in hotkeys list.
Also make sure the description column is wide enough.

Fixes https://gitlab.com/kicad/code/kicad/issues/11994
2022-07-27 12:29:01 +01:00
Mike Williams ece9a782ac Gerbview: unexceptional exception cleanups 2022-07-26 18:42:55 +00:00
Mike Williams be7104c24c Gerber Viewer: gerbview -> Gerber Viewer in Settings 2022-07-26 18:42:55 +00:00
Seth Hillbrand 2245e99a89 Apply Wayne's suggestion for better error recov
No need to exit the draw routine on a bad layer, we can skip that layer
and continue processing the valid elements
2022-07-26 11:06:29 -07:00
Jeff Young c3a5947fe6 Make Scintilla paste a separate undo operation.
Fixes https://gitlab.com/kicad/code/kicad/issues/11756
2022-07-26 18:45:02 +01:00
Seth Hillbrand 008b4f583b Fix typo in lib_text layer id
Also adds CHECK_RET to catch similar errors in the future

Fixes https://gitlab.com/kicad/code/kicad/issues/12078
2022-07-25 17:08:16 -07:00
jean-pierre charras 993c446fdf Fix some warnings detected by PVS-STUDIO (most are not used vars) 2022-07-25 18:23:52 +02:00
Jeff Young e10158ff10 ADDED show pin names on footprint pads when assigning to symbol.
Fixes https://gitlab.com/kicad/code/kicad/issues/4576
2022-07-24 23:41:41 +01:00
Jeff Young 582c133835 CSV escaping. 2022-07-24 23:41:41 +01:00
Jeff Young 6eada34f41 Use "Cancel" for cancel semantics, even when affirmitave to question.
Fixes https://gitlab.com/kicad/code/kicad/issues/11983
2022-07-24 08:47:01 +01:00
Jeff Young 74b9ff5865 Don't specify a severity when traversing the filtered list. 2022-07-24 08:41:02 +01:00
Jeff Young def87c969e Redo the pinned-libraries storage architecture.
1) always use preferences directly
2) allow nicknames from either preferences or project
3) store-after-modify

Fixes https://gitlab.com/kicad/code/kicad/issues/12000

Fixes https://gitlab.com/kicad/code/kicad/issues/11892
2022-07-22 09:31:10 +01:00
Marek Roszko 47fe8ff8eb bitmaps and template are resources. 2022-07-21 20:14:10 -04:00
luz paz 79fa911e0e Fix various typos
Found via `codespell -q 3 -S *.po,./thirdparty,./Documentation/changelogs -L aactual,acount,aline,alocation,alog,anormal,anumber,aother,apoints,aparent,aray,ba,busses,dout,einstance,leaded,modul,ontext,ot,overide,serie,te,,tesselate,tesselator,tht`
2022-07-21 16:31:41 +00:00
Jeff Young 7386e64923 Attempt to work-around wxWidgets bug with Serbian & Russian locales.
Fixes https://gitlab.com/kicad/code/kicad/issues/12002

Fixes https://gitlab.com/kicad/code/kicad/issues/11963
2022-07-20 17:52:48 +01:00
Jeff Young e5a664c6b3 Try a slightly different tack for cancelling net highlighting.
Fixes https://gitlab.com/kicad/code/kicad/issues/12029
2022-07-19 10:31:49 +01:00
Seth Hillbrand 0335df77fa Ensure global tooltip is created for each app 2022-07-18 17:08:48 -07:00
dsa-t e2e574c84d Fix a mistake in EDA_RECT::Intersects. 2022-07-18 18:51:52 +00:00
Jeff Young b727bfc16d Performance: avoid sqrt at all costs. 2022-07-16 18:42:32 +01:00
Alex ebbfc25420 Don't evaluate arguments passed to KI_TRACE if tracing is disabled. 2022-07-16 17:35:22 +00:00
Jeff Young d0547cbde7 Don't allow 0 line-width for unfilled shapes.
Fixes https://gitlab.com/kicad/code/kicad/issues/12010
2022-07-16 16:26:05 +01:00
Seth Hillbrand db4f2d9dd8 Catch some crashes on shutdown
These can happen when a tool is active that sends signals when exiting
(e.g. deselectEvent).  These may be caught by the active loop in another
tool which might try to update the UI after it has been freed.  By
marking all tools as "shutdown", the only event returned to them should
be null.  As an extra precaution, we flag the shutdown globally within
the tool manager and check this flag before launching either events or
new tools

Fixes https://gitlab.com/kicad/code/kicad/issues/10698
2022-07-15 16:56:01 -07:00
Seth Hillbrand b792a3f3f5 Add angle display to line drawing
Helpful to see what angle you are at when setting graphic lines
2022-07-15 12:03:11 -07:00
Seth Hillbrand bed38d2fc8 Stroke, don't fill fonts in preview
Fixed new vector-style font display to avoid the non-closed polyline
fills that make it hard to read the proper text

Fixes https://gitlab.com/kicad/code/kicad/issues/11781
2022-07-15 11:58:33 -07:00
Seth Hillbrand 595e5cb3f2 Add sort feature to pre-defined list
Board setup rows should be sortable when inserting new elements.  They
get sorted when saving, this keeps that representation while editing

Fixes https://gitlab.com/kicad/code/kicad/issues/12015
2022-07-15 11:16:15 -07:00
Seth Hillbrand 9faff78258 Keep the reset text correct
Ensures that after setting the initial dialog page, we also set the
proper text in the reset button as the event does not get fired

Fixes https://gitlab.com/kicad/code/kicad/issues/11856
2022-07-14 14:19:09 -07:00
Seth Hillbrand 93fb00d815 Protect the Kiway dereference
Also find a few more places where we are reaching into a new frame to
perform actions that need to have dialogs closed.

Running actions should also wait for the next cycle rather than being
immediately executed when we are calling into a new frame.  This allow
for the cleanup actions onClose() to happen prior to the next action
starting

Fixes https://gitlab.com/kicad/code/kicad/issues/11891
2022-07-14 11:37:45 -07:00
Mike Williams d44e34d513 Images: Add full properties editor
Converts dialog_image_editor to panel_image_editor. Embeds this panel in
a new properties dialog for the schematic and PCB editors that allows
editing position, layer, locked status, etc. like other items.
2022-07-14 11:23:23 +00:00
Mike Williams 99f8b21ed1 PCB: Add bitmap layer per board layer 2022-07-14 11:23:23 +00:00
Mike Williams 3669cb4673 PCB Editor: Add User Background Images 2022-07-14 11:23:23 +00:00
Mike Williams cbc3bfbf08 GAL: Re-enable OpenGL bitmap cache
Might still have issues, re-enabling for wider test.
2022-07-14 11:23:23 +00:00
Mike Williams 3e80963482 GAL: Delete no-effect target changes 2022-07-14 11:23:23 +00:00
Seth Hillbrand b5bf1da251 Keep track of blocking windows
Allows the calling KiWAY player to send messages to the blocking window
before signaling a separate call

Fixes https://gitlab.com/kicad/code/kicad/issues/11891

Fixes https://gitlab.com/kicad/code/kicad/issues/11772
2022-07-13 19:25:24 -07:00
Seth Hillbrand 86ac77258f Don't clear our mutex when drawing
The (lite) mutex protects DoRePaint() from reentry but this breaks if it
is cleared by a timer.

Fixes https://gitlab.com/kicad/code/kicad/issues/12003
2022-07-12 20:10:46 -07:00
jean-pierre charras 1a5b0d7e39 Rework on bitmap_info.cpp cmake build process.
on gcc 12.1 / msys2 the large initialized list in bitmap_info.cpp breaks
the compiler (perhaps a bug in the compiler).
So, as workaround, the initialization sequence is modified.
2022-07-12 16:48:48 +02:00
Jeff Young 57acce9e55 Share more code between selection tools. 2022-07-11 19:04:08 -06:00
Seth Hillbrand 3081023b5e ADDED: Minimum copper connection width DRC check
Checks all copper connections in each net/layer for minimum width
setting.

Fixes https://gitlab.com/kicad/code/kicad/issues/9870
2022-07-11 19:26:56 +00:00
Jeff Young e122dc38bd Add context menu item for clearing net highlighting.
In selection tools, drawing tools, router tool, line_wire_bus tool.

Fixes https://gitlab.com/kicad/code/kicad/issues/11920
2022-07-10 17:15:20 -06:00
Jeff Young eb27a3f8b9 Added pinning support to various EDA_LIST_DIALOGs.
Footprint Save As, Symbol Save As, etc.
2022-07-09 20:44:49 -06:00
Jeff Young 05219e4d9a Add pinned library support to Choose Symbol and Choose Footprint. 2022-07-09 20:06:31 -06:00
Jeff Young 190fb23e88 Add pinned library support to Footprint and Symbol Viewers.
Also includes adding libraray and symbol filters to Symbol Viewer.
2022-07-09 17:41:10 -06:00
Jeff Young 120c5b9ac1 Reimplement pinning now that we're no longer sorting on score. 2022-07-09 12:26:44 -06:00
Jeff Young 0953395c87 LIB_SHAPE slightly abuses SHAPE_POLY_SET by using it for line chains.
Fixes https://gitlab.com/kicad/code/kicad/issues/11956
2022-07-08 21:35:40 -06:00
Jeff Young 62cef3d830 Add LAYER_PRIVATE_NOTES for private text & graphics in symbol editor.
Fixes https://gitlab.com/kicad/code/kicad/issues/11957
2022-07-08 17:27:05 -06:00
jean-pierre charras d90a2cc6b5 tread_pool: create it on the heap, because creating it static generate a DTOR issue on mingw.
When built with mingw, the tread_pool DTOR is probably called too late, and treads are
not cleaned correctly, and the application hangs on exit.
2022-07-08 19:07:21 +02:00
Marek Roszko 7473528cf4 Ensure user paths are created early
Fix #11962
2022-07-05 20:47:53 -04:00
Mike Williams 193248e202 Hotkeys: show user config for unloaded KiFACEs
Otherwise, only the default hotkeys will be listed.

Fixes: https://gitlab.com/kicad/code/kicad/-/issues/10687
2022-07-05 13:37:45 +00:00
jean-pierre charras 16667717a2 Pcbnew, printing in B&W: never draw the background color.
Otherwise a black background is printed.
Fixes #11625
https://gitlab.com/kicad/code/kicad/issues/11625
2022-07-04 12:00:44 +02:00
Seth Hillbrand 907d8fc018 Revert "Fix Swatch sizes"
This reverts commit 25c3a4681f.

Windows default sizes are too big when they are the correct size on
Linux.  We need the DU scaling for swatches
2022-07-01 11:37:55 -07:00
Seth Hillbrand 25c3a4681f Fix Swatch sizes
The swatches are surrounded by non-scaling icons.  We should not scale
the swatches unless we also scale the icons.  This patch makes all
elements in the appearance panel equally non-scaling

This relates to https://gitlab.com/kicad/code/kicad/-/issues/11880
2022-07-01 10:56:13 -07:00
jean-pierre charras 1598ce762b bitmap_info.h: move g_BitmapInfo initialization to bitmap_info.cpp.
The main purpose is to make changes in g_BitmapInfo more easy.
Although it is automatically generated, it is sometime more easy to modify
it by hand (the recreation of bitmaps stuff is time consumming), especially
during testing.
2022-06-30 13:00:37 +02:00
Jeff Young b512d64148 Naming conventions. 2022-06-29 07:34:46 -06:00
Jeff Young dbbdc9d2e6 Don't rely on the penWidth already being set when setting the dash style.
Fixes https://gitlab.com/kicad/code/kicad/issues/11908
2022-06-29 07:34:45 -06:00
Mike Williams 64b89639cf PCB Editor: Make Ctrl-Click net highlighting configurable
Defaults to ctrl-click is exclusive or selection like other
applications. Footprint editor can only be exclusive or.

Fixes: https://gitlab.com/kicad/code/kicad/-/issues/10810
2022-06-28 16:29:14 +00:00
Seth Hillbrand 89eeba3312 Correct WX check for DPI handler calls 2022-06-27 13:34:39 -07:00
jean-pierre charras 4be4c5f4a1 Avoid compil warning (when possible) about deprecated GetArchName() in wx >=3.1.5.
Use GetArchName() in wx >= 3.1.6.
2022-06-25 11:25:45 +02:00
Seth Hillbrand 03c279ffd4 ADDED: Threadpool
Thread pools are long-lasting executors that have close to zero overhead
when launching new jobs.  This is advantageous over creating new threads
as we can use this for threading smalling jobs and smaller quanta.  It
also avoids the heuristics needed to determine the optimal number of
threads to spawn
2022-06-24 22:59:24 +00:00
Seth Hillbrand a118f20464 Hide cursor while warping on Wayland
Based on https://gitlab.freedesktop.org/xorg/xserver/-/issues/734 we
hide the window cursor prior to warping, which allows XWayland to
reposition the cursor.  This is only performed when Wayland is detected;
all other configurations call the standard warp routine

Fixes https://gitlab.com/kicad/code/kicad/issues/9785
2022-06-24 09:56:43 -07:00
Seth Hillbrand 7b9dc1b9f0 Fix Eeschema Arc plotting
The start/end point plotting is not reliable for eeschema.  We need to
preconvert to angles to get the correct winding as the default plotter
conversion in the PLOTTER class makes pcbnew-based assumptions

Fixes https://gitlab.com/kicad/code/kicad/issues/11885
2022-06-22 16:46:28 -07:00
Seth Hillbrand a852286eb5 Cleanup compile warnings 2022-06-21 17:04:56 -07:00
Fabien Corona 976670e987 Move 3D controls to a new class 2022-06-21 23:38:22 +00:00
Miklós Márton f2382a7bd1 Add Make selected active/inactive actions to the symbol libraries
context menu

Fixes #11372
2022-06-21 23:32:02 +00:00
Seth Hillbrand 67d9729311 Treat all units equally when converting to string
Excessive trucation in mils can lead to data loss when round-tripping
values.  Better to keep decimal count consistent between units

Fixes https://gitlab.com/kicad/code/kicad/issues/11878
2022-06-21 15:21:57 -07:00
Zoltan Puskas 1c04eb6d0e Fix -Wuninitialized warning in tool manager
Fixes #11866
https://gitlab.com/kicad/code/kicad/-/issues/11866
2022-06-20 22:40:42 +00:00
Jeff Young 231ac567b8 Bug fixes for printing vias.
Blind/buried and microvias didn't get their layers trimmed properly,
nor did through vias with dropped pads.

Fixes https://gitlab.com/kicad/code/kicad/issues/11851
2022-06-19 11:58:21 +01:00
jean-pierre charras 6f05bb9a83 EDA_TEXT::printOneLineOfText(): fix incorrect line thickness calculation.
(It was not the same as the one used to draw texts)
Fixes #11849
https://gitlab.com/kicad/code/kicad/issues/11849
2022-06-18 09:31:14 +02:00
Jeff Young 97b0005780 More caching for DRC.
Also fixes a bug where some physical clearance tests would be run even
if the clearance was 0 (or if the rule was set to IGNORE).
2022-06-17 23:58:31 +01:00
jean-pierre charras f20cb0fda8 Activate teardrops: remove advanced config option and add teardrop keywords in files. (the ability to read teardrop keywords was added some time ago) 2022-06-17 19:42:27 +02:00
jean-pierre charras c2707e0c8d Add some missing icons. 2022-06-17 17:51:19 +02:00
Jeff Young a7cb985b80 Don't allow PCBNew netclass cols in Eesceham and vice versa.
Fixes https://gitlab.com/kicad/code/kicad/issues/11804
2022-06-13 21:28:35 +01:00
jean-pierre charras fa5150b05f Add bitmaps paste_special to context menu. 2022-06-13 14:40:21 +02:00
Jeff Young 52bc2511cd Add a radioButton mode to IMAGE_BUTTON.
Fixes https://gitlab.com/kicad/code/kicad/issues/11797
2022-06-12 20:09:46 +01:00
Jeff Young f22cf1cc3a Fill in missing bits of LAYER variable for printing/plotting.
Fixes https://gitlab.com/kicad/code/kicad/issues/11788
2022-06-10 22:38:01 +01:00
Seth Hillbrand 4790257616 Don't break alphabetical sorting on search
When using the "Filter" search for footprints/symbols, the least
surprising outcome is that the window filters the existing
(alphabetically sorted) list but does not change the display order based
on scoring.

This also needs to adjust the fix for
https://gitlab.com/kicad/code/kicad/-/issues/259 as that assumed the
selected element would be the first below the group (not the case if we
are sorting alphabetically)

Fixes https://gitlab.com/kicad/code/kicad/issues/11746
2022-06-10 11:48:47 -07:00
dsa-t 3a76435eda OpenGL: Use glGetProgramiv instead of the extension function. 2022-06-09 19:37:42 +00:00
Jeff Young bf71cada4e ADDED: User viewports for 3D viewer.
Fixes https://gitlab.com/kicad/code/kicad/issues/5724
2022-06-06 22:24:02 +01:00
Jeff Young 244042ce51 Keep footprint selection in Symbol Chooser history list.
Fixes https://gitlab.com/kicad/code/kicad/issues/1841
2022-06-06 22:24:02 +01:00
jean-pierre charras 9f38fa43cd Fix some minor compil and Coverity warnings. 2022-06-05 11:44:49 +02:00
Jeff Young dd2e12bdf1 Formatting. 2022-06-04 22:22:55 +01:00
jean-pierre charras bb2fc2860a Pcbnew, physical layer names: never translate them (they are proper noun)
physical layer names are not translated in files, but they were translated
in UI. Using these translated names can create issues and misunderstanding for users.
Now physical layer names are seen as proper nouns and are never translated.
Fixes #11715
https://gitlab.com/kicad/code/kicad/issues/11715
2022-06-04 11:02:23 +02:00
Jeff Young d0023add81 Code clarity. 2022-06-03 23:27:10 +01:00
Roberto Fernandez Bautista 41bf397d24 CADSTAR Schematic: Fix parsing of ATTRCOLORS.
Apparently there can be a `INVISIBLE` token. Unclear what it means,
but lets read it anyway
2022-06-03 23:07:12 +02:00
Jeff Young 7ede2c70bd Performance enhancements for hotkeys.
Fixes https://gitlab.com/kicad/code/kicad/issues/11592
2022-06-03 00:36:33 +01:00
Mike Williams 857990a883 Hierarchy: turn into a left side pane
Drop auto-closing option as well.
2022-06-02 21:56:17 +00:00
Jon Evans f4372a2de9 UNIT_BINDER should support long long ints
Fixes https://gitlab.com/kicad/code/kicad/-/issues/10870

(cherry picked from commit eb1164fc93)
2022-05-31 21:54:51 -04:00
Jeff Young abba1b04bd Add "Enter Sheet" to Sheet tool (context menu & double-click).
Fixes https://gitlab.com/kicad/code/kicad/issues/11531
2022-05-30 14:08:26 +01:00
Jeff Young 5cae4cf918 Give zoom tool its own menu.
Fixes https://gitlab.com/kicad/code/kicad/issues/11702
2022-05-30 11:44:02 +01:00
Jeff Young 5c3b6980a5 Tooltip for bounding boxes. 2022-05-29 21:30:14 +01:00
Mike Williams dabd42bbc4 Schematic: Automatic Symbol Annotation 2022-05-27 15:54:00 +00:00
Seth Hillbrand c0a9a02591 Handle settings sequencing
Avoids crash when window close ordering places 3d viewer after the
common settings are closed
2022-05-25 16:56:54 -07:00
Seth Hillbrand 5cd91a952f Adding Ukranian language option
Ukranian translations added via weblate.  This enables the menu option
to view them
2022-05-25 16:37:48 -07:00
Mario Luzeiro ef4f0b49fc 3D-Viewer, raytracing: implement bevel edges on item layers 2022-05-25 00:11:46 +00:00
jean-pierre charras 57e59a4959 Pcbnew, on line DRC when moving footprints: add visible collisions between courtyards 2022-05-20 12:58:05 +02:00
Seth Hillbrand 2da470e1f9 Prevent programatic changes from sending events
When setting search history using the CTOR, we need to avoid triggering
an event that will run independent of the user interaction.  Our
LIB_TREE interface is fragile on GTK and needs explicit conditions to
avoid segfaults

Fixes https://gitlab.com/kicad/code/kicad/issues/11633
2022-05-19 09:12:15 -07:00
Marek Roszko 417f2f357c Cleanup naming of shader params/uniforms 2022-05-19 07:49:24 -04:00
Jeff Young 23fb4c7433 Uniformly use a single facility for location-less prime events.
Also implements a uniform mechanism for avoiding auto-scroll after
a prime event or dialog which results in a mouse position at the
edge of the canvas.

Fixes https://gitlab.com/kicad/code/kicad/issues/11057
2022-05-16 23:43:00 +01:00
Jeff Young f2fc78f380 Don't copy modifiers to prime events.
The modifiers go with the hotkey, not with the action.

Fixes https://gitlab.com/kicad/code/kicad/issues/11618
2022-05-16 13:51:40 +01:00
Jeff Young 38e5faf21b Overhaul bitmap text for performance.
Also adjusts metrics to better match stroke font.

Also removes text-halo highlighting as it's too expensive to re-render
when the zoom changes.

Fixes https://gitlab.com/kicad/code/kicad/issues/11460
2022-05-14 20:09:54 +01:00
Marek Roszko 6d7835e742 Switch shader storage to char arrays 2022-05-14 11:39:46 -04:00
Marek Roszko 88c7322a0d EDA_TEXT Get/SetTextSize should use VECTOR2I 2022-05-14 08:16:15 -04:00
jean-pierre charras 5c7a79e287 (WIP) Teardrop: use a specific attribute in .kicad_pcb file to identify teardrops
the new attribute is:
"(attr (teardrop type padvia)))" or "(attr (teardrop (type track_end)))"
However (Work in Progress) writing this attribute in file is temporarily disabled.
2022-05-14 09:50:00 +02:00
jean-pierre charras 20d1d0705e Fix a few issues related to field names and their translation. - Do not use translated field names outside strings displayed in dialogs. - fix code that does not work well with default locale. - fix some (not all) I18n issues in DIALOG_UPDATE_SYMBOL_FIELDS. 2022-05-13 11:45:37 +02:00
Marek Roszko 8288f24264 Move all the shaders to glsl files (and fix the processor more) 2022-05-12 23:37:44 -04:00
Marek Roszko 6188f632b9 Initial implementation of shader translation to cpp at build time 2022-05-12 23:37:44 -04:00
Seth Hillbrand 110728af48 Prevent focus stealing in some Linux WMs
OnEnter events will only raise the windows within KiCad rather than
between applications

Fixes https://gitlab.com/kicad/code/kicad/issues/10809
2022-05-12 11:06:30 -07:00
Marek Roszko abfe944299 Split gal cmake target to a subdirectory 2022-05-11 20:22:22 -04:00
Marek Roszko f85251ef75 Fix eda_doc not looking for schematic locally
It looks like this was overlooked by Jeff in 2020 not realizing eda_doc isn't built under eeschema but common in cc9ac37a0e
2022-05-10 21:28:48 -04:00
Mike Williams b7a77a9498 Schematic: Add CSV export to Symbol Fields Table 2022-05-09 12:02:12 -04:00
jean-pierre charras 623dc8980f PS_plotter: fix a minor issue (forgotten in commit 91dfa79a). 2022-05-09 12:34:25 +02:00
Marek Roszko ccf235a8c3 Suppress wx3.1.6 assert because it wants the window handle for dpi 2022-05-08 19:26:41 -04:00
Jeff Young 643fa65fc2 Don't allow cut or paste into read-only grids.
Fixes https://gitlab.com/kicad/code/kicad/issues/11541
2022-05-08 19:06:46 +01:00
Jeff Young 717ea48395 Don't interpred IS_CHANGED as busy.
Fixes https://gitlab.com/kicad/code/kicad/issues/11570
2022-05-06 22:36:30 +01:00
Jeff Young 30ecca464d Rename mechanical_clearance -> physical_clearance.
Fixes https://gitlab.com/kicad/code/kicad/issues/11554
2022-05-06 15:54:46 +01:00
jean-pierre charras ee4e50518f EDA_LIST_DIALOG: fix a crash due to use after delete data.
A list of wxArrayString was used in dialog, but not stored in this dialog.
(and this list was deleted by the caller)
A copy is now stored in dialog.
Fixes #11543
https://gitlab.com/kicad/code/kicad/issues/11543
2022-05-03 17:21:34 +02:00
jean-pierre charras 3ef397b4bd PDF plotter: fix a not working PDF_PLOTTER::Arc() function. 2022-04-29 10:53:31 +02:00
jean-pierre charras 65cdef0290 Better code. 2022-04-29 10:52:41 +02:00
Marek Roszko b123f7f35f Extra sanity to avoid a gal repaint when not initialized 2022-04-28 18:34:44 -04:00
jean-pierre charras 91dfa79a67 Plot pad outlines on Fab files: fix many issues.
Depending on plotter type and pad type, the plotted shapes were not always the outlines,
but a outline inside the pad shape (due to legacy reasons).
In many cases the plotted shape was in fact incorrect.
(only noticeable for very small pads)
Now the actual pad outlines are plotted without modification.
Fixes #11484
https://gitlab.com/kicad/code/kicad/issues/11484
2022-04-28 12:42:43 +02:00
Jeff Young 47e002a33d Add font to status bar for text objects. 2022-04-26 18:52:53 +01:00
Jeff Young 85680886f8 Adjust outline font SCH_TEXT positioning so it better matches SCH_FIELD text. 2022-04-26 12:52:29 +01:00
Jeff Young 662c1ce88f Improve outline font overbar metrics. 2022-04-26 12:52:29 +01:00
Jeff Young 90bfe2d94b Remove Save Copy As from fp editor, and rename to Save a Copy elsewhere.
It's still used by Eeschema and PCBNew when not in stand-alone mode.

Fixes https://gitlab.com/kicad/code/kicad/issues/9185
2022-04-24 19:46:57 +01:00
Jeff Young 9b6a10fa6a Fix mirrored overbars.
Also fixes a bug that we'd render too many glyphs when some glyphs
were combined.  (To test, render "text" in Apple Chancery.  The opening
"te" is combined into a ligature after which we render an extra 't' at
the end.

Fixes https://gitlab.com/kicad/code/kicad/issues/11441
2022-04-23 14:21:12 +01:00
Jeff Young c6f83b6dec ADDED Duplicate Footprint, Rename Symbol and Rename Footprint. 2022-04-22 22:06:51 +01:00
Jeff Young fb1e1aec9a Add tab processing for outline fonts. 2022-04-20 12:00:19 +01:00
Jeff Young 37a2ee7d03 Replace tab processing that got lost in move to new font engine.
Fixes https://gitlab.com/kicad/code/kicad/issues/11123
2022-04-20 00:06:34 +01:00
Jeff Young 08f15fe587 ADDED New Library functionality to Footprint/Symbol Save As.
Fixes https://gitlab.com/kicad/code/kicad/issues/2343
2022-04-19 19:55:30 +01:00
Jeff Young 7f4f5f2882 Save and re-load query string in Choose Symbol dialog.
While this has been requested on its own, it's primarily done here
because wxWidgets decided to send a SEARCH_CANCEL from a wxSearchCtrl
when hitting <ENTER> if the search control holes the empty string.
This causes us to not do a symbol instert in the Chooser dialog.

Fixes https://gitlab.com/kicad/code/kicad/issues/10169

Fixes https://gitlab.com/kicad/code/kicad/issues/7699
2022-04-17 00:33:56 +01:00
Jeff Young d01c2a6614 Add PCB_ARCs to type enum.
Fixes https://gitlab.com/kicad/code/kicad/issues/11384
2022-04-14 17:09:27 +01:00
Jeff Young 739f4d0a1e Improvements to Eagle dimension importing.
1) Import leaders
2) Drop radius and angle dimensions
3) Import dimension text sizes
4) Correctly interpret which side dimension offset is on
5) Correclty handle offsets for non-cardinal dimensions

Fixes https://gitlab.com/kicad/code/kicad/issues/10763
2022-04-12 15:47:39 +01:00
Marek Roszko 392ed5fecd Add policy to enable/disable pcm 2022-04-12 10:08:34 -04:00
Marek Roszko f88e0481c8 Change the behavior of ACTION_MENU::Add to require clones if required outside the function
This reverts commit 2a5769607f.
2022-04-11 19:03:01 -04:00
Seth Hillbrand 2a5769607f Revert "Change the behavior of ACTION_MENU::Add to require clones if required outside the function"
This reverts commit 403992a6f4.
2022-04-11 11:39:03 -07:00
jean-pierre charras ac8e2d0768 Ensure "Open Recent" and "Clear files" menu titles are updated after language change. 2022-04-11 11:09:05 +02:00
Marek Roszko 403992a6f4 Change the behavior of ACTION_MENU::Add to require clones if required outside the function
Fix https://gitlab.com/kicad/code/kicad/-/issues/10994
2022-04-10 22:38:13 -04:00
Marek Roszko 5bb2cdf73d Revert "Stop leaking submenu items"
This reverts commit 34c70a51ea.
2022-04-10 22:33:43 -04:00
Marek Roszko 34c70a51ea Stop leaking submenu items
Our menu bar code is interestingly complex. But we were throwing away newly made menu items to the void in the cases of constructed on the fly submenus
2022-04-10 22:04:48 -04:00
Jeff Young c2bf691e56 Don't allow grid dialog to be resized, but do set help text before laying out.
Fixes https://gitlab.com/kicad/code/kicad/issues/10171
2022-04-10 23:41:46 +01:00
Marek Roszko fd83e675a2 Don't pointlessly construct a wxBitmap 2022-04-10 07:47:13 -04:00
Marek Roszko b3c5054d6c Add initial system policy checking for turning off data collection 2022-04-09 14:05:28 -04:00
Roberto Fernandez Bautista 0015574a60 ${SHEETNAME} represents the sheet name + introduce ${SHEETPATH}
CHANGED: The text variable ${SHEETNAME} now always represents the name of the
sheet when used anywhere in the schematic editor, including the title block

ADDED: A new text variable ${SHEETPATH} which is replaced with the path to the
current sheet - e.g. "/Sheet 1/Sheet 2".

To ensure backward compatibility, the default drawing sheet now uses
${SHEETPATH}. Custom drawing sheets will need to be manually edited.
2022-04-09 15:45:58 +01:00
jean-pierre charras 1d5be1adeb Cairo GAL: fix incorrect size and thickness of text drawn by GAL::BitmapText() 2022-04-08 18:40:26 +02:00
jean-pierre charras 6e35d5473e Fix an issue on wxWidgets 3.1.6 when printing bitmaps 2022-04-08 18:40:25 +02:00
Jeff Young 007906cd16 Fix a degeneracy bug in arc collisions.
This also fixes a failure to use the correct effective width for
shapes (which might, for instance, inherit their widths from schematic
defaults, netclasses, etc.).

Fixes https://gitlab.com/kicad/code/kicad/issues/11358
2022-04-08 16:15:58 +01:00
Jeff Young 079d4a603a Improve transparency handling while plotting.
Only SVG can actually handle transparency, but we should at least mimic
the color value of other transparent fills by blending with a (presumed)
white paper.

Fixes https://gitlab.com/kicad/code/kicad/issues/11304
2022-04-08 11:40:53 +01:00
Jeff Young dead84e7a1 A right-to-left single-char sel followed by typing leaves cursor the same.
Fixes https://gitlab.com/kicad/code/kicad/issues/11349
2022-04-07 11:51:58 +01:00
Seth Hillbrand 91a3024e34 Check pointer after yield
Yielding can change the status of the m_rcItemsProvider, so we need to
check after the yield to ensure we don't try to dereference it after
freeing

Fixes https://gitlab.com/kicad/code/kicad/issues/11347
2022-04-06 15:59:29 -07:00
Jeff Young 68ca385e07 On-the-fly translations for pin electrical types.
Also add on-the-fly translation for editor title bars.

Fixes https://gitlab.com/kicad/code/kicad/issues/11324
2022-04-05 13:57:28 +01:00
Wayne Stambaugh 0bdbfe1446 Pcbnew: add plot on all layers feature.
ADDED: Any addition board layers can be plotted on all selected board layer
when plotting.

CHANGED: The new plot to all layers feature made the plot edge cuts option
obsolete.  Users must now select the edge cuts layer from the list of
plot to all layer selections to include edge cuts on all layers when
plotting.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/2449
2022-04-02 14:33:40 -04:00
Mark Roszko f0f33ef1d3 Introduce sentry for crash data collection 2022-04-02 01:21:55 +00:00
Jeff Young 9402b2aeda Take fill into account when hit-testing arcs.
Fixes https://gitlab.com/kicad/code/kicad/issues/11305
2022-04-01 22:40:29 +01:00
Seth Hillbrand 49c48e2fe0 Consistently handle env/prj variables
User-defined variables cannot be used for internally-reserved variables

Fixes https://gitlab.com/kicad/code/kicad/issues/11232

(cherry picked from commit c23679d9bd)
2022-03-31 17:05:53 -07:00
Jeff Young 48a70a65b5 Fix a typo and add a missing color definition.
Fixes https://gitlab.com/kicad/code/kicad/issues/10351

Fixes https://gitlab.com/kicad/code/kicad/issues/10352
2022-03-31 22:10:45 +01:00
markus-bonk 1a9ef4bd0f Add support for using a SpaceMouse to pan & zoom in the schematic editor. 2022-03-31 19:03:41 +00:00
Jeff Young e8a543f1ea Colors for text in PL_Editor and Eeschema.
Fixes https://gitlab.com/kicad/code/kicad/issues/1952
2022-03-31 19:43:56 +01:00
Jeff Young 659e61355c Adjust text spacing a bit more so 6.0 boards are more likely to pass DRC. 2022-03-30 16:32:24 +01:00
Jeff Young 4424865577 Make sure spaces at start of line get accounted for.
Fixes https://gitlab.com/kicad/code/kicad/issues/11276
2022-03-30 16:32:23 +01:00
Wayne Stambaugh c0d8657d97 Plot on all layers prep work.
We only need one bottom to top layer sequence definition.

Plot a sequence of layer IDs (LSEQ) in the order of the sequence.

Add helper method to layer set (LSET) to create a sequence of layer IDs
using another sequence for ordering.
2022-03-29 16:08:23 -04:00
Jeff Young 6a3c5b6e0e Adjust bottom- and centre-aligned linespacing to better match 6.0.
Fixes https://gitlab.com/kicad/code/kicad/issues/11269
2022-03-29 19:31:02 +01:00
Marek Roszko d440ff7c37 Try and ducktape boost api change for seeder
idk what im doing
2022-03-27 21:47:47 -04:00
Marek Roszko 7a0d8c2fe0 Remove extra boost include 2022-03-27 21:43:18 -04:00
Jeff Young 1c158a4ea4 Use a standard HTML reporter for Symbol Checker. 2022-03-26 14:22:31 +00:00
Wayne Stambaugh 7da7864f5e Fix some Coverity issues. 2022-03-25 15:51:05 -04:00
Johannes Maibaum edc7261099 Fix stock templates path for flatpak
Commit ad251b7b broke the template path
lookup for flatpak via `PATHS::GetStockTemplatesPath()`. Fix this by
using `::GetStockEDALibraryPath()` in all EDA Library related path
lookup functions.

`GetStockEDALibraryPath()` effectively does the same as
`GetStockDataPath()`, but it takes care to check the
`KICAD_LIBRARY_DATA` build config, which is being used by flatpak to
point to the flatpak EDA Library extensions in
`/app/extensions/Library/`.

Closes #11174
2022-03-25 08:15:59 +01:00
Marek Roszko 3f0f846435 Read the boost manual right-side up 2022-03-24 18:13:39 -04:00
Wayne Stambaugh 7b2d9dfc0c Fix some Coverity uninitialized scalar variable issues. 2022-03-24 13:17:07 -04:00
Jeff Young 92a229eec7 ADDED separate user-defined color for page limits.
Fixes https://gitlab.com/kicad/code/kicad/issues/5271
2022-03-24 14:11:41 +00:00
Marek Roszko 2e689901fc Ensure the kiid generator rng is actually uniquely seeded each start 2022-03-23 18:49:51 -04:00
Jeff Young cf33cfcad1 Round Altium unit conversions to nearest 10nm.
Fixes https://gitlab.com/kicad/code/kicad/issues/6462
2022-03-22 23:22:44 +00:00
jean-pierre charras 21144481d2 PLOTTER: do not clamp coordinates to an arbitrary value.
Previously, coordinates were clamped to +- 60 inches. It makes no sense to
clamp them at plotter level: max cooed depends on the editor (schematic/board...)
Rename MAX_PAGE_SIZE_MILS to MAX_PAGE_SIZE_EESCHEMA_MILS and use it only for Eeschema.
Fixes #11196
https://gitlab.com/kicad/code/kicad/issues/11196
2022-03-22 10:32:36 +01:00
Seth Hillbrand 9722a05820 Attempt to fix the Mac DPI grid mixing
When moving windows between monitors on Mac that changes the DPI, we
observe incorrect re-sizing of columns and rows.  This attempts to
rectify the situation by avoiding DPI changes for Mac builds.

Fixes https://gitlab.com/kicad/code/kicad/issues/10586
2022-03-22 00:02:05 +00:00
jean-pierre charras d27d2e0ad9 Pcbnew: fix lost of focus after clicking on a wxChoice in toolbar.
After changing track width, via size, grid or zoom from the toolbar, the
canvas has no longer the focus on Windows. So we force the focus after clicking
on these widgets.
Fixes #11103
https://gitlab.com/kicad/code/kicad/issues/11103
2022-03-21 18:10:07 +01:00
Jeff Young 4f62960334 Update message panel from PCB point editor and SCH drawing tools.
Fixes https://gitlab.com/kicad/code/kicad/issues/11186
2022-03-21 10:32:36 +00:00
jean-pierre charras 09d8ac7d7c Zoom wxChoice in horizontal toolbar: display the actual or nearest zoom level. 2022-03-20 18:41:38 +01:00
jean-pierre charras 2bba277c5e Unit binder: fix hang and DIALOG_WIRE_BUS_PROPERTIES: fix uninitialized variable.
The hang can be Windows specific.
2022-03-19 10:22:41 +01:00
Seth Hillbrand 3b6e8464c2 Fix expand variables for built-in
Allow falling back to the alternate variable definitions if the built-in
text block variables are not set.

Also push the project into variable resolution when plotting

Fixes https://gitlab.com/kicad/code/kicad/issues/11168

(cherry picked from commit c44d31fcfb)
2022-03-18 16:47:18 -07:00
Seth Hillbrand ba4b8bfa69 Prevent WX_PROGRESS_REPORTER from dominating system
Raising the window on each updateUI prevents multitasking by stealing
focus from the current window.
2022-03-18 15:50:44 -07:00
Jeff Young dc39703d0e Bring pcbnew print dialog in line with plot.
Fixes https://gitlab.com/kicad/code/kicad/issues/2171
2022-03-18 13:37:20 +00:00
jean-pierre charras 1a493ed9ed Gerber plotter: fix incorrect handling of arcs in polygons.
Fixes #11156
https://gitlab.com/kicad/code/kicad/issues/11156
2022-03-17 12:55:24 +01:00
Jeff Young ce21da8cbb Select all when UNIT_BINDER is a token rather than a string.
Fixes https://gitlab.com/kicad/code/kicad/issues/9757
2022-03-16 14:56:32 +00:00
Jeff Young 4225f92573 Slight improvements to via drawing.
Fixes https://gitlab.com/kicad/code/kicad/issues/8717
2022-03-16 14:56:32 +00:00