7
mirror of https://gitlab.com/kicad/code/kicad.git synced 2025-04-18 00:29:10 +00:00
Commit Graph

456 Commits

Author SHA1 Message Date
Jeff Young
877c6bce89 Printing is not zoom-specific.
(Some of these items don't currently get printed, but
there's no sense in leaving a latent bug around in case
we ever change our minds.)
2025-03-07 13:01:00 +00:00
Wayne Stambaugh
e09b095533 Common folder housekeeping part 3. 2025-01-16 11:50:08 -05:00
Sam Schweigel
373d9c9281 Disable touch events on OSX only, allowing them on GTK and Windows
Fixes https://gitlab.com/kicad/code/kicad/-/issues/14374
2025-01-09 23:00:53 +00:00
John Beard
527faddbfd GAL: provide constants for LoD HIDE/SHOW and a scale helper
Saves a mishmash of local HIDE/SHOW defs along with various literals.

Also provide a function that computes the scale at which a given
IU size becomes (notionally) a certain size on screen. While this
is a simple division, it's a bit opaque in terms of meaning.

Also it means the divide by zero case can be more universally
defended-against, which has traditionally been a bug opportunity.
2025-01-02 22:59:31 +08:00
Seth Hillbrand
0b2d4d4879 Revise Copyright statement to align with TLF
Recommendation is to avoid using the year nomenclature as this
information is already encoded in the git repo.  Avoids needing to
repeatly update.

Also updates AUTHORS.txt from current repo with contributor names
2025-01-01 14:12:04 -08:00
John Beard
f7aded00c7 Pcbnew: draw clearance lines on their own GAL layers
This tidies up quite a performance hit on layer change
caused by repainting vias, pads and tracks for their
clearances.

Instead, on a layer change, just disable any old clearance
layer and enable the new one (if any).

Fixes: https://gitlab.com/kicad/code/kicad/-/issues/19404
2024-12-31 00:53:10 +08:00
Alex Shvartzkop
bc6b620b8f gerbview: Sort layer maps after reordering view layers.
Otherwise we get previous freed pointers in m_orderedLayers.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/19394
Fixes KICAD-P65
2024-12-30 21:29:35 +05:00
Jon Evans
c77426cc12 Fix a few issues with via and pad rendering
The refactor of VIEW::SortLayers broke it, but this
was hard to notice until my recent changes.
2024-12-28 12:42:52 -05:00
Jon Evans
4eb68c2840 Fix pad and via opacity handling
With new rendering style, these need unique VIEW layers per copper layer
2024-12-28 10:50:58 -05:00
Seth Hillbrand
e9bc8cfe9d Give Clipper1 a Viking funeral
Clears out the last spot where we were only using Clipper1 (how'd I
miss that?) and remove all calls to the Clipper1 structures
2024-12-23 17:12:09 -08:00
Seth Hillbrand
ab3f597871 Fix ReorderLayerData to handle sparse maps
aReorderMap might only have a few layers needing changing, so preserve
existing map if it doesn't exist in the new map

Fixes https://gitlab.com/kicad/code/kicad/-/issues/19185
2024-12-02 09:01:34 -08:00
jean-pierre charras
e96774bc1f Pcbnew: fix not displayed filled areas of zones when selected. 2024-11-27 09:41:01 +01:00
Seth Hillbrand
d7137c4a05 Cleanup VIEW class
Ununsed m_dynamic class variable
2024-11-21 18:59:48 -08:00
Seth Hillbrand
76176274cf Improve function naming
Having sortLayers and SortLayers in the same class was confusing.  Also
removed the asserting calls in view updates
2024-11-21 18:04:23 -08:00
Seth Hillbrand
9c08354485 More VIEW refactoring
Move m_layers into map, add layer existence checks.  Skip layer sorting
overhead for OpenGL display b/c we use z-level for it anyway
2024-11-21 15:41:56 -08:00
Seth Hillbrand
9dfcb6a362 Cleanup ViewGetLayers()
Old style c-array replaced with vector returns
2024-11-21 13:18:36 -08:00
Jon Evans
71a0a638a0 Remove unused pad layers and simplify pad colors 2024-11-16 11:27:20 -05:00
John Beard
dbf68a80b8 GAL: also scope layer depth push/pops
This means that an early return or an exception between
a manual Push/Pop (or an omission of the Pop) cannot
corrupt the layer stack.

It also means the GAL doesn't have to maintain its own
stack (with the in-scope GAL_SCOPED_ATTRS taking that role).

Reomve the Push/PopDepth functions, as they're only ever
used in pairs, and doing it manually needs more care.
2024-11-04 20:41:44 +08:00
John Beard
9c9542deea Bind multiply-modified scroll events to the increment action
Implemented as handling un-consumed scroll events that the
WX_VIEW_CONTROLS doesn't want because it has too many mods
set. Then dispatch these as TA_MOUSE_WHEEL events.

The default action from the selection tools is to run the
'increment' ACTION, which is implemented differently in the
various tools: eeschema can increment labels, symedit
does pin names and numbers, and fpedit does pad numbers.
2024-10-26 16:00:58 +08:00
Mike Williams
53022ab347 mouse settings: add reverse zoom option
Fixes: https://gitlab.com/kicad/code/kicad/-/issues/18583
2024-09-23 17:09:44 +00:00
Seth Hillbrand
b1093f1daf Fix some signed/unsigned comparisons 2024-07-08 13:38:11 -07:00
Alex Shvartzkop
a866c46d3b Store VIEW_ITEM index to avoid std::find in removal.
-280 ms on https://gitlab.com/kicad/code/kicad/-/issues/18148
2024-07-03 20:32:37 +03:00
Alex Shvartzkop
340c84c54a Allow leaving nullptr values in VIEW::m_allItems, then defragmenting later when removing items.
Gives -1 s performance boost when reverting a commit.
2024-07-03 16:27:03 +00:00
Jeff Young
7fef6e8d83 Use view's RTree for redrawing netnames. 2024-06-14 00:20:37 +01:00
Jon Evans
74517856ca Make touchscreen events Windows-only
They break things on macOS and probably also on GTK
according to the wxWidgets documentation.
2024-06-09 13:18:32 -04:00
Alex Shvartzkop
7bca6cdea7 Make crosshair follow view movement when using pan/zoom gestures. 2024-06-09 18:46:42 +03:00
Alex Shvartzkop
832393b07c Remove debug line. 2024-06-08 17:25:49 +03:00
Alex Shvartzkop
8f8a68229c Handle touchscreen gesture events for zoom/pan. 2024-06-08 16:00:34 +03:00
Marek Roszko
e9fde0051f Don't let CaptureCursor fight modal dialog 2024-05-24 18:57:24 -04:00
John Beard
ce758adca3 Enable horizontal scroll panning
Allow a horizontal scroll event to fall through to the panning branch.

This still restricts zooming to use only the vertical axis, but it
(re-?)enables the horizontal pan function that currently doesn't work
even if the user has set "allow horizontal panning", as the horizontal
scroll doesn't have a modifier, which is the default for vertical scroll
zoom, and thus it skips over the whole panning branch.

If the user has not set horizontal panning, the earlier early return
means that there is no handling of any horizontal scroll event, so this
won't change anything for these users.
2024-05-20 19:23:23 +08:00
Alex Shvartzkop
865e3a9f3c Improvements when working closer to 32-bit integer limits.
- Changes BOX2 size to extended coordinates.
- Adds BOX2ISafe to construct a BOX2I that will fit in int32.
- Adds more checks.
- Safer computations.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/17670
2024-04-23 16:34:07 +00:00
Marek Roszko
b2115445cc Make screenCenter a VECTOR2D for now to silence c++ 20 build error 2024-04-12 21:55:19 -04:00
Jeff Young
b285545aee Don't take too long worrying about very small exposed areas.
(And in particular, don't take forever if the min / 10 results
in step being 0.)
2024-03-21 18:14:29 +00:00
Alex Shvartzkop
463b609993 Disable infinite panning when using XWayland.
Cursor warping doesn't work properly in this scenario.

https://gitlab.com/kicad/code/kicad/-/issues/14109
2024-03-12 10:31:23 +03:00
Yon Uriarte
464f185387 Performance
Cache VIEW_ITEM's bbox in VIEW_TREE for faster removals.

Fixes https://gitlab.com/kicad/code/kicad/issues/16841
2024-03-02 00:03:46 +00:00
jean-pierre charras
9c05b61d7b VIEW::ReorderLayerData(): fix an issue that creates crash in Gerbview
Fixes 
https://gitlab.com/kicad/code/kicad/-/issues/16558
2024-01-09 15:13:57 +01:00
Jeff Young
d05675f673 Minor performance wins. 2024-01-04 16:26:32 +00:00
Ian McInerney
e6632bb983 Rename PCB IO classes/files 2023-12-24 01:22:21 +00:00
Jon Evans
1c895fe18c Improve rendering of tuning status popup
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16304

Add dedicated UI rendering layers

Switch to screen-space rendering to avoid blurriness

Fix a bug in OpenGL GAL that causes layer
ordering to be broken when using Scale

Fix some issues with VIEW_GROUP layer ordering
2023-12-19 22:38:21 -05:00
Seth Hillbrand
6633eadfc8 Enclose wxCHECK* macros in braces
The macros are if/else statements without enclosing structures which
leads to unexpected evaluation when expanding in an existing conditional
that does not have braces already.
2023-10-29 10:52:05 -07:00
Jeff Young
87621817bf Fix typo. 2023-10-14 18:22:17 +01:00
Jeff Young
5f5113c80a Pick up current rule values when editing meanders. 2023-10-14 15:04:18 +01:00
Alex Shvartzkop
d7863b09c5 Move CORNER_STRATEGY out of SHAPE_POLY_SET. 2023-10-06 15:42:50 +03:00
jean-pierre charras
c2db20d745 Fix a link issue on mingw in debug mode. 2023-09-30 16:08:54 +02:00
jean-pierre charras
e1d7d1bca7 Fix a link issue on mingw/msys2 2023-09-27 10:20:18 +02:00
Marek Roszko
7010f7963c EDA_ITEM does not belong in VIEW 2023-09-25 19:30:42 -04:00
Marek Roszko
f8e33be07f Break out the boundary violating parts of gal into common through subclassing 2023-09-23 09:37:47 -04:00
Alex Shvartzkop
3ee2086f95 Don't freak out when can't warp the pointer. 2023-09-22 05:10:42 +03:00
jean-pierre charras
e152f97f35 Fix minor Coverity warnings. Small code cleaning in pcb_parser.cpp 2023-09-21 11:33:29 +02:00
Alex Shvartzkop
768d4a6782 Wayland: fix cursor warping on KDE and Weston, add logging. 2023-09-18 12:56:54 +00:00