Default to showing Value column in symbol library tree.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/22347
This commit is contained in:
Jeff Young
2025-11-25 12:06:58 +00:00
parent 2aac00f0ed
commit 0859aa4b75
6 changed files with 48 additions and 35 deletions
+12 -6
View File
@@ -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;
+22 -12
View File
@@ -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();
+2 -5
View File
@@ -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;
-1
View File
@@ -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 )
-1
View File
@@ -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
+12 -10
View File
@@ -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