KiCad PCB EDA Suite
PANEL_COMMON_SETTINGS Class Reference

#include <panel_common_settings.h>

Inheritance diagram for PANEL_COMMON_SETTINGS:
PANEL_COMMON_SETTINGS_BASE RESETTABLE_PANEL

Public Member Functions

 PANEL_COMMON_SETTINGS (DIALOG_SHIM *aDialog, wxWindow *aParent)
 
 ~PANEL_COMMON_SETTINGS () override
 
void ResetPanel () override
 Reset the contents of this panel. More...
 
virtual wxString GetResetTooltip ()
 Get the tooltip the reset button should display when showing this panel. More...
 

Protected Member Functions

bool TransferDataFromWindow () override
 
bool TransferDataToWindow () override
 
void applySettingsToPanel (COMMON_SETTINGS &aSettings)
 
void OnScaleSlider (wxScrollEvent &aEvent)
 
void OnIconScaleAuto (wxCommandEvent &aEvent)
 
void OnTextEditorClick (wxCommandEvent &event) override
 
void OnPDFViewerClick (wxCommandEvent &event) override
 
void onUpdateUIPdfPath (wxUpdateUIEvent &event) override
 
void OnCanvasScaleChange (wxCommandEvent &aEvent)
 Event fired when the canvas scale field is modified. More...
 
void OnCanvasScaleAuto (wxCommandEvent &aEvent) override
 Event fired when the canvas auto-scale option is changed. More...
 

Protected Attributes

DIALOG_SHIMm_dialog
 
wxStaticText * m_iconScaleLabel
 
STEPPED_SLIDERm_iconScaleSlider
 
wxCheckBox * m_iconScaleAuto
 
int m_last_scale
 saved icon scale when Auto selected More...
 
wxChoice * m_antialiasing
 
wxStaticText * m_antialiasingFallbackLabel
 
wxChoice * m_antialiasingFallback
 
wxTextCtrl * m_textEditorPath
 
wxBitmapButton * m_textEditorBtn
 
wxRadioButton * m_defaultPDFViewer
 
wxRadioButton * m_otherPDFViewer
 
wxTextCtrl * m_PDFViewerPath
 
wxBitmapButton * m_pdfViewerBtn
 
wxStaticBoxSizer * m_sbUserInterface
 
wxGridBagSizer * m_gbUserInterface
 
wxCheckBox * m_checkBoxIconsInMenus
 
wxStaticText * m_stIconTheme
 
wxRadioButton * m_rbIconThemeLight
 
wxRadioButton * m_rbIconThemeDark
 
wxRadioButton * m_rbIconThemeAuto
 
wxStaticText * m_staticTextCanvasScale
 
wxSpinCtrlDouble * m_canvasScaleCtrl
 
wxCheckBox * m_canvasScaleAuto
 
wxCheckBox * m_scaleFonts
 
wxStaticText * m_fontScalingHelp
 
wxCheckBox * m_warpMouseOnMove
 
wxCheckBox * m_NonImmediateActions
 
wxCheckBox * m_cbRememberOpenFiles
 
wxStaticText * m_staticTextautosave
 
wxSpinCtrl * m_SaveTime
 
wxStaticText * m_staticTextFileHistorySize
 
wxSpinCtrl * m_fileHistorySize
 
wxStaticText * m_staticTextClear3DCache
 
wxSpinCtrl * m_Clear3DCacheFilesOlder
 
wxStaticText * m_staticTextDays
 
wxCheckBox * m_cbBackupEnabled
 
wxCheckBox * m_cbBackupAutosave
 
wxStaticText * m_staticText9
 
wxSpinCtrl * m_backupLimitTotalFiles
 
wxStaticText * m_staticText10
 
wxSpinCtrl * m_backupLimitDailyFiles
 
wxStaticText * m_staticText11
 
wxSpinCtrl * m_backupMinInterval
 
wxStaticText * m_staticText15
 
wxStaticText * m_staticText16
 
wxSpinCtrl * m_backupLimitTotalSize
 
wxStaticText * m_staticText17
 

Detailed Description

Definition at line 35 of file panel_common_settings.h.

Constructor & Destructor Documentation

◆ PANEL_COMMON_SETTINGS()

PANEL_COMMON_SETTINGS::PANEL_COMMON_SETTINGS ( DIALOG_SHIM aDialog,
wxWindow *  aParent 
)

Definition at line 45 of file panel_common_settings.cpp.

