Invert the new symbol library flow to push users to default to a different folder for global symbols

This commit is contained in:
Marek Roszko 2021-01-28 00:36:41 -05:00
parent 77bb36a482
commit a373abd68a
3 changed files with 24 additions and 10 deletions

View File

@ -35,6 +35,7 @@
#include <lockfile.h>
#include <macros.h>
#include <page_info.h>
#include <paths.h>
#include <pgm_base.h>
#include <render_settings.h>
#include <settings/app_settings.h>
@ -887,13 +888,21 @@ wxString EDA_DRAW_FRAME::GetScreenDesc() const
bool EDA_DRAW_FRAME::LibraryFileBrowser( bool doOpen, wxFileName& aFilename,
const wxString& wildcard, const wxString& ext,
bool isDirectory )
bool isDirectory, bool aIsGlobal )
{
wxString prompt = doOpen ? _( "Select Library" ) : _( "New Library" );
aFilename.SetExt( ext );
wxString dir = PATHS::GetDefaultUserSymbolsPath();
if( isDirectory && doOpen )
{
if( !aIsGlobal )
{
dir = Prj().GetProjectPath();
}
wxDirDialog dlg( this, prompt, Prj().GetProjectPath(),
wxDD_DEFAULT_STYLE | wxDD_DIR_MUST_EXIST );
@ -909,7 +918,10 @@ bool EDA_DRAW_FRAME::LibraryFileBrowser( bool doOpen, wxFileName& aFilename,
if( aFilename.GetName().empty() )
aFilename.SetName( "Library" );
wxString dir = Prj().IsNullProject() ? aFilename.GetFullPath() : Prj().GetProjectPath();
if( !aIsGlobal )
{
dir = Prj().IsNullProject() ? aFilename.GetFullPath() : Prj().GetProjectPath();
}
wxFileDialog dlg( this, prompt, dir, aFilename.GetFullName(),
wildcard, doOpen ? wxFD_OPEN | wxFD_FILE_MUST_EXIST

View File

@ -793,10 +793,17 @@ bool SYMBOL_EDIT_FRAME::SynchronizePins()
bool SYMBOL_EDIT_FRAME::AddLibraryFile( bool aCreateNew )
{
// Select the target library table (global/project)
SYMBOL_LIB_TABLE* libTable = selectSymLibTable();
if( !libTable )
return false;
wxFileName fn = m_libMgr->GetUniqueLibraryName();
if( !LibraryFileBrowser( !aCreateNew, fn, KiCadSymbolLibFileWildcard(),
KiCadSymbolLibFileExtension, false ) )
KiCadSymbolLibFileExtension, false,
( libTable == &SYMBOL_LIB_TABLE::GetGlobalLibTable() ) ) )
{
return false;
}
@ -812,12 +819,6 @@ bool SYMBOL_EDIT_FRAME::AddLibraryFile( bool aCreateNew )
return false;
}
// Select the target library table (global/project)
SYMBOL_LIB_TABLE* libTable = selectSymLibTable();
if( !libTable )
return false;
if( aCreateNew )
{
if( !m_libMgr->CreateLibrary( fn.GetFullPath(), libTable ) )

View File

@ -166,7 +166,8 @@ public:
* @return true for OK; false for Cancel.
*/
bool LibraryFileBrowser( bool doOpen, wxFileName& aFilename, const wxString& wildcard,
const wxString& ext, bool isDirectory = false );
const wxString& ext, bool isDirectory = false,
bool aIsGlobal = false );
void CommonSettingsChanged( bool aEnvVarsChanged, bool aTextVarsChanged ) override;