Commit Graph

445 Commits

Author SHA1 Message Date
Seth Hillbrand 7e5a2450b8 Move multiple wxMessageBox to DisplayErrorMessage
Also provide protection for headless running in multiple callsites

Fixes https://gitlab.com/kicad/code/kicad/issues/13575
2023-01-18 16:54:01 -08:00
Wayne Stambaugh f81642bbb3 Fix broken graphics import file filters.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/13570
2023-01-17 11:19:53 -05:00
Seth Hillbrand 25f34a14a1 Check file starting signature when opening
Opening .brd files might be legacy or eagle (probably others as well).
We check for the starting "PCBNEW" in KiCad files to differentiate

Fixes https://gitlab.com/kicad/code/kicad/issues/10201
2023-01-05 18:10:22 -08:00
Jeff Young 4c63b4e061 Class name <-> file name sync. 2022-12-29 18:05:57 +00:00
Ian McInerney 639626fda4 Include the proper header instead of the entire lockfile function 2022-12-17 23:37:24 +00:00
Ian McInerney 82a11c71af Clean up extra control creator logic in pcbnew save file dialog 2022-12-17 23:37:24 +00:00
Jeff Young 19eab62516 More safety around ratsnest state.
Fixes https://gitlab.com/kicad/code/kicad/issues/13011
2022-11-30 13:00:21 +00:00
Jeff Young 97fd99ec99 Re-resolve netclasses after assigning netclass to pattern.
Fixes https://gitlab.com/kicad/code/kicad/issues/12965
2022-11-22 14:54:08 +00:00
Jeff Young c409646aad Update message panel after rebuilding connectivity.
Fixes https://gitlab.com/kicad/code/kicad/issues/10122
2022-11-18 15:29:16 +00:00
Jon Evans dd94b2d3a7 Rename PROPERTIES to STRING_UTF8_MAP for clarity
This class has nothing to do with the properties system
2022-11-06 11:51:52 -05:00
Sylwester Kocjan a234d5a2c8 common,eeschema,pcbnew: path cleanup 2022-11-02 13:29:52 +00:00
Jeff Young 3221877fe8 Push autosave-require down in to EDA_BASE_FRAME.
Fixes https://gitlab.com/kicad/code/kicad/issues/11790
2022-10-10 14:03:52 +01:00
Jeff Young be6f08deca Code clarity. (No functional changes.) 2022-10-10 14:03:52 +01:00
Jeff Young a9536b5de9 CHANGED netclass assignments now done via canvas or via patterns. 2022-08-14 22:56:29 +01:00
Marek Roszko cb44d97ed4 Update pcbnew to the new filedlg customize 2022-06-11 22:10:49 -04:00
Jeff Young 8a97a46e6b Release file before re-loading it for Revert.
Fixes https://gitlab.com/kicad/code/kicad/issues/11481
2022-04-26 22:28:35 +01:00
Jeff Young 71c2cb3180 ADDED revert for pcbnew and eeschema.
Fixes https://gitlab.com/kicad/code/kicad/issues/6802
2022-04-17 20:02:58 +01:00
Seth Hillbrand 6934bc124c Move temp save files to temporary directory
Avoid excess writes to the project directory to dodge issues with remote
file systems not fully writing data.

wxRename works across disk boundaries (in theory) and falls back to
wxCopy/wxRemove when it fails

