KiCad PCB EDA Suite
project_local_settings.h
Go to the documentation of this file.
1/*
2 * This program source code file is part of KiCad, a free EDA CAD application.
3 *
4 * Copyright (C) 2020 CERN
5 * Copyright (C) 2021 KiCad Developers, see AUTHORS.txt for contributors.
6 * @author Jon Evans <[email protected]>
7 *
8 * This program is free software: you can redistribute it and/or modify it
9 * under the terms of the GNU General Public License as published by the
10 * Free Software Foundation, either version 3 of the License, or (at your
11 * option) any later version.
12 *
13 * This program is distributed in the hope that it will be useful, but
14 * WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16 * General Public License for more details.
17 *
18 * You should have received a copy of the GNU General Public License along
19 * with this program. If not, see <http://www.gnu.org/licenses/>.
20 */
21
22#ifndef KICAD_PROJECT_LOCAL_SETTINGS_H
23#define KICAD_PROJECT_LOCAL_SETTINGS_H
24
25#include <layer_ids.h>
30
31class PROJECT;
32
34{
35 wxString fileName;
36 bool open;
38};
39
40
54{
55public:
56 PROJECT_LOCAL_SETTINGS( PROJECT* aProject, const wxString& aFilename );
57
59
60 bool MigrateFromLegacy( wxConfigBase* aLegacyConfig ) override;
61
62 bool SaveAs( const wxString& aDirectory, const wxString& aFile );
63
64 bool SaveToFile( const wxString& aDirectory = "", bool aForce = false ) override;
65
66 void SetProject( PROJECT* aProject ) { m_project = aProject; }
67
68 void SaveFileState( const wxString& aFileName, const WINDOW_SETTINGS* aWindowCfg, bool aOpen );
69
70 const PROJECT_FILE_STATE* GetFileState( const wxString& aFileName );
71
72 void ClearFileState();
73
74protected:
75 wxString getFileExt() const override
76 {
78 }
79
80 wxString getLegacyFileExt() const override
81 {
82 return wxT( "NO_SUCH_FILE_EXTENSION" );
83 }
84
85public:
86
92 std::vector<PROJECT_FILE_STATE> m_files;
93
100
103
106
109
112
115
118
121
127
132 std::vector<wxString> m_HiddenNets;
133 std::set<wxString> m_HiddenNetclasses;
134
137
138private:
141};
142
143#endif
HIGH_CONTRAST_MODE
Determine how inactive layers should be displayed.
Helper for storing and iterating over GAL_LAYER_IDs.
Definition: layer_ids.h:296
LSET is a set of PCB_LAYER_IDs.
Definition: layer_ids.h:530
The project local settings are things that are attached to a particular project, but also might be pa...
bool SaveAs(const wxString &aDirectory, const wxString &aFile)
wxString getFileExt() const override
LSET m_VisibleLayers
Board settings.
SELECTION_FILTER_OPTIONS m_SelectionFilter
State of the selection filter widget.
wxString getLegacyFileExt() const override
double m_PadOpacity
Opacity override for SMD pads and PTH.
bool SaveToFile(const wxString &aDirectory="", bool aForce=false) override
void SetProject(PROJECT *aProject)
std::vector< PROJECT_FILE_STATE > m_files
Project scope.
double m_ViaOpacity
Opacity override for all types of via.
wxString m_ActiveLayerPreset
The name of a LAYER_PRESET that is currently activated (or blank if none)
double m_TrackOpacity
Opacity override for all tracks.
PROJECT * m_project
A link to the owning project.
double m_ZoneOpacity
Opacity override for filled zones.
bool m_AutoTrackWidth
The current setting for whether to automatically adjust track widths to match.
ZONE_DISPLAY_MODE m_ZoneDisplayMode
How zones are drawn.
PCB_LAYER_ID m_ActiveLayer
The current (active) board layer for editing.
HIGH_CONTRAST_MODE m_ContrastModeDisplay
The current contrast mode.
NET_COLOR_MODE m_NetColorMode
The current net color mode.
bool MigrateFromLegacy(wxConfigBase *aLegacyConfig) override
Migrates from wxConfig to JSON-based configuration.
GAL_SET m_VisibleItems
The GAL layers (aka items) that are turned on for viewing (.
std::vector< wxString > m_HiddenNets
A list of netnames that have been manually hidden in the board editor.
PROJECT_LOCAL_SETTINGS(PROJECT *aProject, const wxString &aFilename)
std::set< wxString > m_HiddenNetclasses
void SaveFileState(const wxString &aFileName, const WINDOW_SETTINGS *aWindowCfg, bool aOpen)
double m_ImageOpacity
Opacity override for user images.
const PROJECT_FILE_STATE * GetFileState(const wxString &aFileName)
Container for project specific data.
Definition: project.h:63
const std::string ProjectLocalSettingsFileExtension
PCB_LAYER_ID
A quick note on layer IDs:
Definition: layer_ids.h:59
struct WINDOW_STATE window
This file contains data structures that are saved in the project file or project local settings file ...
Stores the common settings that are saved and loaded for each window / frame.
Definition: app_settings.h:83
Stores the window positioning/state.
Definition: app_settings.h:70
Definition of file extensions used in Kicad.