79 Commits

Author SHA1 Message Date
Jon Evans
298dda8fcd Don't proceed with opening project if players didn't close
Fixes https://gitlab.com/kicad/code/kicad/-/issues/7974
2021-03-20 09:06:38 -04: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
0d2ee266a1 Make sure auimgr panels can handle dark mode.
Fixes https://gitlab.com/kicad/code/kicad/issues/7560
2021-02-16 21:11:36 +00:00
Jon Evans
32308c7fef Use middle ellipsization for kicad manager status bar 2021-02-14 16:04:36 -05:00
Jeff Young
bbe315bcb8 Add title to project file view and help strings to launcher icons. 2021-02-14 13:28:20 +00:00
Jon Evans
838a70129d Project manager tweaks 2021-02-13 18:58:02 -05:00
Jon Evans
08922e01aa Tweaks to kicad manager layout 2021-02-13 09:53:08 -05:00
Jon Evans
e06aa32780 Launcher tweaks 2021-02-13 08:59:33 -05:00
Jon Evans
1bb3135888 Let's try a new layout for kicad manager 2021-02-12 22:39:37 -05:00
Ian McInerney
c93b012627 Fix writing out of dummy files in the project manager
Fixes https://gitlab.com/kicad/code/kicad/issues/7453
2021-02-07 22:41:21 +00:00
Jeff Young
1394c1f4d4 Retire disabled buttons in favour of info boxes.
Fixes https://gitlab.com/kicad/code/kicad/issues/7229
2021-02-01 22:56:55 +00:00
jean-pierre charras
a28326fb26 Fix stupid code. 2021-01-23 21:17:56 +01:00
jean-pierre charras
af5825bd36 kicad: fix incorrect dummy .kicad_pcb file created when creating a new project.
Fixes #7242
https://gitlab.com/kicad/code/kicad/issues/7242
2021-01-23 17:00:30 +01:00
Seth Hillbrand
61ac9c8d90 Add multiple size icons for programs
In theory, the WM should now choose the closest size icon for its
purpose, making it easier to distinguish in space-constrained settings

Fixes https://gitlab.com/kicad/code/kicad/issues/6798
2020-12-22 15:37:26 -08:00
Marek Roszko
d67cf2f9af Replace wxFile usage with wxFFile
Buffered libc wxFFile is better thinking about syscall wxFile going wrong.
2020-12-12 13:16:23 -05:00
Jeff Young
4a0543c099 Formatting and naming conventions. 2020-12-02 14:27:43 +00:00
Jeff Young
a207bd97bb Naming conventions. 2020-11-17 16:05:49 +00:00
Seth Hillbrand
4085757aeb Remove beginning/ending spaces in translations
Adding space padding makes translations more difficult by increasing
string counts
2020-10-20 12:08:04 -07:00
Marek Roszko
a1c75748a0 Remove GetChars(), a wxWidgets 2.9 compatibility hack 2020-10-15 20:53:25 -04:00
Marek Roszko
763da6b3bb Add forward declaration in kicad/kicad_manager_frame.h 2020-10-12 23:29:08 -04:00
Marek Roszko
9db12be714 Cleanup some includes and enum in kicad 2020-10-12 19:38:40 -04:00
Roberto Fernandez Bautista
72b904a978 ADDED: CADSTAR Archive project importer 2020-09-27 23:50:20 +00:00
Ian McInerney
c399d489ba Remove project condition from the symbol and footprint editors 2020-09-15 21:18:56 +01:00
Michael Kavanagh
de03d3d427 Application title bar: app name after filename
Fixes https://gitlab.com/kicad/code/kicad/issues/2096
2020-09-03 06:35:48 -07:00
Jeff Young
34d069ffd8 Bubble cancel up from app to kicad manager when closing.
Fixes https://gitlab.com/kicad/code/kicad/issues/5402
2020-08-31 11:49:29 +01:00
Jon Evans
dc7e1783b3 Make sure a project is loaded at all times
For now, much of KiCad depends on Prj() working, so when we
are asked to unload a project, immediately load the null project
so that nothing breaks.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/5374
2020-08-26 18:37:34 -04:00
Jon Evans
3673c23696 Code style 2020-08-23 22:10:05 -04:00
Mark Roszko
89e74140eb Save file / window states for kicad project locally 2020-08-24 02:01:14 +00:00
Ian McInerney
4491f24d5e Ripout the old SyncToolbars infrastructure reminants
The tool framework no longer needs to request updates of the UI
state for the controls, wxWidgets will do it for us.
2020-08-16 19:10:26 +00:00
Ian McInerney
45fb030b9b Rename and shorten the names in ACTION_CONDITIONS 2020-08-16 19:10:25 +00:00
Ian McInerney
72a1c71e07 Implement a framework to handle wxUpdateUIEvents for tool actions
This allows for the tool framework to keep track of a universal
set of conditions for the UI state (enabled/checked/shown) for
controls of actions. It removes the need for the main menubar
menus to be CONDITIONAL_MENUs and be rebuilt on each open,
and instead makes the updates of the check and enabling of
items handled in the native wxWidgets way.

This commit switchs the 3d viewer and kicad project manager window
over to this system.
2020-08-16 19:10:25 +00:00
Ian McInerney
0975f3817a Fix project handling in eagle project import and ensure the titlebar is correct
Previously it didn't properly close or create a new project for the
Eagle project.

Also, update the titlebar text whenever the project changes (so it is
cleared properly when a project is unloaded).

Fixes https://gitlab.com/kicad/code/kicad/issues/5152
2020-08-16 12:37:51 +01:00
Marek Roszko
c36080a250 Immediate fix to prevent crashing, don't call ClosePlayers twice
Fixes https://gitlab.com/kicad/code/kicad/-/issues/5164
2020-08-12 18:35:18 -04:00
Jon Evans
43ab43ec9e Fix a few issues with Close Project
A new empty project needs to be reopened for now
Footprint info cache write only works with a project for now
2020-08-09 11:13:50 -04:00
Ian McInerney
30d42ca95a Save the open projects into the settings before closing the project
Saving in the frame destructor is too late, because all projects
have been closed so the list being saved is empty.
2020-08-08 23:41:48 +01:00
Jon Evans
32a7d00256 Make sure projects are cleaned up nicely when frames close
PROJECT objects will be deleted by SETTINGS_MANAGER::UnloadProject
so we need to make sure that this is called at an early enough point
in the closing process that anything needed by the PROJECT dtor
is still around.

Also fix an issue where the schematic worksheet was depending on
the project existing after the schematic had been reset.
2020-08-08 16:52:57 -04:00
Jon Evans
79e40cf765 Fix a few issues with Close Projects MR
Store list of previously open projects only in kicad.json
Keep all management of open projects in SETTINGS_MANAGER

Also add kicadSettings() for convenience
2020-08-08 16:00:49 -04:00
Fabien Corona
bc357dff8a Add "Close project"
Allow the user to close a project from the project manager.
Distinguish the open project from the file history.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/4964
2020-08-08 18:52:14 +00:00
Marek Roszko
9278660b10 Add support for the windows application restart api 2020-07-28 14:32:39 -04:00
Ian McInerney
8d73be7d30 Delete tool dispatcher in KICAD_MANAGER_FRAME
Not deleting this is a memory leak.
2020-07-20 11:31:34 +01:00
Jeff Young
3fd0a3f842 Update text variables even when they're changed from other binary.
For instance, you might have PCBNew open but change the variable
value through EEschema > Schematic Setup.

Fixes https://gitlab.com/kicad/code/kicad/issues/4918
2020-07-17 21:05:11 +01:00
jean-pierre charras
6296b4e20b Kicad manager: create a minimal .kicad_pro file when creating a project from scratch.
Fixes #4889
https://gitlab.com/kicad/code/kicad/issues/4889
2020-07-16 11:31:39 +02:00
Jon Evans
570cc61b3f Give kicad manager frame a tool dispatcher
Without this, tool hotkeys don't work. Also need to make sure
that the log text field doesn't get initial focus.

I am a bit confused about how this was working on other
platforms besides Windows...

Fixes https://gitlab.com/kicad/code/kicad/-/issues/4801
2020-07-11 16:18:54 -04:00
Jon Evans
b1b9cef5fb Full-project automatic backup system
Fixes https://gitlab.com/kicad/code/kicad/-/issues/4763
2020-07-09 13:55:19 +00:00
Jon Evans
96b91e65ea Use updated extension for file history 2020-07-02 22:32:56 -04:00
Jon Evans
4dbbe1cf68 Project settings fixes from review
- Fix file extension for new project
- Fixes for exceptions on MSW
- Fix some ASAN issues
- Allow SETTINGS_MANAGER to run headless
- Don't flag schematic as modified after schematic setup is closed
- Don't automatically unload projects when LoadProject is called
- Don't unload project if it's the same as the current one
- Make sure to properly init/de-init template field names
2020-07-02 22:08:54 -04:00
Jon Evans
b592a4169f Update project template system for new format 2020-07-02 22:08:54 -04:00
Jon Evans
12b4a55ae8 Port Eeschema to new project settings
DRC/ERC error serialization changed to use explicit tokens
Old stored severities and ignored errors are discarded
2020-07-02 22:08:54 -04:00
Jon Evans
c0aa6965de Migrate PcbNew project settings to new framework
Various architecture upgrades to support this.
Creating a BOARD now requires a valid PROJECT, which caused
some (mostly transparent) changes to the Python API internals.

ADDED: Project local settings file
CHANGED: Board design settings are no longer stored in PCB file
CHANGED: Net classes are no longer stored in PCB file
CHANGED: Importing board settings now reads boards, not just projects

Fixes https://gitlab.com/kicad/code/kicad/-/issues/2578
Fixes https://gitlab.com/kicad/code/kicad/-/issues/4070
2020-07-02 22:08:54 -04:00
Jon Evans
a4fadfcdf2 Begin moving project file load to new system 2020-07-02 22:08:54 -04:00