KiCad PCB EDA Suite
dialog_eeschema_page_settings.cpp
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 KiCad Developers, see AUTHORS.txt for contributors.
5  *
6  * This program is free software: you can redistribute it and/or modify it
7  * under the terms of the GNU General Public License as published by the
8  * Free Software Foundation, either version 3 of the License, or (at your
9  * option) any later version.
10  *
11  * This program is distributed in the hope that it will be useful, but
12  * WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14  * General Public License for more details.
15  *
16  * You should have received a copy of the GNU General Public License along
17  * with this program. If not, see <http://www.gnu.org/licenses/>.
18  */
19 
21 
22 #include <kiface_i.h>
23 #include <general.h>
24 #include <sch_edit_frame.h>
25 #include <sch_screen.h>
26 #include <schematic.h>
27 #include <eeschema_settings.h>
28 
30  wxSize aMaxUserSizeMils ) :
31  DIALOG_PAGES_SETTINGS( aParent, IU_PER_MILS, aMaxUserSizeMils )
32 {
33 }
34 
35 
37 {
38  auto cfg = dynamic_cast<EESCHEMA_SETTINGS*>( Kiface().KifaceSettings() );
39  wxCHECK( cfg, /* void */ );
40 
41  cfg->m_PageSettings.export_paper = m_PaperExport->GetValue();
42  cfg->m_PageSettings.export_revision = m_RevisionExport->GetValue();
43  cfg->m_PageSettings.export_date = m_DateExport->GetValue();
44  cfg->m_PageSettings.export_title = m_TitleExport->GetValue();
45  cfg->m_PageSettings.export_company = m_CompanyExport->GetValue();
46  cfg->m_PageSettings.export_comment1 = m_Comment1Export->GetValue();
47  cfg->m_PageSettings.export_comment2 = m_Comment2Export->GetValue();
48  cfg->m_PageSettings.export_comment3 = m_Comment3Export->GetValue();
49  cfg->m_PageSettings.export_comment4 = m_Comment4Export->GetValue();
50  cfg->m_PageSettings.export_comment5 = m_Comment5Export->GetValue();
51  cfg->m_PageSettings.export_comment6 = m_Comment6Export->GetValue();
52  cfg->m_PageSettings.export_comment7 = m_Comment7Export->GetValue();
53  cfg->m_PageSettings.export_comment8 = m_Comment8Export->GetValue();
54  cfg->m_PageSettings.export_comment9 = m_Comment9Export->GetValue();
55 }
56 
57 
59 {
60  wxString msg;
61 
62  m_TextSheetCount->Show( true );
63  m_TextSheetNumber->Show( true );
64  m_PaperExport->Show( true );
65  m_RevisionExport->Show( true );
66  m_DateExport->Show( true );
67  m_TitleExport->Show( true );
68  m_CompanyExport->Show( true );
69  m_Comment1Export->Show( true );
70  m_Comment2Export->Show( true );
71  m_Comment3Export->Show( true );
72  m_Comment4Export->Show( true );
73  m_Comment5Export->Show( true );
74  m_Comment6Export->Show( true );
75  m_Comment7Export->Show( true );
76  m_Comment8Export->Show( true );
77  m_Comment9Export->Show( true );
78 
79  // Init display value for schematic sub-sheet number
80  wxString format = m_TextSheetCount->GetLabel();
81  msg.Printf( format, m_screen->GetPageCount() );
82  m_TextSheetCount->SetLabel( msg );
83 
84  format = m_TextSheetNumber->GetLabel();
85  msg.Printf( format, m_screen->GetVirtualPageNumber() );
86  m_TextSheetNumber->SetLabel( msg );
87 
88  auto cfg = dynamic_cast<EESCHEMA_SETTINGS*>( Kiface().KifaceSettings() );
89  wxCHECK( cfg, /* void */ );
90 
91  m_PaperExport->SetValue( cfg->m_PageSettings.export_paper );
92  m_RevisionExport->SetValue( cfg->m_PageSettings.export_revision );
93  m_DateExport->SetValue( cfg->m_PageSettings.export_date );
94  m_TitleExport->SetValue( cfg->m_PageSettings.export_title );
95  m_CompanyExport->SetValue( cfg->m_PageSettings.export_company );
96  m_Comment1Export->SetValue( cfg->m_PageSettings.export_comment1 );
97  m_Comment2Export->SetValue( cfg->m_PageSettings.export_comment2 );
98  m_Comment3Export->SetValue( cfg->m_PageSettings.export_comment3 );
99  m_Comment4Export->SetValue( cfg->m_PageSettings.export_comment4 );
100  m_Comment5Export->SetValue( cfg->m_PageSettings.export_comment5 );
101  m_Comment6Export->SetValue( cfg->m_PageSettings.export_comment6 );
102  m_Comment7Export->SetValue( cfg->m_PageSettings.export_comment7 );
103  m_Comment8Export->SetValue( cfg->m_PageSettings.export_comment8 );
104  m_Comment9Export->SetValue( cfg->m_PageSettings.export_comment9 );
105 }
106 
107 
109 {
110  wxCHECK_MSG( dynamic_cast<SCH_EDIT_FRAME*>( m_parent ), true,
111  "DIALOG_PAGES_SETTINGS::OnDateApplyClick frame is not a schematic frame!" );
112 
113  // Exports settings to other sheets if requested:
114  SCH_SCREENS ScreenList( dynamic_cast<SCH_EDIT_FRAME*>( m_parent )->Schematic().Root() );
115 
116  // Update page info and/or title blocks for all screens
117  for( SCH_SCREEN* screen = ScreenList.GetFirst(); screen; screen = ScreenList.GetNext() )
118  {
119  if( screen == m_screen )
120  continue;
121 
122  if( m_PaperExport->IsChecked() )
123  screen->SetPageSettings( m_pageInfo );
124 
125  TITLE_BLOCK tb2 = screen->GetTitleBlock();
126 
127  if( m_RevisionExport->IsChecked() )
128  tb2.SetRevision( m_tb.GetRevision() );
129 
130  if( m_DateExport->IsChecked() )
131  tb2.SetDate( m_tb.GetDate() );
132 
133  if( m_TitleExport->IsChecked() )
134  tb2.SetTitle( m_tb.GetTitle() );
135 
136  if( m_CompanyExport->IsChecked() )
137  tb2.SetCompany( m_tb.GetCompany() );
138 
139  if( m_Comment1Export->IsChecked() )
140  tb2.SetComment( 0, m_tb.GetComment( 0 ) );
141 
142  if( m_Comment2Export->IsChecked() )
143  tb2.SetComment( 1, m_tb.GetComment( 1 ) );
144 
145  if( m_Comment3Export->IsChecked() )
146  tb2.SetComment( 2, m_tb.GetComment( 2 ) );
147 
148  if( m_Comment4Export->IsChecked() )
149  tb2.SetComment( 3, m_tb.GetComment( 3 ) );
150 
151  if( m_Comment5Export->IsChecked() )
152  tb2.SetComment( 4, m_tb.GetComment( 4 ) );
153 
154  if( m_Comment6Export->IsChecked() )
155  tb2.SetComment( 5, m_tb.GetComment( 5 ) );
156 
157  if( m_Comment7Export->IsChecked() )
158  tb2.SetComment( 6, m_tb.GetComment( 6 ) );
159 
160  if( m_Comment8Export->IsChecked() )
161  tb2.SetComment( 7, m_tb.GetComment( 7 ) );
162 
163  if( m_Comment9Export->IsChecked() )
164  tb2.SetComment( 8, m_tb.GetComment( 8 ) );
165 
166  screen->SetTitleBlock( tb2 );
167  }
168 
169  return true;
170 }
SCH_SCREEN * GetNext()
void SetRevision(const wxString &aRevision)
Definition: title_block.h:81
const wxString & GetComment(int aIdx) const
Definition: title_block.h:107
TITLE_BLOCK m_tb
true if the page selection is custom
DIALOG_EESCHEMA_PAGE_SETTINGS(EDA_DRAW_FRAME *aParent, wxSize aMaxUserSizeMils)
int GetVirtualPageNumber() const
Definition: base_screen.h:79
int GetPageCount() const
Definition: base_screen.h:76
void SetDate(const wxString &aDate)
Set the date field, and defaults to the current time and date.
Definition: title_block.h:71
The base class for create windows for drawing purpose.
Hold the information shown in the lower right corner of a plot, printout, or editing view.
Definition: title_block.h:40
void SetComment(int aIdx, const wxString &aComment)
Definition: title_block.h:101
const wxString & GetRevision() const
Definition: title_block.h:86
const wxString & GetCompany() const
Definition: title_block.h:96
KIFACE_I & Kiface()
Global KIFACE_I "get" accessor.
void SetCompany(const wxString &aCompany)
Definition: title_block.h:91
void SetTitle(const wxString &aTitle)
Definition: title_block.h:58
const wxString & GetDate() const
Definition: title_block.h:76
PAGE_INFO m_pageInfo
The max page size allowed by the caller frame.
#define IU_PER_MILS
Definition: plotter.cpp:137
const wxString & GetTitle() const
Definition: title_block.h:63
SCH_SCREEN * GetFirst()
Container class that holds multiple SCH_SCREEN objects in a hierarchy.
Definition: sch_screen.h:549