Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
K
kicad-source-mirror
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Commits
Open sidebar
Elphel
kicad-source-mirror
Commits
0ac832f0
Commit
0ac832f0
authored
Apr 30, 2008
by
charras
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
screen number and screen count now are set
parent
39125547
Changes
12
Show whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
129 additions
and
124 deletions
+129
-124
change_log.txt
change_log.txt
+1
-0
annotate.cpp
eeschema/annotate.cpp
+8
-30
class_drawsheet.cpp
eeschema/class_drawsheet.cpp
+3
-5
class_drawsheet.h
eeschema/class_drawsheet.h
+49
-48
class_screen.cpp
eeschema/class_screen.cpp
+0
-2
files-io.cpp
eeschema/files-io.cpp
+2
-1
hierarch.cpp
eeschema/hierarch.cpp
+1
-0
save_schemas.cpp
eeschema/save_schemas.cpp
+15
-10
schframe.cpp
eeschema/schframe.cpp
+26
-0
class_screen.h
include/class_screen.h
+16
-17
wxEeschemaStruct.h
include/wxEeschemaStruct.h
+8
-0
todo.txt
todo.txt
+0
-11
No files found.
change_log.txt
View file @
0ac832f0
...
...
@@ -10,6 +10,7 @@ email address.
================================================================================
+eeschema:
made in some dialogs the ESC key working (linux version, already working under windows)
screen number and screen count now are set
2008-Apr-29 UPDATE Dick Hollenbeck <dick@softplc.com>
...
...
eeschema/annotate.cpp
View file @
0ac832f0
...
...
@@ -22,45 +22,23 @@ static int ExistUnit( CmpListStruct* Objet, int Unit,
CmpListStruct
*
BaseListeCmp
,
int
NbOfCmp
);
/************************************************/
/************************************************
******
/
void
WinEDA_SchematicFrame
::
UpdateSheetNumberAndDate
()
/************************************************/
/************************************************
******
/
/* Set a sheet number, the sheet count for sheets in the whole schematic
* and update the date in all screens
*/
{
wxString
date
=
GenDate
();
int
sheet_number
=
1
;
// sheet 1 is the root sheet
DrawSheetPath
*
sheetpath
;
EDA_ScreenList
s_list
;
/* Build the sheet list */
EDA_SheetList
SheetList
(
g_RootSheet
);
int
sheet_count
=
SheetList
.
GetCount
();
for
(
sheetpath
=
SheetList
.
GetFirst
();
sheetpath
!=
NULL
;
sheetpath
=
SheetList
.
GetNext
()
)
{
// Read all sheets in path, but not the root sheet (jj = 1)
for
(
int
jj
=
1
;
jj
<
sheetpath
->
m_numSheets
;
jj
++
)
{
DrawSheetStruct
*
sheet
=
sheetpath
->
m_sheets
[
jj
];
sheet
->
m_SheetNumber
=
sheet_number
++
;
sheet
->
m_NumberOfSheets
=
sheet_count
;
SCH_SCREEN
*
screen
=
sheet
->
m_AssociatedScreen
;
if
(
screen
!=
NULL
)
{
screen
->
m_NumberOfScreen
=
sheet_count
;
// Set the date
for
(
SCH_SCREEN
*
screen
=
s_list
.
GetFirst
();
screen
!=
NULL
;
screen
=
s_list
.
GetNext
()
)
screen
->
m_Date
=
date
;
}
}
}
g_RootSheet
->
m_AssociatedScreen
->
m_Date
=
date
;
g_RootSheet
->
m_AssociatedScreen
->
m_NumberOfScreen
=
sheet_count
;
g_RootSheet
->
m_SheetNumber
=
1
;
g_RootSheet
->
m_NumberOfSheets
=
sheet_count
;
// Set sheet counts
SetSheetNumberAndCount
();
}
...
...
eeschema/class_drawsheet.cpp
View file @
0ac832f0
...
...
@@ -47,8 +47,6 @@ DrawSheetStruct::DrawSheetStruct( const wxPoint& pos ) :
m_AssociatedScreen
=
NULL
;
m_SheetName
.
Printf
(
wxT
(
"Sheet%8.8lX"
),
m_TimeStamp
);
m_FileName
.
Printf
(
wxT
(
"file%8.8lX.sch"
),
m_TimeStamp
);
m_SheetNumber
=
1
;
m_NumberOfSheets
=
1
;
}
...
...
@@ -499,9 +497,9 @@ bool DrawSheetStruct::Load( WinEDA_SchematicFrame* frame )
}
/**********************************
*********************************************
/
/**********************************/
int
DrawSheetStruct
::
CountSheets
()
/**********************************
*********************************************
/
/**********************************/
{
int
count
=
1
;
//1 = this!!
...
...
eeschema/class_drawsheet.h
View file @
0ac832f0
...
...
@@ -52,9 +52,11 @@ public:
*/
bool
Save
(
FILE
*
aFile
)
const
;
#if defined(DEBUG)
#if defined (DEBUG)
// comment inherited by Doxygen from Base_Struct
void
Show
(
int
nestLevel
,
std
::
ostream
&
os
);
#endif
};
...
...
@@ -64,7 +66,7 @@ public:
*/
WX_DEFINE_ARRAY
(
DrawSheetStruct
*
,
SheetGrowArray
);
class
DrawSheetStruct
:
public
SCH_ITEM
/*public SCH_SCREEN*/
/* Gestion de la hierarchie */
class
DrawSheetStruct
:
public
SCH_ITEM
/* Gestion de la hierarchie */
{
public
:
wxString
m_SheetName
;
/*this is equivalent to C101 for components:
...
...
@@ -75,7 +77,6 @@ private:
* reading the sheet description from file. */
public
:
int
m_SheetNameSize
;
/* Size (height) of the text, used to draw the name */
int
m_FileNameSize
;
/* Size (height) of the text, used to draw the name */
wxPoint
m_Pos
;
wxSize
m_Size
;
/* Position and Size of sheet symbol */
...
...
@@ -85,8 +86,6 @@ public:
SCH_SCREEN
*
m_AssociatedScreen
;
/* Associated Screen which handle the physical data
* In complex hierarchies we can have many DrawSheetStruct using the same data
*/
int
m_SheetNumber
;
// sheet number (used for info)
int
m_NumberOfSheets
;
// Sheets count in the whole schematic (used for info)
public
:
DrawSheetStruct
(
const
wxPoint
&
pos
=
wxPoint
(
0
,
0
)
);
...
...
@@ -126,9 +125,11 @@ public:
//to remove a sheet, just delete it
//-- the destructor should take care of everything else.
#if defined(DEBUG)
#if defined (DEBUG)
// comment inherited by Doxygen from Base_Struct
void
Show
(
int
nestLevel
,
std
::
ostream
&
os
);
#endif
};
...
...
eeschema/class_screen.cpp
View file @
0ac832f0
...
...
@@ -91,8 +91,6 @@ SCH_SCREEN::SCH_SCREEN( int screentype, KICAD_T aType ) :
SetGridList
(
g_GridList
);
m_UndoRedoCountMax
=
10
;
m_RefCount
=
0
;
m_ScreenNumber
=
1
;
m_NumberOfScreen
=
1
;
}
...
...
eeschema/files-io.cpp
View file @
0ac832f0
...
...
@@ -152,7 +152,6 @@ int WinEDA_SchematicFrame::LoadOneEEProject( const wxString& FileName, bool IsNe
{
screen
->
m_CurrentSheetDesc
=
&
g_Sheet_A4
;
screen
->
SetZoom
(
32
);
screen
->
m_ScreenNumber
=
screen
->
m_NumberOfScreen
=
1
;
screen
->
m_Title
=
wxT
(
"noname.sch"
);
GetScreen
()
->
m_FileName
=
screen
->
m_Title
;
screen
->
m_Company
.
Empty
();
...
...
@@ -162,6 +161,7 @@ int WinEDA_SchematicFrame::LoadOneEEProject( const wxString& FileName, bool IsNe
screen
->
m_Commentaire4
.
Empty
();
Read_Config
(
wxEmptyString
,
TRUE
);
Zoom_Automatique
(
TRUE
);
SetSheetNumberAndCount
();
ReDrawPanel
();
return
1
;
}
...
...
@@ -226,6 +226,7 @@ int WinEDA_SchematicFrame::LoadOneEEProject( const wxString& FileName, bool IsNe
/* Reaffichage ecran de base (ROOT) si necessaire */
ActiveScreen
=
GetScreen
();
Zoom_Automatique
(
FALSE
);
SetSheetNumberAndCount
();
DrawPanel
->
Refresh
(
TRUE
);
return
diag
;
}
...
...
eeschema/hierarch.cpp
View file @
0ac832f0
...
...
@@ -316,6 +316,7 @@ static bool UpdateScreenFromSheet(WinEDA_SchematicFrame * frame)
//update the References
frame
->
m_CurrentSheet
->
UpdateAllScreenReferences
();
frame
->
SetSheetNumberAndCount
();
frame
->
DrawPanel
->
m_CanStartBlock
=
-
1
;
ActiveScreen
=
frame
->
m_CurrentSheet
->
LastScreen
();
if
(
NewScreen
->
m_FirstRedraw
){
...
...
eeschema/save_schemas.cpp
View file @
0ac832f0
...
...
@@ -145,7 +145,12 @@ bool SCH_SCREEN::Save( FILE* aFile ) const
fprintf
(
aFile
,
"$Descr %s %d %d
\n
"
,
CONV_TO_UTF8
(
PlotSheet
->
m_Name
),
PlotSheet
->
m_Size
.
x
,
PlotSheet
->
m_Size
.
y
);
/* Write ScreenNumber and NumberOfScreen; not very meaningfull for SheetNumber and Sheet Count
* in a complex hierarchy, but usefull in simple hierarchy and flat hierarchy
* Used also to serach the root sheet ( ScreenNumber = 1 ) withing the files
*/
fprintf
(
aFile
,
"Sheet %d %d
\n
"
,
m_ScreenNumber
,
m_NumberOfScreen
);
fprintf
(
aFile
,
"Title
\"
%s
\"\n
"
,
CONV_TO_UTF8
(
m_Title
)
);
fprintf
(
aFile
,
"Date
\"
%s
\"\n
"
,
CONV_TO_UTF8
(
m_Date
)
);
fprintf
(
aFile
,
"Rev
\"
%s
\"\n
"
,
CONV_TO_UTF8
(
m_Revision
)
);
...
...
@@ -159,7 +164,7 @@ bool SCH_SCREEN::Save( FILE* aFile ) const
/* Saving schematic items */
bool
failed
=
FALSE
;
for
(
SCH_ITEM
*
item
=
EEDrawList
;
item
;
item
=
item
->
Next
()
)
for
(
SCH_ITEM
*
item
=
EEDrawList
;
item
;
item
=
item
->
Next
()
)
{
switch
(
item
->
Type
()
)
{
...
...
@@ -180,9 +185,9 @@ bool SCH_SCREEN::Save( FILE* aFile ) const
break
;
/*
case DRAW_HIERARCHICAL_PIN_SHEET_STRUCT_TYPE:
case DRAW_PICK_ITEM_STRUCT_TYPE:
break;
*
case DRAW_HIERARCHICAL_PIN_SHEET_STRUCT_TYPE:
*
case DRAW_PICK_ITEM_STRUCT_TYPE:
*
break;
*/
default
:
...
...
eeschema/schframe.cpp
View file @
0ac832f0
...
...
@@ -201,6 +201,32 @@ DrawSheetPath* WinEDA_SchematicFrame::GetSheet()
}
/****************************************************/
void
WinEDA_SchematicFrame
::
SetSheetNumberAndCount
()
/****************************************************/
/** Function SetSheetNumberAndCount
* Set the m_ScreenNumber and m_NumberOfScreen members for screens
* must be called after a delete or add sheet command, ans when entering a sheet
*/
{
SCH_SCREEN
*
screen
=
GetScreen
();
EDA_ScreenList
s_list
;
/* Set the screen count, and the screen number (1 for root sheet)
*/
int
screen_num
=
2
;
for
(
screen
=
s_list
.
GetFirst
();
screen
!=
NULL
;
screen
=
s_list
.
GetNext
()
)
{
if
(
screen
==
g_RootSheet
->
m_AssociatedScreen
)
screen
->
m_ScreenNumber
=
1
;
else
screen
->
m_ScreenNumber
=
screen_num
++
;
screen
->
m_NumberOfScreen
=
s_list
.
GetCount
();
}
}
SCH_SCREEN
*
WinEDA_SchematicFrame
::
GetScreen
()
const
{
return
m_CurrentSheet
->
LastScreen
();
...
...
include/class_screen.h
View file @
0ac832f0
...
...
@@ -19,10 +19,8 @@
class
SCH_SCREEN
:
public
BASE_SCREEN
{
public
:
int
m_RefCount
;
//how many sheets reference this screen?
//delete when it goes to zero.
int
m_ScreenNumber
;
int
m_NumberOfScreen
;
int
m_RefCount
;
/*how many sheets reference this screen?
* delete when it goes to zero. */
SCH_SCREEN
(
int
idtype
,
KICAD_T
aType
=
SCREEN_STRUCT_TYPE
);
~
SCH_SCREEN
();
...
...
@@ -63,6 +61,7 @@ public:
virtual
void
ClearUndoRedoList
();
virtual
void
AddItemToUndoList
(
EDA_BaseStruct
*
item
);
virtual
void
AddItemToRedoList
(
EDA_BaseStruct
*
item
);
/**
* Function Save
* writes the data structures for this object out to a FILE in "*.brd" format.
...
...
include/wxEeschemaStruct.h
View file @
0ac832f0
...
...
@@ -112,10 +112,18 @@ public:
void
InstallPreviousSheet
();
void
InstallNextScreen
(
DrawSheetStruct
*
Sheet
);
/** Function SetSheetNumberAndCount
* Set the m_ScreenNumber and m_NumberOfScreen members for screens
* must be called after a delete or add sheet command, and when entering a sheet
*/
void
SetSheetNumberAndCount
();
// Plot functions:
void
ToPlot_PS
(
wxCommandEvent
&
event
);
void
ToPlot_HPGL
(
wxCommandEvent
&
event
);
void
ToPostProcess
(
wxCommandEvent
&
event
);
// read and save files
void
Save_File
(
wxCommandEvent
&
event
);
void
SaveProject
();
int
LoadOneEEProject
(
const
wxString
&
FileName
,
bool
IsNew
);
...
...
todo.txt
View file @
0ac832f0
...
...
@@ -85,15 +85,4 @@ asked by: Dick Hollenbeck
loaded board. I think the number of layers should be reduced to the
default and the default layer names should be used.
2008-Apr-30 Assigned To:
asked by: Dick Hollenbeck
================================================================================
+eeschema
This line in eeschema/save_schemas.cpp is using m_ScreenNumber == 1
regardless.
fprintf( aFile, "Sheet %d %d\n", m_ScreenNumber, m_NumberOfScreen );
The field m_ScreenNumber needs to be updated based on where
the sheet is in the hierarchy. Until this is fixed, the code which checks
for "Sheet 1 " in kicad/treeprj_frame.cpp is broken and the project manager
is showing all *.sch files, not just the top most *.sch files.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment