diff --git a/eeschema/eeschema_config.cpp b/eeschema/eeschema_config.cpp index 7a0a5aa9c7..5e35bf7dcf 100644 --- a/eeschema/eeschema_config.cpp +++ b/eeschema/eeschema_config.cpp @@ -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 ); diff --git a/eeschema/files-io.cpp b/eeschema/files-io.cpp index 9c7821c40f..50e45f75e0 100644 --- a/eeschema/files-io.cpp +++ b/eeschema/files-io.cpp @@ -351,6 +351,36 @@ bool SCH_EDIT_FRAME::OpenProjectFiles( const std::vector& 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(); diff --git a/eeschema/sch_edit_frame.cpp b/eeschema/sch_edit_frame.cpp index d5b6883df2..68ce0c8c34 100644 --- a/eeschema/sch_edit_frame.cpp +++ b/eeschema/sch_edit_frame.cpp @@ -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"; diff --git a/eeschema/sch_edit_frame.h b/eeschema/sch_edit_frame.h index 51799e3796..623440add9 100644 --- a/eeschema/sch_edit_frame.h +++ b/eeschema/sch_edit_frame.h @@ -126,7 +126,7 @@ private: wxPageSetupDialogData m_pageSetupData; wxFindReplaceData* m_findReplaceData; wxString* m_findReplaceStatus; - bool m_printMonochrome; ///< Print monochrome instead of grey scale. + bool m_printMonochrome; ///< Print monochrome instead of grey scale. bool m_printSheetReference; DIALOG_SCH_FIND* m_dlgFindReplace; wxArrayString m_findStringHistoryList; @@ -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;