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 OnRadioButtonPdfViewer (wxCommandEvent &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
 

Private Member Functions

void setPdfViewerPathState ()
 

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 all supported platforms, so manual scaling is disabled
99  */
100  if( ADVANCED_CFG::GetCfg().m_AllowManualCanvasScale )
101  {
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  }
127  else
128  {
129  m_staticTextCanvasScale->Show( false );
130  m_canvasScaleCtrl->Show( false );
131  m_canvasScaleCtrl = nullptr;
132  m_canvasScaleAuto->Show( false );
133  }
134 
135  /*
136  * Font scaling hacks are only needed on GTK under wxWidgets 3.0.
137  */
138 #if defined( __WXGTK__ ) && !wxCHECK_VERSION( 3, 1, 0 )
139  m_fontScalingHelp->SetFont( KIUI::GetInfoFont( this ).Italic() );
140 #else
141  m_scaleFonts->Show( false );
142  m_fontScalingHelp->Show( false );
143 #endif
144 
145  if( m_iconScaleSlider )
146  {
147  m_iconScaleSlider->Connect( wxEVT_SCROLL_TOP,
148  wxScrollEventHandler( PANEL_COMMON_SETTINGS::OnScaleSlider ),
149  nullptr, this );
150  m_iconScaleSlider->Connect( wxEVT_SCROLL_BOTTOM,
151  wxScrollEventHandler( PANEL_COMMON_SETTINGS::OnScaleSlider ),
152  nullptr, this );
153  m_iconScaleSlider->Connect( wxEVT_SCROLL_LINEUP,
154  wxScrollEventHandler( PANEL_COMMON_SETTINGS::OnScaleSlider ),
155  nullptr, this );
156  m_iconScaleSlider->Connect( wxEVT_SCROLL_LINEDOWN,
157  wxScrollEventHandler( PANEL_COMMON_SETTINGS::OnScaleSlider ),
158  nullptr, this );
159  m_iconScaleSlider->Connect( wxEVT_SCROLL_PAGEUP,
160  wxScrollEventHandler( PANEL_COMMON_SETTINGS::OnScaleSlider ),
161  nullptr, this );
162  m_iconScaleSlider->Connect( wxEVT_SCROLL_PAGEDOWN,
163  wxScrollEventHandler( PANEL_COMMON_SETTINGS::OnScaleSlider ),
164  nullptr, this );
165  m_iconScaleSlider->Connect( wxEVT_SCROLL_THUMBTRACK,
166  wxScrollEventHandler( PANEL_COMMON_SETTINGS::OnScaleSlider ),
167  nullptr, this );
168  m_iconScaleSlider->Connect( wxEVT_SCROLL_THUMBRELEASE,
169  wxScrollEventHandler( PANEL_COMMON_SETTINGS::OnScaleSlider ),
170  nullptr, this );
171  m_iconScaleSlider->Connect( wxEVT_SCROLL_CHANGED,
172  wxScrollEventHandler( PANEL_COMMON_SETTINGS::OnScaleSlider ),
173  nullptr, this );
174  m_iconScaleAuto->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED,
175  wxCommandEventHandler( PANEL_COMMON_SETTINGS::OnIconScaleAuto ),
176  nullptr, this );
177  }
178 
179  if( m_canvasScaleCtrl )
180  {
181  m_canvasScaleCtrl->Connect( wxEVT_COMMAND_TEXT_UPDATED,
182  wxCommandEventHandler( PANEL_COMMON_SETTINGS::OnCanvasScaleChange ),
183  nullptr, this );
184  }
185 }
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.
static const ADVANCED_CFG & GetCfg()
Get the singleton instance's config, which is shared by all consumers.
void SetStep(int aSize)
Set the step size.
STEPPED_SLIDER * m_iconScaleSlider

References _, ADVANCED_CFG::GetCfg(), 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 188 of file panel_common_settings.cpp.

189 {
190  if( m_iconScaleSlider )
191  {
192  m_iconScaleSlider->Disconnect( wxEVT_SCROLL_TOP,
193  wxScrollEventHandler( PANEL_COMMON_SETTINGS::OnScaleSlider ),
194  nullptr, this );
195  m_iconScaleSlider->Disconnect( wxEVT_SCROLL_BOTTOM,
196  wxScrollEventHandler( PANEL_COMMON_SETTINGS::OnScaleSlider ),
197  nullptr, this );
198  m_iconScaleSlider->Disconnect( wxEVT_SCROLL_LINEUP,
199  wxScrollEventHandler( PANEL_COMMON_SETTINGS::OnScaleSlider ),
200  nullptr, this );
201  m_iconScaleSlider->Disconnect( wxEVT_SCROLL_LINEDOWN,
202  wxScrollEventHandler( PANEL_COMMON_SETTINGS::OnScaleSlider ),
203  nullptr, this );
204  m_iconScaleSlider->Disconnect( wxEVT_SCROLL_PAGEUP,
205  wxScrollEventHandler( PANEL_COMMON_SETTINGS::OnScaleSlider ),
206  nullptr, this );
207  m_iconScaleSlider->Disconnect( wxEVT_SCROLL_PAGEDOWN,
208  wxScrollEventHandler( PANEL_COMMON_SETTINGS::OnScaleSlider ),
209  nullptr, this );
210  m_iconScaleSlider->Disconnect( wxEVT_SCROLL_THUMBTRACK,
211  wxScrollEventHandler( PANEL_COMMON_SETTINGS::OnScaleSlider ),
212  nullptr, this );
213  m_iconScaleSlider->Disconnect( wxEVT_SCROLL_THUMBRELEASE,
214  wxScrollEventHandler( PANEL_COMMON_SETTINGS::OnScaleSlider ),
215  nullptr, this );
216  m_iconScaleSlider->Disconnect( wxEVT_SCROLL_CHANGED,
217  wxScrollEventHandler( PANEL_COMMON_SETTINGS::OnScaleSlider ),
218  nullptr, this );
219  m_iconScaleAuto->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED,
220  wxCommandEventHandler( PANEL_COMMON_SETTINGS::OnIconScaleAuto ),
221  nullptr, this );
222  }
223 
224  if( m_canvasScaleCtrl )
225  {
226  m_canvasScaleCtrl->Disconnect( wxEVT_COMMAND_TEXT_UPDATED,
227  wxCommandEventHandler( PANEL_COMMON_SETTINGS::OnCanvasScaleChange ),
228  nullptr, this );
229  }
230 }
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 324 of file panel_common_settings.cpp.

325 {
326  int timevalue = aSettings.m_System.autosave_interval;
327  wxString msg;
328 
329  msg << timevalue / 60;
330  m_SaveTime->SetValue( msg );
331 
332  m_fileHistorySize->SetValue( aSettings.m_System.file_history_size );
333 
334  m_antialiasing->SetSelection( aSettings.m_Graphics.opengl_aa_mode );
335  m_antialiasingFallback->SetSelection( aSettings.m_Graphics.cairo_aa_mode );
336 
338 
339  if( m_iconScaleSlider )
340  {
341  int icon_scale_fourths = aSettings.m_Appearance.icon_scale;
342 
343  if( icon_scale_fourths <= 0 )
344  {
345  m_iconScaleAuto->SetValue( true );
346  m_iconScaleSlider->SetValue( 25 * KiIconScale( GetParent() ) );
347  }
348  else
349  {
350  m_iconScaleAuto->SetValue( false );
351  m_iconScaleSlider->SetValue( icon_scale_fourths * 25 );
352  }
353  }
354 
355  if( m_canvasScaleCtrl )
356  {
357  const DPI_SCALING dpi( &aSettings, this );
358  m_canvasScaleCtrl->SetValue( dpi.GetScaleFactor() );
359  m_canvasScaleAuto->SetValue( dpi.GetCanvasIsAutoScaled() );
360  }
361 
362  switch( aSettings.m_Appearance.icon_theme )
363  {
364  case ICON_THEME::LIGHT: m_rbIconThemeLight->SetValue( true ); break;
365  case ICON_THEME::DARK: m_rbIconThemeDark->SetValue( true ); break;
366  case ICON_THEME::AUTO: m_rbIconThemeAuto->SetValue( true ); break;
367  }
368 
370  m_scaleFonts->SetValue( aSettings.m_Appearance.apply_icon_scale_to_fonts );
371 
372  m_warpMouseOnMove->SetValue( aSettings.m_Input.warp_mouse_on_move );
373  m_NonImmediateActions->SetValue( !aSettings.m_Input.immediate_actions );
374 
375  m_cbRememberOpenFiles->SetValue( aSettings.m_Session.remember_open_files );
376 
377  m_cbBackupEnabled->SetValue( aSettings.m_Backup.enabled );
378  m_cbBackupAutosave->SetValue( aSettings.m_Backup.backup_on_autosave );
379  m_backupLimitTotalFiles->SetValue( aSettings.m_Backup.limit_total_files );
380  m_backupLimitDailyFiles->SetValue( aSettings.m_Backup.limit_daily_files );
381  m_backupMinInterval->SetValue( aSettings.m_Backup.min_interval / 60 );
382  m_backupLimitTotalSize->SetValue( aSettings.m_Backup.limit_total_size / ( 1024 * 1024 ) );
383 }
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 417 of file panel_common_settings.cpp.

418 {
419  const bool automatic = m_canvasScaleAuto->GetValue();
420 
421  if( automatic && m_canvasScaleCtrl )
422  {
423  // set the scale to the auto value, without consulting the config
424  DPI_SCALING dpi( nullptr, this );
425 
426  // update the field (no events sent)
427  m_canvasScaleCtrl->SetValue( dpi.GetScaleFactor() );
428  }
429 }
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 411 of file panel_common_settings.cpp.

412 {
413  m_canvasScaleAuto->SetValue( false );
414 }

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 393 of file panel_common_settings.cpp.

394 {
395  if( m_iconScaleSlider )
396  {
397  if( m_iconScaleAuto->GetValue() )
398  {
399  m_last_scale = m_iconScaleAuto->GetValue();
400  m_iconScaleSlider->SetValue( 25 * KiIconScale( GetParent() ) );
401  }
402  else
403  {
404  if( m_last_scale >= 0 )
405  m_iconScaleSlider->SetValue( m_last_scale );
406  }
407  }
408 }
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 445 of file panel_common_settings.cpp.

446 {
447  wxString mask( wxT( "*" ) );
448 
449 #ifdef __WINDOWS__
450  mask += wxT( ".exe" );
451 #endif
452 
453  wxString wildcard = _( "Executable files (" ) + mask + wxT( ")|" ) + mask;
454 
455  Pgm().ReadPdfBrowserInfos();
456  wxFileName fn = Pgm().GetPdfBrowserName();
457 
458  wxFileDialog dlg( this, _( "Select Preferred PDF Viewer" ), fn.GetPath(), fn.GetFullPath(),
459  wildcard, wxFD_OPEN | wxFD_FILE_MUST_EXIST );
460 
461  if( dlg.ShowModal() == wxID_CANCEL )
462  return;
463 
464  m_otherPDFViewer->SetValue( true );
465  m_PDFViewerPath->SetValue( dlg.GetPath() );
466 }
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().

◆ OnRadioButtonPdfViewer()

void PANEL_COMMON_SETTINGS::OnRadioButtonPdfViewer ( wxCommandEvent &  event)
overrideprotectedvirtual

Reimplemented from PANEL_COMMON_SETTINGS_BASE.

Definition at line 469 of file panel_common_settings.cpp.

470 {
472 }

References setPdfViewerPathState().

◆ OnScaleSlider()

void PANEL_COMMON_SETTINGS::OnScaleSlider ( wxScrollEvent &  aEvent)
protected

Definition at line 386 of file panel_common_settings.cpp.

387 {
388  m_iconScaleAuto->SetValue( false );
389  aEvent.Skip();
390 }

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 432 of file panel_common_settings.cpp.

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

References PANEL_COMMON_SETTINGS_BASE::m_textEditorPath, and Pgm().

◆ ResetPanel()

void PANEL_COMMON_SETTINGS::ResetPanel ( )
overridevirtual

Reset the contents of this panel.

Implements RESETTABLE_PANEL.

Definition at line 307 of file panel_common_settings.cpp.

308 {
309  COMMON_SETTINGS defaultSettings;
310 
311  defaultSettings.ResetToDefaults();
312 
313  applySettingsToPanel( defaultSettings );
314 
315  // TODO(JE) Move these into COMMON_SETTINGS probably
316  m_textEditorPath->SetValue( defaultSettings.m_System.text_editor );
317  m_defaultPDFViewer->SetValue( defaultSettings.m_System.use_system_pdf_viewer );
318  m_otherPDFViewer->SetValue( !defaultSettings.m_System.use_system_pdf_viewer );
319  m_PDFViewerPath->SetValue( defaultSettings.m_System.pdf_viewer_name );
321 }
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(), setPdfViewerPathState(), COMMON_SETTINGS::SYSTEM::text_editor, and COMMON_SETTINGS::SYSTEM::use_system_pdf_viewer.

◆ setPdfViewerPathState()

void PANEL_COMMON_SETTINGS::setPdfViewerPathState ( )
private

◆ TransferDataFromWindow()

bool PANEL_COMMON_SETTINGS::TransferDataFromWindow ( )
overrideprotected

Definition at line 250 of file panel_common_settings.cpp.

251 {
252  COMMON_SETTINGS* commonSettings = Pgm().GetCommonSettings();
253 
254  commonSettings->m_System.autosave_interval = m_SaveTime->GetValue() * 60;
255  commonSettings->m_System.file_history_size = m_fileHistorySize->GetValue();
256  commonSettings->m_System.clear_3d_cache_interval = m_Clear3DCacheFilesOlder->GetValue();
257 
258  commonSettings->m_Graphics.opengl_aa_mode = m_antialiasing->GetSelection();
259  commonSettings->m_Graphics.cairo_aa_mode = m_antialiasingFallback->GetSelection();
260 
261  if( m_iconScaleSlider )
262  {
263  int scale_fourths = m_iconScaleAuto->GetValue() ? -1 : m_iconScaleSlider->GetValue() / 25;
264  commonSettings->m_Appearance.icon_scale = scale_fourths;
265  }
266 
267  if( m_canvasScaleCtrl )
268  {
269  DPI_SCALING dpi( commonSettings, this );
270  dpi.SetDpiConfig( m_canvasScaleAuto->GetValue(), m_canvasScaleCtrl->GetValue() );
271  }
272 
273  if( m_rbIconThemeLight->GetValue() )
274  commonSettings->m_Appearance.icon_theme = ICON_THEME::LIGHT;
275  else if( m_rbIconThemeDark->GetValue() )
276  commonSettings->m_Appearance.icon_theme = ICON_THEME::DARK;
277  else if( m_rbIconThemeAuto->GetValue() )
278  commonSettings->m_Appearance.icon_theme = ICON_THEME::AUTO;
279 
280  commonSettings->m_Appearance.use_icons_in_menus = m_checkBoxIconsInMenus->GetValue();
281  commonSettings->m_Appearance.apply_icon_scale_to_fonts = m_scaleFonts->GetValue();
282 
283  commonSettings->m_Input.immediate_actions = !m_NonImmediateActions->GetValue();
284  commonSettings->m_Input.warp_mouse_on_move = m_warpMouseOnMove->GetValue();
285 
286  commonSettings->m_Backup.enabled = m_cbBackupEnabled->GetValue();
287  commonSettings->m_Backup.backup_on_autosave = m_cbBackupAutosave->GetValue();
288  commonSettings->m_Backup.limit_total_files = m_backupLimitTotalFiles->GetValue();
289  commonSettings->m_Backup.limit_daily_files = m_backupLimitDailyFiles->GetValue();
290  commonSettings->m_Backup.min_interval = m_backupMinInterval->GetValue() * 60;
291  commonSettings->m_Backup.limit_total_size = m_backupLimitTotalSize->GetValue() * 1024 * 1024;
292 
293  commonSettings->m_Session.remember_open_files = m_cbRememberOpenFiles->GetValue();
294 
295  Pgm().SetTextEditor( m_textEditorPath->GetValue());
296 
297  Pgm().SetPdfBrowserName( m_PDFViewerPath->GetValue() );
298  Pgm().ForceSystemPdfBrowser( m_defaultPDFViewer->GetValue() );
299  Pgm().WritePdfBrowserInfos();
300 
301  Pgm().GetSettingsManager().Save( commonSettings );
302 
303  return true;
304 }
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 233 of file panel_common_settings.cpp.

234 {
235  COMMON_SETTINGS* commonSettings = Pgm().GetCommonSettings();
236 
237  applySettingsToPanel( *commonSettings );
238 
239  // TODO(JE) Move these into COMMON_SETTINGS probably
240  m_textEditorPath->SetValue( Pgm().GetTextEditor( false ) );
241  m_defaultPDFViewer->SetValue( Pgm().UseSystemPdfBrowser() );
242  m_otherPDFViewer->SetValue( !Pgm().UseSystemPdfBrowser() );
243  m_PDFViewerPath->SetValue( Pgm().GetPdfBrowserName() );
245 
246  return true;
247 }
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, Pgm(), and setPdfViewerPathState().

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 69 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 71 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 75 of file panel_common_settings.h.

Referenced by OnIconScaleAuto().

◆ m_NonImmediateActions

wxCheckBox* PANEL_COMMON_SETTINGS_BASE::m_NonImmediateActions
protectedinherited

◆ m_otherPDFViewer

◆ m_pdfViewerBtn

wxBitmapButton* PANEL_COMMON_SETTINGS_BASE::m_pdfViewerBtn
protectedinherited

◆ m_PDFViewerPath

wxTextCtrl* PANEL_COMMON_SETTINGS_BASE::m_PDFViewerPath
protectedinherited

◆ 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: