Default to showing Value column in symbol library tree.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/22347
This commit is contained in:
@@ -128,10 +128,10 @@ LIB_TREE_NODE* LIB_TREE_MODEL_ADAPTER::ToNode( wxDataViewItem aItem )
|
||||
|
||||
LIB_TREE_MODEL_ADAPTER::LIB_TREE_MODEL_ADAPTER( EDA_BASE_FRAME* aParent, const wxString& aPinnedKey,
|
||||
APP_SETTINGS_BASE::LIB_TREE& aSettingsStruct ) :
|
||||
m_widget( nullptr ),
|
||||
m_lazyLoadHandler( nullptr ),
|
||||
m_parent( aParent ),
|
||||
m_cfg( aSettingsStruct ),
|
||||
m_widget( nullptr ),
|
||||
m_lazyLoadHandler( nullptr ),
|
||||
m_sort_mode( BEST_MATCH ),
|
||||
m_show_units( true ),
|
||||
m_preselect_unit( 0 ),
|
||||
@@ -144,6 +144,16 @@ LIB_TREE_MODEL_ADAPTER::LIB_TREE_MODEL_ADAPTER( EDA_BASE_FRAME* aParent, const w
|
||||
|
||||
m_availableColumns = { _HKI( "Item" ), _HKI( "Description" ) };
|
||||
|
||||
loadColumnConfig();
|
||||
}
|
||||
|
||||
|
||||
LIB_TREE_MODEL_ADAPTER::~LIB_TREE_MODEL_ADAPTER()
|
||||
{}
|
||||
|
||||
|
||||
void LIB_TREE_MODEL_ADAPTER::loadColumnConfig()
|
||||
{
|
||||
for( const std::pair<const wxString, int>& pair : m_cfg.column_widths )
|
||||
m_colWidths[pair.first] = pair.second;
|
||||
|
||||
@@ -157,10 +167,6 @@ LIB_TREE_MODEL_ADAPTER::LIB_TREE_MODEL_ADAPTER( EDA_BASE_FRAME* aParent, const w
|
||||
}
|
||||
|
||||
|
||||
LIB_TREE_MODEL_ADAPTER::~LIB_TREE_MODEL_ADAPTER()
|
||||
{}
|
||||
|
||||
|
||||
std::vector<wxString> LIB_TREE_MODEL_ADAPTER::GetOpenLibs() const
|
||||
{
|
||||
std::vector<wxString> openLibs;
|
||||
|
||||
@@ -36,33 +36,28 @@
|
||||
#include <trace_helpers.h>
|
||||
#include <libraries/symbol_library_adapter.h>
|
||||
|
||||
bool SYMBOL_TREE_MODEL_ADAPTER::m_show_progress = true;
|
||||
|
||||
#define PROGRESS_INTERVAL_MILLIS 33 // 30 FPS refresh rate
|
||||
|
||||
|
||||
wxObjectDataPtr<LIB_TREE_MODEL_ADAPTER>
|
||||
SYMBOL_TREE_MODEL_ADAPTER::Create( SCH_BASE_FRAME* aParent,
|
||||
SYMBOL_LIBRARY_ADAPTER* aManager )
|
||||
SYMBOL_TREE_MODEL_ADAPTER::Create( SCH_BASE_FRAME* aParent, SYMBOL_LIBRARY_ADAPTER* aManager )
|
||||
{
|
||||
auto* adapter = new SYMBOL_TREE_MODEL_ADAPTER( aParent, aManager );
|
||||
return wxObjectDataPtr<LIB_TREE_MODEL_ADAPTER>( adapter );
|
||||
}
|
||||
|
||||
|
||||
SYMBOL_TREE_MODEL_ADAPTER::SYMBOL_TREE_MODEL_ADAPTER( SCH_BASE_FRAME* aParent,
|
||||
SYMBOL_LIBRARY_ADAPTER* aLibs ) :
|
||||
LIB_TREE_MODEL_ADAPTER( aParent, "pinned_symbol_libs",
|
||||
aParent->GetViewerSettingsBase()->m_LibTree ),
|
||||
SYMBOL_TREE_MODEL_ADAPTER::SYMBOL_TREE_MODEL_ADAPTER( SCH_BASE_FRAME* aParent, SYMBOL_LIBRARY_ADAPTER* aLibs ) :
|
||||
LIB_TREE_MODEL_ADAPTER( aParent, "pinned_symbol_libs", aParent->GetViewerSettingsBase()->m_LibTree ),
|
||||
m_adapter( aLibs ),
|
||||
m_check_pending_libraries_timer( nullptr )
|
||||
{
|
||||
m_colWidths[ GetDefaultFieldName( FIELD_T::VALUE, false ) ] = 300;
|
||||
m_colWidths[ GetDefaultFieldName( FIELD_T::FOOTPRINT, false ) ] = 600;
|
||||
m_colWidths[ GetDefaultFieldName( FIELD_T::DATASHEET, false ) ] = 600;
|
||||
|
||||
m_availableColumns.emplace_back( GetDefaultFieldName( FIELD_T::VALUE, false ) );
|
||||
m_availableColumns.emplace_back( GetDefaultFieldName( FIELD_T::FOOTPRINT, false ) );
|
||||
|
||||
// Description is always shown
|
||||
//m_availableColumns.emplace_back( GetDefaultFieldName( FIELD_T::DESCRIPTION, false ) );
|
||||
|
||||
// Datasheet probably isn't useful, but better to leave that decision to the user:
|
||||
m_availableColumns.emplace_back( GetDefaultFieldName( FIELD_T::DATASHEET, false ) );
|
||||
}
|
||||
@@ -72,6 +67,21 @@ SYMBOL_TREE_MODEL_ADAPTER::~SYMBOL_TREE_MODEL_ADAPTER()
|
||||
{}
|
||||
|
||||
|
||||
void SYMBOL_TREE_MODEL_ADAPTER::loadColumnConfig()
|
||||
{
|
||||
for( const std::pair<const wxString, int>& pair : m_cfg.column_widths )
|
||||
m_colWidths[pair.first] = pair.second;
|
||||
|
||||
m_shownColumns = m_cfg.columns;
|
||||
|
||||
if( m_shownColumns.empty() )
|
||||
m_shownColumns = { _HKI( "Item" ), _HKI( "Description" ), GetDefaultFieldName( FIELD_T::VALUE, false ) };
|
||||
|
||||
if( m_shownColumns[0] != _HKI( "Item" ) )
|
||||
m_shownColumns.insert( m_shownColumns.begin(), _HKI( "Item" ) );
|
||||
}
|
||||
|
||||
|
||||
void SYMBOL_TREE_MODEL_ADAPTER::AddLibraries( SCH_BASE_FRAME* aFrame )
|
||||
{
|
||||
COMMON_SETTINGS* cfg = Pgm().GetCommonSettings();
|
||||
|
||||
@@ -62,14 +62,11 @@ protected:
|
||||
*/
|
||||
SYMBOL_TREE_MODEL_ADAPTER( SCH_BASE_FRAME* aParent, SYMBOL_LIBRARY_ADAPTER* aManager );
|
||||
|
||||
void loadColumnConfig() override;
|
||||
|
||||
PROJECT::LIB_TYPE_T getLibType() override { return PROJECT::LIB_TYPE_T::SYMBOL_LIB; }
|
||||
|
||||
private:
|
||||
/**
|
||||
* Flag to only show the symbol library table load progress dialog the first time.
|
||||
*/
|
||||
static bool m_show_progress;
|
||||
|
||||
SYMBOL_LIBRARY_ADAPTER* m_adapter;
|
||||
|
||||
std::set<wxString> m_pending_load_libraries;
|
||||
|
||||
@@ -75,7 +75,6 @@ LIB_ID SYMBOL_VIEWER_FRAME::m_currentSymbol;
|
||||
|
||||
int SYMBOL_VIEWER_FRAME::m_unit = 1;
|
||||
int SYMBOL_VIEWER_FRAME::m_bodyStyle = 1;
|
||||
bool SYMBOL_VIEWER_FRAME::m_show_progress = true;
|
||||
|
||||
|
||||
BEGIN_EVENT_TABLE( SYMBOL_VIEWER_FRAME, SCH_BASE_FRAME )
|
||||
|
||||
@@ -171,7 +171,6 @@ private:
|
||||
|
||||
static int m_unit;
|
||||
static int m_bodyStyle;
|
||||
static bool m_show_progress;
|
||||
|
||||
/**
|
||||
* Updated to `true` if a list rewrite on GUI activation resulted in the symbol
|
||||
|
||||
@@ -353,6 +353,8 @@ protected:
|
||||
LIB_TREE_NODE_LIBRARY& DoAddLibraryNode( const wxString& aNodeName, const wxString& aDesc,
|
||||
bool pinned );
|
||||
|
||||
virtual void loadColumnConfig();
|
||||
|
||||
/**
|
||||
* Check whether a container has columns too
|
||||
*/
|
||||
@@ -426,18 +428,19 @@ protected:
|
||||
void recreateColumns();
|
||||
void createMissingColumns();
|
||||
|
||||
LIB_TREE_NODE_ROOT m_tree;
|
||||
std::map<unsigned, wxString> m_colIdxMap;
|
||||
std::vector<wxString> m_availableColumns;
|
||||
|
||||
wxDataViewCtrl* m_widget;
|
||||
std::vector<wxString> m_shownColumns; // Stored in display order
|
||||
std::function<void()> m_lazyLoadHandler;
|
||||
|
||||
private:
|
||||
protected:
|
||||
EDA_BASE_FRAME* m_parent;
|
||||
APP_SETTINGS_BASE::LIB_TREE& m_cfg;
|
||||
|
||||
LIB_TREE_NODE_ROOT m_tree;
|
||||
std::map<unsigned, wxString> m_colIdxMap;
|
||||
std::vector<wxString> m_availableColumns;
|
||||
std::map<wxString, int> m_colWidths;
|
||||
std::vector<wxString> m_shownColumns; // Stored in display order
|
||||
wxDataViewCtrl* m_widget;
|
||||
std::function<void()> m_lazyLoadHandler;
|
||||
|
||||
private:
|
||||
SORT_MODE m_sort_mode;
|
||||
bool m_show_units;
|
||||
LIB_ID m_preselect_lib_id;
|
||||
@@ -448,7 +451,6 @@ private:
|
||||
|
||||
std::vector<wxDataViewColumn*> m_columns;
|
||||
std::map<wxString, wxDataViewColumn*> m_colNameMap;
|
||||
std::map<wxString, int> m_colWidths;
|
||||
};
|
||||
|
||||
#endif // LIB_TREE_MODEL_ADAPTER_H
|
||||
|
||||
Reference in New Issue
Block a user