[gnome-clocks] All items are unselected when exiting selection mode



commit bcac6ecf59e53faa53764aab87d5f15d00faa006
Author: Paolo Borelli <pborelli gnome org>
Date:   Sat Dec 1 23:12:12 2012 +0100

    All items are unselected when exiting selection mode

 gnomeclocks/alarm.py   |    3 ---
 gnomeclocks/widgets.py |   15 ++++++++-------
 gnomeclocks/world.py   |    2 --
 3 files changed, 8 insertions(+), 12 deletions(-)
---
diff --git a/gnomeclocks/alarm.py b/gnomeclocks/alarm.py
index 42b11e9..093b2fa 100644
--- a/gnomeclocks/alarm.py
+++ b/gnomeclocks/alarm.py
@@ -431,7 +431,6 @@ class Alarm(Clock):
     def set_mode(self, mode):
         self.mode = mode
         if mode is Clock.Mode.NORMAL:
-            self.iconview.unselect_all()
             self.notebook.set_current_page(0)
             self.iconview.set_selection_mode(False)
         elif mode is Clock.Mode.STANDALONE:
@@ -493,7 +492,6 @@ class Alarm(Clock):
         i = self.alarms.index(old_alarm)
         self.alarms[i] = new_alarm
         self.storage.save(self.alarms)
-        self.iconview.unselect_all()
         self.liststore.clear()
         self.load_alarms()
         self.notify("can-select")
@@ -502,7 +500,6 @@ class Alarm(Clock):
     def delete_alarms(self, alarms):
         self.alarms = [a for a in self.alarms if a not in alarms]
         self.storage.save(self.alarms)
-        self.iconview.unselect_all()
         self.liststore.clear()
         self.load_alarms()
         self.notify("can-select")
diff --git a/gnomeclocks/widgets.py b/gnomeclocks/widgets.py
index 4f39a3b..fa732a6 100644
--- a/gnomeclocks/widgets.py
+++ b/gnomeclocks/widgets.py
@@ -181,20 +181,21 @@ class SelectableIconView(Gtk.IconView):
         self.add_attribute(renderer_text, "markup", text_col)
 
     def get_selection(self):
-        selection = []
         store = self.get_model()
-        for i in store:
-            selected = store.get_value(i.iter, self.selection_col)
-            if selected:
-                selection.append(i.path)
-        return selection
+        return [row.path for row in store if row[self.selection_col]]
 
     def set_selection_mode(self, active):
         if self.selection_mode != active:
+            # clear selection
+            if not active:
+                self.unselect_all()
+                store = self.get_model()
+                for row in store:
+                    row[self.selection_col] = False
+
             self.selection_mode = active
             self.icon_renderer.set_property("toggle-visible", active)
 
-            # force redraw
             self.queue_draw()
 
     # FIXME: override both button press and release to check
diff --git a/gnomeclocks/world.py b/gnomeclocks/world.py
index 494c939..c4b1c53 100644
--- a/gnomeclocks/world.py
+++ b/gnomeclocks/world.py
@@ -336,7 +336,6 @@ class World(Clock):
     def set_mode(self, mode):
         self.mode = mode
         if mode is Clock.Mode.NORMAL:
-            self.iconview.unselect_all()
             self.notebook.set_current_page(0)
             self.iconview.set_selection_mode(False)
         elif mode is Clock.Mode.STANDALONE:
@@ -396,7 +395,6 @@ class World(Clock):
     def delete_clocks(self, clocks):
         self.clocks = [c for c in self.clocks if c not in clocks]
         self.storage.save(self.clocks)
-        self.iconview.unselect_all()
         self.liststore.clear()
         self.load_clocks()
         self.notify("can-select")



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