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
1b5baa6b
Commit
1b5baa6b
authored
Jan 07, 2009
by
charras
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
removed a minor bug in eeschema introduced in my recent commit. Added comments
parent
4a489895
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
68 additions
and
31 deletions
+68
-31
class_drawsheetpath.cpp
eeschema/class_drawsheetpath.cpp
+12
-1
class_drawsheetpath.h
eeschema/class_drawsheetpath.h
+48
-21
dangling_ends.cpp
eeschema/dangling_ends.cpp
+1
-1
hierarch.cpp
eeschema/hierarch.cpp
+7
-8
No files found.
eeschema/class_drawsheetpath.cpp
View file @
1b5baa6b
...
@@ -71,6 +71,10 @@ int DrawSheetPath::Cmp( const DrawSheetPath& aSheetPathToTest ) const
...
@@ -71,6 +71,10 @@ int DrawSheetPath::Cmp( const DrawSheetPath& aSheetPathToTest ) const
}
}
/** Function Last
* returns a pointer to the last sheet of the list
* One can see the others sheet as the "path" to reach this last sheet
*/
DrawSheetStruct
*
DrawSheetPath
::
Last
()
DrawSheetStruct
*
DrawSheetPath
::
Last
()
{
{
if
(
m_numSheets
)
if
(
m_numSheets
)
...
@@ -79,6 +83,9 @@ DrawSheetStruct* DrawSheetPath::Last()
...
@@ -79,6 +83,9 @@ DrawSheetStruct* DrawSheetPath::Last()
}
}
/** Function LastScreen
* @return the SCH_SCREEN relative to the last sheet in list
*/
SCH_SCREEN
*
DrawSheetPath
::
LastScreen
()
SCH_SCREEN
*
DrawSheetPath
::
LastScreen
()
{
{
if
(
m_numSheets
)
if
(
m_numSheets
)
...
@@ -87,7 +94,11 @@ SCH_SCREEN* DrawSheetPath::LastScreen()
...
@@ -87,7 +94,11 @@ SCH_SCREEN* DrawSheetPath::LastScreen()
}
}
EDA_BaseStruct
*
DrawSheetPath
::
LastDrawList
()
/** Function LastScreen
* @return a pointer to the first schematic item handled by the
* SCH_SCREEN relative to the last sheet in list
*/
SCH_ITEM
*
DrawSheetPath
::
LastDrawList
()
{
{
if
(
m_numSheets
&&
m_sheets
[
m_numSheets
-
1
]
->
m_AssociatedScreen
)
if
(
m_numSheets
&&
m_sheets
[
m_numSheets
-
1
]
->
m_AssociatedScreen
)
return
m_sheets
[
m_numSheets
-
1
]
->
m_AssociatedScreen
->
EEDrawList
;
return
m_sheets
[
m_numSheets
-
1
]
->
m_AssociatedScreen
->
EEDrawList
;
...
...
eeschema/class_drawsheetpath.h
View file @
1b5baa6b
...
@@ -47,10 +47,17 @@
...
@@ -47,10 +47,17 @@
*/
*/
/***************************************************/
/****************************************/
/* class to handle a and acces to series of sheets */
/* class to handle and acces to a sheet */
/* a 'path' so to speak.. **************************/
/* a 'path' so to speak.. */
/***************************************************/
/****************************************/
/*
* The member m_sheets stores the list of sheets from the first (usually g_RootSheet)
* to a given sheet in last position.
* The last sheet is usually the sheet we want to select or reach. So Last() return this last sheet
* Others sheets are the "path" from the first to the last sheet
*/
class
DrawSheetPath
class
DrawSheetPath
{
{
public
:
public
:
...
@@ -59,6 +66,7 @@ public:
...
@@ -59,6 +66,7 @@ public:
#define DSLSZ 32 // Max number of levels for a sheet path
#define DSLSZ 32 // Max number of levels for a sheet path
DrawSheetStruct
*
m_sheets
[
DSLSZ
];
DrawSheetStruct
*
m_sheets
[
DSLSZ
];
public
:
DrawSheetPath
();
DrawSheetPath
();
~
DrawSheetPath
()
{
};
~
DrawSheetPath
()
{
};
void
Clear
()
{
m_numSheets
=
0
;
}
void
Clear
()
{
m_numSheets
=
0
;
}
...
@@ -68,50 +76,68 @@ public:
...
@@ -68,50 +76,68 @@ public:
* @param aSheetPathToTest = sheet path to compare
* @param aSheetPathToTest = sheet path to compare
* @return -1 if differents, 0 if same
* @return -1 if differents, 0 if same
*/
*/
int
Cmp
(
const
DrawSheetPath
&
aSheetPathToTest
)
const
;
int
Cmp
(
const
DrawSheetPath
&
aSheetPathToTest
)
const
;
DrawSheetStruct
*
Last
();
SCH_SCREEN
*
LastScreen
();
/** Function Last
EDA_BaseStruct
*
LastDrawList
();
* returns a pointer to the last sheet of the list
* One can see the others sheet as the "path" to reach this last sheet
*/
DrawSheetStruct
*
Last
();
/** Function LastScreen
* @return the SCH_SCREEN relative to the last sheet in list
*/
SCH_SCREEN
*
LastScreen
();
/** Function LastScreen
* @return a pointer to the first schematic item handled by the
* SCH_SCREEN relative to the last sheet in list
*/
SCH_ITEM
*
LastDrawList
();
/** Function Push
/** Function Push
* store (push) aSheet in list
* store (push) aSheet in list
* @param aSheet = pointer to the DrawSheetStruct to store in list
* @param aSheet = pointer to the DrawSheetStruct to store in list
* Push is used when entered a sheet to select or analyse it
* This is like cd <directory> in directories navigation
*/
*/
void
Push
(
DrawSheetStruct
*
aSheet
);
void
Push
(
DrawSheetStruct
*
aSheet
);
/** Function Pop
/** Function Pop
* retrieves (pop) the last entered sheet and remove it from list
* retrieves (pop) the last entered sheet and remove it from list
* @return a DrawSheetStruct* pointer to the removed sheet in list
* @return a DrawSheetStruct* pointer to the removed sheet in list
* Pop is used when leaving a sheet after a selection or analyse
* This is like cd .. in directories navigation
*/
*/
DrawSheetStruct
*
Pop
();
DrawSheetStruct
*
Pop
();
/** Function Path
/** Function Path
* the path uses the time stamps which do not changes even when editing sheet parameters
* the path uses the time stamps which do not changes even when editing sheet parameters
* a path is something like / (root) or /34005677 or /34005677/00AE4523
* a path is something like / (root) or /34005677 or /34005677/00AE4523
*/
*/
wxString
Path
();
wxString
Path
();
/** Function PathHumanReadable
/** Function PathHumanReadable
* Return the sheet path in a readable form, i.e.
* Return the sheet path in a readable form, i.e.
* as a path made from sheet names.
* as a path made from sheet names.
* (the "normal" path uses the time stamps which do not changes even when editing sheet parameters)
* (the "normal" path uses the time stamps which do not changes even when editing sheet parameters)
*/
*/
wxString
PathHumanReadable
();
wxString
PathHumanReadable
();
/**
/**
* Function UpdateAllScreenReferences
* Function UpdateAllScreenReferences
* updates the reference and the m_Multi parameter (part selection) for all
* updates the reference and the m_Multi parameter (part selection) for all
* components on a screen depending on the actual sheet path.
* components on a screen depending on the actual sheet path.
* Mandatory in complex hierarchies because sheets use the same screen (basic schematic)
* Mandatory in complex hierarchies because sheets use the same screen (basic schematic)
* but with different references and part selection according to the displayed sheet
* but with different references and part selection
s
according to the displayed sheet
*/
*/
void
UpdateAllScreenReferences
();
void
UpdateAllScreenReferences
();
bool
operator
=
(
const
DrawSheetPath
&
d1
);
bool
operator
=
(
const
DrawSheetPath
&
d1
);
bool
operator
==
(
const
DrawSheetPath
&
d1
);
bool
operator
==
(
const
DrawSheetPath
&
d1
);
bool
operator
!=
(
const
DrawSheetPath
&
d1
);
bool
operator
!=
(
const
DrawSheetPath
&
d1
);
};
};
...
@@ -153,6 +179,7 @@ public:
...
@@ -153,6 +179,7 @@ public:
m_List
=
NULL
;
m_List
=
NULL
;
}
}
/** Function GetCount()
/** Function GetCount()
* @return the number of sheets in list:
* @return the number of sheets in list:
* usually the number of sheets found in the whole hierarchy
* usually the number of sheets found in the whole hierarchy
...
@@ -162,18 +189,18 @@ public:
...
@@ -162,18 +189,18 @@ public:
/** Function GetFirst
/** Function GetFirst
* @return the first item (sheet) in m_List and prepare calls to GetNext()
* @return the first item (sheet) in m_List and prepare calls to GetNext()
*/
*/
DrawSheetPath
*
GetFirst
();
DrawSheetPath
*
GetFirst
();
/** Function GetNext
/** Function GetNext
* @return the next item (sheet) in m_List or NULL if no more item in sheet list
* @return the next item (sheet) in m_List or NULL if no more item in sheet list
*/
*/
DrawSheetPath
*
GetNext
();
DrawSheetPath
*
GetNext
();
/** Function GetSheet
/** Function GetSheet
* @return the item (sheet) in aIndex position in m_List or NULL if less than index items
* @return the item (sheet) in aIndex position in m_List or NULL if less than index items
* @param aIndex = index in sheet list to get the sheet
* @param aIndex = index in sheet list to get the sheet
*/
*/
DrawSheetPath
*
GetSheet
(
int
aIndex
);
DrawSheetPath
*
GetSheet
(
int
aIndex
);
private
:
private
:
...
@@ -182,7 +209,7 @@ private:
...
@@ -182,7 +209,7 @@ private:
* if aSheet = g_RootSheet, the full sheet path and sheet list is built
* if aSheet = g_RootSheet, the full sheet path and sheet list is built
* @param aSheet = the starting sheet from the built is made
* @param aSheet = the starting sheet from the built is made
*/
*/
void
BuildSheetList
(
DrawSheetStruct
*
sheet
);
void
BuildSheetList
(
DrawSheetStruct
*
sheet
);
};
};
#endif
/* CLASS_DRAWSHEET_PATH_H */
#endif
/* CLASS_DRAWSHEET_PATH_H */
eeschema/dangling_ends.cpp
View file @
1b5baa6b
...
@@ -289,7 +289,7 @@ wxPoint ReturnPinPhysicalPosition( LibDrawPin* Pin,
...
@@ -289,7 +289,7 @@ wxPoint ReturnPinPhysicalPosition( LibDrawPin* Pin,
NEGATE
(
PinPos
.
y
);
NEGATE
(
PinPos
.
y
);
else
else
PinPos
=
TransformCoordinate
(
DrawLibItem
->
m_Transform
,
Pin
->
m_Pos
);
PinPos
=
TransformCoordinate
(
DrawLibItem
->
m_Transform
,
Pin
->
m_Pos
)
+
DrawLibItem
->
m_Pos
;
return
PinPos
;
return
PinPos
;
}
}
...
...
eeschema/hierarch.cpp
View file @
1b5baa6b
...
@@ -204,16 +204,15 @@ void WinEDA_HierFrame::BuildSheetsTree( DrawSheetPath* list,
...
@@ -204,16 +204,15 @@ void WinEDA_HierFrame::BuildSheetsTree( DrawSheetPath* list,
}
}
maxposx
+=
m_Tree
->
GetIndent
();
maxposx
+=
m_Tree
->
GetIndent
();
EDA_BaseStruct
*
bs
=
list
->
LastDrawList
();
SCH_ITEM
*
schitem
=
list
->
LastDrawList
();
while
(
bs
&&
m_nbsheets
<
NB_MAX_SHEET
)
while
(
schitem
&&
m_nbsheets
<
NB_MAX_SHEET
)
{
{
if
(
bs
->
Type
()
==
DRAW_SHEET_STRUCT_TYPE
)
if
(
schitem
->
Type
()
==
DRAW_SHEET_STRUCT_TYPE
)
{
{
DrawSheetStruct
*
s
s
=
(
DrawSheetStruct
*
)
bs
;
DrawSheetStruct
*
s
heet
=
(
DrawSheetStruct
*
)
schitem
;
m_nbsheets
++
;
m_nbsheets
++
;
menu
=
m_Tree
->
AppendItem
(
*
previousmenu
,
menu
=
m_Tree
->
AppendItem
(
*
previousmenu
,
sheet
->
m_SheetName
,
0
,
1
);
ss
->
m_SheetName
,
0
,
1
);
list
->
Push
(
sheet
);
list
->
Push
(
ss
);
m_Tree
->
SetItemData
(
menu
,
new
TreeItemData
(
*
list
)
);
m_Tree
->
SetItemData
(
menu
,
new
TreeItemData
(
*
list
)
);
int
ll
=
m_Tree
->
GetItemText
(
menu
).
Len
();
int
ll
=
m_Tree
->
GetItemText
(
menu
).
Len
();
#ifdef __WINDOWS__
#ifdef __WINDOWS__
...
@@ -233,7 +232,7 @@ void WinEDA_HierFrame::BuildSheetsTree( DrawSheetPath* list,
...
@@ -233,7 +232,7 @@ void WinEDA_HierFrame::BuildSheetsTree( DrawSheetPath* list,
m_Tree
->
Expand
(
menu
);
m_Tree
->
Expand
(
menu
);
list
->
Pop
();
list
->
Pop
();
}
}
bs
=
bs
->
Next
();
schitem
=
schitem
->
Next
();
}
}
maxposx
-=
m_Tree
->
GetIndent
();
maxposx
-=
m_Tree
->
GetIndent
();
...
...
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