Eeschema: Add "append schematic" feature. Fix bug 1101718 <Empty plot filename>
This commit is contained in:
commit
2bea1c677c
|
@ -128,11 +128,12 @@ if(CMAKE_COMPILER_IS_GNUCXX)
|
||||||
# Set default flags for Release build.
|
# Set default flags for Release build.
|
||||||
set(CMAKE_C_FLAGS_RELEASE "-Wall ${KICAD_GCC_RELEASE_BUILD_FLAGS} -DNDEBUG")
|
set(CMAKE_C_FLAGS_RELEASE "-Wall ${KICAD_GCC_RELEASE_BUILD_FLAGS} -DNDEBUG")
|
||||||
set(CMAKE_CXX_FLAGS_RELEASE "-Wall ${KICAD_GCC_RELEASE_BUILD_FLAGS} -DNDEBUG")
|
set(CMAKE_CXX_FLAGS_RELEASE "-Wall ${KICAD_GCC_RELEASE_BUILD_FLAGS} -DNDEBUG")
|
||||||
set(CMAKE_EXE_LINKER_FLAGS_RELEASE "-s")
|
set(CMAKE_EXE_LINKER_FLAGS_RELEASE "-s -static-libgcc -static-libstdc++")
|
||||||
|
|
||||||
# Set default flags for Debug build.
|
# Set default flags for Debug build.
|
||||||
set(CMAKE_C_FLAGS_DEBUG "-Wall ${KICAD_GCC_DEBUG_BUILD_FLAGS} -g3 -ggdb3 -DDEBUG")
|
set(CMAKE_C_FLAGS_DEBUG "-Wall ${KICAD_GCC_DEBUG_BUILD_FLAGS} -g3 -ggdb3 -DDEBUG")
|
||||||
set(CMAKE_CXX_FLAGS_DEBUG "-Wall ${KICAD_GCC_DEBUG_BUILD_FLAGS} -g3 -ggdb3 -DDEBUG")
|
set(CMAKE_CXX_FLAGS_DEBUG "-Wall ${KICAD_GCC_DEBUG_BUILD_FLAGS} -g3 -ggdb3 -DDEBUG")
|
||||||
|
set(CMAKE_MODULE_LINKER_FLAGS "-static-libgcc -static-libstdc++") # SWIG macros on Windows
|
||||||
|
|
||||||
else(WIN32)
|
else(WIN32)
|
||||||
# Thou shalt not link vaporware and tell us it's a valid DSO:
|
# Thou shalt not link vaporware and tell us it's a valid DSO:
|
||||||
|
|
|
@ -860,13 +860,13 @@ CMP_LIBRARY* CMP_LIBRARY::FindLibrary( const wxString& aName )
|
||||||
|
|
||||||
wxArrayString CMP_LIBRARY::GetLibraryNames( bool aSorted )
|
wxArrayString CMP_LIBRARY::GetLibraryNames( bool aSorted )
|
||||||
{
|
{
|
||||||
wxString cacheName;
|
wxArrayString cacheNames;
|
||||||
wxArrayString names;
|
wxArrayString names;
|
||||||
|
|
||||||
BOOST_FOREACH( CMP_LIBRARY& lib, CMP_LIBRARY::libraryList )
|
BOOST_FOREACH( CMP_LIBRARY& lib, CMP_LIBRARY::libraryList )
|
||||||
{
|
{
|
||||||
if( lib.isCache && aSorted )
|
if( lib.isCache && aSorted )
|
||||||
cacheName = lib.GetName();
|
cacheNames.Add( lib.GetName() );
|
||||||
else
|
else
|
||||||
names.Add( lib.GetName() );
|
names.Add( lib.GetName() );
|
||||||
}
|
}
|
||||||
|
@ -875,8 +875,8 @@ wxArrayString CMP_LIBRARY::GetLibraryNames( bool aSorted )
|
||||||
if( aSorted )
|
if( aSorted )
|
||||||
names.Sort();
|
names.Sort();
|
||||||
|
|
||||||
if( !cacheName.IsEmpty() )
|
for( unsigned int i = 0; i<cacheNames.Count(); i++ )
|
||||||
names.Add( cacheName );
|
names.Add( cacheNames.Item( i ) );
|
||||||
|
|
||||||
return names;
|
return names;
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,6 +3,7 @@
|
||||||
*
|
*
|
||||||
* Copyright (C) 2009 Jean-Pierre Charras, jaen-pierre.charras@gipsa-lab.inpg.com
|
* Copyright (C) 2009 Jean-Pierre Charras, jaen-pierre.charras@gipsa-lab.inpg.com
|
||||||
* Copyright (C) 2011 Wayne Stambaugh <stambaughw@verizon.net>
|
* Copyright (C) 2011 Wayne Stambaugh <stambaughw@verizon.net>
|
||||||
|
* Copyright (C) 2013 CERN (www.cern.ch)
|
||||||
* Copyright (C) 1992-2011 KiCad Developers, see AUTHORS.txt for contributors.
|
* Copyright (C) 1992-2011 KiCad Developers, see AUTHORS.txt for contributors.
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or
|
* This program is free software; you can redistribute it and/or
|
||||||
|
@ -40,6 +41,7 @@
|
||||||
#include <class_library.h>
|
#include <class_library.h>
|
||||||
#include <libeditframe.h>
|
#include <libeditframe.h>
|
||||||
#include <sch_sheet.h>
|
#include <sch_sheet.h>
|
||||||
|
#include <sch_component.h>
|
||||||
#include <wildcards_and_files_ext.h>
|
#include <wildcards_and_files_ext.h>
|
||||||
|
|
||||||
|
|
||||||
|
@ -175,6 +177,73 @@ void SCH_EDIT_FRAME::Save_File( wxCommandEvent& event )
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
bool SCH_EDIT_FRAME::LoadCacheLibrary( const wxString& aFilename )
|
||||||
|
{
|
||||||
|
wxString msg;
|
||||||
|
bool LibCacheExist = false;
|
||||||
|
wxFileName fn = aFilename;
|
||||||
|
|
||||||
|
/* Loading the project library cache
|
||||||
|
* until apr 2009 the lib is named <root_name>.cache.lib
|
||||||
|
* and after (due to code change): <root_name>-cache.lib
|
||||||
|
* so if the <name>-cache.lib is not found, the old way will be tried
|
||||||
|
*/
|
||||||
|
bool use_oldcachename = false;
|
||||||
|
wxString cachename = fn.GetName() + wxT( "-cache" );
|
||||||
|
|
||||||
|
fn.SetName( cachename );
|
||||||
|
fn.SetExt( SchematicLibraryFileExtension );
|
||||||
|
|
||||||
|
if( ! fn.FileExists() )
|
||||||
|
{
|
||||||
|
fn = aFilename;
|
||||||
|
fn.SetExt( wxT( "cache.lib" ) );
|
||||||
|
use_oldcachename = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if( fn.FileExists() )
|
||||||
|
{
|
||||||
|
wxString errMsg;
|
||||||
|
|
||||||
|
wxLogDebug( wxT( "Load schematic cache library file <%s>" ),
|
||||||
|
GetChars( fn.GetFullPath() ) );
|
||||||
|
msg = wxT( "Load " ) + fn.GetFullPath();
|
||||||
|
|
||||||
|
CMP_LIBRARY* LibCache = CMP_LIBRARY::LoadLibrary( fn, errMsg );
|
||||||
|
|
||||||
|
if( LibCache )
|
||||||
|
{
|
||||||
|
LibCache->SetCache();
|
||||||
|
msg += wxT( " OK" );
|
||||||
|
|
||||||
|
if ( use_oldcachename ) // set the new name
|
||||||
|
{
|
||||||
|
fn.SetName( cachename );
|
||||||
|
fn.SetExt( SchematicLibraryFileExtension );
|
||||||
|
LibCache->SetFileName( fn );
|
||||||
|
}
|
||||||
|
|
||||||
|
LibCacheExist = true;
|
||||||
|
CMP_LIBRARY::GetLibraryList().push_back( LibCache );
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
wxString prompt;
|
||||||
|
|
||||||
|
prompt.Printf( _( "Component library <%s> failed to load.\nError: %s" ),
|
||||||
|
GetChars( fn.GetFullPath() ),
|
||||||
|
GetChars( errMsg ) );
|
||||||
|
DisplayError( this, prompt );
|
||||||
|
msg += _( " ->Error" );
|
||||||
|
}
|
||||||
|
|
||||||
|
PrintMsg( msg );
|
||||||
|
}
|
||||||
|
|
||||||
|
return LibCacheExist;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
bool SCH_EDIT_FRAME::LoadOneEEProject( const wxString& aFileName, bool aIsNew )
|
bool SCH_EDIT_FRAME::LoadOneEEProject( const wxString& aFileName, bool aIsNew )
|
||||||
{
|
{
|
||||||
SCH_SCREEN* screen;
|
SCH_SCREEN* screen;
|
||||||
|
@ -280,64 +349,7 @@ bool SCH_EDIT_FRAME::LoadOneEEProject( const wxString& aFileName, bool aIsNew )
|
||||||
// Delete old caches.
|
// Delete old caches.
|
||||||
CMP_LIBRARY::RemoveCacheLibrary();
|
CMP_LIBRARY::RemoveCacheLibrary();
|
||||||
|
|
||||||
/* Loading the project library cache
|
LibCacheExist = LoadCacheLibrary( g_RootSheet->GetScreen()->GetFileName() );
|
||||||
* until apr 2009 the lib is named <root_name>.cache.lib
|
|
||||||
* and after (due to code change): <root_name>-cache.lib
|
|
||||||
* so if the <name>-cache.lib is not found, the old way will be tried
|
|
||||||
*/
|
|
||||||
fn = g_RootSheet->GetScreen()->GetFileName();
|
|
||||||
|
|
||||||
bool use_oldcachename = false;
|
|
||||||
wxString cachename = fn.GetName() + wxT( "-cache" );
|
|
||||||
|
|
||||||
fn.SetName( cachename );
|
|
||||||
fn.SetExt( SchematicLibraryFileExtension );
|
|
||||||
|
|
||||||
if( ! fn.FileExists() )
|
|
||||||
{
|
|
||||||
fn = g_RootSheet->GetScreen()->GetFileName();
|
|
||||||
fn.SetExt( wxT( "cache.lib" ) );
|
|
||||||
use_oldcachename = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if( fn.FileExists() )
|
|
||||||
{
|
|
||||||
wxString errMsg;
|
|
||||||
|
|
||||||
wxLogDebug( wxT( "LoadOneEEProject() load schematic cache library file <%s>" ),
|
|
||||||
GetChars( fn.GetFullPath() ) );
|
|
||||||
msg = wxT( "Load " ) + fn.GetFullPath();
|
|
||||||
|
|
||||||
CMP_LIBRARY* LibCache = CMP_LIBRARY::LoadLibrary( fn, errMsg );
|
|
||||||
|
|
||||||
if( LibCache )
|
|
||||||
{
|
|
||||||
LibCache->SetCache();
|
|
||||||
msg += wxT( " OK" );
|
|
||||||
|
|
||||||
if ( use_oldcachename ) // set the new name
|
|
||||||
{
|
|
||||||
fn.SetName( cachename );
|
|
||||||
fn.SetExt( SchematicLibraryFileExtension );
|
|
||||||
LibCache->SetFileName( fn );
|
|
||||||
}
|
|
||||||
|
|
||||||
LibCacheExist = true;
|
|
||||||
CMP_LIBRARY::GetLibraryList().push_back( LibCache );
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
wxString prompt;
|
|
||||||
|
|
||||||
prompt.Printf( _( "Component library <%s> failed to load.\nError: %s" ),
|
|
||||||
GetChars( fn.GetFullPath() ),
|
|
||||||
GetChars( errMsg ) );
|
|
||||||
DisplayError( this, prompt );
|
|
||||||
msg += _( " ->Error" );
|
|
||||||
}
|
|
||||||
|
|
||||||
PrintMsg( msg );
|
|
||||||
}
|
|
||||||
|
|
||||||
if( !wxFileExists( g_RootSheet->GetScreen()->GetFileName() ) && !LibCacheExist )
|
if( !wxFileExists( g_RootSheet->GetScreen()->GetFileName() ) && !LibCacheExist )
|
||||||
{
|
{
|
||||||
|
@ -364,6 +376,90 @@ bool SCH_EDIT_FRAME::LoadOneEEProject( const wxString& aFileName, bool aIsNew )
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
bool SCH_EDIT_FRAME::AppendOneEEProject()
|
||||||
|
{
|
||||||
|
SCH_SCREEN* screen;
|
||||||
|
wxString FullFileName;
|
||||||
|
wxString msg;
|
||||||
|
|
||||||
|
screen = GetScreen();
|
||||||
|
|
||||||
|
if( !screen )
|
||||||
|
{
|
||||||
|
wxLogError( wxT("Document not ready, cannot import") );
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// open file chooser dialog
|
||||||
|
wxFileDialog dlg( this, _( "Import Schematic" ), wxGetCwd(),
|
||||||
|
wxEmptyString, SchematicFileWildcard,
|
||||||
|
wxFD_OPEN | wxFD_FILE_MUST_EXIST );
|
||||||
|
|
||||||
|
if( dlg.ShowModal() == wxID_CANCEL )
|
||||||
|
return false;
|
||||||
|
|
||||||
|
FullFileName = dlg.GetPath();
|
||||||
|
|
||||||
|
wxFileName fn = FullFileName;
|
||||||
|
|
||||||
|
if( fn.IsRelative() )
|
||||||
|
{
|
||||||
|
fn.MakeAbsolute();
|
||||||
|
FullFileName = fn.GetFullPath();
|
||||||
|
}
|
||||||
|
|
||||||
|
LoadCacheLibrary( FullFileName );
|
||||||
|
|
||||||
|
wxLogDebug( wxT( "Importing schematic " ) + FullFileName );
|
||||||
|
|
||||||
|
// load the project
|
||||||
|
bool success = LoadOneEEFile( screen, FullFileName, true );
|
||||||
|
if( success )
|
||||||
|
{
|
||||||
|
// load sub-sheets
|
||||||
|
EDA_ITEM* bs = screen->GetDrawItems();
|
||||||
|
while( bs )
|
||||||
|
{
|
||||||
|
// do not append hierarchical sheets
|
||||||
|
if( bs->Type() == SCH_SHEET_T )
|
||||||
|
{
|
||||||
|
screen->Remove( (SCH_SHEET*) bs );
|
||||||
|
}
|
||||||
|
// clear annotation and init new time stamp for the new components
|
||||||
|
else if( bs->Type() == SCH_COMPONENT_T )
|
||||||
|
{
|
||||||
|
( (SCH_COMPONENT*) bs )->SetTimeStamp( GetNewTimeStamp() );
|
||||||
|
( (SCH_COMPONENT*) bs )->ClearAnnotation( NULL );
|
||||||
|
// Clear flags, which are set by these previous modifications:
|
||||||
|
bs->ClearFlags();
|
||||||
|
}
|
||||||
|
|
||||||
|
bs = bs->Next();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// redraw base screen (ROOT) if necessary
|
||||||
|
GetScreen()->SetGrid( ID_POPUP_GRID_LEVEL_1000 + m_LastGridSizeId );
|
||||||
|
Zoom_Automatique( false );
|
||||||
|
SetSheetNumberAndCount();
|
||||||
|
m_canvas->Refresh( true );
|
||||||
|
return success;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void SCH_EDIT_FRAME::OnAppendProject( wxCommandEvent& event )
|
||||||
|
{
|
||||||
|
wxString msg = _( "This operation cannot be undone. "
|
||||||
|
"Besides, take into account that hierarchical sheets will not be appended.\n\n"
|
||||||
|
"Do you want to save the current document before proceeding?" );
|
||||||
|
|
||||||
|
if( IsOK( this, msg ) )
|
||||||
|
OnSaveProject( event );
|
||||||
|
|
||||||
|
AppendOneEEProject();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void SCH_EDIT_FRAME::OnSaveProject( wxCommandEvent& aEvent )
|
void SCH_EDIT_FRAME::OnSaveProject( wxCommandEvent& aEvent )
|
||||||
{
|
{
|
||||||
SCH_SCREEN* screen;
|
SCH_SCREEN* screen;
|
||||||
|
|
|
@ -53,7 +53,7 @@ bool ReadSchemaDescr( LINE_READER* aLine, wxString& aMsgDiag, SCH_SCREEN* Window
|
||||||
static void LoadLayers( LINE_READER* aLine );
|
static void LoadLayers( LINE_READER* aLine );
|
||||||
|
|
||||||
|
|
||||||
bool SCH_EDIT_FRAME::LoadOneEEFile( SCH_SCREEN* aScreen, const wxString& aFullFileName )
|
bool SCH_EDIT_FRAME::LoadOneEEFile( SCH_SCREEN* aScreen, const wxString& aFullFileName, bool append )
|
||||||
{
|
{
|
||||||
char name1[256];
|
char name1[256];
|
||||||
bool itemLoaded = false;
|
bool itemLoaded = false;
|
||||||
|
@ -74,7 +74,8 @@ bool SCH_EDIT_FRAME::LoadOneEEFile( SCH_SCREEN* aScreen, const wxString& aFullFi
|
||||||
wxLogTrace( traceAutoSave, wxT( "Loading schematic file " ) + aFullFileName );
|
wxLogTrace( traceAutoSave, wxT( "Loading schematic file " ) + aFullFileName );
|
||||||
|
|
||||||
aScreen->SetCurItem( NULL );
|
aScreen->SetCurItem( NULL );
|
||||||
aScreen->SetFileName( aFullFileName );
|
if( !append )
|
||||||
|
aScreen->SetFileName( aFullFileName );
|
||||||
|
|
||||||
FILE* f;
|
FILE* f;
|
||||||
wxString fname = aFullFileName;
|
wxString fname = aFullFileName;
|
||||||
|
|
|
@ -97,6 +97,12 @@ void SCH_EDIT_FRAME::ReCreateMenuBar()
|
||||||
_( "Open a recent opened schematic project" ),
|
_( "Open a recent opened schematic project" ),
|
||||||
KiBitmap( open_project_xpm ) );
|
KiBitmap( open_project_xpm ) );
|
||||||
|
|
||||||
|
// Import
|
||||||
|
AddMenuItem( fileMenu,
|
||||||
|
ID_APPEND_PROJECT, _( "&Append Schematic" ),
|
||||||
|
_( "Append another schematic project to the current loaded schematic" ),
|
||||||
|
KiBitmap( open_document_xpm ) );
|
||||||
|
|
||||||
// Separator
|
// Separator
|
||||||
fileMenu->AppendSeparator();
|
fileMenu->AppendSeparator();
|
||||||
|
|
||||||
|
|
|
@ -75,6 +75,8 @@ BEGIN_EVENT_TABLE( SCH_EDIT_FRAME, EDA_DRAW_FRAME )
|
||||||
|
|
||||||
EVT_MENU_RANGE( wxID_FILE1, wxID_FILE9, SCH_EDIT_FRAME::OnLoadFile )
|
EVT_MENU_RANGE( wxID_FILE1, wxID_FILE9, SCH_EDIT_FRAME::OnLoadFile )
|
||||||
|
|
||||||
|
EVT_MENU( ID_APPEND_PROJECT, SCH_EDIT_FRAME::OnAppendProject )
|
||||||
|
|
||||||
EVT_TOOL( ID_NEW_PROJECT, SCH_EDIT_FRAME::OnNewProject )
|
EVT_TOOL( ID_NEW_PROJECT, SCH_EDIT_FRAME::OnNewProject )
|
||||||
EVT_TOOL( ID_LOAD_PROJECT, SCH_EDIT_FRAME::OnLoadProject )
|
EVT_TOOL( ID_LOAD_PROJECT, SCH_EDIT_FRAME::OnLoadProject )
|
||||||
|
|
||||||
|
@ -512,7 +514,8 @@ double SCH_EDIT_FRAME::BestZoom()
|
||||||
|
|
||||||
wxString SCH_EDIT_FRAME::GetUniqueFilenameForCurrentSheet()
|
wxString SCH_EDIT_FRAME::GetUniqueFilenameForCurrentSheet()
|
||||||
{
|
{
|
||||||
wxFileName fn = g_RootSheet->GetFileName();
|
SCH_SCREENS ScreenList;
|
||||||
|
wxFileName fn = ScreenList.GetFirst()->GetFileName();
|
||||||
|
|
||||||
#ifndef KICAD_GOST
|
#ifndef KICAD_GOST
|
||||||
wxString filename = fn.GetName();
|
wxString filename = fn.GetName();
|
||||||
|
|
|
@ -47,6 +47,7 @@ enum main_id
|
||||||
ID_TO_PCB = wxID_HIGHEST,
|
ID_TO_PCB = wxID_HIGHEST,
|
||||||
ID_TO_CVPCB,
|
ID_TO_CVPCB,
|
||||||
ID_LOAD_PROJECT,
|
ID_LOAD_PROJECT,
|
||||||
|
ID_APPEND_PROJECT,
|
||||||
ID_NEW_PROJECT,
|
ID_NEW_PROJECT,
|
||||||
ID_NEW_PROJECT_FROM_TEMPLATE,
|
ID_NEW_PROJECT_FROM_TEMPLATE,
|
||||||
ID_SAVE_PROJECT,
|
ID_SAVE_PROJECT,
|
||||||
|
|
|
@ -630,6 +630,14 @@ public:
|
||||||
*/
|
*/
|
||||||
bool LoadOneEEProject( const wxString& aFileName, bool aIsNew );
|
bool LoadOneEEProject( const wxString& aFileName, bool aIsNew );
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Function AppendOneEEProject
|
||||||
|
* read an entire project and loads it into the schematic editor *whitout* replacing the
|
||||||
|
* existing contents.
|
||||||
|
* @return True if the project was imported properly.
|
||||||
|
*/
|
||||||
|
bool AppendOneEEProject();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Function LoadOneEEFile
|
* Function LoadOneEEFile
|
||||||
* loads the schematic (.sch) file \a aFullFileName into \a aScreen.
|
* loads the schematic (.sch) file \a aFullFileName into \a aScreen.
|
||||||
|
@ -638,9 +646,11 @@ public:
|
||||||
* \a aFullFileName.
|
* \a aFullFileName.
|
||||||
* @param aFullFileName A reference to a wxString object containing the absolute path
|
* @param aFullFileName A reference to a wxString object containing the absolute path
|
||||||
* and file name to load.
|
* and file name to load.
|
||||||
|
* @param append True if loaded file is being appended to the currently open file instead
|
||||||
|
* of replacing it.
|
||||||
* @return True if \a aFullFileName has been loaded (at least partially.)
|
* @return True if \a aFullFileName has been loaded (at least partially.)
|
||||||
*/
|
*/
|
||||||
bool LoadOneEEFile( SCH_SCREEN* aScreen, const wxString& aFullFileName );
|
bool LoadOneEEFile( SCH_SCREEN* aScreen, const wxString& aFullFileName, bool append = false );
|
||||||
|
|
||||||
bool ReadInputStuffFile();
|
bool ReadInputStuffFile();
|
||||||
|
|
||||||
|
@ -746,6 +756,7 @@ private:
|
||||||
void OnLoadStuffFile( wxCommandEvent& event );
|
void OnLoadStuffFile( wxCommandEvent& event );
|
||||||
void OnNewProject( wxCommandEvent& event );
|
void OnNewProject( wxCommandEvent& event );
|
||||||
void OnLoadProject( wxCommandEvent& event );
|
void OnLoadProject( wxCommandEvent& event );
|
||||||
|
void OnAppendProject( wxCommandEvent& event );
|
||||||
void OnOpenPcbnew( wxCommandEvent& event );
|
void OnOpenPcbnew( wxCommandEvent& event );
|
||||||
void OnOpenCvpcb( wxCommandEvent& event );
|
void OnOpenCvpcb( wxCommandEvent& event );
|
||||||
void OnOpenLibraryEditor( wxCommandEvent& event );
|
void OnOpenLibraryEditor( wxCommandEvent& event );
|
||||||
|
@ -874,6 +885,8 @@ private:
|
||||||
void InstallHierarchyFrame( wxDC* DC, wxPoint& pos );
|
void InstallHierarchyFrame( wxDC* DC, wxPoint& pos );
|
||||||
SCH_SHEET* CreateSheet( wxDC* DC );
|
SCH_SHEET* CreateSheet( wxDC* DC );
|
||||||
void ReSizeSheet( SCH_SHEET* Sheet, wxDC* DC );
|
void ReSizeSheet( SCH_SHEET* Sheet, wxDC* DC );
|
||||||
|
// Loads the cache library associated to the aFileName
|
||||||
|
bool LoadCacheLibrary( const wxString& aFileName );
|
||||||
|
|
||||||
public:
|
public:
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Reference in New Issue