diff options
author | flavio <fdanesse@gmail.com> | 2013-08-01 21:53:17 (GMT) |
---|---|---|
committer | Gonzalo Odiard <godiard@gmail.com> | 2013-09-02 17:50:01 (GMT) |
commit | f7f7e718642855220e4c96251c285655288615b8 (patch) | |
tree | 9c3079b00c5773b36e088dfbc40b4914b240f43f | |
parent | 388d350ecd6865c0dd646a19238c3a62706138dc (diff) |
Modularización de SelectCanvas
-rw-r--r-- | Widgets.py | 68 | ||||
-rw-r--r-- | poll.py | 26 |
2 files changed, 82 insertions, 12 deletions
@@ -24,8 +24,10 @@ from gettext import gettext as _ from gi.repository import Gtk from gi.repository import GdkPixbuf -from sugar3.graphics.alert import NotifyAlert from sugar3 import mime +from sugar3 import profile +from sugar3.graphics import style +from sugar3.graphics.alert import NotifyAlert from sugar3.graphics.objectchooser import ObjectChooser from sugar3.graphics.toolbarbox import ToolbarBox @@ -464,3 +466,67 @@ class OptionsCanvas(Gtk.Box): self.poll_activity.add_alert(alert) alert.connect('response', self.poll_activity._alert_cancel_cb) alert.show() + +class SelectCanvas(Gtk.Box): + + def __init__(self, poll_activity): + + Gtk.Box.__init__(self, orientation = Gtk.Orientation.VERTICAL) + + poll_activity._current_view = 'select' + + label = Gtk.Label() + label.set_markup('<big><b>%s</b></big>' % _('Choose a Poll')) + self.pack_start(label, False, False, 0) + + poll_selector_box = Gtk.VBox() + + scroll = Gtk.ScrolledWindow() + + scroll.set_policy( + Gtk.PolicyType.AUTOMATIC, + Gtk.PolicyType.NEVER) + + scroll.add_with_viewport(poll_selector_box) + + self.pack_start(scroll, True, True, 10) + + row_number = 0 + + for poll in poll_activity._polls: + sha = poll.sha + + if row_number % 2: + row_bgcolor = style.COLOR_WHITE.get_int() + + else: + row_bgcolor = style.COLOR_SELECTION_GREY.get_int() + + row_number += 1 + + poll_row = Gtk.HBox() + poll_selector_box.pack_start(poll_row, False, False, 10) + + title = Gtk.Label(label=poll.title + ' (' + poll.author + ')') + align = Gtk.Alignment.new(0, 0.5, 0, 0) + align.add(title) + poll_row.pack_start(align, True, True, 10) + + if poll.active: + button = Gtk.Button(_('VOTE')) + + else: + button = Gtk.Button(_('SEE RESULTS')) + + button.connect('clicked', poll_activity._select_poll_button_cb, sha) + poll_row.pack_start(button, False, False, 10) + + if poll.author == profile.get_nick_name(): + button = Gtk.Button(_('DELETE')) + button.connect('clicked', poll_activity._delete_poll_button_cb, sha) + poll_row.pack_start(button, False, False, 10) + + poll_row.pack_start(Gtk.Label( + poll.createdate.strftime('%d/%m/%y')), False, False, 10) + + self.show_all() @@ -46,8 +46,6 @@ from dbus.gobject_service import ExportedGObject from sugar3.presence.tubeconn import TubeConnection''' from sugar3.activity import activity - -from sugar3.graphics import style from sugar3.graphics.alert import NotifyAlert from sugar3.presence import presenceservice @@ -77,6 +75,7 @@ RADIO_SIZE = 32''' from Widgets import NewPollCanvas from Widgets import Toolbar from Widgets import OptionsCanvas +from Widgets import SelectCanvas class PollBuilder(activity.Activity): """ @@ -148,14 +147,15 @@ class PollBuilder(activity.Activity): # toolbar.help_button.connect('clicked', self._button_lessonplan_cb) self.set_toolbar_box(toolbar) - self.set_canvas(self._select_canvas()) + #self.set_canvas(self._select_canvas()) + self.set_canvas(SelectCanvas(self)) self.show_all() self.poll_session = None # PollSession #self.connect('shared', self._shared_cb) #self.connect('joined', self._joined_cb) - + ''' def _select_canvas(self): """ Show the select canvas where children choose an existing poll. @@ -221,7 +221,7 @@ class PollBuilder(activity.Activity): mainbox.show_all() - return mainbox + return mainbox''' ''' def set_root(self, widget): @@ -310,7 +310,8 @@ class PollBuilder(activity.Activity): f.close() - self.set_canvas(self._select_canvas()) + #self.set_canvas(self._select_canvas()) + self.set_canvas(SelectCanvas(self)) def write_file(self, file_path): """ @@ -450,7 +451,7 @@ class PollBuilder(activity.Activity): self._has_voted = False self.set_canvas(self._poll_canvas()) - def __delete_poll_button_cb(self, button, sha): + def _delete_poll_button_cb(self, button, sha): """ A DELETE button was clicked. """ @@ -464,11 +465,12 @@ class PollBuilder(activity.Activity): self._poll = Poll(activity=self) self.current_vote = None - for poll in self._polls.copy(): + for poll in self._polls: if poll.sha == sha: self._polls.remove(poll) - self.set_canvas(self._select_canvas()) + #self.set_canvas(self._select_canvas()) + self.set_canvas(SelectCanvas(self)) ''' def _load_image(self, pixbuf): @@ -662,7 +664,8 @@ class PollBuilder(activity.Activity): Show Choose a Poll canvas """ - self.set_canvas(self._select_canvas()) + #self.set_canvas(self._select_canvas()) + self.set_canvas(SelectCanvas(self)) def __button_new_clicked(self, button): """ @@ -825,7 +828,8 @@ class PollBuilder(activity.Activity): self.set_root(self._poll_canvas()) elif lesson_return == 'select': - self.set_root(self._select_canvas()) + #self.set_root(self._select_canvas()) + self.set_canvas(SelectCanvas(self)) elif lesson_return == 'build': self.set_root(self._build_canvas()) |