REMOVED: manual icon scale preference
This is now handled properly by wxWidgets on all platforms See https://gitlab.com/kicad/code/kicad/-/issues/14119
This commit is contained in:
parent
e2cc678231
commit
50fe585827
|
@ -144,21 +144,10 @@ int KiIconScale( wxWindow* aWindow )
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static int get_scale_factor( wxWindow* aWindow )
|
|
||||||
{
|
|
||||||
int requested_scale = Pgm().GetCommonSettings()->m_Appearance.icon_scale;
|
|
||||||
|
|
||||||
if( requested_scale > 0 )
|
|
||||||
return requested_scale;
|
|
||||||
else
|
|
||||||
return KiIconScale( aWindow );
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
wxBitmap KiScaledBitmap( BITMAPS aBitmap, wxWindow* aWindow, int aHeight, bool aQuantized )
|
wxBitmap KiScaledBitmap( BITMAPS aBitmap, wxWindow* aWindow, int aHeight, bool aQuantized )
|
||||||
{
|
{
|
||||||
// Bitmap conversions are cached because they can be slow.
|
// Bitmap conversions are cached because they can be slow.
|
||||||
int scale = get_scale_factor( aWindow );
|
int scale = KiIconScale( aWindow );
|
||||||
|
|
||||||
if( aQuantized )
|
if( aQuantized )
|
||||||
scale = KiROUND( (double) scale / 4.0 ) * 4;
|
scale = KiROUND( (double) scale / 4.0 ) * 4;
|
||||||
|
@ -189,7 +178,7 @@ void ClearScaledBitmapCache()
|
||||||
|
|
||||||
wxBitmap KiScaledBitmap( const wxBitmap& aBitmap, wxWindow* aWindow )
|
wxBitmap KiScaledBitmap( const wxBitmap& aBitmap, wxWindow* aWindow )
|
||||||
{
|
{
|
||||||
const int scale = get_scale_factor( aWindow );
|
const int scale = KiIconScale( aWindow );
|
||||||
|
|
||||||
if( scale == 4 )
|
if( scale == 4 )
|
||||||
{
|
{
|
||||||
|
|
|
@ -45,11 +45,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
PANEL_COMMON_SETTINGS::PANEL_COMMON_SETTINGS( wxWindow* aParent )
|
PANEL_COMMON_SETTINGS::PANEL_COMMON_SETTINGS( wxWindow* aParent )
|
||||||
: PANEL_COMMON_SETTINGS_BASE( aParent ),
|
: PANEL_COMMON_SETTINGS_BASE( aParent )
|
||||||
m_iconScaleLabel( nullptr ),
|
|
||||||
m_iconScaleSlider( nullptr ),
|
|
||||||
m_iconScaleAuto( nullptr ),
|
|
||||||
m_last_scale( -1 )
|
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
* Cairo canvas doesn't work on Mac, so no need for fallback anti-aliasing options
|
* Cairo canvas doesn't work on Mac, so no need for fallback anti-aliasing options
|
||||||
|
@ -72,31 +68,6 @@ PANEL_COMMON_SETTINGS::PANEL_COMMON_SETTINGS( wxWindow* aParent )
|
||||||
m_rbIconThemeAuto->Show( false );
|
m_rbIconThemeAuto->Show( false );
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/*
|
|
||||||
* Automatic icon scaling works fine on Mac. It works mostly fine on MSW, but perhaps not
|
|
||||||
* uniformly enough to exclude the explicit controls there.
|
|
||||||
*/
|
|
||||||
#if defined( __WXGTK__ ) || defined( __WXMSW__ )
|
|
||||||
// Sadly wxSlider is poorly implemented and adds its legends as sibling windows (so that
|
|
||||||
// showing/hiding the control doesn't work). So we have to create it conditionally.
|
|
||||||
wxGridBagSizer* gb = m_gbUserInterface;
|
|
||||||
|
|
||||||
const int row_num = 0;
|
|
||||||
m_iconScaleLabel = new wxStaticText( this, wxID_ANY, _( "Icon scale:" ) );
|
|
||||||
m_iconScaleLabel->Wrap( -1 );
|
|
||||||
gb->Add( m_iconScaleLabel, wxGBPosition( row_num, 0 ),
|
|
||||||
wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL, 5 );
|
|
||||||
|
|
||||||
m_iconScaleSlider = new STEPPED_SLIDER( this, wxID_ANY, 100, 50, 275, wxDefaultPosition,
|
|
||||||
wxDefaultSize, wxSL_HORIZONTAL|wxSL_VALUE_LABEL );
|
|
||||||
m_iconScaleSlider->SetStep( 25 );
|
|
||||||
gb->Add( m_iconScaleSlider, wxGBPosition( row_num, 1 ), wxGBSpan( 1, 1 ), wxEXPAND|wxBOTTOM, 5 );
|
|
||||||
|
|
||||||
m_iconScaleAuto = new wxCheckBox( this, wxID_ANY, _( "Automatic" ) );
|
|
||||||
gb->Add( m_iconScaleAuto, wxGBPosition( row_num, 2 ),
|
|
||||||
wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxLEFT, 15 );
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Automatic canvas scaling works fine on all supported platforms, so manual scaling is disabled
|
* Automatic canvas scaling works fine on all supported platforms, so manual scaling is disabled
|
||||||
*/
|
*/
|
||||||
|
@ -141,40 +112,6 @@ PANEL_COMMON_SETTINGS::PANEL_COMMON_SETTINGS( wxWindow* aParent )
|
||||||
m_scaleFonts->Show( false );
|
m_scaleFonts->Show( false );
|
||||||
m_fontScalingHelp->Show( false );
|
m_fontScalingHelp->Show( false );
|
||||||
|
|
||||||
if( m_iconScaleSlider )
|
|
||||||
{
|
|
||||||
m_iconScaleSlider->Connect( wxEVT_SCROLL_TOP,
|
|
||||||
wxScrollEventHandler( PANEL_COMMON_SETTINGS::OnScaleSlider ),
|
|
||||||
nullptr, this );
|
|
||||||
m_iconScaleSlider->Connect( wxEVT_SCROLL_BOTTOM,
|
|
||||||
wxScrollEventHandler( PANEL_COMMON_SETTINGS::OnScaleSlider ),
|
|
||||||
nullptr, this );
|
|
||||||
m_iconScaleSlider->Connect( wxEVT_SCROLL_LINEUP,
|
|
||||||
wxScrollEventHandler( PANEL_COMMON_SETTINGS::OnScaleSlider ),
|
|
||||||
nullptr, this );
|
|
||||||
m_iconScaleSlider->Connect( wxEVT_SCROLL_LINEDOWN,
|
|
||||||
wxScrollEventHandler( PANEL_COMMON_SETTINGS::OnScaleSlider ),
|
|
||||||
nullptr, this );
|
|
||||||
m_iconScaleSlider->Connect( wxEVT_SCROLL_PAGEUP,
|
|
||||||
wxScrollEventHandler( PANEL_COMMON_SETTINGS::OnScaleSlider ),
|
|
||||||
nullptr, this );
|
|
||||||
m_iconScaleSlider->Connect( wxEVT_SCROLL_PAGEDOWN,
|
|
||||||
wxScrollEventHandler( PANEL_COMMON_SETTINGS::OnScaleSlider ),
|
|
||||||
nullptr, this );
|
|
||||||
m_iconScaleSlider->Connect( wxEVT_SCROLL_THUMBTRACK,
|
|
||||||
wxScrollEventHandler( PANEL_COMMON_SETTINGS::OnScaleSlider ),
|
|
||||||
nullptr, this );
|
|
||||||
m_iconScaleSlider->Connect( wxEVT_SCROLL_THUMBRELEASE,
|
|
||||||
wxScrollEventHandler( PANEL_COMMON_SETTINGS::OnScaleSlider ),
|
|
||||||
nullptr, this );
|
|
||||||
m_iconScaleSlider->Connect( wxEVT_SCROLL_CHANGED,
|
|
||||||
wxScrollEventHandler( PANEL_COMMON_SETTINGS::OnScaleSlider ),
|
|
||||||
nullptr, this );
|
|
||||||
m_iconScaleAuto->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED,
|
|
||||||
wxCommandEventHandler( PANEL_COMMON_SETTINGS::OnIconScaleAuto ),
|
|
||||||
nullptr, this );
|
|
||||||
}
|
|
||||||
|
|
||||||
if( m_canvasScaleCtrl )
|
if( m_canvasScaleCtrl )
|
||||||
{
|
{
|
||||||
m_canvasScaleCtrl->Connect( wxEVT_COMMAND_TEXT_UPDATED,
|
m_canvasScaleCtrl->Connect( wxEVT_COMMAND_TEXT_UPDATED,
|
||||||
|
@ -191,40 +128,6 @@ PANEL_COMMON_SETTINGS::PANEL_COMMON_SETTINGS( wxWindow* aParent )
|
||||||
|
|
||||||
PANEL_COMMON_SETTINGS::~PANEL_COMMON_SETTINGS()
|
PANEL_COMMON_SETTINGS::~PANEL_COMMON_SETTINGS()
|
||||||
{
|
{
|
||||||
if( m_iconScaleSlider )
|
|
||||||
{
|
|
||||||
m_iconScaleSlider->Disconnect( wxEVT_SCROLL_TOP,
|
|
||||||
wxScrollEventHandler( PANEL_COMMON_SETTINGS::OnScaleSlider ),
|
|
||||||
nullptr, this );
|
|
||||||
m_iconScaleSlider->Disconnect( wxEVT_SCROLL_BOTTOM,
|
|
||||||
wxScrollEventHandler( PANEL_COMMON_SETTINGS::OnScaleSlider ),
|
|
||||||
nullptr, this );
|
|
||||||
m_iconScaleSlider->Disconnect( wxEVT_SCROLL_LINEUP,
|
|
||||||
wxScrollEventHandler( PANEL_COMMON_SETTINGS::OnScaleSlider ),
|
|
||||||
nullptr, this );
|
|
||||||
m_iconScaleSlider->Disconnect( wxEVT_SCROLL_LINEDOWN,
|
|
||||||
wxScrollEventHandler( PANEL_COMMON_SETTINGS::OnScaleSlider ),
|
|
||||||
nullptr, this );
|
|
||||||
m_iconScaleSlider->Disconnect( wxEVT_SCROLL_PAGEUP,
|
|
||||||
wxScrollEventHandler( PANEL_COMMON_SETTINGS::OnScaleSlider ),
|
|
||||||
nullptr, this );
|
|
||||||
m_iconScaleSlider->Disconnect( wxEVT_SCROLL_PAGEDOWN,
|
|
||||||
wxScrollEventHandler( PANEL_COMMON_SETTINGS::OnScaleSlider ),
|
|
||||||
nullptr, this );
|
|
||||||
m_iconScaleSlider->Disconnect( wxEVT_SCROLL_THUMBTRACK,
|
|
||||||
wxScrollEventHandler( PANEL_COMMON_SETTINGS::OnScaleSlider ),
|
|
||||||
nullptr, this );
|
|
||||||
m_iconScaleSlider->Disconnect( wxEVT_SCROLL_THUMBRELEASE,
|
|
||||||
wxScrollEventHandler( PANEL_COMMON_SETTINGS::OnScaleSlider ),
|
|
||||||
nullptr, this );
|
|
||||||
m_iconScaleSlider->Disconnect( wxEVT_SCROLL_CHANGED,
|
|
||||||
wxScrollEventHandler( PANEL_COMMON_SETTINGS::OnScaleSlider ),
|
|
||||||
nullptr, this );
|
|
||||||
m_iconScaleAuto->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED,
|
|
||||||
wxCommandEventHandler( PANEL_COMMON_SETTINGS::OnIconScaleAuto ),
|
|
||||||
nullptr, this );
|
|
||||||
}
|
|
||||||
|
|
||||||
if( m_canvasScaleCtrl )
|
if( m_canvasScaleCtrl )
|
||||||
{
|
{
|
||||||
m_canvasScaleCtrl->Disconnect( wxEVT_COMMAND_TEXT_UPDATED,
|
m_canvasScaleCtrl->Disconnect( wxEVT_COMMAND_TEXT_UPDATED,
|
||||||
|
@ -262,12 +165,6 @@ bool PANEL_COMMON_SETTINGS::TransferDataFromWindow()
|
||||||
commonSettings->m_Graphics.opengl_aa_mode = m_antialiasing->GetSelection();
|
commonSettings->m_Graphics.opengl_aa_mode = m_antialiasing->GetSelection();
|
||||||
commonSettings->m_Graphics.cairo_aa_mode = m_antialiasingFallback->GetSelection();
|
commonSettings->m_Graphics.cairo_aa_mode = m_antialiasingFallback->GetSelection();
|
||||||
|
|
||||||
if( m_iconScaleSlider )
|
|
||||||
{
|
|
||||||
int scale_fourths = m_iconScaleAuto->GetValue() ? -1 : m_iconScaleSlider->GetValue() / 25;
|
|
||||||
commonSettings->m_Appearance.icon_scale = scale_fourths;
|
|
||||||
}
|
|
||||||
|
|
||||||
if( m_canvasScaleCtrl )
|
if( m_canvasScaleCtrl )
|
||||||
{
|
{
|
||||||
DPI_SCALING_COMMON dpi( commonSettings, this );
|
DPI_SCALING_COMMON dpi( commonSettings, this );
|
||||||
|
@ -348,22 +245,6 @@ void PANEL_COMMON_SETTINGS::applySettingsToPanel( COMMON_SETTINGS& aSettings )
|
||||||
|
|
||||||
m_Clear3DCacheFilesOlder->SetValue( aSettings.m_System.clear_3d_cache_interval );
|
m_Clear3DCacheFilesOlder->SetValue( aSettings.m_System.clear_3d_cache_interval );
|
||||||
|
|
||||||
if( m_iconScaleSlider )
|
|
||||||
{
|
|
||||||
int icon_scale_fourths = aSettings.m_Appearance.icon_scale;
|
|
||||||
|
|
||||||
if( icon_scale_fourths <= 0 )
|
|
||||||
{
|
|
||||||
m_iconScaleAuto->SetValue( true );
|
|
||||||
m_iconScaleSlider->SetValue( 25 * KiIconScale( GetParent() ) );
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
m_iconScaleAuto->SetValue( false );
|
|
||||||
m_iconScaleSlider->SetValue( icon_scale_fourths * 25 );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if( m_canvasScaleCtrl )
|
if( m_canvasScaleCtrl )
|
||||||
{
|
{
|
||||||
const DPI_SCALING_COMMON dpi( &aSettings, this );
|
const DPI_SCALING_COMMON dpi( &aSettings, this );
|
||||||
|
@ -402,31 +283,6 @@ void PANEL_COMMON_SETTINGS::applySettingsToPanel( COMMON_SETTINGS& aSettings )
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void PANEL_COMMON_SETTINGS::OnScaleSlider( wxScrollEvent& aEvent )
|
|
||||||
{
|
|
||||||
m_iconScaleAuto->SetValue( false );
|
|
||||||
aEvent.Skip();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void PANEL_COMMON_SETTINGS::OnIconScaleAuto( wxCommandEvent& aEvent )
|
|
||||||
{
|
|
||||||
if( m_iconScaleSlider )
|
|
||||||
{
|
|
||||||
if( m_iconScaleAuto->GetValue() )
|
|
||||||
{
|
|
||||||
m_last_scale = m_iconScaleAuto->GetValue();
|
|
||||||
m_iconScaleSlider->SetValue( 25 * KiIconScale( GetParent() ) );
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if( m_last_scale >= 0 )
|
|
||||||
m_iconScaleSlider->SetValue( m_last_scale );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void PANEL_COMMON_SETTINGS::OnCanvasScaleChange( wxCommandEvent& aEvent )
|
void PANEL_COMMON_SETTINGS::OnCanvasScaleChange( wxCommandEvent& aEvent )
|
||||||
{
|
{
|
||||||
m_canvasScaleAuto->SetValue( false );
|
m_canvasScaleAuto->SetValue( false );
|
||||||
|
|
|
@ -71,17 +71,6 @@ COMMON_SETTINGS::COMMON_SETTINGS() :
|
||||||
m_Appearance.icon_theme = ICON_THEME::AUTO;
|
m_Appearance.icon_theme = ICON_THEME::AUTO;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/*
|
|
||||||
* Automatic icon scaling works fine on Mac. It works mostly fine on MSW, but perhaps not
|
|
||||||
* uniformly enough to exclude the explicit controls there.
|
|
||||||
*/
|
|
||||||
#if defined( __WXGTK__ ) || defined( __WXMSW__ )
|
|
||||||
m_params.emplace_back( new PARAM<int>( "appearance.icon_scale",
|
|
||||||
&m_Appearance.icon_scale, 0 ) );
|
|
||||||
#else
|
|
||||||
m_Appearance.icon_scale = 0.0;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Automatic canvas scaling works fine on all supported platforms, so it's no longer exposed as
|
* Automatic canvas scaling works fine on all supported platforms, so it's no longer exposed as
|
||||||
* a configuration option.
|
* a configuration option.
|
||||||
|
|
|
@ -248,10 +248,7 @@ void ACTION_TOOLBAR::AddButton( const TOOL_ACTION& aAction )
|
||||||
|
|
||||||
void ACTION_TOOLBAR::AddScaledSeparator( wxWindow* aWindow )
|
void ACTION_TOOLBAR::AddScaledSeparator( wxWindow* aWindow )
|
||||||
{
|
{
|
||||||
int scale = Pgm().GetCommonSettings()->m_Appearance.icon_scale;
|
int scale = KiIconScale( aWindow );
|
||||||
|
|
||||||
if( scale == 0 )
|
|
||||||
scale = KiIconScale( aWindow );
|
|
||||||
|
|
||||||
if( scale > 4 )
|
if( scale > 4 )
|
||||||
AddSpacer( 16 * ( scale - 4 ) / 4 );
|
AddSpacer( 16 * ( scale - 4 ) / 4 );
|
||||||
|
|
|
@ -109,16 +109,7 @@ wxFont getGUIFont( wxWindow* aWindow, int aRelativeSize )
|
||||||
font.SetPointSize( font.GetPointSize() + aRelativeSize );
|
font.SetPointSize( font.GetPointSize() + aRelativeSize );
|
||||||
|
|
||||||
if( Pgm().GetCommonSettings()->m_Appearance.apply_icon_scale_to_fonts )
|
if( Pgm().GetCommonSettings()->m_Appearance.apply_icon_scale_to_fonts )
|
||||||
{
|
font.SetPointSize( KiROUND( KiIconScale( aWindow ) * font.GetPointSize() / 4.0 ) );
|
||||||
double icon_scale_fourths;
|
|
||||||
|
|
||||||
if( Pgm().GetCommonSettings()->m_Appearance.icon_scale <= 0 )
|
|
||||||
icon_scale_fourths = KiIconScale( aWindow );
|
|
||||||
else
|
|
||||||
icon_scale_fourths = Pgm().GetCommonSettings()->m_Appearance.icon_scale;
|
|
||||||
|
|
||||||
font.SetPointSize( KiROUND( icon_scale_fourths * font.GetPointSize() / 4.0 ) );
|
|
||||||
}
|
|
||||||
|
|
||||||
#ifdef __WXMAC__
|
#ifdef __WXMAC__
|
||||||
// https://trac.wxwidgets.org/ticket/19210
|
// https://trac.wxwidgets.org/ticket/19210
|
||||||
|
|
|
@ -46,8 +46,6 @@ protected:
|
||||||
|
|
||||||
void applySettingsToPanel( COMMON_SETTINGS& aSettings );
|
void applySettingsToPanel( COMMON_SETTINGS& aSettings );
|
||||||
|
|
||||||
void OnScaleSlider( wxScrollEvent& aEvent );
|
|
||||||
void OnIconScaleAuto( wxCommandEvent& aEvent );
|
|
||||||
void OnTextEditorClick( wxCommandEvent& event ) override;
|
void OnTextEditorClick( wxCommandEvent& event ) override;
|
||||||
void OnPDFViewerClick( wxCommandEvent& event ) override;
|
void OnPDFViewerClick( wxCommandEvent& event ) override;
|
||||||
void OnRadioButtonPdfViewer( wxCommandEvent& event ) override;
|
void OnRadioButtonPdfViewer( wxCommandEvent& event ) override;
|
||||||
|
@ -64,13 +62,6 @@ protected:
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void setPdfViewerPathState();
|
void setPdfViewerPathState();
|
||||||
|
|
||||||
protected:
|
|
||||||
wxStaticText* m_iconScaleLabel;
|
|
||||||
STEPPED_SLIDER* m_iconScaleSlider;
|
|
||||||
wxCheckBox* m_iconScaleAuto;
|
|
||||||
|
|
||||||
int m_last_scale; ///< saved icon scale when Auto selected
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif //KICAD_DIALOG_SUITE_OPTIONS_H
|
#endif //KICAD_DIALOG_SUITE_OPTIONS_H
|
||||||
|
|
|
@ -51,7 +51,6 @@ public:
|
||||||
{
|
{
|
||||||
bool show_scrollbars;
|
bool show_scrollbars;
|
||||||
double canvas_scale;
|
double canvas_scale;
|
||||||
int icon_scale;
|
|
||||||
ICON_THEME icon_theme;
|
ICON_THEME icon_theme;
|
||||||
bool use_icons_in_menus;
|
bool use_icons_in_menus;
|
||||||
bool apply_icon_scale_to_fonts;
|
bool apply_icon_scale_to_fonts;
|
||||||
|
|
|
@ -103,7 +103,7 @@ void PCB_EDIT_FRAME::PrepareLayerIndicator( bool aForceRebuild )
|
||||||
COLOR4D top_color, bottom_color, background_color;
|
COLOR4D top_color, bottom_color, background_color;
|
||||||
bool change = aForceRebuild;
|
bool change = aForceRebuild;
|
||||||
|
|
||||||
int requested_scale = Pgm().GetCommonSettings()->m_Appearance.icon_scale;
|
int requested_scale = KiIconScale( this );
|
||||||
|
|
||||||
if( m_prevIconVal.previous_requested_scale != requested_scale )
|
if( m_prevIconVal.previous_requested_scale != requested_scale )
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue