Eeschema: remove rogue symbol libraries from project file.
Check for symbol libraries that somehow ended up in the project file
after remapping occurred and remove all of them to prevent potentially
broken symbol library links.
Add nagware dialog to warn the user and a checkbox to never show the
dialog again.
Fixes lp:1838185
https://bugs.launchpad.net/kicad/+bug/1838185
(cherry picked from commit 8789ab9265
)
This commit is contained in:
parent
6051dfae30
commit
5d60fe6812
|
@ -226,7 +226,8 @@ void SCH_EDIT_FRAME::InstallPreferences( PAGED_DIALOG* aParent )
|
|||
book->AddPage( new PANEL_EESCHEMA_SETTINGS( this, book ), _( "Eeschema" ) );
|
||||
book->AddSubPage( new PANEL_EESCHEMA_DISPLAY_OPTIONS( this, book ), _( "Display Options" ) );
|
||||
book->AddSubPage( new PANEL_EESCHEMA_COLOR_CONFIG( this, book ), _( "Colors" ) );
|
||||
book->AddSubPage( new PANEL_EESCHEMA_TEMPLATE_FIELDNAMES( this, book ), _( "Field Name Templates" ) );
|
||||
book->AddSubPage( new PANEL_EESCHEMA_TEMPLATE_FIELDNAMES( this, book ),
|
||||
_( "Field Name Templates" ) );
|
||||
}
|
||||
|
||||
|
||||
|
@ -355,6 +356,7 @@ static const wxString PrintSheetRefEntry = "PrintSheetReferenceAndTitle
|
|||
static const wxString RepeatStepXEntry = "RepeatStepX";
|
||||
static const wxString RepeatStepYEntry = "RepeatStepY";
|
||||
static const wxString RepeatLabelIncrementEntry = "RepeatLabelIncrement";
|
||||
static const wxString ShowIllegalSymboLibDialog = "ShowIllegalSymbolLibDialog";
|
||||
|
||||
// Library editor wxConfig entry names.
|
||||
static const wxChar defaultLibWidthEntry[] = wxT( "LibeditLibWidth" );
|
||||
|
@ -395,8 +397,11 @@ PARAM_CFG_ARRAY& SCH_EDIT_FRAME::GetConfigurationSettings()
|
|||
-REPEAT_OFFSET_MAX,
|
||||
REPEAT_OFFSET_MAX ) );
|
||||
m_configSettings.push_back( new PARAM_CFG_INT( true, RepeatLabelIncrementEntry,
|
||||
&m_repeatDeltaLabel,
|
||||
DEFAULT_REPEAT_LABEL_INC, -10, +10 ) );
|
||||
&m_repeatDeltaLabel, DEFAULT_REPEAT_LABEL_INC,
|
||||
-10, +10 ) );
|
||||
m_configSettings.push_back( new PARAM_CFG_BOOL( true, ShowIllegalSymboLibDialog,
|
||||
&m_showIllegalSymbolLibDialog, true ) );
|
||||
|
||||
return m_configSettings;
|
||||
}
|
||||
|
||||
|
@ -551,7 +556,8 @@ void LIB_EDIT_FRAME::LoadSettings( wxConfigBase* aCfg )
|
|||
|
||||
ReadHotkeyConfig( LIB_EDIT_FRAME_NAME, g_Libedit_Hotkeys_Descr );
|
||||
|
||||
SetDefaultLineThickness( (int) aCfg->Read( DefaultDrawLineWidthEntry, DEFAULTDRAWLINETHICKNESS ) );
|
||||
SetDefaultLineThickness( (int) aCfg->Read( DefaultDrawLineWidthEntry,
|
||||
DEFAULTDRAWLINETHICKNESS ) );
|
||||
SetDefaultPinLength( (int) aCfg->Read( DefaultPinLengthEntry, DEFAULTPINLENGTH ) );
|
||||
m_textPinNumDefaultSize = (int) aCfg->Read( defaultPinNumSizeEntry, DEFAULTPINNUMSIZE );
|
||||
m_textPinNameDefaultSize = (int) aCfg->Read( defaultPinNameSizeEntry, DEFAULTPINNAMESIZE );
|
||||
|
|
|
@ -351,6 +351,36 @@ bool SCH_EDIT_FRAME::OpenProjectFiles( const std::vector<wxString>& aFileSet, in
|
|||
}
|
||||
else
|
||||
{
|
||||
// Double check to ensure no legacy library list entries have been
|
||||
// added to the projec file symbol library list.
|
||||
wxString paths;
|
||||
wxArrayString libNames;
|
||||
|
||||
PART_LIBS::LibNamesAndPaths( &Prj(), false, &paths, &libNames );
|
||||
|
||||
if( !libNames.IsEmpty() )
|
||||
{
|
||||
if( m_showIllegalSymbolLibDialog )
|
||||
{
|
||||
wxRichMessageDialog invalidLibDlg(
|
||||
this,
|
||||
_( "Illegal entry found in project file symbol library list." ),
|
||||
_( "Project Load Warning" ),
|
||||
wxOK | wxCENTER | wxICON_EXCLAMATION );
|
||||
invalidLibDlg.SetExtendedMessage(
|
||||
_( "Symbol libraries defined in the project file symbol library list "
|
||||
"are no longer supported and will be\nremoved. This may cause "
|
||||
"broken symbol library links under certain conditions." ) );
|
||||
invalidLibDlg.ShowCheckBox( _( "Do not show this dialog again." ) );
|
||||
invalidLibDlg.ShowModal();
|
||||
m_showIllegalSymbolLibDialog = !invalidLibDlg.IsCheckBoxChecked();
|
||||
}
|
||||
|
||||
libNames.Clear();
|
||||
paths.Clear();
|
||||
PART_LIBS::LibNamesAndPaths( &Prj(), true, &paths, &libNames );
|
||||
}
|
||||
|
||||
// Check to see whether some old library parts need to be rescued
|
||||
// Only do this if RescueNeverShow was not set.
|
||||
wxConfigBase *config = Kiface().KifaceSettings();
|
||||
|
|
|
@ -386,6 +386,7 @@ SCH_EDIT_FRAME::SCH_EDIT_FRAME( KIWAY* aKiway, wxWindow* aParent ):
|
|||
m_findReplaceStatus = new wxString( wxEmptyString );
|
||||
m_undoItem = NULL;
|
||||
m_hasAutoSave = true;
|
||||
m_showIllegalSymbolLibDialog = true;
|
||||
m_FrameSize = ConvertDialogToPixels( wxSize( 500, 350 ) ); // default in case of no prefs
|
||||
m_AboutTitle = "Eeschema";
|
||||
|
||||
|
|
|
@ -150,6 +150,7 @@ private:
|
|||
bool m_autoplaceJustify; ///< allow autoplace to change justification
|
||||
bool m_autoplaceAlign; ///< align autoplaced fields to the grid
|
||||
bool m_footprintPreview; ///< whether to show footprint previews
|
||||
bool m_showIllegalSymbolLibDialog;
|
||||
|
||||
/// An index to the last find item in the found items list #m_foundItems.
|
||||
int m_foundItemIndex;
|
||||
|
|
Loading…
Reference in New Issue