@@ -476,18 +476,20 @@ def get_value(self):
476476 return self .switch_value .get_active ()
477477
478478
479- class PluginSettingsDialog :
479+ @Gtk .Template (filename = SETTINGS_DIALOG_PLUGIN_GLADE )
480+ class PluginSettingsDialog (Gtk .Window ):
480481 """Builds a settings dialog based on the configuration of a plugin."""
481482
483+ __gtype_name__ = "PluginSettingsDialog"
484+
485+ box_settings = Gtk .Template .Child ()
486+
482487 def __init__ (self , parent , config ):
488+ super ().__init__ (transient_for = parent )
489+
483490 self .config = config
484491 self .property_controls = []
485492
486- builder = utility .create_gtk_builder (SETTINGS_DIALOG_PLUGIN_GLADE )
487- self .window = builder .get_object ("dialog_settings_plugin" )
488- self .window .set_transient_for (parent )
489- box_settings = builder .get_object ("box_settings" )
490- self .window .set_title (_ ("Plugin Settings" ))
491493 for setting in config .get ("settings" ):
492494 if setting ["type" ].upper () == "INT" :
493495 box = IntItem (
@@ -508,26 +510,39 @@ def __init__(self, parent, config):
508510 continue
509511
510512 self .property_controls .append ({"key" : setting ["id" ], "box" : box })
511- box_settings .append (box .box )
512-
513- self .window .connect ("close-request" , self .on_window_delete )
513+ self .box_settings .append (box .box )
514514
515+ @Gtk .Template .Callback ()
515516 def on_window_delete (self , * args ):
516517 """Event handler for Properties dialog close action."""
517518 for property_control in self .property_controls :
518519 self .config ["active_plugin_config" ][property_control ["key" ]] = (
519520 property_control ["box" ].get_value ()
520521 )
521- self .window . destroy ()
522+ self .destroy ()
522523
523524 def show (self ):
524525 """Show the Properties dialog."""
525- self .window . present ()
526+ self .present ()
526527
527528
528- class BreakSettingsDialog :
529+ @Gtk .Template (filename = SETTINGS_DIALOG_BREAK_GLADE )
530+ class BreakSettingsDialog (Gtk .Window ):
529531 """Builds a settings dialog based on the configuration of a plugin."""
530532
533+ __gtype_name__ = "BreakSettingsDialog"
534+
535+ txt_break = Gtk .Template .Child ()
536+ switch_override_interval = Gtk .Template .Child ()
537+ switch_override_duration = Gtk .Template .Child ()
538+ switch_override_plugins = Gtk .Template .Child ()
539+ spin_interval = Gtk .Template .Child ()
540+ spin_duration = Gtk .Template .Child ()
541+ btn_image = Gtk .Template .Child ()
542+ cmb_type = Gtk .Template .Child ()
543+ grid_plugins = Gtk .Template .Child ()
544+ lst_break_types = Gtk .Template .Child ()
545+
531546 def __init__ (
532547 self ,
533548 parent ,
@@ -539,6 +554,8 @@ def __init__(
539554 on_add ,
540555 on_remove ,
541556 ):
557+ super ().__init__ (transient_for = parent )
558+
542559 self .break_config = break_config
543560 self .parent_config = parent_config
544561 self .plugin_check_buttons = {}
@@ -547,34 +564,16 @@ def __init__(
547564 self .on_add = on_add
548565 self .on_remove = on_remove
549566
550- builder = utility .create_gtk_builder (SETTINGS_DIALOG_BREAK_GLADE )
551- self .window = builder .get_object ("dialog_settings_break" )
552- self .window .set_transient_for (parent )
553- self .txt_break = builder .get_object ("txt_break" )
554- self .switch_override_interval = builder .get_object ("switch_override_interval" )
555- self .switch_override_duration = builder .get_object ("switch_override_duration" )
556- self .switch_override_plugins = builder .get_object ("switch_override_plugins" )
557- self .spin_interval = builder .get_object ("spin_interval" )
558- self .spin_duration = builder .get_object ("spin_duration" )
559- self .btn_image = builder .get_object ("btn_image" )
560- self .cmb_type = builder .get_object ("cmb_type" )
561-
562- grid_plugins = builder .get_object ("grid_plugins" )
563- list_types = builder .get_object ("lst_break_types" )
564-
565567 interval_overriden = break_config .get ("interval" , None ) is not None
566568 duration_overriden = break_config .get ("duration" , None ) is not None
567569 plugins_overriden = break_config .get ("plugins" , None ) is not None
568570
569571 # Set the values
570- self .window .set_title (_ ("Break Settings" ))
571572 self .txt_break .set_text (_ (break_config ["name" ]))
572573 self .switch_override_interval .set_active (interval_overriden )
573574 self .switch_override_duration .set_active (duration_overriden )
574575 self .switch_override_plugins .set_active (plugins_overriden )
575576 self .cmb_type .set_active (0 if is_short else 1 )
576- list_types [0 ][0 ] = _ (list_types [0 ][0 ])
577- list_types [1 ][0 ] = _ (list_types [1 ][0 ])
578577
579578 if interval_overriden :
580579 self .spin_interval .set_value (break_config ["interval" ])
@@ -596,7 +595,7 @@ def __init__(
596595 for plugin_id in plugin_map .keys ():
597596 chk_button = Gtk .CheckButton .new_with_label (_ (plugin_map [plugin_id ]))
598597 self .plugin_check_buttons [plugin_id ] = chk_button
599- grid_plugins .attach (chk_button , row , col , 1 , 1 )
598+ self . grid_plugins .attach (chk_button , row , col , 1 , 1 )
600599 if plugins_overriden :
601600 chk_button .set_active (plugin_id in break_config ["plugins" ])
602601 else :
@@ -613,18 +612,6 @@ def __init__(
613612 image = Gtk .Image .new_from_pixbuf (pixbuf )
614613 self .btn_image .set_child (image )
615614
616- self .window .connect ("close-request" , self .on_window_delete )
617- self .btn_image .connect ("clicked" , self .select_image )
618-
619- self .switch_override_interval .connect (
620- "state-set" , self .on_switch_override_interval_activate
621- )
622- self .switch_override_duration .connect (
623- "state-set" , self .on_switch_override_duration_activate
624- )
625- self .switch_override_plugins .connect (
626- "state-set" , self .on_switch_override_plugins_activate
627- )
628615 self .on_switch_override_interval_activate (
629616 self .switch_override_interval , self .switch_override_interval .get_active ()
630617 )
@@ -635,19 +622,23 @@ def __init__(
635622 self .switch_override_plugins , self .switch_override_plugins .get_active ()
636623 )
637624
625+ @Gtk .Template .Callback ()
638626 def on_switch_override_interval_activate (self , switch_button , state ):
639627 """switch_override_interval state change event handler."""
640628 self .spin_interval .set_sensitive (state )
641629
630+ @Gtk .Template .Callback ()
642631 def on_switch_override_duration_activate (self , switch_button , state ):
643632 """switch_override_duration state change event handler."""
644633 self .spin_duration .set_sensitive (state )
645634
635+ @Gtk .Template .Callback ()
646636 def on_switch_override_plugins_activate (self , switch_button , state ):
647637 """switch_override_plugins state change event handler."""
648638 for chk_box in self .plugin_check_buttons .values ():
649639 chk_box .set_sensitive (state )
650640
641+ @Gtk .Template .Callback ()
651642 def select_image (self , button ):
652643 """Show a file chooser dialog and let the user to select an image."""
653644 dialog = Gtk .FileDialog ()
@@ -661,7 +652,7 @@ def select_image(self, button):
661652 filters .append (png_filter )
662653 dialog .set_filters (filters )
663654
664- dialog .open (self . window , None , self .select_image_callback )
655+ dialog .open (self , None , self .select_image_callback )
665656
666657 def select_image_callback (self , dialog , result ):
667658 response = None
@@ -683,6 +674,7 @@ def select_image_callback(self, dialog, result):
683674 self .break_config .pop ("image" , None )
684675 self .btn_image .set_icon_name ("gtk-missing-image" )
685676
677+ @Gtk .Template .Callback ()
686678 def on_window_delete (self , * args ):
687679 """Event handler for Properties dialog close action."""
688680 break_name = self .txt_break .get_text ().strip ()
@@ -719,41 +711,34 @@ def on_window_delete(self, *args):
719711 self .on_add (not self .is_short , self .break_config )
720712 else :
721713 self .on_close (self .break_config )
722- self .window . destroy ()
714+ self .destroy ()
723715
724716 def show (self ):
725717 """Show the Properties dialog."""
726- self .window . present ()
718+ self .present ()
727719
728720
729- class NewBreakDialog :
721+ @Gtk .Template (filename = SETTINGS_DIALOG_NEW_BREAK_GLADE )
722+ class NewBreakDialog (Gtk .Window ):
730723 """Builds a new break dialog."""
731724
732- def __init__ (self , parent , parent_config , on_add ):
733- self .parent_config = parent_config
734- self .on_add = on_add
735-
736- builder = utility .create_gtk_builder (SETTINGS_DIALOG_NEW_BREAK_GLADE )
737- self .window = builder .get_object ("dialog_new_break" )
738- self .window .set_transient_for (parent )
739- self .txt_break = builder .get_object ("txt_break" )
740- self .cmb_type = builder .get_object ("cmb_type" )
741- list_types = builder .get_object ("lst_break_types" )
725+ __gtype_name__ = "NewBreakDialog"
742726
743- list_types [ 0 ][ 0 ] = _ ( list_types [ 0 ][ 0 ] )
744- list_types [ 1 ][ 0 ] = _ ( list_types [ 1 ][ 0 ] )
727+ txt_break = Gtk . Template . Child ( )
728+ cmb_type = Gtk . Template . Child ( )
745729
746- self .window .connect ("close-request" , self .on_window_delete )
747- builder .get_object ("btn_discard" ).connect ("clicked" , self .discard )
748- builder .get_object ("btn_save" ).connect ("clicked" , self .save )
730+ def __init__ (self , parent , parent_config , on_add ):
731+ super ().__init__ (transient_for = parent )
749732
750- # Set the values
751- self .window . set_title ( _ ( "New Break" ))
733+ self . parent_config = parent_config
734+ self .on_add = on_add
752735
736+ @Gtk .Template .Callback ()
753737 def discard (self , button ):
754738 """Close the dialog."""
755- self .window . destroy ()
739+ self .destroy ()
756740
741+ @Gtk .Template .Callback ()
757742 def save (self , button ):
758743 """Event handler for Properties dialog close action."""
759744 break_config = {"name" : self .txt_break .get_text ().strip ()}
@@ -764,12 +749,13 @@ def save(self, button):
764749 else :
765750 self .parent_config .get ("long_breaks" ).append (break_config )
766751 self .on_add (False , break_config )
767- self .window . destroy ()
752+ self .destroy ()
768753
754+ @Gtk .Template .Callback ()
769755 def on_window_delete (self , * args ):
770756 """Event handler for dialog close action."""
771- self .window . destroy ()
757+ self .destroy ()
772758
773759 def show (self ):
774760 """Show the Properties dialog."""
775- self .window . present ()
761+ self .present ()
0 commit comments