[gnome-clocks] Finish refactoring of toolbar
- From: Paolo Borelli <pborelli src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-clocks] Finish refactoring of toolbar
- Date: Thu, 30 Aug 2012 01:50:46 +0000 (UTC)
commit e46b53bc37d2faec64615034c2850c64605183c1
Author: Paolo Borelli <pborelli gnome org>
Date: Thu Aug 30 03:48:50 2012 +0200
Finish refactoring of toolbar
Finish the cleanup of the toolbar code
gnomeclocks/app.py | 164 +++++++++++++++++++++-------------------------------
1 files changed, 65 insertions(+), 99 deletions(-)
---
diff --git a/gnomeclocks/app.py b/gnomeclocks/app.py
index dfab391..10e76e7 100644
--- a/gnomeclocks/app.py
+++ b/gnomeclocks/app.py
@@ -71,7 +71,6 @@ class Window(Gtk.ApplicationWindow):
self.toolbar = ClocksToolbar(self.views, self.embed)
self.vbox.pack_start(self.toolbar, False, False, 0)
- self.vbox.pack_start(self.toolbar.selection_toolbar, False, False, 0)
self.single_evbox = Gtk.EventBox()
@@ -152,90 +151,6 @@ class Window(Gtk.ApplicationWindow):
about.show()
-class SelectionToolbar(Gtk.Toolbar):
- def __init__(self, embed):
- Gtk.Toolbar.__init__(self)
- self.get_style_context().add_class("clocks-toolbar")
- self.set_icon_size(Gtk.IconSize.MENU)
- self.get_style_context().add_class(Gtk.STYLE_CLASS_MENUBAR)
- self.get_style_context().add_class("selection-mode")
-
- self.embed = embed
-
- # same size as the button to keep the label centered
- sep = Gtk.SeparatorToolItem()
- sep.set_draw(False)
- sep.set_size_request(64, 34)
- self.insert(sep, -1)
-
- sep = Gtk.SeparatorToolItem()
- sep.set_draw(False)
- sep.set_expand(True)
- self.insert(sep, -1)
-
- toolitem = Gtk.ToolItem()
- self.label = Gtk.Label()
- self.label.set_halign(Gtk.Align.CENTER)
- self.set_selection_label(0)
- toolitem.add(self.label)
- self.insert(toolitem, -1)
-
- sep = Gtk.SeparatorToolItem()
- sep.set_draw(False)
- sep.set_expand(True)
- self.insert(sep, -1)
-
- toolitem = Gtk.ToolItem()
- toolbox = Gtk.Box()
- toolitem.add(toolbox)
- self.insert(toolitem, -1)
-
- self.doneButton = Gtk.Button()
-
- self.doneButton.get_style_context().add_class('raised')
- self.doneButton.get_style_context().add_class('suggested-action')
- self.doneButton.set_label(_("Done"))
- self.doneButton.set_size_request(64, 34)
- self.doneButton.connect("clicked", self._on_done_clicked)
-
- self.embed._selectionToolbar._toolbarDelete.connect("clicked", self._on_delete_clicked)
-
- self.leftBox = box = Gtk.Box()
- box.pack_start(self.doneButton, False, False, 0)
- toolbox.pack_start(box, True, True, 0)
-
- self.current_view = None
-
- def set_selection_label(self, n):
- if n == 0:
- self.label.set_markup("(%s)" % _("Click on items to select them"))
- else:
- msg = ngettext("%d item selected", "%d items selected", n) % (n)
- self.label.set_markup("<b>%s</b>" % (msg))
-
- def set_current_view(self, view):
- if self.current_view:
- self.current_view.disconnect_by_func(self._on_selection_changed)
-
- self.current_view = view
- self.current_view.connect("selection-changed",
- self._on_selection_changed)
-
- def _on_selection_changed(self, view):
- selection = view.get_selection()
- n_selected = len(selection)
- self.set_selection_label(n_selected)
- self.embed.set_show_selectionbar(n_selected > 0)
-
- def _on_done_clicked(self, widget):
- self.embed.set_show_selectionbar(False)
-
- def _on_delete_clicked(self, widget):
- self.current_view.delete_selected()
- self.set_selection_label(0)
- self.embed.set_show_selectionbar(False)
-
-
class ClockButton(Gtk.RadioButton):
_group = None
@@ -274,6 +189,7 @@ class ClocksToolbar(Gtk.Toolbar):
self.get_style_context().add_class(Gtk.STYLE_CLASS_MENUBAR)
self.views = views
+ self.embed = embed
sizeGroup = Gtk.SizeGroup(Gtk.SizeGroupMode.HORIZONTAL)
@@ -317,6 +233,7 @@ class ClocksToolbar(Gtk.Toolbar):
centerBox.pack_start(self.buttonBox, True, False, 0)
self.viewsButtons = {}
+ self.current_view = None
for view in views:
button = ClockButton(view.label)
self.buttonBox.pack_start(button, False, False, 0)
@@ -325,7 +242,7 @@ class ClocksToolbar(Gtk.Toolbar):
if view.hasSelectionMode:
view.connect("notify::can-select", self._on_can_select_changed)
if view == views[0]:
- self.current_view = view
+ self.set_current_view(view)
button.set_active(True)
self.titleLabel = Gtk.Label()
@@ -348,33 +265,40 @@ class ClocksToolbar(Gtk.Toolbar):
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.selectButton.connect('clicked', self._on_select_clicked)
rightBox.pack_end(self.selectButton, False, False, 0)
self.editButton = Gtk.Button(_("Edit"))
self.editButton.set_size_request(64, 34)
- self.editButton.connect('clicked', self._on_edit)
+ self.editButton.connect('clicked', self._on_edit_clicked)
rightBox.pack_end(self.editButton, False, False, 0)
- self.selection_toolbar = SelectionToolbar(embed)
- self.selection_toolbar.doneButton.connect("clicked",
- self._on_selection_mode, False)
+ self.doneButton = Gtk.Button(_("Done"))
+ self.doneButton.get_style_context().add_class('raised')
+ self.doneButton.get_style_context().add_class('suggested-action')
+ self.doneButton.set_size_request(64, 34)
+ self.doneButton.connect("clicked", self._on_done_clicked)
+ rightBox.pack_end(self.doneButton, False, False, 0)
+
+ self.embed._selectionToolbar._toolbarDelete.connect("clicked", self._on_delete_clicked)
def activate_view(self, view):
if view is not self.current_view:
self.viewsButtons[view].set_active(True)
def show_overview_toolbar(self):
+ self.get_style_context().remove_class("selection-mode")
self.standalone = None
- self.selection_toolbar.hide()
self.buttonBox.show()
self.newButton.show()
self.selectButton.show()
self.backButton.hide()
self.titleLabel.hide()
self.editButton.hide()
+ self.doneButton.hide()
def show_standalone_toolbar(self, widget):
+ self.get_style_context().remove_class("selection-mode")
self.standalone = widget
self.buttonBox.hide()
self.newButton.hide()
@@ -383,9 +307,30 @@ class ClocksToolbar(Gtk.Toolbar):
self.titleLabel.set_markup("<b>%s</b>" % self.standalone.get_name())
self.titleLabel.show()
self.editButton.set_visible(self.standalone.can_edit)
+ self.doneButton.hide()
+
+ def show_selection_toolbar(self):
+ self.get_style_context().add_class("selection-mode")
+ self.standalone = None
+ self.buttonBox.hide()
+ self.newButton.hide()
+ self.selectButton.hide()
+ self.backButton.hide()
+ self.set_selection_label(0)
+ self.titleLabel.show()
+ self.editButton.hide()
+ self.doneButton.show()
+
+ def set_current_view(self, view):
+ if self.current_view:
+ self.current_view.disconnect_by_func(self._on_selection_changed)
- def _on_toggled(self, widget, view):
self.current_view = view
+ self.current_view.connect("selection-changed",
+ self._on_selection_changed)
+
+ def _on_toggled(self, widget, view):
+ self.set_current_view(view)
if view.hasNew:
self.newButton.get_children()[0].show_all()
self.newButton.show_all()
@@ -411,19 +356,40 @@ class ClocksToolbar(Gtk.Toolbar):
self.emit("view-clock", view)
+ def set_selection_label(self, n):
+ if n == 0:
+ self.titleLabel.set_markup("(%s)" % _("Click on items to select them"))
+ else:
+ msg = ngettext("%d item selected", "%d items selected", n) % (n)
+ self.titleLabel.set_markup("<b>%s</b>" % (msg))
+
+ def _on_selection_changed(self, view):
+ selection = view.get_selection()
+ n_selected = len(selection)
+ self.set_selection_label(n_selected)
+ self.embed.set_show_selectionbar(n_selected > 0)
+
def _on_can_select_changed(self, view, pspec):
if view == self.current_view:
self.selectButton.set_sensitive(view.can_select)
- def _on_selection_mode(self, button, selection_mode):
- self.selection_toolbar.set_visible(selection_mode)
- self.set_visible(not selection_mode)
- self.selection_toolbar.set_current_view(self.current_view)
- self.current_view.set_selection_mode(selection_mode)
+ def _on_select_clicked(self, button):
+ self.show_selection_toolbar()
+ self.current_view.set_selection_mode(True)
- def _on_edit(self, button):
+ def _on_edit_clicked(self, button):
self.standalone.open_edit_dialog()
+ def _on_done_clicked(self, widget):
+ self.show_overview_toolbar()
+ self.current_view.set_selection_mode(False)
+ self.embed.set_show_selectionbar(False)
+
+ def _on_delete_clicked(self, widget):
+ self.current_view.delete_selected()
+ self.set_selection_label(0)
+ self.embed.set_show_selectionbar(False)
+
class ClocksApplication(Gtk.Application):
def __init__(self):
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]