diff --git a/eeschema/dialog_edit_component_in_lib.cpp b/eeschema/dialog_edit_component_in_lib.cpp
index e8114fa27a..06703d62cc 100644
--- a/eeschema/dialog_edit_component_in_lib.cpp
+++ b/eeschema/dialog_edit_component_in_lib.cpp
@@ -13,7 +13,8 @@
#include "general.h"
#include "protos.h"
#include "libeditfrm.h"
-#include "class_libentry.h"
+#include "class_library.h"
+//#include "class_libentry.h"
#include "dialog_edit_component_in_lib.h"
@@ -73,7 +74,7 @@ void DIALOG_EDIT_COMPONENT_IN_LIBRARY::Init( )
m_ButtonDeleteAllAlias->Enable( false );
/* Place list of alias names in listbox */
- m_PartAliasList->Append( component->m_AliasList );
+ m_PartAliasListCtrl->Append( component->m_AliasList );
if( component->m_AliasList.GetCount() == 0 )
{
@@ -97,3 +98,64 @@ void DIALOG_EDIT_COMPONENT_IN_LIBRARY::OnCancelClick( wxCommandEvent& event )
EndModal( wxID_CANCEL );
}
+
+
+void DIALOG_EDIT_COMPONENT_IN_LIBRARY::InitPanelDoc()
+{
+ CMP_LIB_ENTRY* entry;
+ LIB_COMPONENT* component = m_Parent->GetComponent();
+ CMP_LIBRARY* library = m_Parent->GetLibrary();
+
+ if( component == NULL )
+ return;
+
+ if( m_Parent->GetAliasName().IsEmpty() )
+ {
+ entry = component;
+ }
+ else
+ {
+ entry =
+ ( CMP_LIB_ENTRY* ) library->FindAlias( m_Parent->GetAliasName() );
+
+ if( entry == NULL )
+ return;
+ }
+
+ m_DocCtrl->SetValue( entry->GetDescription() );
+ m_KeywordsCtrl->SetValue( entry->GetKeyWords() );
+ m_DocfileCtrl->SetValue( entry->GetDocFileName() );
+}
+
+
+/*
+ * create the basic panel for component properties editing
+ */
+void DIALOG_EDIT_COMPONENT_IN_LIBRARY::InitBasicPanel()
+{
+ LIB_COMPONENT* component = m_Parent->GetComponent();
+
+ if( m_Parent->GetShowDeMorgan() )
+ m_AsConvertButt->SetValue( true );
+
+ /* Default values for a new component. */
+ if( component == NULL )
+ {
+ m_ShowPinNumButt->SetValue( true );
+ m_ShowPinNameButt->SetValue( true );
+ m_PinsNameInsideButt->SetValue( true );
+ m_SelNumberOfUnits->SetValue( 1 );
+ m_SetSkew->SetValue( 40 );
+ m_OptionPower->SetValue( false );
+ m_OptionPartsLocked->SetValue( false );
+ return;
+ }
+
+ m_ShowPinNumButt->SetValue( component->m_DrawPinNum );
+ m_ShowPinNameButt->SetValue( component->m_DrawPinName );
+ m_PinsNameInsideButt->SetValue( component->m_TextInside != 0 );
+ m_SelNumberOfUnits->SetValue( component->GetPartCount() );
+ m_SetSkew->SetValue( component->m_TextInside );
+ m_OptionPower->SetValue( component->isPower() );
+ m_OptionPartsLocked->SetValue( component->m_UnitSelectionLocked );
+}
diff --git a/eeschema/dialog_edit_component_in_lib_base.cpp b/eeschema/dialog_edit_component_in_lib_base.cpp
index a378bba679..1620a34310 100644
--- a/eeschema/dialog_edit_component_in_lib_base.cpp
+++ b/eeschema/dialog_edit_component_in_lib_base.cpp
@@ -118,8 +118,8 @@ DIALOG_EDIT_COMPONENT_IN_LIBRARY_BASE::DIALOG_EDIT_COMPONENT_IN_LIBRARY_BASE( wx
m_PanelDocBoxSizer->Add( m_staticTextDescription, 0, wxTOP|wxRIGHT|wxLEFT, 5 );
- m_Doc = new wxTextCtrl( m_PanelDoc, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
- m_PanelDocBoxSizer->Add( m_Doc, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
+ m_DocCtrl = new wxTextCtrl( m_PanelDoc, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
+ m_PanelDocBoxSizer->Add( m_DocCtrl, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
m_staticTextKeywords = new wxStaticText( m_PanelDoc, wxID_ANY, _("Keywords:"), wxDefaultPosition, wxDefaultSize, 0 );
m_staticTextKeywords->Wrap( -1 );
@@ -127,8 +127,8 @@ DIALOG_EDIT_COMPONENT_IN_LIBRARY_BASE::DIALOG_EDIT_COMPONENT_IN_LIBRARY_BASE( wx
m_PanelDocBoxSizer->Add( m_staticTextKeywords, 0, wxTOP|wxRIGHT|wxLEFT, 5 );
- m_Keywords = new wxTextCtrl( m_PanelDoc, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
- m_PanelDocBoxSizer->Add( m_Keywords, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
+ m_KeywordsCtrl = new wxTextCtrl( m_PanelDoc, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
+ m_PanelDocBoxSizer->Add( m_KeywordsCtrl, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
m_staticTextDocFileName = new wxStaticText( m_PanelDoc, wxID_ANY, _("DocFileName:"), wxDefaultPosition, wxDefaultSize, 0 );
m_staticTextDocFileName->Wrap( -1 );
@@ -136,8 +136,8 @@ DIALOG_EDIT_COMPONENT_IN_LIBRARY_BASE::DIALOG_EDIT_COMPONENT_IN_LIBRARY_BASE( wx
m_PanelDocBoxSizer->Add( m_staticTextDocFileName, 0, wxTOP|wxRIGHT|wxLEFT, 5 );
- m_Docfile = new wxTextCtrl( m_PanelDoc, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( 400,-1 ), 0 );
- m_PanelDocBoxSizer->Add( m_Docfile, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
+ m_DocfileCtrl = new wxTextCtrl( m_PanelDoc, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( 400,-1 ), 0 );
+ m_PanelDocBoxSizer->Add( m_DocfileCtrl, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
wxBoxSizer* bSizerPaneldocbutts;
bSizerPaneldocbutts = new wxBoxSizer( wxHORIZONTAL );
@@ -167,8 +167,8 @@ DIALOG_EDIT_COMPONENT_IN_LIBRARY_BASE::DIALOG_EDIT_COMPONENT_IN_LIBRARY_BASE( wx
bLeftBoxSizerPanelAlias->Add( m_staticTextAlias, 0, wxTOP|wxRIGHT|wxLEFT, 5 );
- m_PartAliasList = new wxListBox( m_PanelAlias, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0, NULL, 0 );
- bLeftBoxSizerPanelAlias->Add( m_PartAliasList, 1, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
+ m_PartAliasListCtrl = new wxListBox( m_PanelAlias, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0, NULL, 0 );
+ bLeftBoxSizerPanelAlias->Add( m_PartAliasListCtrl, 1, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
bSizerMainPanelAlias->Add( bLeftBoxSizerPanelAlias, 1, wxEXPAND, 5 );
diff --git a/eeschema/dialog_edit_component_in_lib_base.fbp b/eeschema/dialog_edit_component_in_lib_base.fbp
index 3ae3549902..ada0f38766 100644
--- a/eeschema/dialog_edit_component_in_lib_base.fbp
+++ b/eeschema/dialog_edit_component_in_lib_base.fbp
@@ -965,7 +965,7 @@
0
- m_Doc
+ m_DocCtrl
protected
@@ -1071,7 +1071,7 @@
0
- m_Keywords
+ m_KeywordsCtrl
protected
@@ -1177,7 +1177,7 @@
0
- m_Docfile
+ m_DocfileCtrl
protected
400,-1
@@ -1461,7 +1461,7 @@
wxID_ANY
- m_PartAliasList
+ m_PartAliasListCtrl
protected
diff --git a/eeschema/dialog_edit_component_in_lib_base.h b/eeschema/dialog_edit_component_in_lib_base.h
index 91080a22ec..b9a95a745c 100644
--- a/eeschema/dialog_edit_component_in_lib_base.h
+++ b/eeschema/dialog_edit_component_in_lib_base.h
@@ -67,16 +67,16 @@ class DIALOG_EDIT_COMPONENT_IN_LIBRARY_BASE : public wxDialog
wxCheckBox* m_OptionPartsLocked;
wxPanel* m_PanelDoc;
wxStaticText* m_staticTextDescription;
- wxTextCtrl* m_Doc;
+ wxTextCtrl* m_DocCtrl;
wxStaticText* m_staticTextKeywords;
- wxTextCtrl* m_Keywords;
+ wxTextCtrl* m_KeywordsCtrl;
wxStaticText* m_staticTextDocFileName;
- wxTextCtrl* m_Docfile;
+ wxTextCtrl* m_DocfileCtrl;
wxButton* m_ButtonCopyDoc;
wxButton* m_buttonBrowseDocFiles;
wxPanel* m_PanelAlias;
wxStaticText* m_staticTextAlias;
- wxListBox* m_PartAliasList;
+ wxListBox* m_PartAliasListCtrl;
wxButton* m_ButtonAddeAlias;
wxButton* m_ButtonDeleteOneAlias;
wxButton* m_ButtonDeleteAllAlias;
diff --git a/eeschema/edit_component_in_lib.cpp b/eeschema/edit_component_in_lib.cpp
index 55e2309554..e6987b9d7d 100644
--- a/eeschema/edit_component_in_lib.cpp
+++ b/eeschema/edit_component_in_lib.cpp
@@ -48,72 +48,10 @@ void WinEDA_LibeditFrame::EditComponentProperties()
DisplayLibInfos();
DisplayCmpDoc();
GetScreen()->SetModify();
- SaveCopyInUndoList( m_component );
}
-void DIALOG_EDIT_COMPONENT_IN_LIBRARY::InitPanelDoc()
-{
- CMP_LIB_ENTRY* entry;
- LIB_COMPONENT* component = m_Parent->GetComponent();
- CMP_LIBRARY* library = m_Parent->GetLibrary();
-
- if( component == NULL )
- return;
-
- if( m_Parent->GetAliasName().IsEmpty() )
- {
- entry = component;
- }
- else
- {
- entry =
- ( CMP_LIB_ENTRY* ) library->FindAlias( m_Parent->GetAliasName() );
-
- if( entry == NULL )
- return;
- }
-
- m_Doc->SetValue( entry->GetDescription() );
- m_Keywords->SetValue( entry->GetKeyWords() );
- m_Docfile->SetValue( entry->GetDocFileName() );
-}
-
-
-/*
- * create the basic panel for component properties editing
- */
-void DIALOG_EDIT_COMPONENT_IN_LIBRARY::InitBasicPanel()
-{
- LIB_COMPONENT* component = m_Parent->GetComponent();
-
- if( m_Parent->GetShowDeMorgan() )
- m_AsConvertButt->SetValue( true );
-
- /* Default values for a new component. */
- if( component == NULL )
- {
- m_ShowPinNumButt->SetValue( true );
- m_ShowPinNameButt->SetValue( true );
- m_PinsNameInsideButt->SetValue( true );
- m_SelNumberOfUnits->SetValue( 1 );
- m_SetSkew->SetValue( 40 );
- m_OptionPower->SetValue( false );
- m_OptionPartsLocked->SetValue( false );
- return;
- }
-
- m_ShowPinNumButt->SetValue( component->m_DrawPinNum );
- m_ShowPinNameButt->SetValue( component->m_DrawPinName );
- m_PinsNameInsideButt->SetValue( component->m_TextInside != 0 );
- m_SelNumberOfUnits->SetValue( component->GetPartCount() );
- m_SetSkew->SetValue( component->m_TextInside );
- m_OptionPower->SetValue( component->isPower() );
- m_OptionPartsLocked->SetValue( component->m_UnitSelectionLocked );
-}
-
-
void DIALOG_EDIT_COMPONENT_IN_LIBRARY::OnOkClick( wxCommandEvent& event )
{
@@ -128,6 +66,8 @@ void DIALOG_EDIT_COMPONENT_IN_LIBRARY::OnOkClick( wxCommandEvent& event )
return;
}
+ m_Parent->SaveCopyInUndoList( component );
+
CMP_LIBRARY* library = m_Parent->GetLibrary();
if( m_Parent->GetAliasName().IsEmpty() )
@@ -152,14 +92,14 @@ void DIALOG_EDIT_COMPONENT_IN_LIBRARY::OnOkClick( wxCommandEvent& event )
}
else
{
- entry->SetDescription( m_Doc->GetValue() );
- entry->SetKeyWords( m_Keywords->GetValue() );
- entry->SetDocFileName( m_Docfile->GetValue() );
+ entry->SetDescription( m_DocCtrl->GetValue() );
+ entry->SetKeyWords( m_KeywordsCtrl->GetValue() );
+ entry->SetDocFileName( m_DocfileCtrl->GetValue() );
}
- if( m_PartAliasList->GetStrings() != component->m_AliasList )
+ if( m_PartAliasListCtrl->GetStrings() != component->m_AliasList )
{
- wxArrayString aliases = m_PartAliasList->GetStrings();
+ wxArrayString aliases = m_PartAliasListCtrl->GetStrings();
/* Add names not existing in the current component alias list. */
for( i = 0; i < aliases.GetCount(); i++ )
@@ -248,9 +188,9 @@ void DIALOG_EDIT_COMPONENT_IN_LIBRARY::CopyDocToAlias( wxCommandEvent& WXUNUSED
if( component == NULL || m_Parent->GetAliasName().IsEmpty() )
return;
- m_Doc->SetValue( component->GetDescription() );
- m_Docfile->SetValue( component->GetDocFileName() );
- m_Keywords->SetValue( component->GetKeyWords() );
+ m_DocCtrl->SetValue( component->GetDescription() );
+ m_DocfileCtrl->SetValue( component->GetDocFileName() );
+ m_KeywordsCtrl->SetValue( component->GetKeyWords() );
}
@@ -259,7 +199,7 @@ void DIALOG_EDIT_COMPONENT_IN_LIBRARY::DeleteAllAliasOfPart(
wxCommandEvent& WXUNUSED (event) )
/**********************************************************/
{
- if( m_PartAliasList->FindString( m_Parent->GetAliasName() )
+ if( m_PartAliasListCtrl->FindString( m_Parent->GetAliasName() )
!= wxNOT_FOUND )
{
wxString msg;
@@ -274,7 +214,7 @@ edited!" ),
if( IsOK( this, _( "Remove all aliases from list?" ) ) )
{
- m_PartAliasList->Clear();
+ m_PartAliasListCtrl->Clear();
m_ButtonDeleteAllAlias->Enable( false );
m_ButtonDeleteOneAlias->Enable( false );
}
@@ -304,7 +244,7 @@ void DIALOG_EDIT_COMPONENT_IN_LIBRARY::AddAliasOfPart( wxCommandEvent& WXUNUSED
Line.Replace( wxT( " " ), wxT( "_" ) );
aliasname = Line;
- if( m_PartAliasList->FindString( aliasname ) != wxNOT_FOUND
+ if( m_PartAliasListCtrl->FindString( aliasname ) != wxNOT_FOUND
|| library->FindEntry( aliasname ) != NULL )
{
wxString msg;
@@ -316,7 +256,7 @@ library <%s>." ),
return;
}
- m_PartAliasList->Append( aliasname );
+ m_PartAliasListCtrl->Append( aliasname );
if( m_Parent->GetAliasName().IsEmpty() )
m_ButtonDeleteAllAlias->Enable( true );
m_ButtonDeleteOneAlias->Enable( true );
@@ -326,7 +266,7 @@ library <%s>." ),
void DIALOG_EDIT_COMPONENT_IN_LIBRARY::DeleteAliasOfPart(
wxCommandEvent& WXUNUSED (event) )
{
- wxString aliasname = m_PartAliasList->GetStringSelection();
+ wxString aliasname = m_PartAliasListCtrl->GetStringSelection();
if( aliasname.IsEmpty() )
return;
@@ -340,9 +280,9 @@ edited!" ),
return;
}
- m_PartAliasList->Delete( m_PartAliasList->GetSelection() );
+ m_PartAliasListCtrl->Delete( m_PartAliasListCtrl->GetSelection() );
- if( m_PartAliasList->IsEmpty() )
+ if( m_PartAliasListCtrl->IsEmpty() )
{
m_ButtonDeleteAllAlias->Enable( false );
m_ButtonDeleteOneAlias->Enable( false );
@@ -441,7 +381,7 @@ void DIALOG_EDIT_COMPONENT_IN_LIBRARY::BrowseAndSelectDocFile( wxCommandEvent& e
#ifdef __WINDOWS__
filename.Replace(wxT("\\"), wxT("/") );
#endif
- m_Docfile->SetValue( filename );
+ m_DocfileCtrl->SetValue( filename );
}
diff --git a/eeschema/libedit_undo_redo.cpp b/eeschema/libedit_undo_redo.cpp
index 32fa3995b1..f7c2c16af5 100644
--- a/eeschema/libedit_undo_redo.cpp
+++ b/eeschema/libedit_undo_redo.cpp
@@ -39,14 +39,13 @@ void WinEDA_LibeditFrame::SaveCopyInUndoList( EDA_BaseStruct* ItemToCopy,
}
-/******************************************************/
+/*************************************************************************/
void WinEDA_LibeditFrame::GetComponentFromRedoList(wxCommandEvent& event)
-/******************************************************/
+/*************************************************************************/
/* Redo the last edition:
* - Place the current edited library component in undo list
* - Get old version of the current edited library component
- * @return FALSE if nothing done, else true
*/
{
if ( GetScreen()->GetRedoCommandCount() <= 0 )
@@ -64,19 +63,24 @@ void WinEDA_LibeditFrame::GetComponentFromRedoList(wxCommandEvent& event)
if( m_component )
m_component->SetNext( NULL );
m_drawItem = NULL;
+ UpdateAliasSelectList();
+ UpdatePartSelectList();
+ if( m_component )
+ SetShowDeMorgan( m_component->HasConversion() );
+ DisplayLibInfos();
+ DisplayCmpDoc();
GetScreen()->SetModify();
DrawPanel->Refresh();
}
-/******************************************************/
+/************************************************************************/
void WinEDA_LibeditFrame::GetComponentFromUndoList(wxCommandEvent& event)
-/******************************************************/
+/************************************************************************/
-/* Undo the last edition:
+/** Undo the last edition:
* - Place the current edited library component in Redo list
* - Get old version of the current edited library component
- * @return FALSE if nothing done, else true
*/
{
if ( GetScreen()->GetUndoCommandCount() <= 0 )
@@ -95,6 +99,12 @@ void WinEDA_LibeditFrame::GetComponentFromUndoList(wxCommandEvent& event)
if( m_component )
m_component->SetNext( NULL );
m_drawItem = NULL;
+ UpdateAliasSelectList();
+ UpdatePartSelectList();
+ if( m_component )
+ SetShowDeMorgan( m_component->HasConversion() );
+ DisplayLibInfos();
+ DisplayCmpDoc();
GetScreen()->SetModify();
DrawPanel->Refresh();
}