2424 QComboBox ,
2525 QDialog ,
2626 QDialogButtonBox ,
27+ QDoubleSpinBox ,
2728 QFileDialog ,
2829 QGroupBox ,
2930 QHBoxLayout ,
@@ -386,6 +387,30 @@ def _visible_coordinate_rows(self, settings: dict[str, object] | None = None) ->
386387 return raw
387388 return 4
388389
390+ def _contour_title_fontsize (self , settings : dict [str , object ] | None = None ) -> float :
391+ """Return validated default contour title font size."""
392+ source = settings if settings is not None else self ._settings
393+ raw = source .get ("contour_title_fontsize" , 10.5 )
394+ if isinstance (raw , (int , float )) and float (raw ) > 0 :
395+ return float (raw )
396+ return 10.5
397+
398+ def _page_title_fontsize (self , settings : dict [str , object ] | None = None ) -> float :
399+ """Return validated default page title font size."""
400+ source = settings if settings is not None else self ._settings
401+ raw = source .get ("page_title_fontsize" , 10.0 )
402+ if isinstance (raw , (int , float )) and float (raw ) > 0 :
403+ return float (raw )
404+ return 10.0
405+
406+ def _annotation_fontsize (self , settings : dict [str , object ] | None = None ) -> float :
407+ """Return validated default annotation font size."""
408+ source = settings if settings is not None else self ._settings
409+ raw = source .get ("annotation_fontsize" , 8.0 )
410+ if isinstance (raw , (int , float )) and float (raw ) > 0 :
411+ return float (raw )
412+ return 8.0
413+
389414 @staticmethod
390415 def _timestamp_plot_filename () -> str :
391416 """Return default timestamp-based plot filename stem."""
@@ -466,6 +491,39 @@ def _show_settings_dialog(self) -> None:
466491 coord_rows_row .addStretch (1 )
467492 coord_rows_row .addWidget (coord_rows_spin )
468493
494+ contour_title_fontsize_row = QHBoxLayout ()
495+ contour_title_fontsize_label = QLabel ("Default contour title font size" )
496+ contour_title_fontsize_spin = QDoubleSpinBox ()
497+ contour_title_fontsize_spin .setRange (1.0 , 48.0 )
498+ contour_title_fontsize_spin .setDecimals (1 )
499+ contour_title_fontsize_spin .setSingleStep (0.5 )
500+ contour_title_fontsize_spin .setValue (self ._contour_title_fontsize ())
501+ contour_title_fontsize_row .addWidget (contour_title_fontsize_label )
502+ contour_title_fontsize_row .addStretch (1 )
503+ contour_title_fontsize_row .addWidget (contour_title_fontsize_spin )
504+
505+ page_title_fontsize_row = QHBoxLayout ()
506+ page_title_fontsize_label = QLabel ("Default page title font size" )
507+ page_title_fontsize_spin = QDoubleSpinBox ()
508+ page_title_fontsize_spin .setRange (1.0 , 48.0 )
509+ page_title_fontsize_spin .setDecimals (1 )
510+ page_title_fontsize_spin .setSingleStep (0.5 )
511+ page_title_fontsize_spin .setValue (self ._page_title_fontsize ())
512+ page_title_fontsize_row .addWidget (page_title_fontsize_label )
513+ page_title_fontsize_row .addStretch (1 )
514+ page_title_fontsize_row .addWidget (page_title_fontsize_spin )
515+
516+ annotation_fontsize_row = QHBoxLayout ()
517+ annotation_fontsize_label = QLabel ("Default annotation font size" )
518+ annotation_fontsize_spin = QDoubleSpinBox ()
519+ annotation_fontsize_spin .setRange (1.0 , 48.0 )
520+ annotation_fontsize_spin .setDecimals (1 )
521+ annotation_fontsize_spin .setSingleStep (0.5 )
522+ annotation_fontsize_spin .setValue (self ._annotation_fontsize ())
523+ annotation_fontsize_row .addWidget (annotation_fontsize_label )
524+ annotation_fontsize_row .addStretch (1 )
525+ annotation_fontsize_row .addWidget (annotation_fontsize_spin )
526+
469527 plot_filename_row = QHBoxLayout ()
470528 plot_filename_label = QLabel ("Default plot filename" )
471529 plot_filename_edit = QLineEdit (self ._plot_filename_template ())
@@ -537,6 +595,9 @@ def _choose_plot_dir() -> None:
537595 gui_defaults_layout .addLayout (recent_row )
538596 gui_defaults_layout .addLayout (field_rows_row )
539597 gui_defaults_layout .addLayout (coord_rows_row )
598+ gui_defaults_layout .addLayout (contour_title_fontsize_row )
599+ gui_defaults_layout .addLayout (page_title_fontsize_row )
600+ gui_defaults_layout .addLayout (annotation_fontsize_row )
540601
541602 output_frame = QGroupBox ("Output" )
542603 output_layout = QVBoxLayout (output_frame )
@@ -556,6 +617,9 @@ def _choose_plot_dir() -> None:
556617 self ._settings ["max_recent_files" ] = int (recent_spin .value ())
557618 self ._settings ["field_list_rows" ] = int (field_rows_spin .value ())
558619 self ._settings ["visible_coordinate_rows" ] = int (coord_rows_spin .value ())
620+ self ._settings ["contour_title_fontsize" ] = float (contour_title_fontsize_spin .value ())
621+ self ._settings ["page_title_fontsize" ] = float (page_title_fontsize_spin .value ())
622+ self ._settings ["annotation_fontsize" ] = float (annotation_fontsize_spin .value ())
559623 self ._settings ["default_plot_filename" ] = self ._sanitize_plot_filename_stem (
560624 plot_filename_edit .text ()
561625 )
0 commit comments