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 <jon@craftyjon.com>
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 
27 #include <settings/json_settings.h>
29 #include <settings/app_settings.h>
30 
31 class PROJECT;
32 
34 {
35  wxString fileName;
36  bool open;
38 };
39 
40 
54 {
55 public:
56  PROJECT_LOCAL_SETTINGS( PROJECT* aProject, const wxString& aFilename );
57 
59 
60  bool MigrateFromLegacy( wxConfigBase* aLegacyConfig ) override;
61 
62  bool SaveToFile( const wxString& aDirectory = "", bool aForce = false ) override;
63 
64  void SetProject( PROJECT* aProject )
65  {
66  m_project = aProject;
67  }
68 
69  void SaveFileState( const wxString& aFileName, const WINDOW_SETTINGS* aWindowCfg, bool aOpen );
70 
71  const PROJECT_FILE_STATE* GetFileState( const wxString& aFileName );
72 
73  void ClearFileState();
74 
75 protected:
76  wxString getFileExt() const override
77  {
79  }
80 
81  wxString getLegacyFileExt() const override
82  {
83  return wxT( "NO_SUCH_FILE_EXTENSION" );
84  }
85 
86 public:
87 
92  std::vector<PROJECT_FILE_STATE> m_files;
94 
101 
104 
107 
110 
113 
116 
119 
122 
125 
126  double m_TrackOpacity;
127  double m_ViaOpacity;
128  double m_PadOpacity;
129  double m_ZoneOpacity;
130 
135  std::vector<wxString> m_HiddenNets;
136 
139 
140 private:
143 };
144 
145 #endif
LSET m_VisibleLayers
Board settings.
void SaveFileState(const wxString &aFileName, const WINDOW_SETTINGS *aWindowCfg, bool aOpen)
Container for project specific data.
Definition: project.h:62
double m_TrackOpacity
Opacity override for all tracks.
wxString getLegacyFileExt() const override
ZONE_DISPLAY_MODE m_ZoneDisplayMode
How zones are drawn.
bool MigrateFromLegacy(wxConfigBase *aLegacyConfig) override
Migrates from wxConfig to JSON-based configuration.
The project local settings are things that are attached to a particular project, but also might be pa...
double m_ViaOpacity
Opacity override for all types of via.
bool SaveToFile(const wxString &aDirectory="", bool aForce=false) override
NET_COLOR_MODE m_NetColorMode
The current net color mode.
PCB_LAYER_ID m_ActiveLayer
The current (active) board layer for editing.
wxString getFileExt() const override
const std::string ProjectLocalSettingsFileExtension
double m_PadOpacity
Opacity override for SMD pads and PTH.
Stores the common settings that are saved and loaded for each window / frame.
Definition: app_settings.h:81
PCB_LAYER_ID
A quick note on layer IDs:
LSET is a set of PCB_LAYER_IDs.
GAL_SET m_VisibleItems
The GAL layers (aka items) that are turned on for viewing (.
wxString m_ActiveLayerPreset
The name of a LAYER_PRESET that is currently activated (or blank if none)
struct WINDOW_STATE window
PROJECT * m_project
A link to the owning project.
HIGH_CONTRAST_MODE
Determine how inactive layers should be displayed.
Helper for storing and iterating over GAL_LAYER_IDs.
Definition of file extensions used in Kicad.
RATSNEST_MODE m_RatsnestMode
The current ratsnest draw mode.
bool m_AutoTrackWidth
The current setting for whether to automatically adjust track widths to match.
This file contains data structures that are saved in the project file or project local settings file ...
double m_ZoneOpacity
Opacity override for filled zones.
Stores the window positioning/state.
Definition: app_settings.h:68
const PROJECT_FILE_STATE * GetFileState(const wxString &aFileName)
HIGH_CONTRAST_MODE m_ContrastModeDisplay
The current contrast mode.
Board layer functions and definitions.
std::vector< wxString > m_HiddenNets
A list of netnames that have been manually hidden in the board editor.
SELECTION_FILTER_OPTIONS m_SelectionFilter
State of the selection filter widget.
PROJECT_LOCAL_SETTINGS(PROJECT *aProject, const wxString &aFilename)
std::vector< PROJECT_FILE_STATE > m_files
Project scope.
void SetProject(PROJECT *aProject)