46  : PANEL_COMMON_SETTINGS_BASE( aParent ),
47  m_dialog( aDialog ),
48  m_iconScaleLabel( nullptr ),
49  m_iconScaleSlider( nullptr ),
50  m_iconScaleAuto( nullptr ),
51  m_last_scale( -1 )
52 {
53  /*
54  * Cairo canvas doesn't work on Mac, so no need for fallback anti-aliasing options
55  */
56 #ifdef __WXMAC__
57  m_antialiasingFallback->Show( false );
58  m_antialiasingFallbackLabel->Show( false );
59 #endif
60 
63 
64  /*
65  * Automatic dark mode detection works fine on Mac, so no need for the explicit options.
66  */
67 #ifdef __WXMAC__
68  m_stIconTheme->Show( false );
69  m_rbIconThemeLight->Show( false );
70  m_rbIconThemeDark->Show( false );
71  m_rbIconThemeAuto->Show( false );
72 #endif
73 
74  /*
75  * Automatic icon scaling works fine on Mac. It works mostly fine on MSW, but perhaps not
76  * uniformly enough to exclude the explicit controls there.
77  */
78 #if defined( __WXGTK__ ) || defined( __WXMSW__ )
79  // Sadly wxSlider is poorly implemented and adds its legends as sibiling windows (so that
80  // showing/hiding the control doesn't work). So we have to create it conditionally.
81  wxWindow* parent = m_sbUserInterface->GetStaticBox();
82  wxGridBagSizer* gb = m_gbUserInterface;
83 
84  m_iconScaleLabel = new wxStaticText( parent, wxID_ANY, _( "Icon scale:" ) );
85  m_iconScaleLabel->Wrap( -1 );
86  gb->Add( m_iconScaleLabel, wxGBPosition( 2, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL, 5 );
87 
88  m_iconScaleSlider = new STEPPED_SLIDER( parent, wxID_ANY, 100, 50, 275, wxDefaultPosition,
89  wxDefaultSize, wxSL_HORIZONTAL|wxSL_VALUE_LABEL );
91  gb->Add( m_iconScaleSlider, wxGBPosition( 2, 1 ), wxGBSpan( 1, 2 ), wxEXPAND|wxBOTTOM, 5 );
92 
93  m_iconScaleAuto = new wxCheckBox( parent, wxID_ANY, _( "Automatic" ) );
94  gb->Add( m_iconScaleAuto, wxGBPosition( 2, 3 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxLEFT, 15 );
95 #endif
96 
97  /*
98  * Automatic canvas scaling works fine on Mac and MSW, and on GTK under wxWidgets 3.1 or
99  * better.
100  */
101 #if defined( __WXGTK__ ) && !wxCHECK_VERSION( 3, 1, 0 )
102  static constexpr int dpi_scaling_precision = 1;
103  static constexpr double dpi_scaling_increment = 0.5;
104 
107  m_canvasScaleCtrl->SetDigits( dpi_scaling_precision );
108  m_canvasScaleCtrl->SetIncrement( dpi_scaling_increment );
110 
111  m_canvasScaleCtrl->SetToolTip(
112  _( "Set the scale for the canvas."
113  "\n\n"
114  "On high-DPI displays on some platforms, KiCad cannot determine the "
115  "scaling factor. In this case you may need to set this to a value to "
116  "match your system's DPI scaling. 2.0 is a common value. "
117  "\n\n"
118  "If this does not match the system DPI scaling, the canvas will "
119  "not match the window size and cursor position." ) );
120 
121  m_canvasScaleAuto->SetToolTip(
122  _( "Use an automatic value for the canvas scale."
123  "\n\n"
124  "On some platforms, the automatic value is incorrect and should be "
125  "set manually." ) );
126 #else
127  m_staticTextCanvasScale->Show( false );
128  m_canvasScaleCtrl->Show( false );
129  m_canvasScaleCtrl = nullptr;
130  m_canvasScaleAuto->Show( false );
131 #endif
132 
133  /*
134  * Font scaling hacks are only needed on GTK under wxWidgets 3.0.
135  */
136 #if defined( __WXGTK__ ) && !wxCHECK_VERSION( 3, 1, 0 )
137  m_fontScalingHelp->SetFont( KIUI::GetInfoFont( this ).Italic() );
138 #else
139  m_scaleFonts->Show( false );
140  m_fontScalingHelp->Show( false );
141 #endif
142 
143  if( m_iconScaleSlider )
144  {
145  m_iconScaleSlider->Connect( wxEVT_SCROLL_TOP,
146  wxScrollEventHandler( PANEL_COMMON_SETTINGS::OnScaleSlider ),
147  nullptr, this );
148  m_iconScaleSlider->Connect( wxEVT_SCROLL_BOTTOM,
149  wxScrollEventHandler( PANEL_COMMON_SETTINGS::OnScaleSlider ),
150  nullptr, this );
151  m_iconScaleSlider->Connect( wxEVT_SCROLL_LINEUP,
152  wxScrollEventHandler( PANEL_COMMON_SETTINGS::OnScaleSlider ),
153  nullptr, this );
154  m_iconScaleSlider->Connect( wxEVT_SCROLL_LINEDOWN,
155  wxScrollEventHandler( PANEL_COMMON_SETTINGS::OnScaleSlider ),
156  nullptr, this );
157  m_iconScaleSlider->Connect( wxEVT_SCROLL_PAGEUP,
158  wxScrollEventHandler( PANEL_COMMON_SETTINGS::OnScaleSlider ),
159  nullptr, this );
160  m_iconScaleSlider->Connect( wxEVT_SCROLL_PAGEDOWN,
161  wxScrollEventHandler( PANEL_COMMON_SETTINGS::OnScaleSlider ),
162  nullptr, this );
163  m_iconScaleSlider->Connect( wxEVT_SCROLL_THUMBTRACK,
164  wxScrollEventHandler( PANEL_COMMON_SETTINGS::OnScaleSlider ),
165  nullptr, this );
166  m_iconScaleSlider->Connect( wxEVT_SCROLL_THUMBRELEASE,
167  wxScrollEventHandler( PANEL_COMMON_SETTINGS::OnScaleSlider ),
168  nullptr, this );
169  m_iconScaleSlider->Connect( wxEVT_SCROLL_CHANGED,
170  wxScrollEventHandler( PANEL_COMMON_SETTINGS::OnScaleSlider ),
171  nullptr, this );
172  m_iconScaleAuto->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED,
173  wxCommandEventHandler( PANEL_COMMON_SETTINGS::OnIconScaleAuto ),
174  nullptr, this );
175  }
176 
177  if( m_canvasScaleCtrl )
178  {
179  m_canvasScaleCtrl->Connect( wxEVT_COMMAND_TEXT_UPDATED,
180  wxCommandEventHandler( PANEL_COMMON_SETTINGS::OnCanvasScaleChange ),
181  nullptr, this );
182  }
183 }
void OnScaleSlider(wxScrollEvent &aEvent)
void OnCanvasScaleChange(wxCommandEvent &aEvent)
Event fired when the canvas scale field is modified.
wxFont GetInfoFont(wxWindow *aWindow)
Definition: ui_common.cpp:144
static double GetDefaultScaleFactor()
Get the "default" scaling factor to use if not other config is available.
PANEL_COMMON_SETTINGS_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)
static double GetMaxScaleFactor()
static double GetMinScaleFactor()
#define _(s)
void OnIconScaleAuto(wxCommandEvent &aEvent)
wxBitmap KiBitmap(BITMAPS aBitmap, int aHeightTag)
Construct a wxBitmap from an image identifier Returns the image from the active theme if the image ha...
Definition: bitmap.cpp:105
int m_last_scale
saved icon scale when Auto selected
Customized wxSlider with forced stepping.
void SetStep(int aSize)
Set the step size.
STEPPED_SLIDER * m_iconScaleSlider

