From 634aabbcf6650368f5237fa56dd3188d64c29a54 Mon Sep 17 00:00:00 2001 From: Jeff Pittman Date: Wed, 1 Aug 2012 07:04:36 -0500 Subject: [PATCH] Added forced dispatch of on_selection_change after instantiation of DetailView in examples. --- examples/widgets/list_cascade.py | 4 +++- examples/widgets/list_disclosure.py | 4 ++++ examples/widgets/list_master_detail.py | 4 ++++ kivy/adapters/listadapter.py | 3 +++ kivy/adapters/mixins/selection.py | 2 -- 5 files changed, 14 insertions(+), 3 deletions(-) diff --git a/examples/widgets/list_cascade.py b/examples/widgets/list_cascade.py index 048e30245..7515ff388 100644 --- a/examples/widgets/list_cascade.py +++ b/examples/widgets/list_cascade.py @@ -19,7 +19,6 @@ class DetailView(GridLayout): def __init__(self, **kwargs): kwargs['cols'] = 2 super(DetailView, self).__init__(**kwargs) - self.bind(fruit_name=self.redraw) def redraw(self, *args): self.clear_widgets() @@ -101,6 +100,9 @@ class CascadingView(GridLayout): on_selection_change=detail_view.on_selection_change) self.add_widget(detail_view) + # Force triggering of on_selection_change() for the DetailView, for + # correct initial display. + fruits_list_adapter.touch_selection() # Data from http://www.fda.gov/Food/LabelingNutrition/\ # FoodLabelingGuidanceRegulatoryInformation/\ diff --git a/examples/widgets/list_disclosure.py b/examples/widgets/list_disclosure.py index 01e65492f..04e2f7b3f 100644 --- a/examples/widgets/list_disclosure.py +++ b/examples/widgets/list_disclosure.py @@ -147,6 +147,10 @@ class MasterDetailView(GridLayout): list_adapter.bind(on_selection_change=detail_view.on_selection_change) + # Force triggering of on_selection_change() for the DetailView, for + # correct initial display. + list_adapter.touch_selection() + # Data from http://www.fda.gov/Food/LabelingNutrition/\ # FoodLabelingGuidanceRegulatoryInformation/\ # InformationforRestaurantsRetailEstablishments/\ diff --git a/examples/widgets/list_master_detail.py b/examples/widgets/list_master_detail.py index 918891b64..7df723cb2 100644 --- a/examples/widgets/list_master_detail.py +++ b/examples/widgets/list_master_detail.py @@ -67,6 +67,10 @@ class MasterDetailView(GridLayout): list_adapter.bind(on_selection_change=detail_view.on_selection_change) + # Force triggering of on_selection_change() for the DetailView, for + # correct initial display. + list_adapter.touch_selection() + # Data from http://www.fda.gov/Food/LabelingNutrition/\ # FoodLabelingGuidanceRegulatoryInformation/\ # InformationforRestaurantsRetailEstablishments/\ diff --git a/kivy/adapters/listadapter.py b/kivy/adapters/listadapter.py index 9cc95bd05..a856b9d60 100644 --- a/kivy/adapters/listadapter.py +++ b/kivy/adapters/listadapter.py @@ -122,6 +122,9 @@ class ListAdapter(SelectionSupport, SimpleListAdapter): #else: #print 'ERROR: No data, so cannot initialize selection.' + def touch_selection(self): + self.dispatch('on_selection_change') + class ListsAdapter(ListAdapter): '''ListsAdapter is specialized for managing a dict of lists. It has wide diff --git a/kivy/adapters/mixins/selection.py b/kivy/adapters/mixins/selection.py index dc6eee57f..e62ccd1cf 100644 --- a/kivy/adapters/mixins/selection.py +++ b/kivy/adapters/mixins/selection.py @@ -104,8 +104,6 @@ class SelectionSupport(object): self.bind(selection_mode=self.check_for_empty_selection, allow_empty_selection=self.check_for_empty_selection) - #self.check_for_empty_selection() - def handle_selection(self, obj): if obj not in self.selection: if self.selection_mode == 'single' and len(self.selection) > 0: