Commit Graph

5145 Commits

Author SHA1 Message Date
Seth Hillbrand f950d96324 Prevent dereferencing frame on exit
Processing a menu event for quitting results in the frame being
destroyed.  This crashes the program when it tries to access the newly
freed frame to check for autosave data.  We bind the closing flag into
the base program which will be the last item freed on exit to ensure we
can correctly check for data loss

Fixes https://gitlab.com/kicad/code/kicad/issues/8638
2021-11-15 10:07:28 -08:00
Jon Evans ae24daa033 Do not include text when computing drag origin for a group
Fixes https://gitlab.com/kicad/code/kicad/-/issues/9630
2021-11-14 11:54:04 -05:00
Jeff Young 66d9e7073f More discrete borders for Kicad mgr, PCM and appearances panels.
Fixes https://gitlab.com/kicad/code/kicad/issues/9616
2021-11-14 15:01:44 +00:00
Jeff Young 36fd62ccdc Another round of beautification changes for PCM.
Fixes https://gitlab.com/kicad/code/kicad/issues/9616
2021-11-14 13:11:19 +00:00
Wayne Stambaugh 53f5d616aa Coverity issue fixes. 2021-11-13 11:38:31 -05:00
Wayne Stambaugh f4b97eca63 Fix broken search stack behavior.
The overload of wxFilePath::FindValidPath() broke the normal behavior
when the file searched for existed in the current working directory.
This was causing the initial library table file to be copied from the
current working directory instead of from the list of search paths.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/9599
2021-11-13 07:52:25 -05:00
jean-pierre charras bfd09a4d16 Avoid calling deprecated wxPlatformInfo::GetArchName() in more than one place. 2021-11-13 09:52:08 +01:00
Mikolaj Wielgus 921105330a Remove printing files from Project Manager 2021-11-12 20:18:32 +00:00
Jeff Young 0b48876ce5 Decouple left and right pane minimums for splitter window. 2021-11-12 02:12:44 +00:00
Jon Evans 16a34e6adb Use heap instead of stack for CopyStreamData 2021-11-10 22:05:44 -05:00
Jon Evans 42eb063697 PCM: Treat color themes as read-only; don't copy to settings dir
Fixes https://gitlab.com/kicad/code/kicad/-/issues/9548
2021-11-09 22:11:59 -05:00
Jeff Young d4e3e67b8d Update kicad_prl file when doing a SaveAs.
Fixes https://gitlab.com/kicad/code/kicad/issues/9455
2021-11-09 17:25:18 +00:00
Jon Evans 75d75799f7 Move to getters/setters for aux and grid origin
Fixes https://gitlab.com/kicad/code/kicad/-/issues/8836
2021-11-08 22:36:40 -05:00
Seth Hillbrand 8f1dec61d2 Add swedish as option for translators
There appears to be activity in Weblate updating this language.
2021-11-08 11:41:14 -08:00
Mikolaj Wielgus 6d9456ea4d Fix opening files with spaces on Linux
`wxLaunchDefaultApplication()` fails on files with spaces on Unix
systems due to a programmer error. This is fixed in newer wxWidgets
versions, so let's backport it as a workaround.
2021-11-07 14:31:14 +00:00
Seth Hillbrand a153951be4 Don't set adaptive swapping over SSH
Remote connection GL drivers lie.  Don't trust them to support any
swapping other than their default

Fixes https://gitlab.com/kicad/code/kicad/issues/9532
2021-11-05 09:06:22 -07:00
Jeff Young b73793f9ef Rewrite text find/change routines to support word matching.
The old algorithm treated the "Words" checkbox as meaning match the
entire text, not match words, which is unlikely to be what anyone is
expecting.

Also fixes replace to replace all instances in a single text item
rather than just the first.

Reported on the forum.
2021-11-05 13:37:37 +00:00
Jeff Young 40b4052ad4 Improve text hittesting in schematics.
Text has a fairly big bounding box to account for descenders, overbars,
etc., but it makes it feel too sloppy for hittesting.  This change
allows selection disambiguation to look at the actual strokes of the
text when deciding what's "closest".

Fixes https://gitlab.com/kicad/code/kicad/issues/9506
2021-11-01 21:13:12 +00:00
Jeff Young e3ef101ec9 Add missing view controls for FP Editor Appearance Manager. 2021-10-31 16:33:03 +00:00
Jeff Young c8a8efa67b Save as for current version project files.
Fixes https://gitlab.com/kicad/code/kicad/issues/9455
2021-10-30 23:01:53 +01:00
Jeff Young 5f8e0ef1e0 Patch up arc hit-testing and printing for 6.0
This could use another look when we're not so near release.  We
really shouldn't need to special case eeWinding vs. not eeWinding.

Fixes https://gitlab.com/kicad/code/kicad/issues/9491
2021-10-30 15:10:07 +01:00
Tomasz Wlostowski 1051f11683 libeval_compiler: thou shalt not return pointers to std::vector members! (fixes an use-after-free crash in complex rule evaluation invoked by the router)
Fixes: https://gitlab.com/kicad/code/kicad/-/issues/9451
2021-10-29 16:48:36 +02:00
Wayne Stambaugh e1846c33d9 Coverity issue fix. 2021-10-29 10:43:40 -04:00
Wayne Stambaugh 1f7fd436a2 Move board object polygon code into the object source files.
Having the board object polygon code all defined in a separate file made
finding the polygon code for an object difficult to find.
2021-10-25 17:42:11 -04:00
Roberto Fernandez Bautista a79a221257 Array creator tool: Add option to assign unique reference designators
ADDED: Option to assign unique reference designators to footprints
created with the array tool [pcbnew]

CHANGED: Array creator dialog no longer displays pad numbering properties
when in the board editor. [pcbnew]

Fixes https://gitlab.com/kicad/code/kicad/-/issues/2354
2021-10-25 22:38:49 +01:00
Jeff Young c52cb229d0 Add unsaved-changes indication to Symbol Properties.
Fixes https://gitlab.com/kicad/code/kicad/issues/9443
2021-10-25 12:35:04 +01:00
Jeff Young c9d858eaf5 Add status bar message for constraint mode.
Fixes https://gitlab.com/kicad/code/kicad/issues/9282
2021-10-24 14:04:12 +01:00
Jeff Young fecb53b64f Clean up removal of separate front & back footprint text visibility.
Fixes https://gitlab.com/kicad/code/kicad/issues/9441
2021-10-22 21:14:15 +01:00
Seth Hillbrand 64bcaaefd1 Fix radiobox order for FILL_T
Fixes https://gitlab.com/kicad/code/kicad/issues/9412
2021-10-17 17:01:21 -07:00
Ian McInerney 5817a8b5f4 Remove unused m_host variable
This variable isn't needed anymore after 5f53019290
pushed dark mode handling into the HTML window itself.
2021-10-18 00:29:40 +01:00
Roberto Fernandez Bautista 99442350a4 CADSTAR PCB: Fix loading of arc tracks following recent PCB_ARC changes
We no longer have any knowledge of the original start/end of the arc,
since SetArcAngleAndEnd swaps the start and end to ensure the arc is
always clockwise at the end.

Adds a method EDA_SHAPE::EndsSwapped() to notify whether the start/end
point of the shape were swapped.
2021-10-17 17:57:51 +01:00
Jeff Young f9861b4a6c Finish arc rework and push out to file formats. 2021-10-15 12:45:43 +01:00
Jeff Young b52529521e Replace individual LIB_* shapes with LIB_SHAPE (based on EDA_SHAPE).
Also moves to more capable FILL_T model that can be shared.
2021-10-15 12:45:43 +01:00
Jeff Young 9b9e379aa0 Overhaul arc internal model to not over-specify information. 2021-10-15 12:45:43 +01:00
Jeff Young 8b08c9e53f Shorter names before things get out of hand.
Also, remove comments indicating CURVE is a Bezier.  Just call it a
BEZIER.
2021-10-15 12:45:43 +01:00
Jeff Young a41944020d Push most of PCB_SHAPE impl down in to EDA_SHAPE. 2021-10-15 12:45:43 +01:00
Wayne Stambaugh c4d0a06701 Eeschema: fix broken auto save feature.
Make auto save recover all auto saved sheet files not just the root sheet.

This does not fix existing auto save issues because recovery would require
an iterative reload for each automatically saved sheet file and would only
happen once.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/9288
2021-10-13 14:51:00 -04:00
Mikolaj Wielgus 5f53019290 Substitute all wxHtmlWindow with HTML_WINDOW
Remove other places where <body> tag is used to override the default
black-on-white theme.
2021-10-12 07:07:15 +00:00
Seth Hillbrand 8dbe60b0d5 Catch possible out_of_range 2021-10-11 10:33:50 -07:00
Ian McInerney 961c127ebe Convert mouse coordinates to native pixesl in the 3D viewer
All operations in the camera are done using the native pixel sizes,
so we need to ensure the mouse coordinates are converted to native
pixels to make the mouse operations line up with the view.

Fixes https://gitlab.com/kicad/code/kicad/issues/2561
Fixes https://gitlab.com/kicad/code/kicad/issues/8410
2021-10-10 17:52:12 +01:00
Seth Hillbrand 41e7284fdc Speed up pcbnew loading/updating
Rather than detaching and re-attaching the layer panels with the
attendant overhead, we keep each panel intact and only update its
contents.  Since the bindings are the same, this saves substantial time
on pcb loading as well as when closing the board setup dialog
2021-10-09 13:38:35 -07:00
Ian McInerney c14bdf7fe0 pcb_calculator: Update panel images/text when system theme changes 2021-10-08 17:31:21 +01:00
Mikolaj Wielgus faad5ee1ce Use system text and background colors in PCB calculator
wxHtmlWindow forces white background and black text. Force it back to
system settings.
2021-10-07 19:09:42 +00:00
Mike Williams 27765cd584 TOOL_DISPATCHER: drag activation should always use screen coordinates
Fixes https://gitlab.com/kicad/code/kicad/-/issues/9325
2021-10-06 19:05:18 +00:00
Jeff Young 1bb5fc3fd6 Work around EnsureVisible bug in wxWidgets during DRC cross-probe.
Also adds double-click-marker to open DRC dialog and select marker
in list.

Fixes https://gitlab.com/kicad/code/kicad/issues/7246
2021-10-06 11:17:03 +01:00
Jeff Young 95f841a037 A more nuanced method of making Board & Schematic Setup read-only.
This one still allows you to scroll to see all contents.

Fixes https://gitlab.com/kicad/code/kicad/issues/9302
2021-10-06 11:16:46 +01:00
Seth Hillbrand 9a8d1246cc We don't keep a CHANGELOG.TXT
Direct interested readers to AUTHORS.TXT instead.
2021-10-05 19:46:53 -07:00
Seth Hillbrand 548e5f49bd Clean up unused variable usage
Unused variables in function calls can be commented out.  Unused
return variables get a new routine `ignore_unused()` that silences the
warnings with zero overhead.
2021-10-05 10:00:30 -07:00
Jeff Young 930c4e5582 Cleanup.
Formatting.
Naming conventions.
Use of auto.
Use of STL cover types.
2021-10-03 19:42:29 +01:00
Jeff Young 11c91c7179 Improve obscuring dialog algorithm to handle multiple dialogs.
Fixes https://gitlab.com/kicad/code/kicad/issues/8970
2021-10-03 13:27:46 +01:00
Jeff Young 574bef2237 Normalize drawing sheet path to env vars & prj, not just prj.
Also cleans up the dialog a bit.

Also changes the workings of NormalizePath to return the input if
it couldn't be shortened which saves open coding that behaviour in
all its callers.