References _, DPI_SCALING::GetDefaultScaleFactor(), KIUI::GetInfoFont(), DPI_SCALING::GetMaxScaleFactor(), DPI_SCALING::GetMinScaleFactor(), KiBitmap(), PANEL_COMMON_SETTINGS_BASE::m_antialiasingFallback, PANEL_COMMON_SETTINGS_BASE::m_antialiasingFallbackLabel, PANEL_COMMON_SETTINGS_BASE::m_canvasScaleAuto, PANEL_COMMON_SETTINGS_BASE::m_canvasScaleCtrl, PANEL_COMMON_SETTINGS_BASE::m_fontScalingHelp, PANEL_COMMON_SETTINGS_BASE::m_gbUserInterface, m_iconScaleAuto, m_iconScaleLabel, m_iconScaleSlider, PANEL_COMMON_SETTINGS_BASE::m_pdfViewerBtn, PANEL_COMMON_SETTINGS_BASE::m_rbIconThemeAuto, PANEL_COMMON_SETTINGS_BASE::m_rbIconThemeDark, PANEL_COMMON_SETTINGS_BASE::m_rbIconThemeLight, PANEL_COMMON_SETTINGS_BASE::m_sbUserInterface, PANEL_COMMON_SETTINGS_BASE::m_scaleFonts, PANEL_COMMON_SETTINGS_BASE::m_staticTextCanvasScale, PANEL_COMMON_SETTINGS_BASE::m_stIconTheme, PANEL_COMMON_SETTINGS_BASE::m_textEditorBtn, OnCanvasScaleChange(), OnIconScaleAuto(), OnScaleSlider(), STEPPED_SLIDER::SetStep(), and small_folder.

◆ ~PANEL_COMMON_SETTINGS()

PANEL_COMMON_SETTINGS::~PANEL_COMMON_SETTINGS ( )
override

Definition at line 186 of file panel_common_settings.cpp.

187 {
188  if( m_iconScaleSlider )
189  {
190  m_iconScaleSlider->Disconnect( wxEVT_SCROLL_TOP,
191  wxScrollEventHandler( PANEL_COMMON_SETTINGS::OnScaleSlider ),
192  nullptr, this );
193  m_iconScaleSlider->Disconnect( wxEVT_SCROLL_BOTTOM,
194  wxScrollEventHandler( PANEL_COMMON_SETTINGS::OnScaleSlider ),
195  nullptr, this );
196  m_iconScaleSlider->Disconnect( wxEVT_SCROLL_LINEUP,
197  wxScrollEventHandler( PANEL_COMMON_SETTINGS::OnScaleSlider ),
198  nullptr, this );
199  m_iconScaleSlider->Disconnect( wxEVT_SCROLL_LINEDOWN,
200  wxScrollEventHandler( PANEL_COMMON_SETTINGS::OnScaleSlider ),
201  nullptr, this );
202  m_iconScaleSlider->Disconnect( wxEVT_SCROLL_PAGEUP,
203  wxScrollEventHandler( PANEL_COMMON_SETTINGS::OnScaleSlider ),
204  nullptr, this );
205  m_iconScaleSlider->Disconnect( wxEVT_SCROLL_PAGEDOWN,
206  wxScrollEventHandler( PANEL_COMMON_SETTINGS::OnScaleSlider ),
207  nullptr, this );
208  m_iconScaleSlider->Disconnect( wxEVT_SCROLL_THUMBTRACK,
209  wxScrollEventHandler( PANEL_COMMON_SETTINGS::OnScaleSlider ),
210  nullptr, this );
211  m_iconScaleSlider->Disconnect( wxEVT_SCROLL_THUMBRELEASE,
212  wxScrollEventHandler( PANEL_COMMON_SETTINGS::OnScaleSlider ),
213  nullptr, this );
214  m_iconScaleSlider->Disconnect( wxEVT_SCROLL_CHANGED,
215  wxScrollEventHandler( PANEL_COMMON_SETTINGS::OnScaleSlider ),
216  nullptr, this );
217  m_iconScaleAuto->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED,
218  wxCommandEventHandler( PANEL_COMMON_SETTINGS::OnIconScaleAuto ),
219  nullptr, this );
220  }
221 
222  if( m_canvasScaleCtrl )
223  {
224  m_canvasScaleCtrl->Disconnect( wxEVT_COMMAND_TEXT_UPDATED,
225  wxCommandEventHandler( PANEL_COMMON_SETTINGS::OnCanvasScaleChange ),
226  nullptr, this );
227  }
228 }
void OnScaleSlider(wxScrollEvent &aEvent)
void OnCanvasScaleChange(wxCommandEvent &aEvent)
Event fired when the canvas scale field is modified.
void OnIconScaleAuto(wxCommandEvent &aEvent)
STEPPED_SLIDER * m_iconScaleSlider

References PANEL_COMMON_SETTINGS_BASE::m_canvasScaleCtrl, m_iconScaleAuto, m_iconScaleSlider, OnCanvasScaleChange(), OnIconScaleAuto(), and OnScaleSlider().

Member Function Documentation

◆ applySettingsToPanel()

void PANEL_COMMON_SETTINGS::applySettingsToPanel ( COMMON_SETTINGS aSettings)
protected

Definition at line 320 of file panel_common_settings.cpp.

321 {
322  int timevalue = aSettings.m_System.autosave_interval;
323  wxString msg;
324 
325  msg << timevalue / 60;
326  m_SaveTime->SetValue( msg );
327 
328  m_fileHistorySize->SetValue( aSettings.m_System.file_history_size );
329 
330  m_antialiasing->SetSelection( aSettings.m_Graphics.opengl_aa_mode );
331  m_antialiasingFallback->SetSelection( aSettings.m_Graphics.cairo_aa_mode );
332 
334 
335  if( m_iconScaleSlider )
336  {
337  int icon_scale_fourths = aSettings.m_Appearance.icon_scale;
338 
339  if( icon_scale_fourths <= 0 )
340  {
341  m_iconScaleAuto->SetValue( true );
342  m_iconScaleSlider->SetValue( 25 * KiIconScale( GetParent() ) );
343  }
344  else
345  {
346  m_iconScaleAuto->SetValue( false );
347  m_iconScaleSlider->SetValue( icon_scale_fourths * 25 );
348  }
349  }
350 
351  if( m_canvasScaleCtrl )
352  {
353  const DPI_SCALING dpi( &aSettings, this );
354  m_canvasScaleCtrl->SetValue( dpi.GetScaleFactor() );
355  m_canvasScaleAuto->SetValue( dpi.GetCanvasIsAutoScaled() );
356  }
357 
358  switch( aSettings.m_Appearance.icon_theme )
359  {
360  case ICON_THEME::LIGHT: m_rbIconThemeLight->SetValue( true ); break;
361  case ICON_THEME::DARK: m_rbIconThemeDark->SetValue( true ); break;
362  case ICON_THEME::AUTO: m_rbIconThemeAuto->SetValue( true ); break;
363  }
364 
366  m_scaleFonts->SetValue( aSettings.m_Appearance.apply_icon_scale_to_fonts );
367 
368  m_warpMouseOnMove->SetValue( aSettings.m_Input.warp_mouse_on_move );
369  m_NonImmediateActions->SetValue( !aSettings.m_Input.immediate_actions );
370 
371  m_cbRememberOpenFiles->SetValue( aSettings.m_Session.remember_open_files );
372 
373  m_cbBackupEnabled->SetValue( aSettings.m_Backup.enabled );
374  m_cbBackupAutosave->SetValue( aSettings.m_Backup.backup_on_autosave );
375  m_backupLimitTotalFiles->SetValue( aSettings.m_Backup.limit_total_files );
376  m_backupLimitDailyFiles->SetValue( aSettings.m_Backup.limit_daily_files );
377  m_backupMinInterval->SetValue( aSettings.m_Backup.min_interval / 60 );
378  m_backupLimitTotalSize->SetValue( aSettings.m_Backup.limit_total_size / ( 1024 * 1024 ) );
379 }
unsigned long long limit_total_size
Maximum total size of backups (bytes), 0 for unlimited.
int KiIconScale(wxWindow *aWindow)
Return the automatic scale factor that would be used for a given window by KiScaledBitmap and KiScale...
Definition: bitmap.cpp:122
bool enabled
Automatically back up the project when files are saved.
AUTO_BACKUP m_Backup
APPEARANCE m_Appearance
Class to handle configuration and automatic determination of the DPI scale to use for canvases.
Definition: dpi_scaling.h:36
int min_interval
Minimum time, in seconds, between subsequent backups.
bool backup_on_autosave
Trigger a backup on autosave.
int limit_daily_files
Maximum files to keep per day, 0 for unlimited.
STEPPED_SLIDER * m_iconScaleSlider
int limit_total_files
Maximum number of backup archives to retain.

References COMMON_SETTINGS::APPEARANCE::apply_icon_scale_to_fonts, AUTO, COMMON_SETTINGS::SYSTEM::autosave_interval, COMMON_SETTINGS::AUTO_BACKUP::backup_on_autosave, COMMON_SETTINGS::GRAPHICS::cairo_aa_mode, COMMON_SETTINGS::SYSTEM::clear_3d_cache_interval, DARK, COMMON_SETTINGS::AUTO_BACKUP::enabled, COMMON_SETTINGS::SYSTEM::file_history_size, DPI_SCALING::GetCanvasIsAutoScaled(), DPI_SCALING::GetScaleFactor(), COMMON_SETTINGS::APPEARANCE::icon_scale, COMMON_SETTINGS::APPEARANCE::icon_theme, COMMON_SETTINGS::INPUT::immediate_actions, KiIconScale(), LIGHT, COMMON_SETTINGS::AUTO_BACKUP::limit_daily_files, COMMON_SETTINGS::AUTO_BACKUP::limit_total_files, COMMON_SETTINGS::AUTO_BACKUP::limit_total_size, PANEL_COMMON_SETTINGS_BASE::m_antialiasing, PANEL_COMMON_SETTINGS_BASE::m_antialiasingFallback, COMMON_SETTINGS::m_Appearance, COMMON_SETTINGS::m_Backup, PANEL_COMMON_SETTINGS_BASE::m_backupLimitDailyFiles, PANEL_COMMON_SETTINGS_BASE::m_backupLimitTotalFiles, PANEL_COMMON_SETTINGS_BASE::m_backupLimitTotalSize, PANEL_COMMON_SETTINGS_BASE::m_backupMinInterval, PANEL_COMMON_SETTINGS_BASE::m_canvasScaleAuto, PANEL_COMMON_SETTINGS_BASE::m_canvasScaleCtrl, PANEL_COMMON_SETTINGS_BASE::m_cbBackupAutosave, PANEL_COMMON_SETTINGS_BASE::m_cbBackupEnabled, PANEL_COMMON_SETTINGS_BASE::m_cbRememberOpenFiles, PANEL_COMMON_SETTINGS_BASE::m_checkBoxIconsInMenus, PANEL_COMMON_SETTINGS_BASE::m_Clear3DCacheFilesOlder, PANEL_COMMON_SETTINGS_BASE::m_fileHistorySize, COMMON_SETTINGS::m_Graphics, m_iconScaleAuto, m_iconScaleSlider, COMMON_SETTINGS::m_Input, PANEL_COMMON_SETTINGS_BASE::m_NonImmediateActions, PANEL_COMMON_SETTINGS_BASE::m_rbIconThemeAuto, PANEL_COMMON_SETTINGS_BASE::m_rbIconThemeDark, PANEL_COMMON_SETTINGS_BASE::m_rbIconThemeLight, PANEL_COMMON_SETTINGS_BASE::m_SaveTime, PANEL_COMMON_SETTINGS_BASE::m_scaleFonts, COMMON_SETTINGS::m_Session, COMMON_SETTINGS::m_System, PANEL_COMMON_SETTINGS_BASE::m_warpMouseOnMove, COMMON_SETTINGS::AUTO_BACKUP::min_interval, COMMON_SETTINGS::GRAPHICS::opengl_aa_mode, COMMON_SETTINGS::SESSION::remember_open_files, COMMON_SETTINGS::APPEARANCE::use_icons_in_menus, and COMMON_SETTINGS::INPUT::warp_mouse_on_move.

Referenced by ResetPanel(), and TransferDataToWindow().

◆ GetResetTooltip()

virtual wxString RESETTABLE_PANEL::GetResetTooltip ( )
inlinevirtualinherited

Get the tooltip the reset button should display when showing this panel.

Returns
the tooltip

Reimplemented in PANEL_HOTKEYS_EDITOR, and PANEL_COLOR_SETTINGS.

Definition at line 52 of file resettable_panel.h.

53  {
54  return _( "Reset all settings on this page to their default" );
55  }
#define _(s)

References _.

◆ OnCanvasScaleAuto()

void PANEL_COMMON_SETTINGS::OnCanvasScaleAuto ( wxCommandEvent &  aEvent)
overrideprotectedvirtual

Event fired when the canvas auto-scale option is changed.

Reimplemented from PANEL_COMMON_SETTINGS_BASE.

Definition at line 413 of file panel_common_settings.cpp.

414 {
415  const bool automatic = m_canvasScaleAuto->GetValue();
416 
417  if( automatic && m_canvasScaleCtrl )
418  {
419  // set the scale to the auto value, without consulting the config
420  DPI_SCALING dpi( nullptr, this );
421 
422  // update the field (no events sent)
423  m_canvasScaleCtrl->SetValue( dpi.GetScaleFactor() );
424  }
425 }
Class to handle configuration and automatic determination of the DPI scale to use for canvases.
Definition: dpi_scaling.h:36

References DPI_SCALING::GetScaleFactor(), PANEL_COMMON_SETTINGS_BASE::m_canvasScaleAuto, and PANEL_COMMON_SETTINGS_BASE::m_canvasScaleCtrl.

◆ OnCanvasScaleChange()

void PANEL_COMMON_SETTINGS::OnCanvasScaleChange ( wxCommandEvent &  aEvent)
protected

Event fired when the canvas scale field is modified.

Definition at line 407 of file panel_common_settings.cpp.

408 {
409  m_canvasScaleAuto->SetValue( false );
410 }

References PANEL_COMMON_SETTINGS_BASE::m_canvasScaleAuto.

Referenced by PANEL_COMMON_SETTINGS(), and ~PANEL_COMMON_SETTINGS().

◆ OnIconScaleAuto()

void PANEL_COMMON_SETTINGS::OnIconScaleAuto ( wxCommandEvent &  aEvent)
protected

Definition at line 389 of file panel_common_settings.cpp.

390 {
391  if( m_iconScaleSlider )
392  {
393  if( m_iconScaleAuto->GetValue() )
394  {
395  m_last_scale = m_iconScaleAuto->GetValue();
396  m_iconScaleSlider->SetValue( 25 * KiIconScale( GetParent() ) );
397  }
398  else
399  {
400  if( m_last_scale >= 0 )
401  m_iconScaleSlider->SetValue( m_last_scale );
402  }
403  }
404 }
int KiIconScale(wxWindow *aWindow)
Return the automatic scale factor that would be used for a given window by KiScaledBitmap and KiScale...
Definition: bitmap.cpp:122
int m_last_scale
saved icon scale when Auto selected
STEPPED_SLIDER * m_iconScaleSlider

References KiIconScale(), m_iconScaleAuto, m_iconScaleSlider, and m_last_scale.

Referenced by PANEL_COMMON_SETTINGS(), and ~PANEL_COMMON_SETTINGS().

◆ OnPDFViewerClick()

void PANEL_COMMON_SETTINGS::OnPDFViewerClick ( wxCommandEvent &  event)
overrideprotectedvirtual

Reimplemented from PANEL_COMMON_SETTINGS_BASE.

Definition at line 441 of file panel_common_settings.cpp.

442 {
443  wxString mask( wxT( "*" ) );
444 
445 #ifdef __WINDOWS__
446  mask += wxT( ".exe" );
447 #endif
448 
449  wxString wildcard = _( "Executable files (" ) + mask + wxT( ")|" ) + mask;
450 
451  Pgm().ReadPdfBrowserInfos();
452  wxFileName fn = Pgm().GetPdfBrowserName();
453 
454  wxFileDialog dlg( this, _( "Select Preferred PDF Viewer" ), fn.GetPath(), fn.GetFullPath(),
455  wildcard, wxFD_OPEN | wxFD_FILE_MUST_EXIST );
456 
457  if( dlg.ShowModal() == wxID_CANCEL )
458  return;
459 
460  m_otherPDFViewer->SetValue( true );
461  m_PDFViewerPath->SetValue( dlg.GetPath() );
462 }
KIWAY Kiway & Pgm(), KFCTL_STANDALONE
The global Program "get" accessor.
Definition: single_top.cpp:106
#define _(s)

References _, PANEL_COMMON_SETTINGS_BASE::m_otherPDFViewer, PANEL_COMMON_SETTINGS_BASE::m_PDFViewerPath, and Pgm().

◆ OnScaleSlider()

void PANEL_COMMON_SETTINGS::OnScaleSlider ( wxScrollEvent &  aEvent)
protected

Definition at line 382 of file panel_common_settings.cpp.

383 {
384  m_iconScaleAuto->SetValue( false );
385  aEvent.Skip();
386 }

References m_iconScaleAuto.

Referenced by PANEL_COMMON_SETTINGS(), and ~PANEL_COMMON_SETTINGS().

◆ OnTextEditorClick()

void PANEL_COMMON_SETTINGS::OnTextEditorClick ( wxCommandEvent &  event)
overrideprotectedvirtual

Reimplemented from PANEL_COMMON_SETTINGS_BASE.

Definition at line 428 of file panel_common_settings.cpp.

429 {
430  // Ask the user to select a new editor, but suggest the current one as the default.
431  wxString editorname = Pgm().AskUserForPreferredEditor( m_textEditorPath->GetValue() );
432 
433  // If we have a new editor name request it to be copied to m_text_editor and saved
434  // to the preferences file. If the user cancelled the dialog then the previous
435  // value will be retained.
436  if( !editorname.IsEmpty() )
437  m_textEditorPath->SetValue( editorname );
438 }
KIWAY Kiway & Pgm(), KFCTL_STANDALONE
The global Program "get" accessor.
Definition: single_top.cpp:106

References PANEL_COMMON_SETTINGS_BASE::m_textEditorPath, and Pgm().

◆ onUpdateUIPdfPath()

void PANEL_COMMON_SETTINGS::onUpdateUIPdfPath ( wxUpdateUIEvent &  event)
overrideprotectedvirtual