Fixes https://gitlab.com/kicad/code/kicad/issues/10747
2022-03-07 20:13:28 -08:00
Jeff Young bc51c89c90 Reconcile zone-auto-fill with undo. 2022-02-25 13:05:49 +00:00
Jeff Young b1bd8421e0 Performance: remove associated triangle sets when removing outline.
This saves us having to re-triangulate at the end of zone filling.
2022-02-16 17:00:54 +00:00
Jeff Young 5c9e718407 Performance enhancements for connectivity.
1) Generate SHAPE_POLY_SET triangulation by outline so they can be
shared between connectivity system and other clients.
2) Don't add items to connectivity when reading board; we're going
to do a total rebuild anyway.
3) Use multithreading when caching triangulation.
2022-02-15 12:20:34 +00:00
Jeff Young 00934fdd84 Move GUI queries in PLUGIN to a callback.
Also makes sure legacy zone fills get deleted and re-filled (since
just dropping the outline will change them).
2022-02-11 22:09:22 +00:00
jean-pierre charras f8ff104003 Fix a compil issue. 2022-02-05 21:29:44 +00:00
Jeff Young 7ccac79192 More wxString wide literals. 2022-02-05 21:29:34 +00:00
Jeff Young 2001d08186 Add DRC tests for text height and text thickness.
Fixes https://gitlab.com/kicad/code/kicad/issues/8683
2021-12-23 19:18:45 +00:00
Jon Evans 8026863d4c Use progress reporting in more places when loading a board
Prevents application-not-responding events while opening large designs
2021-11-25 11:19:03 -05:00
Jeff Young ba6ae4fa9b Kicad has many plugins. This one is for the pcb. 2021-11-25 12:56:46 +00:00
Jon Evans 6ecdbbb1da Remove some duplicate work when loading a board 2021-11-24 22:04:16 -05:00
Jeff Young c01649fc6e Make it easier to open legacy files. 2021-11-19 13:36:14 +00:00
Jeff Young 5f5ee7335d Formatting. 2021-10-01 21:49:14 +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
Wayne Stambaugh d90094de39 Fix progress dialog main frame focus issue on Linux.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/8718
2021-09-16 15:53:18 -04:00
Jeff Young b84d1456d5 KIFACE_I -> KIFACE_BASE. 2021-09-14 23:45:14 +01:00
Jeff Young 921b6c826b Fix another disappearing string on Mac. 2021-09-05 21:23:55 +01:00
Jeff Young 2cdd3c9ebf Work-around incorrect spacing (and order) of buttons on Mac. 2021-08-31 22:39:25 +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
Jon Evans 0814219513 Clean up some handling of project files in standalone
Add control of project creation to Eeschema; change defaults
to enable project creation in both programs.  Properly set
project on newly-created schematics so "Save As" doesn't
get triggered repeatedly.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/9000
2021-08-21 12:09:21 -04:00
Jeff Young 41619ebbe2 Decouple PROGRESS_REPORTER interface from implementations. 2021-08-14 21:05:49 +01:00
Jeff Young 77680eba30 Naming conventions. 2021-08-05 14:31:36 +01:00
Jeff Young c51b1dad72 Generalize infobar MESSAGE_TYPE handling and use for DRC errors.
Fixes https://gitlab.com/kicad/code/kicad/issues/8782
2021-08-01 21:51:39 +01:00
Wayne Stambaugh cf00319c85 More NULL expunging. 2021-07-20 07:27:18 -04:00
Jeff Young 6810912f09 Refuse to load schematics from the future.
Also fixes a bug where an empty window would get left when loading
a file from the KiCad manager window errored out.

Also fixes a bug where we were getting the wrong exception because
we were rethrowing the type-casted one (rather than just calling
throw).

Fixes https://gitlab.com/kicad/code/kicad/issues/8604
2021-06-30 18:32:07 +01:00
Jeff Young 4aa8318dc2 More error message regularization. 2021-06-27 14:24:02 +01:00
Jeff Young 4c5df22eb0 Don't show busy cursor when dialogs (including progress) are in use.
Also removes a stale comment.
Also moves the progress reporters earlier to lessen need for busy cursor.
Also cleans up some error strings and makes other more easily translatable.
2021-06-26 22:53:24 +01:00
Jeff Young 744dadd412 Naming conventions and formatting. 2021-06-24 16:56:53 +01:00
Jeff Young 5fa5a73c6d File open/import progress dialogs.
Fixes https://gitlab.com/kicad/code/kicad/issues/6864