Fixes https://gitlab.com/kicad/code/kicad/issues/9036
2021-10-02 23:39:45 +01:00
Jeff Young 0dce303c49 Prefer wxASSERT to assert.
The former gives warning when not running under a debugger; the latter
does not.
2021-10-02 23:39:45 +01:00
Jeff Young e2baacec21 Add cross-probing between PCB (markers) and DRC marker list.
Fixes https://gitlab.com/kicad/code/kicad/issues/7246
2021-10-02 23:39:45 +01:00
Jeff Young f606679164 Proper numeric sorting for intersheet refs.
Also expunges the horrifically named std::remove and std::remove_if
(neither of which remove anything).
2021-10-01 18:29:21 +01:00
Seth Hillbrand c4fcff46ab Add Thai language option 2021-09-30 08:38:41 -07:00
Jon Evans 62ef27e372 Remove hard-coded anchor color in eeschema 2021-09-28 20:26:47 -04:00
Mikolaj Wielgus adafb15126 Remove LaunchURL()
Unused and insecure.

Related to https://gitlab.com/kicad/code/kicad/-/issues/9236
2021-09-28 22:39:18 +02:00
Mike Williams 9ca836d1ea Tools: Respect system drag
Also remove the time-based aspect. We aren't all super speed clickers.

Fixes: https://gitlab.com/kicad/code/kicad/-/issues/8765
2021-09-27 16:44:32 +00:00
Jeff Young c05e4376f9 Update backups folder name when doing project save as.
Fixes https://gitlab.com/kicad/code/kicad/issues/9254
2021-09-27 13:24:45 +01:00
Jeff Young 544fa939f8 Lock/unlock group members when locking/unlocking group.
Also moves the stateful selection filter to after the hierarchy filter
since the hierarchy filter might swap a pad selection for a footprint
selection.

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

Fixes https://gitlab.com/kicad/code/kicad/issues/7542
2021-09-27 11:29:52 +01:00
Jeff Young 5f3c67bd2b Fill in some missing GetMsgPanelItems and make some others consistent.
Also expunges a std::vector<MSG_PANEL_ITEM> cover type.
2021-09-27 00:23:40 +01:00
Jeff Young 5bf042fcc1 Use individual parameter version of wxExecute.
Fixes https://gitlab.com/kicad/code/kicad/issues/9236
2021-09-26 15:03:06 +01:00
Jeff Young 46949abe4a Don't scroll to highlight an object already visible. 2021-09-25 15:31:52 +01:00
Seth Hillbrand c3b6939ea7 Allow quiet creation (scripting) 2021-09-24 13:49:45 -07:00
Seth Hillbrand 64be61b4d6 Allow user to set footprint type up front
The default is usually wrong and presenting the basic footprint
information when creating an empty footprint allows the user to
establish their preference before mistakes occur.

Fixes https://gitlab.com/kicad/code/kicad/issues/9215
2021-09-24 13:48:01 -07:00
Jeff Young c7f098ab25 Remove unused variable. 2021-09-24 16:03:13 +01:00
Seth Hillbrand 0f10748226 Disallow Ctrl-Tab and Ctrl-Shift-Tab as hotkeys
Fixes https://gitlab.com/kicad/code/kicad/issues/9010
2021-09-20 11:13:50 -07:00
Jeff Young 3651d7c5e7 Remove vestiges of old zoom-auto architecture.
Fixes https://gitlab.com/kicad/code/kicad/issues/9055
2021-09-19 18:32:15 +01:00
Jeff Young 6e7ce09572 Use more descriptive terminology for preferred text editor.
Also improves execution to allow the preferred editor to include
parameters, such as "/usr/bin/open -e".

Fixes https://gitlab.com/kicad/code/kicad/issues/9131
2021-09-19 15:17:26 +01:00
Jeff Young 5c07441e24 Remove Setup Dialog assignment of netclasses to buses.
Also removes the message bar display of assigned netclass for
buses and bus-to-bus entries.

Also fixes a bug where assigning a netclass via the canvas only
looked at the first level of bus members (and not any nested
members).

Also fixes a bug where the bus name validator tried to validate
a vector bus first -- which doesn't work as a vector bus may be
nested in a group bus.

Also fixes a bug where we were failing to check for illegal
chars in bus definitions which otherwise passed the bus parsers.

See additional comments in the bug report.

Fixes https://gitlab.com/kicad/code/kicad/issues/9160
2021-09-17 22:01:17 +01:00
Jeff Young 364ecc02ee Hide scaling hacks on platforms that don't need them.
Fixes https://gitlab.com/kicad/code/kicad/issues/9171
2021-09-17 12:37:53 +01:00
Jeff Young 2479e1d7b1 Improve common settings property grouping.
Also moves apply-icon-scaling-to-fonts to its own checkbox.  (We used
to try to infer when to do it, but that turns out to be a rathole.)
2021-09-16 18:31:44 +01:00
Jeff Young 6197717251 Avoid poor choices for point colors.
Also adjusts the point size to account for the fact that it now has a border.
2021-09-16 14:17:52 +01:00
Jeff Young b84d1456d5 KIFACE_I -> KIFACE_BASE. 2021-09-14 23:45:14 +01:00
Jeff Young 3aae3c6f65 Dark mode for a bunch of HTML dialogs.
WX_HTML_REPORT_BOX
WX_HTML_REPORT_PANEL
HTML_MESSAGEBOX
DIALOG_DISPLAY_HTML_TEXT

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

Fixes https://gitlab.com/kicad/code/kicad/issues/9156
2021-09-14 21:23:57 +01:00
Jeff Young 7a993c0211 Add support mode for dark mode to SCINTILLA_TRICKS.
Also removes the return value from the BITMAP_STORE's themeChanged
method as it will provide the wrong answer for the second frame it's
called on.

Also hooked up ACTION_TOOLBAR, the app launcher, and the project tree
to the wx event for system color changes so they change on the fly.

Fixes https://gitlab.com/kicad/code/kicad/issues/6026
2021-09-14 00:18:50 +01:00
Jeff Young a5247471f7 Expunge a bunch more fixed font specs from wxFormBuilder files.
Also removes the -1 sizing of the status bar on GTK and MSW.

Fixes https://gitlab.com/kicad/code/kicad/issues/8608
2021-09-12 13:53:12 +01:00
Jeff Young 9c78e4cf54 Mac needs different font size handling than MSW & GTK.
Mac already uses diverse font sizes (for instance, smaller fonts for
radio button groups), and the anti-aliasing is a lot better.  The
other platforms need a more limited range of sizes.

Fixes https://gitlab.com/kicad/code/kicad/issues/8608
2021-09-11 23:40:31 +01:00
Jeff Young 769ca2d255 Add a quantized scaling mode for bitmaps.
125% scaled bitmaps look bad in the Launcher so we pin to 100%,
200%, 300%, etc.
2021-09-11 23:40:31 +01:00
Jeff Young fbee62fc15 Tie font size scaling to when automatic icon scaling fails.
It appears that SetSymbolicSize() and ConvertDialogToPixes() fail
under the same circumstances.
2021-09-11 15:29:51 +01:00
Seth Hillbrand abfc60acfc Split European Spanish and Latin American Spanish
This is a test split per requests.  While "Latin American Spanish" is
not really homogeneous, there are distinct differences to European
spanish, so we are splitting in an effort to allow both translations.
If one is less viable, this may re-merge in the future.
2021-09-10 12:45:59 -07:00
Jeff Young 7a822b55aa Another round of changes to attempt to fix the GTK font size issue.
Fixes https://gitlab.com/kicad/code/kicad/issues/8608
2021-09-10 15:59:50 +01:00
Seth Hillbrand 29c2f3b7d4 Prevent jumping into disambiguation if moved
Moving points should not be overrided by disambiguation menu, so we
track where the disambiguation event started and only trigger the menu
if the mouse hasn't moved a full unit in x/y

Fixes https://gitlab.com/kicad/code/kicad/issues/9132
2021-09-09 16:24:18 -07:00
Seth Hillbrand dc574bcb24 Split Portuguese
Split the dialects of Portuguese into Bazilian Portgugese and Portugal
Portuguese
2021-09-09 11:18:32 -07:00
Jeff Young f013dbc7c4 More uniform handling of status fonts.
Fixes https://gitlab.com/kicad/code/kicad/issues/8608
2021-09-08 21:34:22 +01:00
Jeff Young e7debc495b WIP 2021-09-08 20:17:59 +01:00
Wayne Stambaugh ad1ee958b0 Code cleaning. 2021-09-07 15:18:42 -04:00
Seth Hillbrand c8b2e69332 Check if selection is primary tool
Previously, we were checking if the selection tool was the top of the
stack but this ignored many other "secondary" tools that might be
running such as the point editor.  These still allow the selection tool
to handle events such as clicks.  This change allows the selection tool
to handle clicks when it is the primary tool on the stack rather than
the top

Fixes https://gitlab.com/kicad/code/kicad/issues/9110
2021-09-07 10:42:01 -07:00
jean-pierre charras 56374ffa26 Try to fix a compil issue that does not happen on my computers. 2021-09-06 18:36:27 +02:00
jean-pierre charras 36048fa436 OPENGL_GAL::DrawArcSegment(): use a better number of segm to approximate the arc.
Previously, the count of segments used a magic number optimized for Pcbnew.
This is not good, and does not work well on Gerbview.
The count uses now a max error acceptable is approximation (5 microns in Gerbview and Pcbnew).
Fixes #9101
https://gitlab.com/kicad/code/kicad/issues/9101
2021-09-06 16:36:47 +02:00
Marek Roszko 525099ea06 Use the correct define for windows 2021-09-05 22:22:27 -04:00
Marek Roszko 0ee79834bb Make alt key slightly better on windows 2021-09-05 22:17:08 -04:00
Seth Hillbrand 240c3b75c4 Move selection disambiguation to long-click
This standardizes selection tools in SELECTION_TOOL class to be able to
handle a long-click as asking for a non-heuristic disambiguation menu.

Fixes https://gitlab.com/kicad/code/kicad/issues/8490
2021-09-05 13:42:51 -07:00
Seth Hillbrand 092cdc0bb5 Move 45° limit to hotkey
This assigns the "Tab" key to a general pcbnew 45° limitation.  Limit
can be enabled/disabled using context menu as well.

Removed the user preference for 45° limitation on graphic lines as that
is overlapping with the general limitation, which is not an editing
preference so much as a temporary adjustment to tool action.

Related to https://gitlab.com/kicad/code/kicad/-/issues/8490
2021-09-05 13:42:51 -07:00
Jeff Young 59c15842f8 Exclude formatting chars from text width approximation.
Fixes https://gitlab.com/kicad/code/kicad/issues/9080
2021-09-04 22:09:32 +01:00
Seth Hillbrand 8a305eec32 Remove broken RefDesStringCompare
This function attempted a poor-man's natural compare but it assumed
specific structure of the string.  This broke for strings with
numberings that looked like decimals.

Instead, we use our natural string comparison function and remove the
references to this older function and its similar elements.

Fixes https://gitlab.com/kicad/code/kicad/issues/9067
2021-09-01 11:48:01 -07:00
Jeff Young 04fa678265 Impleent persistence for no-connect pad setting.
Also moves rotation increment from a display property to and edit
property.

(Both issues were discovered while working on a 7.0 feature.)
2021-09-01 00:00:12 +01:00
Jeff Young a5e11111a4 Link updating of hex value and opacity slider. 2021-08-31 21:24:20 +01:00
Jeff Young e58671e2da Move color picker from CSS to HTML format for colors.
This is an attempt to remove the decimal separator from the equation,
which appears to be causing trouble on MSW.

Fixes https://gitlab.com/kicad/code/kicad/issues/9043
2021-08-31 18:56:38 +01:00
Jeff Young b5a3385ea9 Overhaul file locking system.
See bug report for details.

Fixes https://gitlab.com/kicad/code/kicad/issues/8919
2021-08-31 15:04:31 +01:00