66from copy import deepcopy
77from dataclasses import dataclass , asdict
88from pyqtgraph .Qt import QtGui , QtCore , QtWidgets
9- from source .gui .settings import user_folder
9+ from source .gui .settings import user_folder , get_setting
1010from source .gui .utility import variable_constants , null_resize , cbox_set_item , cbox_update_options
1111
1212
@@ -487,8 +487,27 @@ def __init__(self, parent_controls_dialog):
487487 widget .setLayout (layout )
488488 variable_tabs .addTab (widget , tab )
489489
490+ # the leftover section (a tab with ...) will containt a notes widget and
491+ # any variables not used by the Custom Controls Dialog Editor
490492 leftover_widget = QtWidgets .QWidget ()
491493 leftover_layout = QtWidgets .QGridLayout ()
494+
495+ # notes section
496+ self .parent_controls_dialog = parent_controls_dialog
497+ notes_widget = QtWidgets .QWidget ()
498+ notes_layout = QtWidgets .QGridLayout ()
499+ self .notes_textbox = QtWidgets .QTextEdit ()
500+ self .notes_textbox .setFixedHeight (get_setting ("GUI" , "log_font_size" ) * 4 )
501+ self .notes_textbox .setFont (QtGui .QFont ("Courier New" , get_setting ("GUI" , "log_font_size" )))
502+ note_button = QtWidgets .QPushButton ("Add note" )
503+ note_button .setFocusPolicy (QtCore .Qt .FocusPolicy .NoFocus )
504+ note_button .clicked .connect (self .add_note )
505+ notes_layout .addWidget (self .notes_textbox , 0 , 0 , 1 , 3 )
506+ notes_layout .addWidget (note_button , 1 , 2 )
507+ notes_layout .setContentsMargins (0 , 0 , 0 , 10 )
508+ notes_widget .setLayout (notes_layout )
509+ leftover_layout .addWidget (notes_widget , 0 , 0 , 1 , 4 )
510+
492511 leftover_vars = sorted (list (set (variables ) - set (used_vars )), key = str .lower )
493512 leftover_vars = [
494513 v_name
@@ -498,19 +517,24 @@ def __init__(self, parent_controls_dialog):
498517 and not v_name .startswith ("hw_" )
499518 and v_name != "api_class"
500519 ]
501- if len (leftover_vars ) > 0 :
502- for row , var in enumerate ( leftover_vars ):
503- self .widget_dict [var ] = Text_var ( init_vars , var , var )
504- self .widget_dict [var ].setBoard ( parent_controls_dialog . parent_tab . board )
505- self . widget_dict [ var ]. add_to_grid ( leftover_layout , row + 1 )
506- leftover_layout .setAlignment (QtCore .Qt .AlignmentFlag .AlignTop )
507- leftover_widget .setLayout (leftover_layout )
508- variable_tabs .addTab (leftover_widget , "..." )
520+ for row , var in enumerate (leftover_vars ):
521+ self . widget_dict [ var ] = Text_var ( init_vars , var , var )
522+ self .widget_dict [var ]. setBoard ( parent_controls_dialog . parent_tab . board )
523+ self .widget_dict [var ].add_to_grid ( leftover_layout , row + 1 )
524+ leftover_layout . setRowStretch ( row + 2 , 1 )
525+ leftover_layout .setAlignment (QtCore .Qt .AlignmentFlag .AlignTop )
526+ leftover_widget .setLayout (leftover_layout )
527+ variable_tabs .addTab (leftover_widget , "..." )
509528
510529 grid_layout .addWidget (variable_tabs , 0 , 0 , QtCore .Qt .AlignmentFlag .AlignLeft )
511530 grid_layout .setAlignment (QtCore .Qt .AlignmentFlag .AlignTop )
512531 self .setLayout (grid_layout )
513532
533+ def add_note (self ):
534+ note_text = self .notes_textbox .toPlainText ()
535+ self .notes_textbox .clear ()
536+ self .parent_controls_dialog .parent_tab .board .data_logger .print_message (note_text , source = "u" )
537+
514538
515539# GUI editor dialog. ---------------------------------------------------------
516540
@@ -663,7 +687,7 @@ def add_tab(self, data=None, name=None):
663687 if name :
664688 tab_title = name
665689 else :
666- tab_title = f"tab-{ len (self .tables )+ 1 } "
690+ tab_title = f"tab-{ len (self .tables ) + 1 } "
667691 self .tables [tab_title ] = new_table
668692 self .tabs .addTab (new_table , tab_title )
669693 if len (self .tables ) < 2 :
0 commit comments