[clocks] Added empty view when no clocks have been set up
- From: Seif Lotfy <seiflotfy src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [clocks] Added empty view when no clocks have been set up
- Date: Sat, 4 Aug 2012 09:29:15 +0000 (UTC)
commit 313526ae1cb3b90c04724ec7258d73952bf30a74
Author: Seif Lotfy <seif lotfy com>
Date: Sat Aug 4 11:28:53 2012 +0200
Added empty view when no clocks have been set up
clocks.py | 38 +++++++++++++++++++++++++++++---------
widgets.py | 31 +++++++++++++++++++------------
2 files changed, 48 insertions(+), 21 deletions(-)
---
diff --git a/clocks.py b/clocks.py
index d5c070e..2d469aa 100644
--- a/clocks.py
+++ b/clocks.py
@@ -21,7 +21,7 @@
from gi.repository import Gtk, GObject, Gio, Gdk, Gst, Notify, cairo
from gi.repository.GdkPixbuf import Pixbuf
-from widgets import NewWorldClockDialog, DigitalClock, NewAlarmDialog, AlarmWidget
+from widgets import NewWorldClockDialog, DigitalClock, NewAlarmDialog, AlarmWidget, WorldEmpty
from alarms_handler import AlarmsHandler
from storage import worldclockstorage
@@ -91,6 +91,8 @@ class World (Clock):
self.liststore = liststore = Gtk.ListStore(Pixbuf, str, GObject.TYPE_PYOBJECT)
self.iconview = iconview = Gtk.IconView.new()
+ self.empty_view = WorldEmpty ()
+
iconview.set_model(liststore)
iconview.set_spacing(3)
iconview.set_pixbuf_column(0)
@@ -101,9 +103,9 @@ class World (Clock):
iconview.pack_start(renderer_text, True)
iconview.add_attribute(renderer_text, "markup", 1)
- scrolledwindow = Gtk.ScrolledWindow()
+ self.scrolledwindow = scrolledwindow = Gtk.ScrolledWindow()
scrolledwindow.add(iconview)
- self.add(scrolledwindow)
+ #self.add(scrolledwindow)
iconview.connect ("selection-changed", self._on_selection_changed)
@@ -126,11 +128,15 @@ class World (Clock):
def load_clocks(self):
self.clocks = worldclockstorage.load_clocks ()
- for clock in self.clocks:
- d = DigitalClock (clock)
- view_iter = self.liststore.append([d.drawing.pixbuf, "<b>"+d.location.get_city_name()+"</b>", d])
- d.set_iter(self.liststore, view_iter)
- self.show_all()
+ print self.clocks
+ if len(self.clocks) == 0:
+ self.load_empty_clocks_view ()
+ else:
+ for clock in self.clocks:
+ d = DigitalClock (clock)
+ view_iter = self.liststore.append([d.drawing.pixbuf, "<b>"+d.location.get_city_name()+"</b>", d])
+ d.set_iter(self.liststore, view_iter)
+ self.load_clocks_view ()
def add_clock(self, location):
location_id = location.id + "---" + location.location.get_code ()
@@ -141,16 +147,19 @@ class World (Clock):
d.set_iter(self.liststore, view_iter)
self.show_all()
worldclockstorage.save_clocks (self.clocks)
+ if len(self.clocks) > 0:
+ self.load_clocks_view ()
def delete_clock (self, d):
self.clocks.remove (d.location)
self.liststore.remove (d.view_iter)
self.iconview.unselect_all ()
+ if len(self.clocks) == 0:
+ self.load_empty_clocks_view ()
def open_new_dialog(self):
parent = self.get_parent().get_parent().get_parent()
window = NewWorldClockDialog(parent)
-
#window.get_children()[0].pack_start(widget, False, False, 0)
window.connect("add-clock", lambda w, l: self.add_clock(l))
window.show_all()
@@ -160,6 +169,17 @@ class World (Clock):
self.addButton.set_sensitive(False)
self.emit('show-requested')
+ def load_clocks_view (self):
+ if self.empty_view in self.get_children ():
+ self.remove (self.empty_view)
+ self.add (self.scrolledwindow)
+ self.show_all ()
+
+ def load_empty_clocks_view (self):
+ if self.scrolledwindow in self.get_children ():
+ self.remove (self.scrolledwindow)
+ self.add (self.empty_view)
+ self.show_all ()
class Alarm (Clock):
def __init__ (self):
diff --git a/widgets.py b/widgets.py
index d20895a..857aa6c 100644
--- a/widgets.py
+++ b/widgets.py
@@ -561,19 +561,26 @@ class NewAlarmDialog (Gtk.Dialog):
self.repeat_days.remove('SU')
self.check_save_button_status()
-"""
-if text.startswith("0"):
- text = text[1:]
-
-
-def get_image(self, local_time):
- if local_time.tm_hour > 7 and local_time.tm_hour < 19:
- return "data/cities/day.png"
- else:
- return "data/cities/night.png"
-"""
-
class ClocksHome(Gtk.Box):
def __init__(self):
Gt.Box.__init__(self)
self.set_orientation(Gtk.Orientation.VERTICAL)
+
+class WorldEmpty(Gtk.Box):
+ def __init__(self):
+ Gtk.Box.__init__(self)
+ self.set_orientation(Gtk.Orientation.VERTICAL)
+ gicon = Gio.ThemedIcon.new_with_default_fallbacks("document-open-recent-symbolic")
+ image = Gtk.Image.new_from_gicon(gicon, Gtk.IconSize.DIALOG)
+ image.set_sensitive (False)
+ text = Gtk.Label("")
+ text.set_markup("<span color='darkgrey'>Select <b>New</b> to add a world clock</span>")
+ self.pack_start(Gtk.Label(""), True, True, 0)
+ self.pack_start(image, False, False, 6)
+ self.pack_start(text, False, False, 6)
+ self.pack_start(Gtk.Label(""), True, True, 0)
+ self.button = Gtk.ToggleButton()
+ self.show_all()
+
+ def unselect_all(self):
+ pass
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]