Change the availability of some options in FamilyLines depending on the value of other options.
svn: r9945
This commit is contained in:
		| @@ -1,3 +1,9 @@ | ||||
| 2008-01-28 Brian Matherly <brian@gramps-project.org> | ||||
| 	* src/PluginUtils/_GuiOptions.py: | ||||
| 	* src/plugins/GVFamilyLines.py: | ||||
| 	Change the availability of some options in FamilyLines depending on the  | ||||
| 	value of other options. | ||||
|  | ||||
| 2008-01-28 Benny Malengier <benny.malengier@gramps-project.org> | ||||
| 	* src/ArgHandler.py: | ||||
| 	* src/DbManager.py: | ||||
|   | ||||
| @@ -225,12 +225,22 @@ class GuiNumberOption(gtk.SpinButton): | ||||
|         self.connect('value_changed', self.__value_changed) | ||||
|         tooltip.set_tip(self, self.__option.get_help()) | ||||
|          | ||||
|         self.__option.connect('avail-changed', self.__update_avail) | ||||
|         self.__update_avail() | ||||
|          | ||||
|     def __value_changed(self, obj): # IGNORE:W0613 - obj is unused | ||||
|         """ | ||||
|         Handle the change of the value. | ||||
|         """ | ||||
|         vtype = type(self.__option.get_value()) | ||||
|         self.__option.set_value( vtype(self.get_value()) ) | ||||
|          | ||||
|     def __update_avail(self): | ||||
|         """ | ||||
|         Update the availability (sensitivity) of this widget. | ||||
|         """ | ||||
|         avail = self.__option.get_available() | ||||
|         self.set_sensitive(avail) | ||||
|  | ||||
| #------------------------------------------------------------------------- | ||||
| # | ||||
|   | ||||
| @@ -81,6 +81,12 @@ class FamilyLinesOptions(MenuReportOptions): | ||||
|     to configure the FamilyLines reports. | ||||
|     """ | ||||
|     def __init__(self, name, dbase): | ||||
|         self.limit_parents = None | ||||
|         self.max_parents = None | ||||
|         self.limit_children = None | ||||
|         self.max_children = None | ||||
|         self.include_images = None | ||||
|         self.image_location = None | ||||
|         MenuReportOptions.__init__(self, name, dbase) | ||||
|  | ||||
|     def add_menu_options(self, menu): | ||||
| @@ -133,35 +139,47 @@ class FamilyLinesOptions(MenuReportOptions): | ||||
|         colourFamily.set_help(              _('The colour to use to display families.')) | ||||
|         menu.add_option(category, 'FLcolourFamilies', colourFamily) | ||||
|  | ||||
|         self.limitParents = BooleanOption(  _('Limit the number of parents'), False) | ||||
|         self.limitParents.set_help(         _('The maximum number of ancestors to include.')) | ||||
|         menu.add_option(category, 'FLlimitParents', self.limitParents) | ||||
|         self.limit_parents = BooleanOption(_('Limit the number of parents'),  | ||||
|                                            False) | ||||
|         self.limit_parents.set_help( | ||||
|                             _('The maximum number of ancestors to include.')) | ||||
|         menu.add_option(category, 'FLlimitParents', self.limit_parents) | ||||
|         self.limit_parents.connect('value-changed', self.limit_changed) | ||||
|  | ||||
|         self.maxParents = NumberOption(     '', 50, 10, 9999) | ||||
|         self.maxParents.set_help(           _('The maximum number of ancestors to include.')) | ||||
|         menu.add_option(category, 'FLmaxParents', self.maxParents) | ||||
|         self.max_parents = NumberOption('', 50, 10, 9999) | ||||
|         self.max_parents.set_help( | ||||
|                               _('The maximum number of ancestors to include.')) | ||||
|         menu.add_option(category, 'FLmaxParents', self.max_parents) | ||||
|  | ||||
|         self.limitChildren = BooleanOption( _('Limit the number of children'), False) | ||||
|         self.limitChildren.set_help(        _('The maximum number of children to include.')) | ||||
|         menu.add_option(category, 'FLlimitChildren', self.limitChildren) | ||||
|         self.limit_children = BooleanOption(_('Limit the number of children'),  | ||||
|                                             False) | ||||
|         self.limit_children.set_help( | ||||
|                              _('The maximum number of children to include.')) | ||||
|         menu.add_option(category, 'FLlimitChildren', self.limit_children) | ||||
|         self.limit_children.connect('value-changed', self.limit_changed) | ||||
|  | ||||
|         self.maxChildren = NumberOption(    '', 50, 10, 9999) | ||||
|         self.maxChildren.set_help(          _('The maximum number of children to include.')) | ||||
|         menu.add_option(category, 'FLmaxChildren', self.maxChildren) | ||||
|         self.max_children = NumberOption('', 50, 10, 9999) | ||||
|         self.max_children.set_help( | ||||
|                                _('The maximum number of children to include.')) | ||||
|         menu.add_option(category, 'FLmaxChildren', self.max_children) | ||||
|  | ||||
|         # -------------------- | ||||
|         category = _('Images') | ||||
|         # -------------------- | ||||
|  | ||||
|         self.includeImages = BooleanOption( _('Include thumbnail images of people'), True) | ||||
|         self.includeImages.set_help(        _('The maximum number of children to include.')) | ||||
|         menu.add_option(category, 'FLincludeImages', self.includeImages) | ||||
|         self.include_images = BooleanOption( | ||||
|                                   _('Include thumbnail images of people'), True) | ||||
|         self.include_images.set_help( | ||||
|                                 _('The maximum number of children to include.')) | ||||
|         menu.add_option(category, 'FLincludeImages', self.include_images) | ||||
|         self.include_images.connect('value-changed', self.images_changed) | ||||
|  | ||||
|         self.imageLocation = EnumeratedListOption(_('Thumbnail location'), 0) | ||||
|         self.imageLocation.add_item(0,     _('Above the name')) | ||||
|         self.imageLocation.add_item(1,     _('Beside the name')) | ||||
|         self.imageLocation.set_help(       _('Where the thumbnail image should appear relative to the name')) | ||||
|         menu.add_option(category, 'FLimageOnTheSide', self.imageLocation) | ||||
|         self.image_location = EnumeratedListOption(_('Thumbnail location'), 0) | ||||
|         self.image_location.add_item(0, _('Above the name')) | ||||
|         self.image_location.add_item(1, _('Beside the name')) | ||||
|         self.image_location.set_help( | ||||
|              _('Where the thumbnail image should appear relative to the name')) | ||||
|         menu.add_option(category, 'FLimageOnTheSide', self.image_location) | ||||
|  | ||||
|         # --------------------- | ||||
|         category = _('Options') | ||||
| @@ -193,29 +211,22 @@ class FamilyLinesOptions(MenuReportOptions): | ||||
|         includePrivate = BooleanOption(     _('Include private records'), False) | ||||
|         includePrivate.set_help(            _('Whether to include names, dates, and families that are marked as private.')) | ||||
|         menu.add_option(category, 'FLincludePrivate', includePrivate) | ||||
|          | ||||
|         self.limit_changed() | ||||
|         self.images_changed() | ||||
|  | ||||
|     def limit_changed(self): | ||||
|         """ | ||||
|         Handle the change of limiting parents and children. | ||||
|         """ | ||||
|         self.max_parents.set_available(self.limit_parents.get_value()) | ||||
|         self.max_children.set_available(self.limit_children.get_value()) | ||||
|  | ||||
|     def limitChanged(self, button): | ||||
|         self.maxParents.gobj.set_sensitive(self.limitParents.gobj.get_active()) | ||||
|         self.maxChildren.gobj.set_sensitive(self.limitChildren.gobj.get_active()) | ||||
|  | ||||
|  | ||||
|     def imagesChanged(self, button): | ||||
|         self.imageLocation.gobj.set_sensitive(self.includeImages.gobj.get_active()) | ||||
|  | ||||
|  | ||||
|     def post_init(self, dialog): | ||||
|         # this method is called after all of the controls have been | ||||
|         # created, but before the notebook itself has been created | ||||
|  | ||||
|         self.limitParents.  gobj.connect('toggled', self.limitChanged   ) | ||||
|         self.limitChildren. gobj.connect('toggled', self.limitChanged   ) | ||||
|         self.includeImages. gobj.connect('toggled', self.imagesChanged  ) | ||||
|  | ||||
|         # ensure things are initialized correctly when it first comes up | ||||
|         self.limitChanged(  self.limitParents.gobj  ) | ||||
|         self.imagesChanged( self.includeImages.gobj ) | ||||
|  | ||||
|     def images_changed(self): | ||||
|         """ | ||||
|         Handle the change of including images. | ||||
|         """ | ||||
|         self.image_location.set_available(self.include_images.get_value()) | ||||
|  | ||||
| #------------------------------------------------------------------------ | ||||
| # | ||||
|   | ||||
		Reference in New Issue
	
	Block a user