Added sorting by value or position in to the annotation window of eeschema (Thanks for patch to Andrey Fedorushkov).

This commit is contained in:
plyatov 2007-06-14 18:28:16 +00:00
parent 2189158401
commit 14f477f92e
5 changed files with 32 additions and 7 deletions

View File

@ -4,6 +4,11 @@ Started 2007-June-11
Please add newer entries at the top, list the date and your name with Please add newer entries at the top, list the date and your name with
email address. email address.
2007-June-14 UPDATE Igor Plyatov <plyatov@mail.ru>
================================================================================
+ eeschema
Added sorting by value or position in to the annotation window (Thanks for patch to Andrey Fedorushkov).
2007-June-13 RELEASE Jean-Pierre Charras <jean-pierre.charras@inpg.fr> 2007-June-13 RELEASE Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================ ================================================================================
+All: +All:

View File

@ -22,6 +22,7 @@ static int ExistUnit(CmpListStruct *Objet, int Unit,
/* Variable locales */ /* Variable locales */
static bool AnnotProject = TRUE; static bool AnnotProject = TRUE;
static bool SortByPosition = TRUE;
/**************************************/ /**************************************/
@ -88,6 +89,7 @@ CmpListStruct * BaseListeCmp;
wxBusyCursor dummy; wxBusyCursor dummy;
AnnotProject = (m_AnnotProjetCtrl->GetSelection() == 0) ? TRUE : FALSE; AnnotProject = (m_AnnotProjetCtrl->GetSelection() == 0) ? TRUE : FALSE;
SortByPosition = (m_AnnotSortCmpCtrl->GetSelection() == 0) ? TRUE : FALSE;
/* If it is an annotation for all the components, reset previous annotation: */ /* If it is an annotation for all the components, reset previous annotation: */
if( m_AnnotNewCmpCtrl->GetSelection() == 0 ) DeleteAnnotation(event); if( m_AnnotNewCmpCtrl->GetSelection() == 0 ) DeleteAnnotation(event);
@ -245,6 +247,7 @@ EDA_LibComponentStruct *Entry;
BaseListeCmp[NbrCmp].m_PartsLocked = Entry->m_UnitSelectionLocked; BaseListeCmp[NbrCmp].m_PartsLocked = Entry->m_UnitSelectionLocked;
BaseListeCmp[NbrCmp].m_Sheet = NumSheet; BaseListeCmp[NbrCmp].m_Sheet = NumSheet;
BaseListeCmp[NbrCmp].m_IsNew = FALSE; BaseListeCmp[NbrCmp].m_IsNew = FALSE;
BaseListeCmp[NbrCmp].m_Pos = DrawLibItem->m_Pos;
BaseListeCmp[NbrCmp].m_TimeStamp = DrawLibItem->m_TimeStamp; BaseListeCmp[NbrCmp].m_TimeStamp = DrawLibItem->m_TimeStamp;
if( DrawLibItem->m_Field[REFERENCE].m_Text.IsEmpty() ) if( DrawLibItem->m_Field[REFERENCE].m_Text.IsEmpty() )
DrawLibItem->m_Field[REFERENCE].m_Text = wxT("DefRef?"); DrawLibItem->m_Field[REFERENCE].m_Text = wxT("DefRef?");
@ -294,12 +297,19 @@ int AnnotTriComposant(CmpListStruct *Objet1, CmpListStruct *Objet2)
int ii; int ii;
ii = strnicmp( Objet1->m_TextRef, Objet2->m_TextRef, 32 ); ii = strnicmp( Objet1->m_TextRef, Objet2->m_TextRef, 32 );
if ( SortByPosition == TRUE ) {
if ( ii == 0 ) ii = Objet1->m_Sheet - Objet2->m_Sheet;
if ( ii == 0 ) ii = Objet1->m_Unit - Objet2->m_Unit;
if ( ii == 0 ) ii = Objet1->m_Pos.x - Objet2->m_Pos.x;
if ( ii == 0 ) ii = Objet1->m_Pos.y - Objet2->m_Pos.y;
} else {
if ( ii == 0 ) ii = strnicmp( Objet1->m_TextValue, Objet2->m_TextValue, 32 );
if ( ii == 0 ) ii = Objet1->m_Unit - Objet2->m_Unit;
if ( ii == 0 ) ii = Objet1->m_Sheet - Objet2->m_Sheet;
}
if ( ii == 0 ) ii = strnicmp( Objet1->m_TextValue, Objet2->m_TextValue, 32 );
if ( ii == 0 ) ii = Objet1->m_Unit - Objet2->m_Unit;
if ( ii == 0 ) ii = Objet1->m_Sheet - Objet2->m_Sheet;
if ( ii == 0 ) ii = Objet1->m_TimeStamp - Objet2->m_TimeStamp; if ( ii == 0 ) ii = Objet1->m_TimeStamp - Objet2->m_TimeStamp;
return(ii); return(ii);
} }

