[gnome-clocks] Make the select button insensitive if the list is empty
- From: Paolo Borelli <pborelli src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-clocks] Make the select button insensitive if the list is empty
- Date: Sat, 25 Aug 2012 11:43:25 +0000 (UTC)
commit 89d60293a78c95f3647954092a490b840e624f96
Author: Paolo Borelli <pborelli gnome org>
Date: Sat Aug 25 13:41:53 2012 +0200
Make the select button insensitive if the list is empty
gnomeclocks/app.py | 72 +++++++++++++++++++++++-------------------------
gnomeclocks/clocks.py | 12 +++++++-
2 files changed, 45 insertions(+), 39 deletions(-)
---
diff --git a/gnomeclocks/app.py b/gnomeclocks/app.py
index 6e4ddf1..576a8ca 100644
--- a/gnomeclocks/app.py
+++ b/gnomeclocks/app.py
@@ -58,18 +58,18 @@ class Window(Gtk.ApplicationWindow):
self.notebook.set_show_tabs(False)
self.notebook.set_show_border(False)
- self.toolbar = ClocksToolbar(embed._selectionToolbar)
-
- vbox.pack_start(self.toolbar, False, False, 0)
- vbox.pack_start(self.toolbar.selection_toolbar, False, False, 0)
-
self.world = World()
self.alarm = Alarm()
self.stopwatch = Stopwatch()
self.timer = Timer()
self.views = (self.world, self.alarm, self.stopwatch, self.timer)
- self.toolbar.set_clocks(self.views)
+
+ self.toolbar = ClocksToolbar(self.views, embed._selectionToolbar)
+
+ vbox.pack_start(self.toolbar, False, False, 0)
+ vbox.pack_start(self.toolbar.selection_toolbar, False, False, 0)
+
self.single_evbox = Gtk.EventBox()
vbox.pack_end(self.notebook, True, True, 0)
@@ -260,7 +260,7 @@ class ClocksToolbar(Gtk.Toolbar):
__gsignals__ = {'view-clock': (GObject.SignalFlags.RUN_LAST,
None, (Clock,))}
- def __init__(self, selectionToolbar):
+ def __init__(self, views, selectionToolbar):
Gtk.Toolbar.__init__(self)
self.get_style_context().add_class("clocks-toolbar")
@@ -274,7 +274,7 @@ class ClocksToolbar(Gtk.Toolbar):
toolitem.add(toolbox)
self.insert(toolitem, -1)
- self.views = []
+ self.views = views
self.newButton = Gtk.Button()
@@ -305,41 +305,39 @@ class ClocksToolbar(Gtk.Toolbar):
self.buttonBox.get_style_context().add_class("linked")
toolbox.pack_start(self.buttonBox, False, False, 0)
+ self.viewsButtons = {}
+ for view in views:
+ button = ClockButton(view.label)
+ self.buttonBox.pack_start(button, False, False, 0)
+ button.connect('toggled', self._on_toggled, view)
+ self.viewsButtons[view] = button
+ if view == views[0]:
+ self.current_view = view
+ button.set_active(True)
+
self.city_label = Gtk.Label()
toolbox.pack_start(self.city_label, False, False, 0)
toolbox.pack_start(Gtk.Box(), False, False, 15)
toolbox.pack_start(Gtk.Label(""), True, True, 0)
- self.applyButton = Gtk.Button()
- #self.applyButton.get_style_context().add_class('raised');
+ self.selectButton = Gtk.Button()
icon = Gio.ThemedIcon.new_with_default_fallbacks(
"object-select-symbolic")
image = Gtk.Image()
image.set_from_gicon(icon, Gtk.IconSize.MENU)
- self.applyButton.add(image)
- self.applyButton.set_size_request(32, 32)
- self.applyButton.connect('clicked', self._on_selection_mode, True)
+ self.selectButton.add(image)
+ self.selectButton.set_size_request(32, 32)
+ self.selectButton.set_sensitive(self.current_view.can_select())
+ self.selectButton.connect('clicked', self._on_selection_mode, True)
self.rightBox = box = Gtk.Box()
- box.pack_end(self.applyButton, False, False, 0)
+ box.pack_end(self.selectButton, False, False, 0)
toolbox.pack_start(box, True, True, 0)
self.selection_toolbar = SelectionToolbar(selectionToolbar)
self.selection_toolbar.doneButton.connect("clicked",
self._on_selection_mode, False)
- def set_clocks(self, views):
- self.views = views
- self.viewsButtons = {}
- for view in views:
- button = ClockButton(view.label)
- self.buttonBox.pack_start(button, False, False, 0)
- button.connect('toggled', self._on_toggled, view)
- self.viewsButtons[view] = button
- if view == views[0]:
- self.current_view = view
- button.set_active(True)
-
def activate_view(self, view):
if view is not self.current_view:
self.viewsButtons[view].set_active(True)
@@ -347,14 +345,14 @@ class ClocksToolbar(Gtk.Toolbar):
def _set_overview_toolbar(self):
self.buttonBox.show()
self.newButton.show()
- self.applyButton.show()
+ self.selectButton.show()
self.backButton.hide()
self.city_label.hide()
def _set_single_toolbar(self):
self.buttonBox.hide()
self.newButton.hide()
- self.applyButton.hide()
+ self.selectButton.hide()
if not self.backButton.get_parent():
self.leftBox.pack_start(self.backButton, False, False, 0)
self.backButton.show_all()
@@ -374,16 +372,16 @@ class ClocksToolbar(Gtk.Toolbar):
self.newButton.set_size_request(width, -1)
self.newButton.get_children()[0].hide()
if view.hasSelectionMode:
- self.applyButton.get_children()[0].show_all()
- self.applyButton.show_all()
- self.applyButton.set_relief(Gtk.ReliefStyle.NORMAL)
- self.applyButton.set_sensitive(True)
+ self.selectButton.get_children()[0].show_all()
+ self.selectButton.show_all()
+ self.selectButton.set_relief(Gtk.ReliefStyle.NORMAL)
+ self.selectButton.set_sensitive(view.can_select())
else:
- width = self.applyButton.get_allocation().width
- self.applyButton.set_relief(Gtk.ReliefStyle.NONE)
- self.applyButton.set_sensitive(False)
- self.applyButton.set_size_request(width, -1)
- self.applyButton.get_children()[0].hide()
+ width = self.selectButton.get_allocation().width
+ self.selectButton.set_relief(Gtk.ReliefStyle.NONE)
+ self.selectButton.set_sensitive(False)
+ self.selectButton.set_size_request(width, -1)
+ self.selectButton.get_children()[0].hide()
self.emit("view-clock", view)
diff --git a/gnomeclocks/clocks.py b/gnomeclocks/clocks.py
index 8b7c4a3..860a956 100644
--- a/gnomeclocks/clocks.py
+++ b/gnomeclocks/clocks.py
@@ -56,12 +56,14 @@ class Clock(Gtk.EventBox):
def open_new_dialog(self):
pass
- def get_selection(self):
+ def can_select(self):
pass
- def unselect_all(self):
+ def get_selection(self):
pass
+ def unselect_all(self):
+ pass
class World(Clock):
def __init__(self):
@@ -107,6 +109,9 @@ class World(Clock):
def set_selection_mode(self, active):
self.iconview.set_selection_mode(active)
+ def can_select(self):
+ return len(self.liststore) != 0
+
def get_selection(self):
return self.iconview.get_selection()
@@ -223,6 +228,9 @@ class Alarm(Clock):
def set_selection_mode(self, active):
self.iconview.set_selection_mode(active)
+ def can_select(self):
+ return len(self.liststore) != 0
+
def get_selection(self):
return self.iconview.get_selection()
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]