Reimplemented from PANEL_COMMON_SETTINGS_BASE.

Definition at line 465 of file panel_common_settings.cpp.

466 {
467  // Used by both the m_pdfViewerBtn and m_PDFViewerPath
468  event.Enable( m_otherPDFViewer->GetValue() );
469 }

References PANEL_COMMON_SETTINGS_BASE::m_otherPDFViewer.

◆ ResetPanel()

void PANEL_COMMON_SETTINGS::ResetPanel ( )
overridevirtual

Reset the contents of this panel.

Implements RESETTABLE_PANEL.

Definition at line 304 of file panel_common_settings.cpp.

305 {
306  COMMON_SETTINGS defaultSettings;
307 
308  defaultSettings.ResetToDefaults();
309 
310  applySettingsToPanel( defaultSettings );
311 
312  // TODO(JE) Move these into COMMON_SETTINGS probably
313  m_textEditorPath->SetValue( defaultSettings.m_System.text_editor );
314  m_defaultPDFViewer->SetValue( defaultSettings.m_System.use_system_pdf_viewer );
315  m_otherPDFViewer->SetValue( !defaultSettings.m_System.use_system_pdf_viewer );
316  m_PDFViewerPath->SetValue( defaultSettings.m_System.pdf_viewer_name );
317 }
void ResetToDefaults()
Resets all parameters to default values.
void applySettingsToPanel(COMMON_SETTINGS &aSettings)

References applySettingsToPanel(), PANEL_COMMON_SETTINGS_BASE::m_defaultPDFViewer, PANEL_COMMON_SETTINGS_BASE::m_otherPDFViewer, PANEL_COMMON_SETTINGS_BASE::m_PDFViewerPath, COMMON_SETTINGS::m_System, PANEL_COMMON_SETTINGS_BASE::m_textEditorPath, COMMON_SETTINGS::SYSTEM::pdf_viewer_name, JSON_SETTINGS::ResetToDefaults(), COMMON_SETTINGS::SYSTEM::text_editor, and COMMON_SETTINGS::SYSTEM::use_system_pdf_viewer.

◆ TransferDataFromWindow()

bool PANEL_COMMON_SETTINGS::TransferDataFromWindow ( )
overrideprotected

Definition at line 247 of file panel_common_settings.cpp.

248 {
249  COMMON_SETTINGS* commonSettings = Pgm().GetCommonSettings();
250 
251  commonSettings->m_System.autosave_interval = m_SaveTime->GetValue() * 60;
252  commonSettings->m_System.file_history_size = m_fileHistorySize->GetValue();
253  commonSettings->m_System.clear_3d_cache_interval = m_Clear3DCacheFilesOlder->GetValue();
254 
255  commonSettings->m_Graphics.opengl_aa_mode = m_antialiasing->GetSelection();
256  commonSettings->m_Graphics.cairo_aa_mode = m_antialiasingFallback->GetSelection();
257 
258  if( m_iconScaleSlider )
259  {
260  int scale_fourths = m_iconScaleAuto->GetValue() ? -1 : m_iconScaleSlider->GetValue() / 25;
261  commonSettings->m_Appearance.icon_scale = scale_fourths;
262  }
263 
264  if( m_canvasScaleCtrl )
265  {
266  DPI_SCALING dpi( commonSettings, this );
267  dpi.SetDpiConfig( m_canvasScaleAuto->GetValue(), m_canvasScaleCtrl->GetValue() );
268  }
269 
270  if( m_rbIconThemeLight->GetValue() )
271  commonSettings->m_Appearance.icon_theme = ICON_THEME::LIGHT;
272  else if( m_rbIconThemeDark->GetValue() )
273  commonSettings->m_Appearance.icon_theme = ICON_THEME::DARK;
274  else if( m_rbIconThemeAuto->GetValue() )
275  commonSettings->m_Appearance.icon_theme = ICON_THEME::AUTO;
276 
277  commonSettings->m_Appearance.use_icons_in_menus = m_checkBoxIconsInMenus->GetValue();
278  commonSettings->m_Appearance.apply_icon_scale_to_fonts = m_scaleFonts->GetValue();
279 
280  commonSettings->m_Input.immediate_actions = !m_NonImmediateActions->GetValue();
281  commonSettings->m_Input.warp_mouse_on_move = m_warpMouseOnMove->GetValue();
282 
283  commonSettings->m_Backup.enabled = m_cbBackupEnabled->GetValue();
284  commonSettings->m_Backup.backup_on_autosave = m_cbBackupAutosave->GetValue();
285  commonSettings->m_Backup.limit_total_files = m_backupLimitTotalFiles->GetValue();
286  commonSettings->m_Backup.limit_daily_files = m_backupLimitDailyFiles->GetValue();
287  commonSettings->m_Backup.min_interval = m_backupMinInterval->GetValue() * 60;
288  commonSettings->m_Backup.limit_total_size = m_backupLimitTotalSize->GetValue() * 1024 * 1024;
289 
290  commonSettings->m_Session.remember_open_files = m_cbRememberOpenFiles->GetValue();
291 
292  Pgm().SetTextEditor( m_textEditorPath->GetValue());
293 
294  Pgm().SetPdfBrowserName( m_PDFViewerPath->GetValue() );
295  Pgm().ForceSystemPdfBrowser( m_defaultPDFViewer->GetValue() );
296  Pgm().WritePdfBrowserInfos();
297 
298  Pgm().GetSettingsManager().Save( commonSettings );
299 
300  return true;
301 }
unsigned long long limit_total_size
Maximum total size of backups (bytes), 0 for unlimited.
bool enabled
Automatically back up the project when files are saved.
AUTO_BACKUP m_Backup
APPEARANCE m_Appearance
KIWAY Kiway & Pgm(), KFCTL_STANDALONE
The global Program "get" accessor.
Definition: single_top.cpp:106
Class to handle configuration and automatic determination of the DPI scale to use for canvases.
Definition: dpi_scaling.h:36
int min_interval
Minimum time, in seconds, between subsequent backups.
bool backup_on_autosave
Trigger a backup on autosave.
int limit_daily_files
Maximum files to keep per day, 0 for unlimited.
STEPPED_SLIDER * m_iconScaleSlider
int limit_total_files
Maximum number of backup archives to retain.