Fixes https://gitlab.com/kicad/code/kicad/issues/2166
2021-06-23 23:55:54 +01:00
Jeff Young 89718dd3ba Naming conventions. 2021-06-19 19:36:53 +01:00
Jeff Young 3072422538 Allow caller to specify which library table to add library to.
Fixes https://gitlab.com/kicad/code/kicad/issues/8013
2021-06-18 11:39:18 +01:00
Jeff Young 1722bc03b0 Consistent terminology and punctuation. 2021-06-17 00:05:17 +01:00
Marek Roszko d946d6e68f Cleanup some pgm_base.h includes 2021-06-08 21:56:00 -04:00
Jeff Young 2aaec31832 Don't put up "old version" warning for gerbview-generated PCBs.
Fixes https://gitlab.com/kicad/code/kicad/issues/8574
2021-06-08 22:12:44 +01:00
Johannes Maibaum 022dd6072c Add utility method to resolve symlinks
The same logic block to resolve possible symlinks exists in 5 different
places now. This change moves this duplicated code to a static member
function of WX_FILENAME instead.
2021-06-07 20:59:59 +00:00
Johannes Maibaum 542c02046b Write through symlinks for schematics and PCBs 2021-06-07 20:59:59 +00:00
Marek Roszko 10e60acf34 Clean up including of board_design_settings.h 2021-06-06 15:03:42 -04:00
Marek Roszko 7faee5eda5 Stop salt the eart with wxhtml.h 2021-06-03 07:49:49 -04:00
Seth Hillbrand 63cc7d16b4 Repair board on open
We need to ensure that boards do not have duplicated KIIDs, so we repair
the duplicates when opening an existing file.  This does not change the
file on disk until saved
2021-06-01 13:39:59 -07:00
Seth Hillbrand 752ae4d519 Rename modification flag routines
Differentiates better between the EDA_ITEM IsModified(), referring to
items themselves changing and the EDA_SCREEN IsContentModified(),
referring to whether we have made any unsaved changes.
2021-05-28 12:07:04 -07:00
Seth Hillbrand b1dcf74042 Use standard "Untitled" name for files without names
Also translates to provide useful information regardless of language
2021-05-28 11:51:54 -07:00
Seth Hillbrand d7f219e98f Unify IsSave and IsModify
The flags and calls were used identically, leading to potential
confusion/bugs.  Testing for modification should go through
IsContentModified()
2021-05-28 11:51:54 -07:00
jean-pierre charras 60dbda9dd2 Pcbnew: try to fix an issue about frame title.
for Pcbnew, this issue (see bug 8404) is only seen on OSX.
So I am blindly trying to add to Pcbnew a fix made for Eeschema.
2021-05-19 17:28:15 +02:00
jean-pierre charras 0427bda768 Remove useless wx/wx.h include, that create sometimes compil warnings on msys.
wx/wx.h includes all wxWidgets .h files, and sometimes creates collision
names in #define between kicad and windows headers
Moreover, blindly including a lot of useless files is compil time consuming
2021-05-01 19:32:15 +02:00
Marek Roszko 18ff8ea4a0 Try to catch memory allocation errors in pcbnew and eeschema 2021-05-01 13:11:10 -04:00
Ian McInerney ecd9bf696e Be consistent about using nullptr instead of 0
0 can be too easily overloaded into an int, so ensure we use nullptr
when we mean pointers.
2021-04-22 22:20:34 +01:00
Jon Evans e7d3bf29aa Don't save project for legacy board without explicit action
Fixes https://gitlab.com/kicad/code/kicad/-/issues/7368
2021-04-21 21:27:23 -04:00
Jon Evans 64c8befa01 Fix copy/paste error 2021-04-15 20:45:32 -04:00
Jon Evans 928d336bee Only try to copy design rules file if it exists 2021-04-15 20:43:35 -04:00
Jeff Young 311bb9c36e Save rules file when saving project.
Fixes https://gitlab.com/kicad/code/kicad/issues/8143
2021-04-15 10:23:38 +01:00
Jeff Young f7cc6d1e1e Fix save as and save copy as for project files. 2021-04-13 17:56:50 +01:00
Jeff Young 55d2d0d93e Fix some bugs in file save as.
The order of operations *appeared* to be a bit out of joint.
We need to create a new project in project mode as well as in standalone.

Fixes https://gitlab.com/kicad/code/kicad/issues/8143
2021-04-13 13:34:40 +01:00
Jeff Young daaf738c7f Add save-as files to file history.
Also fixes where lock wasn't getting reset on a Save As.

Fixes https://gitlab.com/kicad/code/kicad/issues/8111
2021-04-06 13:35:26 +01:00
Jeff Young 94470bfa15 Minor cleanup. 2021-04-01 11:10:01 +01:00
Jon Evans 9ce34102af Make sure projects get created for boards migrated from 5.x
Fixes https://gitlab.com/kicad/code/kicad/-/issues/6886
2021-03-21 16:21:44 -04:00
Jon Evans c04e19f9ac Include optimization: move some things from common.h to point-of-use 2021-03-20 12:09:18 -04:00
Jon Evans 521982cbf6 Avoid double-redraw on board load 2021-03-14 11:42:09 -04:00
Jon Evans 63b5d8db43 Pcbnew: use MRU path when opening files in standalone mode
Fixes https://gitlab.com/kicad/code/kicad/-/issues/7734
2021-02-28 14:30:16 -05:00
Jeff Young 91e876ce0d Make sure the title is updated when file is saved/reverted/etc.
Fixes https://gitlab.com/kicad/code/kicad/issues/7626
2021-02-20 15:09:47 +00:00
Jeff Young 67c7e7c759 Formatting. 2021-02-20 15:09:47 +00:00
Jeff Young d4e68a985c Formatting. 2021-02-20 15:09:47 +00:00
Jeff Young 66b33834b5 Always enable save; move dirty bit to asterisk in title bar.
Also unifies PCB Editor and Schematic Editor names with other
locations in the GUI (which were still Pcbnew and Eeschema).

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

Fixes https://gitlab.com/kicad/code/kicad/issues/7594
2021-02-18 16:05:42 +00:00
Seth Hillbrand dbbe9cdee4 Hide infobar for save when saving 2021-02-16 15:54:43 -08:00
Roberto Fernandez Bautista f559e94b00 Non-Kicad Project Importers: Fix the creation of project fp libraries
Adds a new function to PLUGIN GetImportedCachedLibraryFootprints() that
loads the library footprints of the board design that was imported
Fixes https://gitlab.com/kicad/code/kicad/-/issues/7449
2021-02-10 18:49:20 +00:00
Jon Evans 3ac5fd6342 Get rid of wx popups when opening a read-only project 2021-02-03 19:17:32 -05:00
Marek Roszko e6dd95e83a Create a default user projects folder 2021-01-27 19:12:18 -05:00
Wayne Stambaugh 6a39b81647 Fix the last of broken Doxygen comment specifiers. 2021-01-27 17:39:44 -05:00
Jon Evans 1e030655cd Always create project when doing a Save As on a board with a project 2021-01-26 21:58:17 -05:00
Seth Hillbrand 950db6ff9c pcbnew: Add Fabmaster import
Allows importing ASCII design output from OrCAD designs
2021-01-16 14:28:33 -08:00
Jeff Young 0bce280424 Make sure design rules get recompiled after netclass changes.
Fixes https://gitlab.com/kicad/code/kicad/issues/7082
2021-01-13 12:37:20 +00:00
Jon Evans d2d4ffe6d0 Dismiss infobar if it's dismissable on board save
Fixes https://gitlab.com/kicad/code/kicad/-/issues/7071
2021-01-12 23:24:13 -05:00
Jon Evans 01181ccb2f Make sure project is unlinked before deleting it
Fixes https://gitlab.com/kicad/code/kicad/-/issues/7038
2021-01-11 22:17:13 -05:00
Roberto Fernandez Bautista cde433c82e CADSTAR PCB Archive Importer: Transfer Project to allow importing of Text Variables 2020-12-30 18:53:43 +00:00
Jon Evans c4bfca251b PcbNew: show file format conversion warning in infobar
Fixes https://gitlab.com/kicad/code/kicad/-/issues/6200
2020-12-27 19:17:58 -05:00
jean-pierre charras eb7dc6ddd9 Minor fixes. In stand alone show the frame as soon as possible.
Especially when running Pcbnew to open a complex board the frame is shown faster.
Add also a busy cursor when loading files and building the data.
2020-12-21 17:44:10 +01:00
Marek Roszko dd0ad8f3a1 Read the fp-info-cache on pcb file load rather than on frame open
Otherwise in standalone mode pcbnew will never load the cache files and also later erase them :/
2020-12-10 21:34:40 -05:00
Marek Roszko ad1aae40ec Unify the saved file strings 2020-12-08 19:49:47 -05:00
Marek Roszko abb5cb8310 Fix up msg panel status on save slightly
- pcbnew should use status bar on success like eeschema
- Add a helper to clear msgpanel and set it in one go to avoid redraw delays due to doing processing in between
2020-12-08 00:28:07 -05:00
Jon Evans f78d909ffb Correctly set up projects for converted boards
Fixes https://gitlab.com/kicad/code/kicad/-/issues/6209
2020-11-28 22:46:05 -05:00
Roberto Fernandez Bautista e3334cd25c Non-KiCad Project importers: Do not rebuild the netlist or reannotate after import
Fixes https://gitlab.com/kicad/code/kicad/-/issues/6383
2020-11-28 17:18:17 +00:00
Jeff Young 18ad58cf4c Replace legacy copper edge heuristics.
Fixes https://gitlab.com/kicad/code/kicad/issues/6435
2020-11-19 13:35:26 +00:00
Marek Roszko 16e3e59495 Split out arrayDim and MIRROR templates from macros.h
These were not macros
2020-11-17 20:21:04 -05:00
Jeff Young 024812e5dd Resolve legacy netclass definitions read from PCB file.
Fixes https://gitlab.com/kicad/code/kicad/issues/6415
2020-11-18 00:17:07 +00:00