Add display setting preference pane for PLEditor.

Fixes: lp:1839187
* https://bugs.launchpad.net/kicad/+bug/1839187
This commit is contained in:
Jeff Young 2019-08-18 22:48:52 +01:00
parent 551eb56da0
commit 0d90fab01b
7 changed files with 44 additions and 37 deletions

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) 2017-2018 KiCad Developers, see AUTHORS.txt for contributors. * Copyright (C) 2019 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,16 +17,15 @@
* with this program. If not, see <http://www.gnu.org/licenses/>. * with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
#include <lib_edit_frame.h> #include <eda_draw_frame.h>
#include <sch_view.h> #include <view/view.h>
#include <widgets/gal_options_panel.h> #include <widgets/gal_options_panel.h>
#include <widgets/paged_dialog.h> #include <widgets/paged_dialog.h>
#include <panel_libedit_display_options.h> #include <panel_display_options.h>
PANEL_LIBEDIT_DISPLAY_OPTIONS::PANEL_LIBEDIT_DISPLAY_OPTIONS( LIB_EDIT_FRAME* aFrame, PANEL_DISPLAY_OPTIONS::PANEL_DISPLAY_OPTIONS( EDA_DRAW_FRAME* aFrame, PAGED_DIALOG* aParent ) :
PAGED_DIALOG* aParent ) :
wxPanel( aParent->GetTreebook(), wxID_ANY ), wxPanel( aParent->GetTreebook(), wxID_ANY ),
m_frame( aFrame ) m_frame( aFrame )
{ {
@ -45,19 +44,19 @@ PANEL_LIBEDIT_DISPLAY_OPTIONS::PANEL_LIBEDIT_DISPLAY_OPTIONS( LIB_EDIT_FRAME* aF
} }
bool PANEL_LIBEDIT_DISPLAY_OPTIONS::TransferDataToWindow() bool PANEL_DISPLAY_OPTIONS::TransferDataToWindow()
{ {
m_galOptsPanel->TransferDataToWindow(); m_galOptsPanel->TransferDataToWindow();
return true; return true;
} }
bool PANEL_LIBEDIT_DISPLAY_OPTIONS::TransferDataFromWindow() bool PANEL_DISPLAY_OPTIONS::TransferDataFromWindow()
{ {
m_galOptsPanel->TransferDataFromWindow(); m_galOptsPanel->TransferDataFromWindow();
// refresh view // refresh view
KIGFX::SCH_VIEW* view = m_frame->GetCanvas()->GetView(); KIGFX::VIEW* view = m_frame->GetCanvas()->GetView();
view->RecacheAllItems(); view->RecacheAllItems();
view->MarkTargetDirty( KIGFX::TARGET_NONCACHED ); view->MarkTargetDirty( KIGFX::TARGET_NONCACHED );
m_frame->GetCanvas()->Refresh(); m_frame->GetCanvas()->Refresh();

View File

@ -18,26 +18,26 @@
*/ */
#ifndef KICAD_PANEL_LIBEDIT_DISPLAY_OPTIONS_H #ifndef PANEL_DISPLAY_OPTIONS_H
#define KICAD_PANEL_LIBEDIT_DISPLAY_OPTIONS_H #define PANEL_DISPLAY_OPTIONS_H
#include <wx/panel.h> #include <wx/panel.h>
class GAL_OPTIONS_PANEL; class GAL_OPTIONS_PANEL;
class LIB_EDIT_FRAME; class EDA_DRAW_FRAME;
class PAGED_DIALOG; class PAGED_DIALOG;
class PANEL_LIBEDIT_DISPLAY_OPTIONS : public wxPanel class PANEL_DISPLAY_OPTIONS : public wxPanel
{ {
public: public:
PANEL_LIBEDIT_DISPLAY_OPTIONS( LIB_EDIT_FRAME* aParent, PAGED_DIALOG* aWindow ); PANEL_DISPLAY_OPTIONS( EDA_DRAW_FRAME* aParent, PAGED_DIALOG* aWindow );
private: private:
bool TransferDataToWindow() override; bool TransferDataToWindow() override;
bool TransferDataFromWindow() override; bool TransferDataFromWindow() override;
LIB_EDIT_FRAME* m_frame; EDA_DRAW_FRAME* m_frame;
GAL_OPTIONS_PANEL* m_galOptsPanel; GAL_OPTIONS_PANEL* m_galOptsPanel;
}; };
#endif //KICAD_PANEL_LIBEDIT_DISPLAY_OPTIONS_H #endif //PANEL_DISPLAY_OPTIONS_H

View File

@ -94,7 +94,6 @@ set( EESCHEMA_DLGS
dialogs/panel_eeschema_display_options_base.cpp dialogs/panel_eeschema_display_options_base.cpp
dialogs/panel_eeschema_settings.cpp dialogs/panel_eeschema_settings.cpp
dialogs/panel_eeschema_settings_base.cpp dialogs/panel_eeschema_settings_base.cpp
dialogs/panel_libedit_display_options.cpp
dialogs/panel_libedit_settings.cpp dialogs/panel_libedit_settings.cpp
dialogs/panel_libedit_settings_base.cpp dialogs/panel_libedit_settings_base.cpp
dialogs/panel_sym_lib_table.cpp dialogs/panel_sym_lib_table.cpp
@ -237,6 +236,7 @@ set( EESCHEMA_SRCS
set( EESCHEMA_COMMON_SRCS set( EESCHEMA_COMMON_SRCS
../common/dialogs/dialog_page_settings.cpp ../common/dialogs/dialog_page_settings.cpp
../common/dialogs/panel_display_options.cpp
../common/base_screen.cpp ../common/base_screen.cpp
../common/base_units.cpp ../common/base_units.cpp
../common/eda_text.cpp ../common/eda_text.cpp

View File

@ -38,7 +38,7 @@
#include <dialogs/panel_eeschema_template_fieldnames.h> #include <dialogs/panel_eeschema_template_fieldnames.h>
#include <dialogs/panel_eeschema_settings.h> #include <dialogs/panel_eeschema_settings.h>
#include <dialogs/panel_eeschema_display_options.h> #include <dialogs/panel_eeschema_display_options.h>
#include <dialogs/panel_libedit_display_options.h> #include <panel_display_options.h>
#include <panel_hotkeys_editor.h> #include <panel_hotkeys_editor.h>
#include <widgets/widget_eeschema_color_config.h> #include <widgets/widget_eeschema_color_config.h>
#include <widgets/symbol_tree_pane.h> #include <widgets/symbol_tree_pane.h>
@ -461,7 +461,7 @@ void LIB_EDIT_FRAME::InstallPreferences( PAGED_DIALOG* aParent,
wxTreebook* book = aParent->GetTreebook(); wxTreebook* book = aParent->GetTreebook();
book->AddPage( new PANEL_LIBEDIT_SETTINGS( this, book ), _( "Symbol Editor" ) ); book->AddPage( new PANEL_LIBEDIT_SETTINGS( this, book ), _( "Symbol Editor" ) );
book->AddSubPage( new PANEL_LIBEDIT_DISPLAY_OPTIONS( this, aParent ), _( "Display Options" ) ); book->AddSubPage( new PANEL_DISPLAY_OPTIONS( this, aParent ), _( "Display Options" ) );
aHotkeysPanel->AddHotKeys( GetToolManager() ); aHotkeysPanel->AddHotKeys( GetToolManager() );
} }

View File

@ -43,6 +43,7 @@ set( PL_EDITOR_EXTRA_SRCS
../common/base_units.cpp ../common/base_units.cpp
../common/eda_text.cpp ../common/eda_text.cpp
../common/dialogs/dialog_page_settings.cpp ../common/dialogs/dialog_page_settings.cpp
../common/dialogs/panel_display_options.cpp
../common/page_info.cpp ../common/page_info.cpp
) )

View File

@ -36,6 +36,9 @@
#include <pl_editor_screen.h> #include <pl_editor_screen.h>
#include <ws_data_model.h> #include <ws_data_model.h>
#include <properties_frame.h> #include <properties_frame.h>
#include <widgets/paged_dialog.h>
#include <panel_display_options.h>
#include <panel_hotkeys_editor.h>
#include <view/view.h> #include <view/view.h>
#include <confirm.h> #include <confirm.h>
#include <tool/selection.h> #include <tool/selection.h>
@ -54,7 +57,6 @@
#include <invoke_pl_editor_dialog.h> #include <invoke_pl_editor_dialog.h>
#include <tools/pl_editor_control.h> #include <tools/pl_editor_control.h>
BEGIN_EVENT_TABLE( PL_EDITOR_FRAME, EDA_DRAW_FRAME ) BEGIN_EVENT_TABLE( PL_EDITOR_FRAME, EDA_DRAW_FRAME )
EVT_CLOSE( PL_EDITOR_FRAME::OnCloseWindow ) EVT_CLOSE( PL_EDITOR_FRAME::OnCloseWindow )
EVT_MENU( wxID_CLOSE, PL_EDITOR_FRAME::OnExit ) EVT_MENU( wxID_CLOSE, PL_EDITOR_FRAME::OnExit )
@ -117,11 +119,6 @@ PL_EDITOR_FRAME::PL_EDITOR_FRAME( KIWAY* aKiway, wxWindow* aParent ) :
wxSize pageSizeIU = GetPageLayout().GetPageSettings().GetSizeIU(); wxSize pageSizeIU = GetPageLayout().GetPageSettings().GetSizeIU();
SetScreen( new PL_EDITOR_SCREEN( pageSizeIU ) ); SetScreen( new PL_EDITOR_SCREEN( pageSizeIU ) );
if( !GetScreen()->GridExists( m_LastGridSizeId + ID_POPUP_GRID_LEVEL_1000 ) )
m_LastGridSizeId = ID_POPUP_GRID_LEVEL_1MM - ID_POPUP_GRID_LEVEL_1000;
GetScreen()->SetGrid( m_LastGridSizeId + ID_POPUP_GRID_LEVEL_1000 );
setupTools(); setupTools();
ReCreateMenuBar(); ReCreateMenuBar();
ReCreateHToolbar(); ReCreateHToolbar();
@ -186,6 +183,11 @@ PL_EDITOR_FRAME::PL_EDITOR_FRAME( KIWAY* aKiway, wxWindow* aParent ) :
wxPoint originCoord = ReturnCoordOriginCorner(); wxPoint originCoord = ReturnCoordOriginCorner();
SetGridOrigin( originCoord ); SetGridOrigin( originCoord );
if( !GetScreen()->GridExists( m_LastGridSizeId + ID_POPUP_GRID_LEVEL_1000 ) )
m_LastGridSizeId = ID_POPUP_GRID_LEVEL_1MM - ID_POPUP_GRID_LEVEL_1000;
GetToolManager()->RunAction( "common.Control.gridPreset", true, m_LastGridSizeId );
// Initialize the current page layout // Initialize the current page layout
WS_DATA_MODEL& pglayout = WS_DATA_MODEL::GetTheInstance(); WS_DATA_MODEL& pglayout = WS_DATA_MODEL::GetTheInstance();
#if 0 //start with empty layout #if 0 //start with empty layout
@ -388,6 +390,17 @@ double PL_EDITOR_FRAME::BestZoom()
} }
void PL_EDITOR_FRAME::InstallPreferences( PAGED_DIALOG* aParent,
PANEL_HOTKEYS_EDITOR* aHotkeysPanel )
{
wxTreebook* book = aParent->GetTreebook();
book->AddPage( new PANEL_DISPLAY_OPTIONS( this, aParent ), _( "Display Options" ) );
aHotkeysPanel->AddHotKeys( GetToolManager() );
}
static const wxChar propertiesFrameWidthKey[] = wxT( "PropertiesFrameWidth" ); static const wxChar propertiesFrameWidthKey[] = wxT( "PropertiesFrameWidth" );
static const wxChar cornerOriginChoiceKey[] = wxT( "CornerOriginChoice" ); static const wxChar cornerOriginChoiceKey[] = wxT( "CornerOriginChoice" );
static const wxChar blackBgColorKey[] = wxT( "BlackBgColor" ); static const wxChar blackBgColorKey[] = wxT( "BlackBgColor" );
@ -550,17 +563,9 @@ void PL_EDITOR_FRAME::DisplayGridMsg()
switch( m_userUnits ) switch( m_userUnits )
{ {
case INCHES: case INCHES: gridformatter = "grid %.3f"; break;
gridformatter = "grid %.3f"; case MILLIMETRES: gridformatter = "grid %.4f"; break;
break; default: gridformatter = "grid %f"; break;
case MILLIMETRES:
gridformatter = "grid %.4f";
break;
default:
gridformatter = "grid %f";
break;
} }
wxRealPoint curr_grid_size = GetScreen()->GetGridSize(); wxRealPoint curr_grid_size = GetScreen()->GetGridSize();
@ -681,7 +686,7 @@ void PL_EDITOR_FRAME::HardRedraw()
PL_SELECTION_TOOL* selTool = m_toolManager->GetTool<PL_SELECTION_TOOL>(); PL_SELECTION_TOOL* selTool = m_toolManager->GetTool<PL_SELECTION_TOOL>();
PL_SELECTION& selection = selTool->GetSelection(); PL_SELECTION& selection = selTool->GetSelection();
WS_DATA_ITEM* item = nullptr; WS_DATA_ITEM* item = nullptr;
if( selection.GetSize() == 1 ) if( selection.GetSize() == 1 )
item = static_cast<WS_DRAW_ITEM_BASE*>( selection.Front() )->GetPeer(); item = static_cast<WS_DRAW_ITEM_BASE*>( selection.Front() )->GetPeer();

View File

@ -206,6 +206,8 @@ public:
*/ */
void UpdateTitleAndInfo(); void UpdateTitleAndInfo();
void InstallPreferences( PAGED_DIALOG* aParent, PANEL_HOTKEYS_EDITOR* aHotkeysPanel ) override;
/** /**
* Populates the applicatios settings list. * Populates the applicatios settings list.
* (list of parameters that must be saved in project parameters) * (list of parameters that must be saved in project parameters)