References COMMON_SETTINGS::APPEARANCE::apply_icon_scale_to_fonts, AUTO, COMMON_SETTINGS::SYSTEM::autosave_interval, COMMON_SETTINGS::AUTO_BACKUP::backup_on_autosave, COMMON_SETTINGS::GRAPHICS::cairo_aa_mode, COMMON_SETTINGS::SYSTEM::clear_3d_cache_interval, DARK, COMMON_SETTINGS::AUTO_BACKUP::enabled, COMMON_SETTINGS::SYSTEM::file_history_size, COMMON_SETTINGS::APPEARANCE::icon_scale, COMMON_SETTINGS::APPEARANCE::icon_theme, COMMON_SETTINGS::INPUT::immediate_actions, LIGHT, COMMON_SETTINGS::AUTO_BACKUP::limit_daily_files, COMMON_SETTINGS::AUTO_BACKUP::limit_total_files, COMMON_SETTINGS::AUTO_BACKUP::limit_total_size, PANEL_COMMON_SETTINGS_BASE::m_antialiasing, PANEL_COMMON_SETTINGS_BASE::m_antialiasingFallback, COMMON_SETTINGS::m_Appearance, COMMON_SETTINGS::m_Backup, PANEL_COMMON_SETTINGS_BASE::m_backupLimitDailyFiles, PANEL_COMMON_SETTINGS_BASE::m_backupLimitTotalFiles, PANEL_COMMON_SETTINGS_BASE::m_backupLimitTotalSize, PANEL_COMMON_SETTINGS_BASE::m_backupMinInterval, PANEL_COMMON_SETTINGS_BASE::m_canvasScaleAuto, PANEL_COMMON_SETTINGS_BASE::m_canvasScaleCtrl, PANEL_COMMON_SETTINGS_BASE::m_cbBackupAutosave, PANEL_COMMON_SETTINGS_BASE::m_cbBackupEnabled, PANEL_COMMON_SETTINGS_BASE::m_cbRememberOpenFiles, PANEL_COMMON_SETTINGS_BASE::m_checkBoxIconsInMenus, PANEL_COMMON_SETTINGS_BASE::m_Clear3DCacheFilesOlder, PANEL_COMMON_SETTINGS_BASE::m_defaultPDFViewer, PANEL_COMMON_SETTINGS_BASE::m_fileHistorySize, COMMON_SETTINGS::m_Graphics, m_iconScaleAuto, m_iconScaleSlider, COMMON_SETTINGS::m_Input, PANEL_COMMON_SETTINGS_BASE::m_NonImmediateActions, PANEL_COMMON_SETTINGS_BASE::m_PDFViewerPath, PANEL_COMMON_SETTINGS_BASE::m_rbIconThemeAuto, PANEL_COMMON_SETTINGS_BASE::m_rbIconThemeDark, PANEL_COMMON_SETTINGS_BASE::m_rbIconThemeLight, PANEL_COMMON_SETTINGS_BASE::m_SaveTime, PANEL_COMMON_SETTINGS_BASE::m_scaleFonts, COMMON_SETTINGS::m_Session, COMMON_SETTINGS::m_System, PANEL_COMMON_SETTINGS_BASE::m_textEditorPath, PANEL_COMMON_SETTINGS_BASE::m_warpMouseOnMove, COMMON_SETTINGS::AUTO_BACKUP::min_interval, COMMON_SETTINGS::GRAPHICS::opengl_aa_mode, Pgm(), COMMON_SETTINGS::SESSION::remember_open_files, DPI_SCALING::SetDpiConfig(), COMMON_SETTINGS::APPEARANCE::use_icons_in_menus, and COMMON_SETTINGS::INPUT::warp_mouse_on_move.

◆ TransferDataToWindow()

bool PANEL_COMMON_SETTINGS::TransferDataToWindow ( )
overrideprotected

Definition at line 231 of file panel_common_settings.cpp.

232 {
233  COMMON_SETTINGS* commonSettings = Pgm().GetCommonSettings();
234 
235  applySettingsToPanel( *commonSettings );
236 
237  // TODO(JE) Move these into COMMON_SETTINGS probably
238  m_textEditorPath->SetValue( Pgm().GetTextEditor( false ) );
239  m_defaultPDFViewer->SetValue( Pgm().UseSystemPdfBrowser() );
240  m_otherPDFViewer->SetValue( !Pgm().UseSystemPdfBrowser() );
241  m_PDFViewerPath->SetValue( Pgm().GetPdfBrowserName() );
242 
243  return true;
244 }
KIWAY Kiway & Pgm(), KFCTL_STANDALONE
The global Program "get" accessor.
Definition: single_top.cpp:106
void applySettingsToPanel(COMMON_SETTINGS &aSettings)

References applySettingsToPanel(), PANEL_COMMON_SETTINGS_BASE::m_defaultPDFViewer, PANEL_COMMON_SETTINGS_BASE::m_otherPDFViewer, PANEL_COMMON_SETTINGS_BASE::m_PDFViewerPath, PANEL_COMMON_SETTINGS_BASE::m_textEditorPath, and Pgm().

Member Data Documentation

◆ m_antialiasing

wxChoice* PANEL_COMMON_SETTINGS_BASE::m_antialiasing
protectedinherited

◆ m_antialiasingFallback

wxChoice* PANEL_COMMON_SETTINGS_BASE::m_antialiasingFallback
protectedinherited

◆ m_antialiasingFallbackLabel

wxStaticText* PANEL_COMMON_SETTINGS_BASE::m_antialiasingFallbackLabel
protectedinherited

◆ m_backupLimitDailyFiles

wxSpinCtrl* PANEL_COMMON_SETTINGS_BASE::m_backupLimitDailyFiles
protectedinherited

◆ m_backupLimitTotalFiles

wxSpinCtrl* PANEL_COMMON_SETTINGS_BASE::m_backupLimitTotalFiles
protectedinherited

◆ m_backupLimitTotalSize

wxSpinCtrl* PANEL_COMMON_SETTINGS_BASE::m_backupLimitTotalSize
protectedinherited

◆ m_backupMinInterval

wxSpinCtrl* PANEL_COMMON_SETTINGS_BASE::m_backupMinInterval
protectedinherited

◆ m_canvasScaleAuto

◆ m_canvasScaleCtrl

wxSpinCtrlDouble* PANEL_COMMON_SETTINGS_BASE::m_canvasScaleCtrl
protectedinherited

◆ m_cbBackupAutosave

wxCheckBox* PANEL_COMMON_SETTINGS_BASE::m_cbBackupAutosave
protectedinherited

◆ m_cbBackupEnabled

wxCheckBox* PANEL_COMMON_SETTINGS_BASE::m_cbBackupEnabled
protectedinherited

◆ m_cbRememberOpenFiles

wxCheckBox* PANEL_COMMON_SETTINGS_BASE::m_cbRememberOpenFiles
protectedinherited

◆ m_checkBoxIconsInMenus

wxCheckBox* PANEL_COMMON_SETTINGS_BASE::m_checkBoxIconsInMenus
protectedinherited

◆ m_Clear3DCacheFilesOlder

wxSpinCtrl* PANEL_COMMON_SETTINGS_BASE::m_Clear3DCacheFilesOlder
protectedinherited

◆ m_defaultPDFViewer

wxRadioButton* PANEL_COMMON_SETTINGS_BASE::m_defaultPDFViewer
protectedinherited

◆ m_dialog

DIALOG_SHIM* PANEL_COMMON_SETTINGS::m_dialog
protected

Definition at line 66 of file panel_common_settings.h.

◆ m_fileHistorySize

wxSpinCtrl* PANEL_COMMON_SETTINGS_BASE::m_fileHistorySize
protectedinherited

◆ m_fontScalingHelp

wxStaticText* PANEL_COMMON_SETTINGS_BASE::m_fontScalingHelp
protectedinherited

◆ m_gbUserInterface

wxGridBagSizer* PANEL_COMMON_SETTINGS_BASE::m_gbUserInterface
protectedinherited

◆ m_iconScaleAuto

wxCheckBox* PANEL_COMMON_SETTINGS::m_iconScaleAuto
protected

◆ m_iconScaleLabel

wxStaticText* PANEL_COMMON_SETTINGS::m_iconScaleLabel
protected

Definition at line 68 of file panel_common_settings.h.

Referenced by PANEL_COMMON_SETTINGS().

◆ m_iconScaleSlider

STEPPED_SLIDER* PANEL_COMMON_SETTINGS::m_iconScaleSlider
protected

◆ m_last_scale

int PANEL_COMMON_SETTINGS::m_last_scale
protected

saved icon scale when Auto selected

Definition at line 72 of file panel_common_settings.h.

Referenced by OnIconScaleAuto().

◆ m_NonImmediateActions

wxCheckBox* PANEL_COMMON_SETTINGS_BASE::m_NonImmediateActions
protectedinherited

◆ m_otherPDFViewer

wxRadioButton* PANEL_COMMON_SETTINGS_BASE::m_otherPDFViewer
protectedinherited

◆ m_pdfViewerBtn

wxBitmapButton* PANEL_COMMON_SETTINGS_BASE::m_pdfViewerBtn
protectedinherited

◆ m_PDFViewerPath

◆ m_rbIconThemeAuto

wxRadioButton* PANEL_COMMON_SETTINGS_BASE::m_rbIconThemeAuto
protectedinherited

◆ m_rbIconThemeDark

wxRadioButton* PANEL_COMMON_SETTINGS_BASE::m_rbIconThemeDark
protectedinherited

◆ m_rbIconThemeLight

wxRadioButton* PANEL_COMMON_SETTINGS_BASE::m_rbIconThemeLight
protectedinherited

◆ m_SaveTime

wxSpinCtrl* PANEL_COMMON_SETTINGS_BASE::m_SaveTime
protectedinherited

◆ m_sbUserInterface

wxStaticBoxSizer* PANEL_COMMON_SETTINGS_BASE::m_sbUserInterface
protectedinherited

◆ m_scaleFonts

wxCheckBox* PANEL_COMMON_SETTINGS_BASE::m_scaleFonts
protectedinherited

◆ m_staticText10

wxStaticText* PANEL_COMMON_SETTINGS_BASE::m_staticText10
protectedinherited

◆ m_staticText11

wxStaticText* PANEL_COMMON_SETTINGS_BASE::m_staticText11
protectedinherited

◆ m_staticText15

wxStaticText* PANEL_COMMON_SETTINGS_BASE::m_staticText15
protectedinherited

◆ m_staticText16

wxStaticText* PANEL_COMMON_SETTINGS_BASE::m_staticText16
protectedinherited

◆ m_staticText17

wxStaticText* PANEL_COMMON_SETTINGS_BASE::m_staticText17
protectedinherited

◆ m_staticText9

wxStaticText* PANEL_COMMON_SETTINGS_BASE::m_staticText9
protectedinherited

◆ m_staticTextautosave

wxStaticText* PANEL_COMMON_SETTINGS_BASE::m_staticTextautosave
protectedinherited

◆ m_staticTextCanvasScale

wxStaticText* PANEL_COMMON_SETTINGS_BASE::m_staticTextCanvasScale
protectedinherited

◆ m_staticTextClear3DCache

wxStaticText* PANEL_COMMON_SETTINGS_BASE::m_staticTextClear3DCache
protectedinherited

◆ m_staticTextDays

wxStaticText* PANEL_COMMON_SETTINGS_BASE::m_staticTextDays
protectedinherited

◆ m_staticTextFileHistorySize

wxStaticText* PANEL_COMMON_SETTINGS_BASE::m_staticTextFileHistorySize
protectedinherited

◆ m_stIconTheme

wxStaticText* PANEL_COMMON_SETTINGS_BASE::m_stIconTheme
protectedinherited

◆ m_textEditorBtn

wxBitmapButton* PANEL_COMMON_SETTINGS_BASE::m_textEditorBtn
protectedinherited

◆ m_textEditorPath

wxTextCtrl* PANEL_COMMON_SETTINGS_BASE::m_textEditorPath
protectedinherited

◆ m_warpMouseOnMove

wxCheckBox* PANEL_COMMON_SETTINGS_BASE::m_warpMouseOnMove
protectedinherited

The documentation for this class was generated from the following files: