Sym edit: Add hidden field/pin toggle in settings panel

Actually add a whole new panel for symbol editor appearance control.

Use the SYMBOL_EDITOR_SETTINGS as the source of truth in a
couple more places, but the SCH_PAINTER settings are still
driving quite a bit here and there.

Fixes: https://gitlab.com/kicad/code/kicad/-/issues/18830
This commit is contained in:
John Beard 2024-10-01 21:44:50 +01:00
parent 0b9984d547
commit ae96ac6d2e
12 changed files with 594 additions and 124 deletions

View File

@ -186,6 +186,7 @@ set( EESCHEMA_DLGS
dialogs/panel_sym_color_settings.cpp dialogs/panel_sym_color_settings.cpp
dialogs/panel_sym_color_settings_base.cpp dialogs/panel_sym_color_settings_base.cpp
dialogs/panel_sym_display_options.cpp dialogs/panel_sym_display_options.cpp
dialogs/panel_sym_display_options_base.cpp
dialogs/panel_sym_editing_options.cpp dialogs/panel_sym_editing_options.cpp
dialogs/panel_sym_editing_options_base.cpp dialogs/panel_sym_editing_options_base.cpp
dialogs/panel_sym_lib_table.cpp dialogs/panel_sym_lib_table.cpp

View File

@ -1,7 +1,7 @@
/* /*
* This program source code file is part of KiCad, a free EDA CAD application. * This program source code file is part of KiCad, a free EDA CAD application.
* *
* Copyright (C) 2021-2023 KiCad Developers, see AUTHORS.txt for contributors. * Copyright (C) 2024 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
* modify it under the terms of the GNU General Public License * modify it under the terms of the GNU General Public License
@ -21,33 +21,39 @@
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
*/ */
#include "panel_sym_display_options.h"
#include <pgm_base.h>
#include <settings/settings_manager.h> #include <settings/settings_manager.h>
#include <symbol_editor_settings.h> #include <symbol_editor/symbol_editor_settings.h>
#include <panel_sym_display_options.h>
#include <widgets/gal_options_panel.h> #include <widgets/gal_options_panel.h>
#include <widgets/ui_common.h>
#include <wx/sizer.h>
PANEL_SYM_DISPLAY_OPTIONS::PANEL_SYM_DISPLAY_OPTIONS( wxWindow* aParent, PANEL_SYM_DISPLAY_OPTIONS::PANEL_SYM_DISPLAY_OPTIONS( wxWindow* aParent,
APP_SETTINGS_BASE* aAppSettings ) : APP_SETTINGS_BASE* aAppSettings ) :
RESETTABLE_PANEL( aParent ) PANEL_SYM_DISPLAY_OPTIONS_BASE( aParent )
{ {
wxBoxSizer* bPanelSizer = new wxBoxSizer( wxHORIZONTAL );
wxBoxSizer* bLeftCol = new wxBoxSizer( wxVERTICAL );
m_galOptsPanel = new GAL_OPTIONS_PANEL( this, aAppSettings ); m_galOptsPanel = new GAL_OPTIONS_PANEL( this, aAppSettings );
bLeftCol->Add( m_galOptsPanel, 1, wxEXPAND|wxRIGHT, 15 );
bPanelSizer->Add( bLeftCol, 0, wxLEFT, 5 ); m_galOptionsSizer->Add( m_galOptsPanel, 1, wxEXPAND | wxRIGHT, 15 );
}
this->SetSizerAndFit( bPanelSizer );
this->Layout(); void PANEL_SYM_DISPLAY_OPTIONS::loadSymEditorSettings( SYMBOL_EDITOR_SETTINGS* cfg )
{
m_checkShowHiddenPins->SetValue( cfg->m_ShowHiddenPins );
m_checkShowHiddenFields->SetValue( cfg->m_ShowHiddenFields );
m_showPinElectricalTypes->SetValue( cfg->m_ShowPinElectricalType );
} }
bool PANEL_SYM_DISPLAY_OPTIONS::TransferDataToWindow() bool PANEL_SYM_DISPLAY_OPTIONS::TransferDataToWindow()
{ {
SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager();
SYMBOL_EDITOR_SETTINGS* cfg = mgr.GetAppSettings<SYMBOL_EDITOR_SETTINGS>();
loadSymEditorSettings( cfg );
m_galOptsPanel->TransferDataToWindow(); m_galOptsPanel->TransferDataToWindow();
return true; return true;
@ -56,6 +62,12 @@ bool PANEL_SYM_DISPLAY_OPTIONS::TransferDataToWindow()
bool PANEL_SYM_DISPLAY_OPTIONS::TransferDataFromWindow() bool PANEL_SYM_DISPLAY_OPTIONS::TransferDataFromWindow()
{ {
SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager();
SYMBOL_EDITOR_SETTINGS* cfg = mgr.GetAppSettings<SYMBOL_EDITOR_SETTINGS>();
cfg->m_ShowHiddenPins = m_checkShowHiddenPins->GetValue();
cfg->m_ShowHiddenFields = m_checkShowHiddenFields->GetValue();
cfg->m_ShowPinElectricalType = m_showPinElectricalTypes->GetValue();
m_galOptsPanel->TransferDataFromWindow(); m_galOptsPanel->TransferDataFromWindow();
return true; return true;
@ -67,7 +79,7 @@ void PANEL_SYM_DISPLAY_OPTIONS::ResetPanel()
SYMBOL_EDITOR_SETTINGS cfg; SYMBOL_EDITOR_SETTINGS cfg;
cfg.Load(); // Loading without a file will init to defaults cfg.Load(); // Loading without a file will init to defaults
loadSymEditorSettings( &cfg );
m_galOptsPanel->ResetPanel( &cfg ); m_galOptsPanel->ResetPanel( &cfg );
} }

View File

@ -1,7 +1,7 @@
/* /*
* This program source code file is part of KiCad, a free EDA CAD application. * This program source code file is part of KiCad, a free EDA CAD application.
* *
* Copyright (C) 2021 KiCad Developers, see AUTHORS.txt for contributors. * Copyright (C) 2024 KiCad Developers, see AUTHORS.txt for contributors.
* *
* This program is free software: you can redistribute it and/or modify it * This program is free software: you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the * under the terms of the GNU General Public License as published by the
@ -17,17 +17,16 @@
* with this program. If not, see <http://www.gnu.org/licenses/>. * with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
#ifndef PANEL_SYM_DISPLAY_OPTIONS_H #pragma once
#define PANEL_SYM_DISPLAY_OPTIONS_H
#include <widgets/resettable_panel.h>
#include "panel_sym_display_options_base.h"
class APP_SETTINGS_BASE; class APP_SETTINGS_BASE;
class GAL_OPTIONS_PANEL; class GAL_OPTIONS_PANEL;
class SYMBOL_EDITOR_SETTINGS;
class PANEL_SYM_DISPLAY_OPTIONS : public RESETTABLE_PANEL class PANEL_SYM_DISPLAY_OPTIONS : public PANEL_SYM_DISPLAY_OPTIONS_BASE
{ {
public: public:
PANEL_SYM_DISPLAY_OPTIONS( wxWindow* aParent, APP_SETTINGS_BASE* aAppSettings ); PANEL_SYM_DISPLAY_OPTIONS( wxWindow* aParent, APP_SETTINGS_BASE* aAppSettings );
@ -37,9 +36,9 @@ public:
void ResetPanel() override; void ResetPanel() override;
private:
void loadSymEditorSettings( SYMBOL_EDITOR_SETTINGS* aCfg );
private: private:
GAL_OPTIONS_PANEL* m_galOptsPanel; GAL_OPTIONS_PANEL* m_galOptsPanel;
}; };
#endif // PANEL_SYM_DISPLAY_OPTIONS_H

View File

@ -0,0 +1,59 @@
///////////////////////////////////////////////////////////////////////////
// C++ code generated with wxFormBuilder (version 4.2.1-0-g80c4cb6)
// http://www.wxformbuilder.org/
//
// PLEASE DO *NOT* EDIT THIS FILE!
///////////////////////////////////////////////////////////////////////////
#include "panel_sym_display_options_base.h"
///////////////////////////////////////////////////////////////////////////
PANEL_SYM_DISPLAY_OPTIONS_BASE::PANEL_SYM_DISPLAY_OPTIONS_BASE( wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style, const wxString& name ) : RESETTABLE_PANEL( parent, id, pos, size, style, name )
{
wxBoxSizer* bPanelSizer;
bPanelSizer = new wxBoxSizer( wxHORIZONTAL );
m_galOptionsSizer = new wxBoxSizer( wxVERTICAL );
bPanelSizer->Add( m_galOptionsSizer, 0, wxEXPAND|wxRIGHT, 15 );
wxBoxSizer* bRightColumn;
bRightColumn = new wxBoxSizer( wxVERTICAL );
m_appearanceLabel = new wxStaticText( this, wxID_ANY, _("Appearance"), wxDefaultPosition, wxDefaultSize, 0 );
m_appearanceLabel->Wrap( -1 );
bRightColumn->Add( m_appearanceLabel, 0, wxTOP|wxRIGHT|wxLEFT, 13 );
m_staticline1 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
bRightColumn->Add( m_staticline1, 0, wxEXPAND|wxBOTTOM, 7 );
wxBoxSizer* bAppearanceSizer;
bAppearanceSizer = new wxBoxSizer( wxVERTICAL );
m_checkShowHiddenPins = new wxCheckBox( this, wxID_ANY, _("S&how hidden pins"), wxDefaultPosition, wxDefaultSize, 0 );
bAppearanceSizer->Add( m_checkShowHiddenPins, 0, wxEXPAND|wxALL, 5 );
m_checkShowHiddenFields = new wxCheckBox( this, wxID_ANY, _("Show hidden fields"), wxDefaultPosition, wxDefaultSize, 0 );
bAppearanceSizer->Add( m_checkShowHiddenFields, 0, wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND, 5 );
m_showPinElectricalTypes = new wxCheckBox( this, wxID_ANY, _("Show pin &electrical type"), wxDefaultPosition, wxDefaultSize, 0 );
m_showPinElectricalTypes->SetValue(true);
bAppearanceSizer->Add( m_showPinElectricalTypes, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
bRightColumn->Add( bAppearanceSizer, 0, wxEXPAND|wxTOP|wxLEFT, 5 );
bPanelSizer->Add( bRightColumn, 0, wxEXPAND|wxBOTTOM|wxLEFT, 10 );
this->SetSizer( bPanelSizer );
this->Layout();
bPanelSizer->Fit( this );
}
PANEL_SYM_DISPLAY_OPTIONS_BASE::~PANEL_SYM_DISPLAY_OPTIONS_BASE()
{
}

View File

@ -0,0 +1,415 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<wxFormBuilder_Project>
<FileVersion major="1" minor="18"/>
<object class="Project" expanded="true">
<property name="code_generation">C++</property>
<property name="cpp_class_decoration"></property>
<property name="cpp_disconnect_events">1</property>
<property name="cpp_event_generation">table</property>
<property name="cpp_help_provider">none</property>
<property name="cpp_namespace"></property>
<property name="cpp_precompiled_header"></property>
<property name="cpp_use_array_enum">0</property>
<property name="cpp_use_enum">1</property>
<property name="embedded_files_path">res</property>
<property name="encoding">UTF-8</property>
<property name="file">panel_sym_display_options_base</property>
<property name="first_id">1000</property>
<property name="internationalize">1</property>
<property name="lua_skip_events">1</property>
<property name="lua_ui_table">UI</property>
<property name="name">PanelSymDisplayOptions</property>
<property name="path">.</property>
<property name="php_disconnect_events">0</property>
<property name="php_disconnect_mode">source_name</property>
<property name="php_skip_events">1</property>
<property name="python_disconnect_events">0</property>
<property name="python_disconnect_mode">source_name</property>
<property name="python_image_path_wrapper_function_name"></property>
<property name="python_indent_with_spaces"></property>
<property name="python_skip_events">1</property>
<property name="relative_path">1</property>
<property name="use_microsoft_bom">0</property>
<property name="use_native_eol">0</property>
<object class="Panel" expanded="true">
<property name="aui_managed">0</property>
<property name="aui_manager_style">wxAUI_MGR_DEFAULT</property>
<property name="bg"></property>
<property name="context_help"></property>
<property name="context_menu">1</property>
<property name="drag_accept_files">0</property>
<property name="enabled">1</property>
<property name="event_handler">impl_virtual</property>
<property name="fg"></property>
<property name="font"></property>
<property name="hidden">0</property>
<property name="id">wxID_ANY</property>
<property name="maximum_size"></property>
<property name="minimum_size"></property>
<property name="name">PANEL_SYM_DISPLAY_OPTIONS_BASE</property>
<property name="pos"></property>
<property name="size">-1,-1</property>
<property name="subclass">RESETTABLE_PANEL; widgets/resettable_panel.h; Not forward_declare</property>
<property name="tooltip"></property>
<property name="two_step_creation">0</property>
<property name="window_extra_style"></property>
<property name="window_name"></property>
<property name="window_style">wxTAB_TRAVERSAL</property>
<object class="wxBoxSizer" expanded="true">
<property name="minimum_size"></property>
<property name="name">bPanelSizer</property>
<property name="orient">wxHORIZONTAL</property>
<property name="permission">none</property>
<object class="sizeritem" expanded="true">
<property name="border">15</property>
<property name="flag">wxEXPAND|wxRIGHT</property>
<property name="proportion">0</property>
<object class="wxBoxSizer" expanded="true">
<property name="minimum_size"></property>
<property name="name">m_galOptionsSizer</property>
<property name="orient">wxVERTICAL</property>
<property name="permission">protected</property>
</object>
</object>
<object class="sizeritem" expanded="true">
<property name="border">10</property>
<property name="flag">wxEXPAND|wxBOTTOM|wxLEFT</property>
<property name="proportion">0</property>
<object class="wxBoxSizer" expanded="true">
<property name="minimum_size"></property>
<property name="name">bRightColumn</property>
<property name="orient">wxVERTICAL</property>
<property name="permission">none</property>
<object class="sizeritem" expanded="true">
<property name="border">13</property>
<property name="flag">wxTOP|wxRIGHT|wxLEFT</property>
<property name="proportion">0</property>
<object class="wxStaticText" expanded="true">
<property name="BottomDockable">1</property>
<property name="LeftDockable">1</property>
<property name="RightDockable">1</property>
<property name="TopDockable">1</property>
<property name="aui_layer">0</property>
<property name="aui_name"></property>
<property name="aui_position">0</property>
<property name="aui_row">0</property>
<property name="best_size"></property>
<property name="bg"></property>
<property name="caption"></property>
<property name="caption_visible">1</property>
<property name="center_pane">0</property>
<property name="close_button">1</property>
<property name="context_help"></property>
<property name="context_menu">1</property>
<property name="default_pane">0</property>
<property name="dock">Dock</property>
<property name="dock_fixed">0</property>
<property name="docking">Left</property>
<property name="drag_accept_files">0</property>
<property name="enabled">1</property>
<property name="fg"></property>
<property name="floatable">1</property>
<property name="font"></property>
<property name="gripper">0</property>
<property name="hidden">0</property>
<property name="id">wxID_ANY</property>
<property name="label">Appearance</property>
<property name="markup">0</property>
<property name="max_size"></property>
<property name="maximize_button">0</property>
<property name="maximum_size"></property>
<property name="min_size"></property>
<property name="minimize_button">0</property>
<property name="minimum_size"></property>
<property name="moveable">1</property>
<property name="name">m_appearanceLabel</property>
<property name="pane_border">1</property>
<property name="pane_position"></property>
<property name="pane_size"></property>
<property name="permission">protected</property>
<property name="pin_button">1</property>
<property name="pos"></property>
<property name="resize">Resizable</property>
<property name="show">1</property>
<property name="size"></property>
<property name="style"></property>
<property name="subclass">; ; forward_declare</property>
<property name="toolbar_pane">0</property>
<property name="tooltip"></property>
<property name="window_extra_style"></property>
<property name="window_name"></property>
<property name="window_style"></property>
<property name="wrap">-1</property>
</object>
</object>
<object class="sizeritem" expanded="true">
<property name="border">7</property>
<property name="flag">wxEXPAND|wxBOTTOM</property>
<property name="proportion">0</property>
<object class="wxStaticLine" expanded="true">
<property name="BottomDockable">1</property>
<property name="LeftDockable">1</property>
<property name="RightDockable">1</property>
<property name="TopDockable">1</property>
<property name="aui_layer">0</property>
<property name="aui_name"></property>
<property name="aui_position">0</property>
<property name="aui_row">0</property>
<property name="best_size"></property>
<property name="bg"></property>
<property name="caption"></property>
<property name="caption_visible">1</property>
<property name="center_pane">0</property>
<property name="close_button">1</property>
<property name="context_help"></property>
<property name="context_menu">1</property>
<property name="default_pane">0</property>
<property name="dock">Dock</property>
<property name="dock_fixed">0</property>
<property name="docking">Left</property>
<property name="drag_accept_files">0</property>
<property name="enabled">1</property>
<property name="fg"></property>
<property name="floatable">1</property>
<property name="font"></property>
<property name="gripper">0</property>
<property name="hidden">0</property>
<property name="id">wxID_ANY</property>
<property name="max_size"></property>
<property name="maximize_button">0</property>
<property name="maximum_size"></property>
<property name="min_size"></property>
<property name="minimize_button">0</property>
<property name="minimum_size"></property>
<property name="moveable">1</property>
<property name="name">m_staticline1</property>
<property name="pane_border">1</property>
<property name="pane_position"></property>
<property name="pane_size"></property>
<property name="permission">protected</property>
<property name="pin_button">1</property>
<property name="pos"></property>
<property name="resize">Resizable</property>
<property name="show">1</property>
<property name="size"></property>
<property name="style">wxLI_HORIZONTAL</property>
<property name="subclass">; ; forward_declare</property>
<property name="toolbar_pane">0</property>
<property name="tooltip"></property>
<property name="window_extra_style"></property>
<property name="window_name"></property>
<property name="window_style"></property>
</object>
</object>
<object class="sizeritem" expanded="true">
<property name="border">5</property>
<property name="flag">wxEXPAND|wxTOP|wxLEFT</property>
<property name="proportion">0</property>
<object class="wxBoxSizer" expanded="true">
<property name="minimum_size"></property>
<property name="name">bAppearanceSizer</property>
<property name="orient">wxVERTICAL</property>
<property name="permission">none</property>
<object class="sizeritem" expanded="false">
<property name="border">5</property>
<property name="flag">wxEXPAND|wxALL</property>
<property name="proportion">0</property>
<object class="wxCheckBox" expanded="false">
<property name="BottomDockable">1</property>
<property name="LeftDockable">1</property>
<property name="RightDockable">1</property>
<property name="TopDockable">1</property>
<property name="aui_layer">0</property>
<property name="aui_name"></property>
<property name="aui_position">0</property>
<property name="aui_row">0</property>
<property name="best_size"></property>
<property name="bg"></property>
<property name="caption"></property>
<property name="caption_visible">1</property>
<property name="center_pane">0</property>
<property name="checked">0</property>
<property name="close_button">1</property>
<property name="context_help"></property>
<property name="context_menu">1</property>
<property name="default_pane">0</property>
<property name="dock">Dock</property>
<property name="dock_fixed">0</property>
<property name="docking">Left</property>
<property name="drag_accept_files">0</property>
<property name="enabled">1</property>
<property name="fg"></property>
<property name="floatable">1</property>
<property name="font"></property>
<property name="gripper">0</property>
<property name="hidden">0</property>
<property name="id">wxID_ANY</property>
<property name="label">S&amp;how hidden pins</property>
<property name="max_size"></property>
<property name="maximize_button">0</property>
<property name="maximum_size"></property>
<property name="min_size"></property>
<property name="minimize_button">0</property>
<property name="minimum_size"></property>
<property name="moveable">1</property>
<property name="name">m_checkShowHiddenPins</property>
<property name="pane_border">1</property>
<property name="pane_position"></property>
<property name="pane_size"></property>
<property name="permission">protected</property>
<property name="pin_button">1</property>
<property name="pos"></property>
<property name="resize">Resizable</property>
<property name="show">1</property>
<property name="size"></property>
<property name="style"></property>
<property name="subclass"></property>
<property name="toolbar_pane">0</property>
<property name="tooltip"></property>
<property name="validator_data_type"></property>
<property name="validator_style">wxFILTER_NONE</property>
<property name="validator_type">wxDefaultValidator</property>
<property name="validator_variable"></property>
<property name="window_extra_style"></property>
<property name="window_name"></property>
<property name="window_style"></property>
</object>
</object>
<object class="sizeritem" expanded="false">
<property name="border">5</property>
<property name="flag">wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND</property>
<property name="proportion">0</property>
<object class="wxCheckBox" expanded="false">
<property name="BottomDockable">1</property>
<property name="LeftDockable">1</property>
<property name="RightDockable">1</property>
<property name="TopDockable">1</property>
<property name="aui_layer">0</property>
<property name="aui_name"></property>
<property name="aui_position">0</property>
<property name="aui_row">0</property>
<property name="best_size"></property>
<property name="bg"></property>
<property name="caption"></property>
<property name="caption_visible">1</property>
<property name="center_pane">0</property>
<property name="checked">0</property>
<property name="close_button">1</property>
<property name="context_help"></property>
<property name="context_menu">1</property>
<property name="default_pane">0</property>
<property name="dock">Dock</property>
<property name="dock_fixed">0</property>
<property name="docking">Left</property>
<property name="drag_accept_files">0</property>
<property name="enabled">1</property>
<property name="fg"></property>
<property name="floatable">1</property>
<property name="font"></property>
<property name="gripper">0</property>
<property name="hidden">0</property>
<property name="id">wxID_ANY</property>
<property name="label">Show hidden fields</property>
<property name="max_size"></property>
<property name="maximize_button">0</property>
<property name="maximum_size"></property>
<property name="min_size"></property>
<property name="minimize_button">0</property>
<property name="minimum_size"></property>
<property name="moveable">1</property>
<property name="name">m_checkShowHiddenFields</property>
<property name="pane_border">1</property>
<property name="pane_position"></property>
<property name="pane_size"></property>
<property name="permission">protected</property>
<property name="pin_button">1</property>
<property name="pos"></property>
<property name="resize">Resizable</property>
<property name="show">1</property>
<property name="size"></property>
<property name="style"></property>
<property name="subclass">; ; forward_declare</property>
<property name="toolbar_pane">0</property>
<property name="tooltip"></property>
<property name="validator_data_type"></property>
<property name="validator_style">wxFILTER_NONE</property>
<property name="validator_type">wxDefaultValidator</property>
<property name="validator_variable"></property>
<property name="window_extra_style"></property>
<property name="window_name"></property>
<property name="window_style"></property>
</object>
</object>
<object class="sizeritem" expanded="false">
<property name="border">5</property>
<property name="flag">wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT</property>
<property name="proportion">0</property>
<object class="wxCheckBox" expanded="false">
<property name="BottomDockable">1</property>
<property name="LeftDockable">1</property>
<property name="RightDockable">1</property>
<property name="TopDockable">1</property>
<property name="aui_layer">0</property>
<property name="aui_name"></property>
<property name="aui_position">0</property>
<property name="aui_row">0</property>
<property name="best_size"></property>
<property name="bg"></property>
<property name="caption"></property>
<property name="caption_visible">1</property>
<property name="center_pane">0</property>
<property name="checked">1</property>
<property name="close_button">1</property>
<property name="context_help"></property>
<property name="context_menu">1</property>
<property name="default_pane">0</property>
<property name="dock">Dock</property>
<property name="dock_fixed">0</property>
<property name="docking">Left</property>
<property name="drag_accept_files">0</property>
<property name="enabled">1</property>
<property name="fg"></property>
<property name="floatable">1</property>
<property name="font"></property>
<property name="gripper">0</property>
<property name="hidden">0</property>
<property name="id">wxID_ANY</property>
<property name="label">Show pin &amp;electrical type</property>
<property name="max_size"></property>
<property name="maximize_button">0</property>
<property name="maximum_size"></property>
<property name="min_size"></property>
<property name="minimize_button">0</property>
<property name="minimum_size"></property>
<property name="moveable">1</property>
<property name="name">m_showPinElectricalTypes</property>
<property name="pane_border">1</property>
<property name="pane_position"></property>
<property name="pane_size"></property>
<property name="permission">protected</property>
<property name="pin_button">1</property>
<property name="pos"></property>
<property name="resize">Resizable</property>
<property name="show">1</property>
<property name="size"></property>
<property name="style"></property>
<property name="subclass"></property>
<property name="toolbar_pane">0</property>
<property name="tooltip"></property>
<property name="validator_data_type"></property>
<property name="validator_style">wxFILTER_NONE</property>
<property name="validator_type">wxDefaultValidator</property>
<property name="validator_variable"></property>
<property name="window_extra_style"></property>
<property name="window_name"></property>
<property name="window_style"></property>
</object>
</object>
</object>
</object>
</object>
</object>
</object>
</object>
</object>
</wxFormBuilder_Project>

View File

@ -0,0 +1,49 @@
///////////////////////////////////////////////////////////////////////////
// C++ code generated with wxFormBuilder (version 4.2.1-0-g80c4cb6)
// http://www.wxformbuilder.org/
//
// PLEASE DO *NOT* EDIT THIS FILE!
///////////////////////////////////////////////////////////////////////////
#pragma once
#include <wx/artprov.h>
#include <wx/xrc/xmlres.h>
#include <wx/intl.h>
#include "widgets/resettable_panel.h"
#include <wx/sizer.h>
#include <wx/gdicmn.h>
#include <wx/string.h>
#include <wx/stattext.h>
#include <wx/font.h>
#include <wx/colour.h>
#include <wx/settings.h>
#include <wx/statline.h>
#include <wx/checkbox.h>
#include <wx/panel.h>
///////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
/// Class PANEL_SYM_DISPLAY_OPTIONS_BASE
///////////////////////////////////////////////////////////////////////////////
class PANEL_SYM_DISPLAY_OPTIONS_BASE : public RESETTABLE_PANEL
{
private:
protected:
wxBoxSizer* m_galOptionsSizer;
wxStaticText* m_appearanceLabel;
wxStaticLine* m_staticline1;
wxCheckBox* m_checkShowHiddenPins;
wxCheckBox* m_checkShowHiddenFields;
wxCheckBox* m_showPinElectricalTypes;
public:
PANEL_SYM_DISPLAY_OPTIONS_BASE( wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxTAB_TRAVERSAL, const wxString& name = wxEmptyString );
~PANEL_SYM_DISPLAY_OPTIONS_BASE();
};

View File

@ -55,7 +55,6 @@ void PANEL_SYM_EDITING_OPTIONS::loadSymEditorSettings( SYMBOL_EDITOR_SETTINGS* a
m_pinNameSize.SetValue( schIUScale.MilsToIU( aCfg->m_Defaults.pin_name_size ) ); m_pinNameSize.SetValue( schIUScale.MilsToIU( aCfg->m_Defaults.pin_name_size ) );
m_pinPitch.SetValue( schIUScale.MilsToIU( aCfg->m_Repeat.pin_step ) ); m_pinPitch.SetValue( schIUScale.MilsToIU( aCfg->m_Repeat.pin_step ) );
m_spinRepeatLabel->SetValue( aCfg->m_Repeat.label_delta ); m_spinRepeatLabel->SetValue( aCfg->m_Repeat.label_delta );
m_cbShowPinElectricalType->SetValue( aCfg->m_ShowPinElectricalType );
m_dragPinsWithEdges->SetValue( aCfg->m_dragPinsAlongWithEdges ); m_dragPinsWithEdges->SetValue( aCfg->m_dragPinsAlongWithEdges );
} }
@ -83,7 +82,6 @@ bool PANEL_SYM_EDITING_OPTIONS::TransferDataFromWindow()
settings->m_Defaults.pin_name_size = schIUScale.IUToMils( m_pinNameSize.GetIntValue() ); settings->m_Defaults.pin_name_size = schIUScale.IUToMils( m_pinNameSize.GetIntValue() );
settings->m_Repeat.label_delta = m_spinRepeatLabel->GetValue(); settings->m_Repeat.label_delta = m_spinRepeatLabel->GetValue();
settings->m_Repeat.pin_step = schIUScale.IUToMils( m_pinPitch.GetIntValue() ); settings->m_Repeat.pin_step = schIUScale.IUToMils( m_pinPitch.GetIntValue() );
settings->m_ShowPinElectricalType = m_cbShowPinElectricalType->GetValue();
settings->m_dragPinsAlongWithEdges = m_dragPinsWithEdges->GetValue(); settings->m_dragPinsAlongWithEdges = m_dragPinsWithEdges->GetValue();
// Force pin_step to a grid multiple // Force pin_step to a grid multiple

View File

@ -95,9 +95,6 @@ PANEL_SYM_EDITING_OPTIONS_BASE::PANEL_SYM_EDITING_OPTIONS_BASE( wxWindow* parent
leftColumn->Add( gbSizer1, 0, wxEXPAND|wxTOP|wxBOTTOM|wxLEFT, 5 ); leftColumn->Add( gbSizer1, 0, wxEXPAND|wxTOP|wxBOTTOM|wxLEFT, 5 );
m_cbShowPinElectricalType = new wxCheckBox( this, wxID_ANY, _("Show pin &electrical type"), wxDefaultPosition, wxDefaultSize, 0 );
leftColumn->Add( m_cbShowPinElectricalType, 0, wxBOTTOM|wxLEFT, 10 );
leftColumn->Add( 0, 15, 0, wxEXPAND, 5 ); leftColumn->Add( 0, 15, 0, wxEXPAND, 5 );
@ -143,12 +140,12 @@ PANEL_SYM_EDITING_OPTIONS_BASE::PANEL_SYM_EDITING_OPTIONS_BASE( wxWindow* parent
wxBoxSizer* rightColumn; wxBoxSizer* rightColumn;
rightColumn = new wxBoxSizer( wxVERTICAL ); rightColumn = new wxBoxSizer( wxVERTICAL );
m_generalOption = new wxStaticText( this, wxID_ANY, _("General editing"), wxDefaultPosition, wxDefaultSize, 0 ); m_generalOption1 = new wxStaticText( this, wxID_ANY, _("General editing"), wxDefaultPosition, wxDefaultSize, 0 );
m_generalOption->Wrap( -1 ); m_generalOption1->Wrap( -1 );
rightColumn->Add( m_generalOption, 0, wxLEFT|wxTOP, 13 ); rightColumn->Add( m_generalOption1, 0, wxLEFT|wxRIGHT|wxTOP, 13 );
m_staticline3 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL ); m_staticline4 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
rightColumn->Add( m_staticline3, 0, wxEXPAND | wxALL, 5 ); rightColumn->Add( m_staticline4, 0, wxEXPAND | wxALL, 5 );
m_dragPinsWithEdges = new wxCheckBox( this, wxID_ANY, _("Keep pins attached when dragging edges"), wxDefaultPosition, wxDefaultSize, 0 ); m_dragPinsWithEdges = new wxCheckBox( this, wxID_ANY, _("Keep pins attached when dragging edges"), wxDefaultPosition, wxDefaultSize, 0 );
rightColumn->Add( m_dragPinsWithEdges, 0, wxBOTTOM|wxLEFT, 10 ); rightColumn->Add( m_dragPinsWithEdges, 0, wxBOTTOM|wxLEFT, 10 );
@ -157,7 +154,7 @@ PANEL_SYM_EDITING_OPTIONS_BASE::PANEL_SYM_EDITING_OPTIONS_BASE( wxWindow* parent
rightColumn->Add( 0, 15, 1, wxEXPAND, 5 ); rightColumn->Add( 0, 15, 1, wxEXPAND, 5 );
p1mainSizer->Add( rightColumn, 1, wxEXPAND, 5 ); p1mainSizer->Add( rightColumn, 1, wxEXPAND|wxLEFT, 5 );
this->SetSizer( p1mainSizer ); this->SetSizer( p1mainSizer );

View File

@ -1272,71 +1272,6 @@
</object> </object>
</object> </object>
</object> </object>
<object class="sizeritem" expanded="false">
<property name="border">10</property>
<property name="flag">wxBOTTOM|wxLEFT</property>
<property name="proportion">0</property>
<object class="wxCheckBox" expanded="false">
<property name="BottomDockable">1</property>
<property name="LeftDockable">1</property>
<property name="RightDockable">1</property>
<property name="TopDockable">1</property>
<property name="aui_layer">0</property>
<property name="aui_name"></property>
<property name="aui_position">0</property>
<property name="aui_row">0</property>
<property name="best_size"></property>
<property name="bg"></property>
<property name="caption"></property>
<property name="caption_visible">1</property>
<property name="center_pane">0</property>
<property name="checked">0</property>
<property name="close_button">1</property>
<property name="context_help"></property>
<property name="context_menu">1</property>
<property name="default_pane">0</property>
<property name="dock">Dock</property>
<property name="dock_fixed">0</property>
<property name="docking">Left</property>
<property name="drag_accept_files">0</property>
<property name="enabled">1</property>
<property name="fg"></property>
<property name="floatable">1</property>
<property name="font"></property>
<property name="gripper">0</property>
<property name="hidden">0</property>
<property name="id">wxID_ANY</property>
<property name="label">Show pin &amp;electrical type</property>
<property name="max_size"></property>
<property name="maximize_button">0</property>
<property name="maximum_size"></property>
<property name="min_size"></property>
<property name="minimize_button">0</property>
<property name="minimum_size"></property>
<property name="moveable">1</property>
<property name="name">m_cbShowPinElectricalType</property>
<property name="pane_border">1</property>
<property name="pane_position"></property>
<property name="pane_size"></property>
<property name="permission">protected</property>
<property name="pin_button">1</property>
<property name="pos"></property>
<property name="resize">Resizable</property>
<property name="show">1</property>
<property name="size"></property>
<property name="style"></property>
<property name="subclass"></property>
<property name="toolbar_pane">0</property>
<property name="tooltip"></property>
<property name="validator_data_type"></property>
<property name="validator_style">wxFILTER_NONE</property>
<property name="validator_type">wxDefaultValidator</property>
<property name="validator_variable"></property>
<property name="window_extra_style"></property>
<property name="window_name"></property>
<property name="window_style"></property>
</object>
</object>
<object class="sizeritem" expanded="true"> <object class="sizeritem" expanded="true">
<property name="border">5</property> <property name="border">5</property>
<property name="flag">wxEXPAND</property> <property name="flag">wxEXPAND</property>
@ -1829,7 +1764,7 @@
</object> </object>
<object class="sizeritem" expanded="true"> <object class="sizeritem" expanded="true">
<property name="border">5</property> <property name="border">5</property>
<property name="flag">wxEXPAND</property> <property name="flag">wxEXPAND|wxLEFT</property>
<property name="proportion">1</property> <property name="proportion">1</property>
<object class="wxBoxSizer" expanded="true"> <object class="wxBoxSizer" expanded="true">
<property name="minimum_size"></property> <property name="minimum_size"></property>
@ -1838,7 +1773,7 @@
<property name="permission">none</property> <property name="permission">none</property>
<object class="sizeritem" expanded="true"> <object class="sizeritem" expanded="true">
<property name="border">13</property> <property name="border">13</property>
<property name="flag">wxLEFT|wxTOP</property> <property name="flag">wxLEFT|wxRIGHT|wxTOP</property>
<property name="proportion">0</property> <property name="proportion">0</property>
<object class="wxStaticText" expanded="true"> <object class="wxStaticText" expanded="true">
<property name="BottomDockable">1</property> <property name="BottomDockable">1</property>
@ -1878,7 +1813,7 @@
<property name="minimize_button">0</property> <property name="minimize_button">0</property>
<property name="minimum_size"></property> <property name="minimum_size"></property>
<property name="moveable">1</property> <property name="moveable">1</property>
<property name="name">m_generalOption</property> <property name="name">m_generalOption1</property>
<property name="pane_border">1</property> <property name="pane_border">1</property>
<property name="pane_position"></property> <property name="pane_position"></property>
<property name="pane_size"></property> <property name="pane_size"></property>
@ -1938,7 +1873,7 @@
<property name="minimize_button">0</property> <property name="minimize_button">0</property>
<property name="minimum_size"></property> <property name="minimum_size"></property>
<property name="moveable">1</property> <property name="moveable">1</property>
<property name="name">m_staticline3</property> <property name="name">m_staticline4</property>
<property name="pane_border">1</property> <property name="pane_border">1</property>
<property name="pane_position"></property> <property name="pane_position"></property>
<property name="pane_size"></property> <property name="pane_size"></property>

View File

@ -20,9 +20,9 @@
#include <wx/statline.h> #include <wx/statline.h>
#include <wx/textctrl.h> #include <wx/textctrl.h>
#include <wx/gbsizer.h> #include <wx/gbsizer.h>
#include <wx/checkbox.h>
#include <wx/spinctrl.h> #include <wx/spinctrl.h>
#include <wx/sizer.h> #include <wx/sizer.h>
#include <wx/checkbox.h>
#include <wx/panel.h> #include <wx/panel.h>
/////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////
@ -53,7 +53,6 @@ class PANEL_SYM_EDITING_OPTIONS_BASE : public RESETTABLE_PANEL
wxStaticText* m_pinNameSizeLabel; wxStaticText* m_pinNameSizeLabel;
wxTextCtrl* m_pinNameSizeCtrl; wxTextCtrl* m_pinNameSizeCtrl;
wxStaticText* m_pinNameSizeUnits; wxStaticText* m_pinNameSizeUnits;
wxCheckBox* m_cbShowPinElectricalType;
wxStaticText* m_repeatLabel; wxStaticText* m_repeatLabel;
wxStaticLine* m_staticline2; wxStaticLine* m_staticline2;
wxStaticText* m_pinPitchLabel; wxStaticText* m_pinPitchLabel;
@ -61,8 +60,8 @@ class PANEL_SYM_EDITING_OPTIONS_BASE : public RESETTABLE_PANEL
wxStaticText* m_pinPitchUnits; wxStaticText* m_pinPitchUnits;
wxStaticText* m_labelIncrementLabel1; wxStaticText* m_labelIncrementLabel1;
wxSpinCtrl* m_spinRepeatLabel; wxSpinCtrl* m_spinRepeatLabel;
wxStaticText* m_generalOption; wxStaticText* m_generalOption1;
wxStaticLine* m_staticline3; wxStaticLine* m_staticline4;
wxCheckBox* m_dragPinsWithEdges; wxCheckBox* m_dragPinsWithEdges;
// Virtual event handlers, override them in your derived class // Virtual event handlers, override them in your derived class

View File

@ -38,7 +38,7 @@
#include <kiway_express.h> #include <kiway_express.h>
#include <symbol_edit_frame.h> #include <symbol_edit_frame.h>
#include <lib_symbol_library_manager.h> #include <lib_symbol_library_manager.h>
#include <symbol_editor_settings.h> #include <symbol_editor/symbol_editor_settings.h>
#include <paths.h> #include <paths.h>
#include <pgm_base.h> #include <pgm_base.h>
#include <project_sch.h> #include <project_sch.h>
@ -506,19 +506,19 @@ void SYMBOL_EDIT_FRAME::setupUIConditions()
auto pinTypeCond = auto pinTypeCond =
[this]( const SELECTION& ) [this]( const SELECTION& )
{ {
return GetRenderSettings() && GetRenderSettings()->m_ShowPinsElectricalType; return libeditconfig()->m_ShowPinElectricalType;
}; };
auto hiddenPinCond = auto hiddenPinCond =
[this]( const SELECTION& ) [this]( const SELECTION& )
{ {
return GetRenderSettings() && GetRenderSettings()->m_ShowHiddenPins; return libeditconfig()->m_ShowHiddenPins;
}; };
auto hiddenFieldCond = auto hiddenFieldCond =
[this]( const SELECTION& ) [this]( const SELECTION& )
{ {
return GetRenderSettings() && GetRenderSettings()->m_ShowHiddenFields; return libeditconfig()->m_ShowHiddenFields;
}; };
auto showLibraryTreeCond = auto showLibraryTreeCond =
@ -1904,12 +1904,12 @@ void SYMBOL_EDIT_FRAME::updateSelectionFilterVisbility()
bool SYMBOL_EDIT_FRAME::GetShowInvisibleFields() bool SYMBOL_EDIT_FRAME::GetShowInvisibleFields()
{ {
// Returns the current render option for invisible fields // Returns the current render option for invisible fields
return GetRenderSettings()->m_ShowHiddenFields; return libeditconfig()->m_ShowHiddenFields;
} }
bool SYMBOL_EDIT_FRAME::GetShowInvisiblePins() bool SYMBOL_EDIT_FRAME::GetShowInvisiblePins()
{ {
// Returns the current render option for invisible pins // Returns the current render option for invisible pins
return GetRenderSettings()->m_ShowHiddenPins; return libeditconfig()->m_ShowHiddenPins;
} }

View File

@ -31,6 +31,7 @@
#include <tools/ee_actions.h> #include <tools/ee_actions.h>
#include <tools/symbol_editor_control.h> #include <tools/symbol_editor_control.h>
#include <lib_symbol_library_manager.h> #include <lib_symbol_library_manager.h>
#include <symbol_editor/symbol_editor_settings.h>
#include <symbol_viewer_frame.h> #include <symbol_viewer_frame.h>
#include <symbol_tree_model_adapter.h> #include <symbol_tree_model_adapter.h>
#include <wildcards_and_files_ext.h> #include <wildcards_and_files_ext.h>
@ -580,12 +581,14 @@ int SYMBOL_EDITOR_CONTROL::ToggleHiddenPins( const TOOL_EVENT& aEvent )
if( !m_isSymbolEditor ) if( !m_isSymbolEditor )
return 0; return 0;
SYMBOL_EDIT_FRAME* editFrame = getEditFrame<SYMBOL_EDIT_FRAME>(); SYMBOL_EDITOR_SETTINGS* cfg = m_frame->libeditconfig();
editFrame->GetRenderSettings()->m_ShowHiddenPins = cfg->m_ShowHiddenPins = !cfg->m_ShowHiddenPins;
!editFrame->GetRenderSettings()->m_ShowHiddenPins;
getEditFrame<SYMBOL_EDIT_FRAME>()->GetRenderSettings()->m_ShowHiddenPins =
cfg->m_ShowHiddenPins;
getView()->UpdateAllItems( KIGFX::REPAINT ); getView()->UpdateAllItems( KIGFX::REPAINT );
editFrame->GetCanvas()->Refresh(); m_frame->GetCanvas()->Refresh();
return 0; return 0;
} }
@ -595,12 +598,15 @@ int SYMBOL_EDITOR_CONTROL::ToggleHiddenFields( const TOOL_EVENT& aEvent )
if( !m_isSymbolEditor ) if( !m_isSymbolEditor )
return 0; return 0;
SYMBOL_EDIT_FRAME* editFrame = getEditFrame<SYMBOL_EDIT_FRAME>(); SYMBOL_EDITOR_SETTINGS* cfg = m_frame->libeditconfig();
editFrame->GetRenderSettings()->m_ShowHiddenFields = cfg->m_ShowHiddenFields = !cfg->m_ShowHiddenFields;
!editFrame->GetRenderSettings()->m_ShowHiddenFields;
// TODO: Why is this needed in symbol edit and not in schematic edit?
getEditFrame<SYMBOL_EDIT_FRAME>()->GetRenderSettings()->m_ShowHiddenFields =
cfg->m_ShowHiddenFields;
getView()->UpdateAllItems( KIGFX::REPAINT ); getView()->UpdateAllItems( KIGFX::REPAINT );
editFrame->GetCanvas()->Refresh(); m_frame->GetCanvas()->Refresh();
return 0; return 0;
} }