View File

@ -129,6 +129,13 @@ void WinEDA_AnnotateFrame::CreateControls()
m_AnnotNewCmpCtrl = new wxRadioBox( itemDialog1, ID_RADIOBOX1, _("select items:"), wxDefaultPosition, wxDefaultSize, 2, m_AnnotNewCmpCtrlStrings, 1, wxRA_SPECIFY_COLS ); m_AnnotNewCmpCtrl = new wxRadioBox( itemDialog1, ID_RADIOBOX1, _("select items:"), wxDefaultPosition, wxDefaultSize, 2, m_AnnotNewCmpCtrlStrings, 1, wxRA_SPECIFY_COLS );
itemBoxSizer3->Add(m_AnnotNewCmpCtrl, 0, wxALIGN_LEFT|wxALL, 5); itemBoxSizer3->Add(m_AnnotNewCmpCtrl, 0, wxALIGN_LEFT|wxALL, 5);
wxString m_AnnotSortCmpCtrlStrings[] = {
_("by position"),
_("by value")
};
m_AnnotSortCmpCtrl = new wxRadioBox( itemDialog1, ID_RADIOBOX2, _("sorting:"), wxDefaultPosition, wxDefaultSize, 2, m_AnnotSortCmpCtrlStrings, 1, wxRA_SPECIFY_COLS );
itemBoxSizer3->Add(m_AnnotSortCmpCtrl, 0, wxALIGN_LEFT|wxALL, 5);
wxBoxSizer* itemBoxSizer6 = new wxBoxSizer(wxVERTICAL); wxBoxSizer* itemBoxSizer6 = new wxBoxSizer(wxVERTICAL);
itemBoxSizer2->Add(itemBoxSizer6, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5); itemBoxSizer2->Add(itemBoxSizer6, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);

View File

@ -47,12 +47,13 @@
#define SYMBOL_WINEDA_ANNOTATEFRAME_STYLE wxCAPTION|wxRESIZE_BORDER|wxSYSTEM_MENU|wxCLOSE_BOX #define SYMBOL_WINEDA_ANNOTATEFRAME_STYLE wxCAPTION|wxRESIZE_BORDER|wxSYSTEM_MENU|wxCLOSE_BOX
#define SYMBOL_WINEDA_ANNOTATEFRAME_TITLE _("EESchema Annotation") #define SYMBOL_WINEDA_ANNOTATEFRAME_TITLE _("EESchema Annotation")
#define SYMBOL_WINEDA_ANNOTATEFRAME_IDNAME ID_DIALOG #define SYMBOL_WINEDA_ANNOTATEFRAME_IDNAME ID_DIALOG
#define SYMBOL_WINEDA_ANNOTATEFRAME_SIZE wxSize(400, 300) #define SYMBOL_WINEDA_ANNOTATEFRAME_SIZE wxSize(400, 500)
#define SYMBOL_WINEDA_ANNOTATEFRAME_POSITION wxDefaultPosition #define SYMBOL_WINEDA_ANNOTATEFRAME_POSITION wxDefaultPosition
#define ID_RADIOBOX 10001 #define ID_RADIOBOX 10001
#define ID_RADIOBOX1 10002 #define ID_RADIOBOX1 10002
#define ID_ANNOTATE_CMP 10003 #define ID_RADIOBOX2 10003
#define ID_DEANNOTATE_CMP 10004 #define ID_ANNOTATE_CMP 10004
#define ID_DEANNOTATE_CMP 10005
////@end control identifiers ////@end control identifiers
/*! /*!
@ -111,6 +112,7 @@ public:
////@begin WinEDA_AnnotateFrame member variables ////@begin WinEDA_AnnotateFrame member variables
wxRadioBox* m_AnnotProjetCtrl; wxRadioBox* m_AnnotProjetCtrl;
wxRadioBox* m_AnnotNewCmpCtrl; wxRadioBox* m_AnnotNewCmpCtrl;
wxRadioBox* m_AnnotSortCmpCtrl;
////@end WinEDA_AnnotateFrame member variables ////@end WinEDA_AnnotateFrame member variables
WinEDA_SchematicFrame * m_Parent; WinEDA_SchematicFrame * m_Parent;

View File

@ -96,6 +96,7 @@ public:
char m_TextRef[32]; /* Reference ( hors numero ) */ char m_TextRef[32]; /* Reference ( hors numero ) */
int m_NumRef; /* Numero de reference */ int m_NumRef; /* Numero de reference */
int m_Flag; /* flag pour calculs internes */ int m_Flag; /* flag pour calculs internes */
wxPoint m_Pos; /* position components */
}; };