[pitivi] Handle cases when the user clicks between items in iconviews



commit 79a376af57dc59092a62de8fd25608939e2b27fa
Author: Jean-FranÃois Fortin Tam <nekohayo gmail com>
Date:   Tue May 8 13:04:41 2012 -0400

    Handle cases when the user clicks between items in iconviews

 pitivi/effects.py     |   10 +++++++---
 pitivi/transitions.py |    8 +++++++-
 2 files changed, 14 insertions(+), 4 deletions(-)
---
diff --git a/pitivi/effects.py b/pitivi/effects.py
index a214c3b..16555c0 100644
--- a/pitivi/effects.py
+++ b/pitivi/effects.py
@@ -594,7 +594,8 @@ class EffectListWidget(gtk.VBox, Loggable):
 
     def _enterPressEventCb(self, view, event=None):
         factory_name = self.getSelectedItems()
-        self.app.gui.clipconfig.effect_expander.addEffectToCurrentSelection(factory_name)
+        if factory_name is not None:
+            self.app.gui.clipconfig.effect_expander.addEffectToCurrentSelection(factory_name)
 
     def _buttonPressEventCb(self, view, event):
         chain_up = True
@@ -603,7 +604,8 @@ class EffectListWidget(gtk.VBox, Loggable):
             chain_up = False
         elif event.type is gtk.gdk._2BUTTON_PRESS:
             factory_name = self.getSelectedItems()
-            self.app.gui.clipconfig.effect_expander.addEffectToCurrentSelection(factory_name)
+            if factory_name is not None:
+                self.app.gui.clipconfig.effect_expander.addEffectToCurrentSelection(factory_name)
         else:
             chain_up = not self._rowUnderMouseSelected(view, event)
 
@@ -708,6 +710,8 @@ class EffectListWidget(gtk.VBox, Loggable):
             path = self.modelFilter.convert_path_to_child_path(rows[0])
         elif self.effect_view == SHOW_ICONVIEW:
             path = self.iconview.get_selected_items()
+            if path == []:
+                return None
             path = self.modelFilter.convert_path_to_child_path(path[0])
 
         return self.storemodel[path][COL_ELEMENT_NAME]
@@ -716,7 +720,7 @@ class EffectListWidget(gtk.VBox, Loggable):
                       targettype, unused_eventtime):
         self.info("data get, type:%d", targettype)
         factory = self.getSelectedItems()
-        if len(factory) < 1:
+        if factory is None or len(factory) < 1:
             return
 
         selection.set(selection.target, 8, factory)
diff --git a/pitivi/transitions.py b/pitivi/transitions.py
index abd5f52..3cdf3e5 100644
--- a/pitivi/transitions.py
+++ b/pitivi/transitions.py
@@ -151,7 +151,11 @@ class TransitionsListWidget(Signallable, gtk.VBox, Loggable):
 
     def _transitionSelectedCb(self, unused_view, event):
         if event.button == 1:
-            transition_id = int(self.getSelectedItem())
+            selected_item = self.getSelectedItem()
+            if not selected_item:
+                # The user clicked between icons
+                return False
+            transition_id = int(selected_item)
             transition = self.available_transitions.get(transition_id)
             self.debug("New transition type selected: %s" % transition)
             if transition.value_nick == "crossfade":
@@ -351,6 +355,8 @@ class TransitionsListWidget(Signallable, gtk.VBox, Loggable):
 
     def getSelectedItem(self):
         path = self.iconview.get_selected_items()
+        if path == []:
+            return None
         return self.modelFilter[path[0]][COL_TRANSITION_ID]
 
     def _setRowVisible(self, model, iter, data):



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]