Commit 142565c3 authored by charras's avatar charras

eeschema: minors changes

parent 4999a844
......@@ -15,7 +15,7 @@
#include "dialog_backanno.cpp"
/**************************************************************/
SCH_COMPONENT * WinEDA_SchematicFrame::FindComponentByRef(
SCH_COMPONENT* WinEDA_SchematicFrame::FindComponentByRef(
const wxString& reference )
/**************************************************************/
{
......@@ -33,22 +33,33 @@ SCH_COMPONENT * WinEDA_SchematicFrame::FindComponentByRef(
SCH_COMPONENT* pSch;
pSch = (SCH_COMPONENT*) DrawList;
if( reference.CmpNoCase( pSch->GetRef(sheet) ) == 0 )
if( reference.CmpNoCase( pSch->GetRef( sheet ) ) == 0 )
return pSch;
}
}
}
return NULL;
}
/**************************************************************/
bool WinEDA_SchematicFrame::ProcessStuffFile( FILE* StuffFile )
/**************************************************************/
/* Read a "stuff" file created by cvpcb.
* That file has lines like:
* comp = "C1" module = "CP6"
* comp = "C2" module = "C1"
* comp = "C3" module = "C1"
* "comp =" gives the component reference
* "module =" gives the footprint name
*
*/
{
int LineNum = 0;
char* cp, Ref[256], FootPrint[256], Line[1024];
SCH_COMPONENT* Cmp;
PartTextStruct* TextField;
while( GetLine( StuffFile, Line, &LineNum, sizeof(Line) ) )
{
......@@ -68,12 +79,16 @@ bool WinEDA_SchematicFrame::ProcessStuffFile( FILE* StuffFile )
if( Cmp == NULL )
continue;
#if defined(DEBUG)
printf( " %s %s\n", CONV_TO_UTF8(Cmp->m_Field[REFERENCE].m_Text),
CONV_TO_UTF8(Cmp->m_Field[VALUE].m_Text) );
#endif
TextField = &Cmp->m_Field[FOOTPRINT];
TextField->m_Text = CONV_FROM_UTF8( FootPrint );
/* Give a reasonnable value to the fied position, if
* the text is empty at position 0, because it is probably not yet initialised
*/
if( Cmp->m_Field[FOOTPRINT].m_Text.IsEmpty() &&
( Cmp->m_Field[FOOTPRINT].m_Pos == wxPoint( 0, 0 ) ) )
{
Cmp->m_Field[FOOTPRINT].m_Pos = Cmp->m_Field[VALUE].m_Pos;
Cmp->m_Field[FOOTPRINT].m_Pos.y -= 100;
}
Cmp->m_Field[FOOTPRINT].m_Text = CONV_FROM_UTF8( FootPrint );
}
}
......
......@@ -22,9 +22,11 @@
// Filename extension for BOM list
#define EXT_LIST wxT( ".lst" )
// Exported functions
int BuildComponentsListFromSchematic( ListComponent* List );
/* fonctions locales */
static int GenListeGLabels( ListLabel* List );
int GenListeCmp( ListComponent* List );
static int ListTriComposantByRef( ListComponent* Objet1,
ListComponent* Objet2 );
static int ListTriComposantByVal( ListComponent* Objet1,
......@@ -117,7 +119,7 @@ void WinEDA_Build_BOM_Frame::CreateExportList( const wxString& FullFileName,
return;
}
NbItems = GenListeCmp( NULL );
NbItems = BuildComponentsListFromSchematic( NULL );
if( NbItems )
{
List = (ListComponent*) MyZMalloc( NbItems * sizeof(ListComponent) );
......@@ -127,18 +129,17 @@ void WinEDA_Build_BOM_Frame::CreateExportList( const wxString& FullFileName,
return;
}
GenListeCmp( List );
BuildComponentsListFromSchematic( List );
/* sort component list */
qsort( List, NbItems, sizeof( ListComponent ),
( int( * ) ( const void*, const void* ) )ListTriComposantByRef );
// if( ! s_ListWithSubCmponents )
if( !aIncludeSubComponents )
DeleteSubCmp( List, NbItems );
/* create the file */
PrintListeCmpByRef( f, List, NbItems, TRUE, aIncludeSubComponents );
PrintComponentsListByRef( f, List, NbItems, TRUE, aIncludeSubComponents );
MyFree( List );
}
......@@ -173,7 +174,7 @@ void WinEDA_Build_BOM_Frame::GenereListeOfItems( const wxString& FullFileName,
return;
}
NbItems = GenListeCmp( NULL );
NbItems = BuildComponentsListFromSchematic( NULL );
if( NbItems )
{
List = (ListComponent*) MyZMalloc( NbItems * sizeof(ListComponent) );
......@@ -183,7 +184,7 @@ void WinEDA_Build_BOM_Frame::GenereListeOfItems( const wxString& FullFileName,
return;
}
GenListeCmp( List );
BuildComponentsListFromSchematic( List );
/* generation du fichier listing */
DateAndTime( Line );
......@@ -201,7 +202,7 @@ void WinEDA_Build_BOM_Frame::GenereListeOfItems( const wxString& FullFileName,
// if( s_ListByRef )
if( m_ListCmpbyRefItems->GetValue() )
{
PrintListeCmpByRef( f, List, NbItems, false, aIncludeSubComponents );
PrintComponentsListByRef( f, List, NbItems, false, aIncludeSubComponents );
}
// if( s_ListByValue )
......@@ -209,7 +210,7 @@ void WinEDA_Build_BOM_Frame::GenereListeOfItems( const wxString& FullFileName,
{
qsort( List, NbItems, sizeof( ListComponent ),
( int( * ) ( const void*, const void* ) )ListTriComposantByVal );
PrintListeCmpByVal( f, List, NbItems, aIncludeSubComponents );
PrintComponentsListByVal( f, List, NbItems, aIncludeSubComponents );
}
MyFree( List );
}
......@@ -265,13 +266,12 @@ void WinEDA_Build_BOM_Frame::GenereListeOfItems( const wxString& FullFileName,
}
/****************************************/
int GenListeCmp( ListComponent* List )
/****************************************/
/*********************************************************/
int BuildComponentsListFromSchematic( ListComponent* List )
/*********************************************************/
/* Creates the list of components in the schematic
/* Creates the list of components found in the whole schematic
*
* routine for generating a list of the used components.
* if List == null, just returns the count. if not, fills the list.
* goes through the sheets, not the screens, so that we account for
* multiple instances of a given screen.
......@@ -581,7 +581,7 @@ void WinEDA_Build_BOM_Frame::PrintFieldData( FILE* f, SCH_COMPONENT* DrawLibItem
bool CompactForm )
/*******************************************************************************************/
{
wxCheckBox* FieldListCtrl[FIELD8 - FIELD1 + 1] = {
wxCheckBox* FieldListCtrl[] = {
m_AddField1,
m_AddField2,
m_AddField3,
......@@ -599,6 +599,8 @@ void WinEDA_Build_BOM_Frame::PrintFieldData( FILE* f, SCH_COMPONENT* DrawLibItem
fprintf( f, "%c%s", s_ExportSeparatorSymbol,
CONV_TO_UTF8( DrawLibItem->m_Field[FOOTPRINT].m_Text ) );
}
else if( m_AddFootprintField->IsChecked() )
fprintf( f, "; %-12s", CONV_TO_UTF8( DrawLibItem->m_Field[FOOTPRINT].m_Text ) );
for( ii = FIELD1; ii <= FIELD8; ii++ )
{
......@@ -617,7 +619,7 @@ void WinEDA_Build_BOM_Frame::PrintFieldData( FILE* f, SCH_COMPONENT* DrawLibItem
/*********************************************************************************************/
int WinEDA_Build_BOM_Frame::PrintListeCmpByRef( FILE* f, ListComponent* List, int NbItems,
int WinEDA_Build_BOM_Frame::PrintComponentsListByRef( FILE* f, ListComponent* List, int NbItems,
bool CompactForm, bool aIncludeSubComponents )
/*********************************************************************************************/
......@@ -732,7 +734,7 @@ int WinEDA_Build_BOM_Frame::PrintListeCmpByRef( FILE* f, ListComponent* List, in
/*********************************************************************************************/
int WinEDA_Build_BOM_Frame::PrintListeCmpByVal( FILE* f, ListComponent* List, int NbItems,
int WinEDA_Build_BOM_Frame::PrintComponentsListByVal( FILE* f, ListComponent* List, int NbItems,
bool aIncludeSubComponents )
/**********************************************************************************************/
{
......@@ -776,7 +778,7 @@ int WinEDA_Build_BOM_Frame::PrintListeCmpByVal( FILE* f, ListComponent* List, in
}
sprintf( CmpName, "%s%c", List[ii].m_Ref, Unit );
fprintf( f, "| %-12s %-10s",CONV_TO_UTF8( DrawLibItem->m_Field[VALUE].m_Text ), CmpName );
fprintf( f, "| %-12s %-10s", CONV_TO_UTF8( DrawLibItem->m_Field[VALUE].m_Text ), CmpName );
// print the sheet path
if( aIncludeSubComponents )
......
......@@ -507,7 +507,8 @@ void WinEDA_Build_BOM_Frame::SavePreferences()
if( s_OutputSeparatorOpt < 0 )
s_OutputSeparatorOpt = 0;
// Determine current settings of all 8 "Fields to add" checkboxes
// Determine current settings of all "Fields to add" checkboxes
s_Add_FpField_state = m_AddFootprintField->GetValue();
s_Add_F1_state = m_AddField1->GetValue();
s_Add_F2_state = m_AddField2->GetValue();
s_Add_F3_state = m_AddField3->GetValue();
......@@ -521,7 +522,7 @@ void WinEDA_Build_BOM_Frame::SavePreferences()
m_Parent->m_Parent->m_EDA_Config->Write( OPTION_BOM_FORMAT, (long) s_OutputFormOpt );
m_Parent->m_Parent->m_EDA_Config->Write( OPTION_BOM_SEPARATOR, (long) s_OutputSeparatorOpt );
// Now save current settings of all 8 "Fields to add" checkboxes
// Now save current settings of all "Fields to add" checkboxes
long addfields = 0;
for( int ii = 0, bitmask = 1; s_AddFieldList[ii] != NULL; ii++ )
{
......
......@@ -134,9 +134,9 @@ public:
bool aRunBrowser);
void GenereListeOfItems(const wxString & FullFileName, bool aIncludeSubComponents );
void CreateExportList(const wxString & FullFileName, bool aIncludeSubComponents);
int PrintListeCmpByRef( FILE * f, ListComponent * List, int NbItems,
int PrintComponentsListByRef( FILE * f, ListComponent * List, int NbItems,
bool CompactForm, bool aIncludeSubComponents );
int PrintListeCmpByVal( FILE *f, ListComponent * List, int NbItems,
int PrintComponentsListByVal( FILE *f, ListComponent * List, int NbItems,
bool aIncludeSubComponents);
void PrintFieldData(FILE * f, SCH_COMPONENT * DrawLibItem, bool CompactForm = FALSE);
void SavePreferences();
......
......@@ -14,13 +14,12 @@
#include "protos.h"
/* fonctions exportees */
/* Imported functions */
int BuildComponentsListFromSchematic( ListComponent* List );
/* fonctions locales */
static int TriListEntry(EDA_LibComponentStruct **Objet1,
EDA_LibComponentStruct **Objet2);
/* Local functions*/
static int TriListEntry(EDA_LibComponentStruct **Objet1, EDA_LibComponentStruct **Objet2);
/* Variable locales */
/*******************************************************************/
......@@ -42,14 +41,14 @@ const wxChar * Text;
/* Creation de la liste des elements */
NbItems = GenListeCmp(NULL ); // Comptage des composants
NbItems = BuildComponentsListFromSchematic(NULL ); // Comptage des composants
if ( NbItems == 0 ) return FALSE;
List = (ListComponent *) MyZMalloc( NbItems * sizeof( ListComponent ) );
if (List == NULL ) return FALSE;
/* Calcul de la liste des composants */
GenListeCmp(List);
BuildComponentsListFromSchematic(List);
/* Calcul de la liste des Entrees de librairie
et Remplacement des alias par les composants "Root" */
......
......@@ -376,12 +376,6 @@ int GetNameOfPartToLoad(WinEDA_DrawFrame * frame, LibraryStruct * Lib,
bool LibArchive(wxWindow * frame, const wxString & ArchFullFileName);
/***************/
/* GENLISTE.CPP */
/***************/
struct ListComponent;
int GenListeCmp( ListComponent * List );
/**************/
/* CLEANUP.CPP */
/**************/
......
......@@ -509,6 +509,7 @@ void WinEDA_SchematicFrame::OnLoadFile( wxCommandEvent& event )
void WinEDA_SchematicFrame::OnLoadStuffFile( wxCommandEvent& event )
{
ReadInputStuffFile( );
DrawPanel->Refresh();
}
void WinEDA_SchematicFrame::OnNewProject( wxCommandEvent& event )
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment