Make import/export flags explicit

IO plugins can import/export or both.  This sets an explicit boolean for
controlling which options are available.
This commit is contained in:
Seth Hillbrand 2024-04-25 09:19:22 -07:00
parent eeee63186d
commit ef62b01dd1
4 changed files with 8 additions and 5 deletions

View File

@ -715,7 +715,7 @@ void SCH_EDIT_FRAME::OnImportProject( wxCommandEvent& aEvent )
const IO_BASE::IO_FILE_DESC& desc = pi->GetSchematicFileDesc(); const IO_BASE::IO_FILE_DESC& desc = pi->GetSchematicFileDesc();
if( desc.m_FileExtensions.empty() ) if( desc.m_FileExtensions.empty() || !desc.m_CanRead )
continue; continue;
if( !fileFiltersStr.IsEmpty() ) if( !fileFiltersStr.IsEmpty() )

View File

@ -41,12 +41,15 @@ public:
std::vector<std::string> m_FileExtensions; ///< Filter used for file pickers if m_IsFile is true std::vector<std::string> m_FileExtensions; ///< Filter used for file pickers if m_IsFile is true
std::vector<std::string> m_ExtensionsInDir; ///< In case of folders: extensions of files inside std::vector<std::string> m_ExtensionsInDir; ///< In case of folders: extensions of files inside
bool m_IsFile; ///< Whether the library is a folder or a file bool m_IsFile; ///< Whether the library is a folder or a file
bool m_CanRead; ///< Whether the IO can read this file type
bool m_CanWrite; ///< Whether the IO can write this file type
IO_FILE_DESC( const wxString& aDescription, const std::vector<std::string>& aFileExtensions, IO_FILE_DESC( const wxString& aDescription, const std::vector<std::string>& aFileExtensions,
const std::vector<std::string>& aExtsInFolder = {}, bool aIsFile = true ) : const std::vector<std::string>& aExtsInFolder = {}, bool aIsFile = true,
bool aCanRead = true, bool aCanWrite = true ) :
m_Description( aDescription ), m_Description( aDescription ),
m_FileExtensions( aFileExtensions ), m_ExtensionsInDir( aExtsInFolder ), m_FileExtensions( aFileExtensions ), m_ExtensionsInDir( aExtsInFolder ),
m_IsFile( aIsFile ) m_IsFile( aIsFile ), m_CanRead( aCanRead ), m_CanWrite( aCanWrite )
{ {
} }

View File

@ -112,7 +112,7 @@ bool AskLoadBoardFileName( PCB_EDIT_FRAME* aParent, wxString* aFileName, int aCt
const IO_BASE::IO_FILE_DESC& desc = pi->GetBoardFileDesc(); const IO_BASE::IO_FILE_DESC& desc = pi->GetBoardFileDesc();
if( desc.m_FileExtensions.empty() ) if( desc.m_FileExtensions.empty() || !desc.m_CanRead )
continue; continue;
descriptions.emplace_back( desc ); descriptions.emplace_back( desc );

View File

@ -85,7 +85,7 @@ public:
const IO_BASE::IO_FILE_DESC GetBoardFileDesc() const override const IO_BASE::IO_FILE_DESC GetBoardFileDesc() const override
{ {
return IO_BASE::IO_FILE_DESC( wxEmptyString, {} ); return IO_BASE::IO_FILE_DESC( wxEmptyString, {}, {}, false, false, true );
} }
const IO_BASE::IO_FILE_DESC GetLibraryDesc() const override const IO_BASE::IO_FILE_DESC GetLibraryDesc() const override