From 420f73b64979f4a695c780f080c8873229260f27 Mon Sep 17 00:00:00 2001 From: Antoine van Gelder Date: Mon, 29 Oct 2007 09:21:06 +0000 Subject: JokeMachine-3.xo * Feature: Put alerts up when joke submitted and approved over mesh * Feature: Put alert up advising patience when joining a shared jokebook * Feature: Made Lesson Plans button work * Feature: Safe fallback for builds without sugar.alert * Feature: Hooked LanguageCombo up * i18n: Created (a rough!) Afrikaans translation * Fixed: Prepended Cover on preview * Fixed: Don't hardcode JokeEditor delete button position * Fixed: On read jokebook & empty -> "Edit My Jokes" -> Go to edit my jokes tab * Updated :Mesh code for dbus tubes changes --- (limited to 'pages') diff --git a/pages/choose.py b/pages/choose.py index c115f94..fee1e48 100644 --- a/pages/choose.py +++ b/pages/choose.py @@ -39,11 +39,10 @@ class Choose(Page): Page.__init__(self) # page title - self.append(hippo.CanvasText( - text= 'Choose a Jokebook to read:', - xalign=hippo.ALIGNMENT_START, - padding=10, - font_desc=theme.FONT_BODY.get_pango_desc())) + self.append(hippo.CanvasText(text= _('Choose a Jokebook to read:'), + xalign=hippo.ALIGNMENT_START, + padding=10, + font_desc=theme.FONT_BODY.get_pango_desc())) # list of Jokebooks allow_edit = Globals.JokeMachineActivity.is_initiator @@ -63,12 +62,15 @@ class Choose(Page): def __do_clicked_delete(self, button, jokebook): + message = _('Are you sure you want to delete your ') + if jokebook.title is not None: + message += '\'' + jokebook.title + '\' ' + message += _('jokebook ?') confirm = gtk.MessageDialog(Globals.JokeMachineActivity, gtk.DIALOG_MODAL | gtk.DIALOG_DESTROY_WITH_PARENT, gtk.MESSAGE_QUESTION, gtk.BUTTONS_YES_NO, - _('Are you sure you want to delete your') + \ - ' \'' + jokebook.title + '\' ' + _('jokebook ?')) + message) response = confirm.run() confirm.hide() confirm.destroy() diff --git a/pages/edit.py b/pages/edit.py index b213655..a2ad0c0 100644 --- a/pages/edit.py +++ b/pages/edit.py @@ -132,7 +132,7 @@ class Edit(Page): def do_tab_clicked(self, page_class): print page_class self.__page_selector.page = page_class(self.__jokebook, self) - + return self.__page_selector.page class EditInfo(Page): # TODO -> gui.Page should follow this pattern rather @@ -143,6 +143,8 @@ class EditInfo(Page): # TODO -> gui.Page should follow this pattern rather spacing=20, box_height=theme.TABS_HEIGHT) + self.__parent = parent + # page title self.append(self.make_field(_('Title of Jokebook:'), 250, jokebook, 'title', 300, True)) #field = self.make_field(_('Sound Effect:'), 250, None, '', 300, False) @@ -167,34 +169,31 @@ class EditJokes(Page): def __init__(self, jokebook, parent): Page.__init__(self) + self.__parent = parent + # list of jokes jokes_div = CanvasListBox(800, theme.TABS_HEIGHT) jokes_div.props.border=0 for joke in jokebook.jokes: - list_row = self.make_listrow(JokeEditor(joke)) button = gtk.Button(' ' + _('Delete') + ' ') - button.connect('clicked', self.__do_clicked_delete, jokebook, joke, parent) + button.connect('clicked', self.__do_clicked_delete, jokebook, joke) + list_row = self.make_listrow(JokeEditor(joke)) list_row.append(hippo.CanvasWidget(widget=theme.theme_widget(button), - border_color=theme.COLOR_RED.get_int(), - border=0, - padding_top=10, - padding_bottom=10, - padding_left=85)) - #xalign=hippo.ALIGNMENT_END)) + padding=5), + hippo.PACK_END) jokes_div.append(list_row) self.append(jokes_div) # new joke button buttons = hippo.CanvasBox(orientation=hippo.ORIENTATION_HORIZONTAL, xalign=hippo.ALIGNMENT_START) - button = gtk.Button(_('Add New Joke')) - button.connect('clicked', self.__do_clicked_add_joke, jokebook, parent) + button.connect('clicked', self.do_clicked_add_joke, jokebook) buttons.append(hippo.CanvasWidget(widget=theme.theme_widget(button))) jokes_div.append(buttons) - def __do_clicked_delete(self, button, jokebook, joke, parent): + def __do_clicked_delete(self, button, jokebook, joke): confirm = gtk.MessageDialog(Globals.JokeMachineActivity, gtk.DIALOG_MODAL | gtk.DIALOG_DESTROY_WITH_PARENT, gtk.MESSAGE_QUESTION, @@ -207,10 +206,10 @@ class EditJokes(Page): if response == gtk.RESPONSE_YES: logging.debug('Deleting joke: %s' % joke.id) jokebook.jokes.remove(joke) - parent.do_tab_clicked(EditJokes) + self.__parent.do_tab_clicked(EditJokes) - def __do_clicked_add_joke(self, button, jokebook, parent): + def do_clicked_add_joke(self, button, jokebook): # create a new joke joke = persistence.joke.Joke() joke.id = jokebook.next_joke_id @@ -219,7 +218,7 @@ class EditJokes(Page): jokebook.jokes.append(joke) # reload tab - parent.do_tab_clicked(EditJokes) + self.__parent.do_tab_clicked(EditJokes) @@ -227,6 +226,8 @@ class EditReview(Page): def __init__(self, jokebook, parent): Page.__init__(self) + self.__parent = parent + jokes_div = CanvasListBox(800, theme.TABS_HEIGHT) jokes_div.props.border=0 for joke in jokebook.submissions: @@ -239,14 +240,14 @@ class EditReview(Page): padding=10) button = gtk.Button(' ' + _('Reject') + ' ') - button.connect('clicked', self.__do_clicked_reject, jokebook, joke, parent) + button.connect('clicked', self.__do_clicked_reject, jokebook, joke) buttons.append(hippo.CanvasWidget(widget=theme.theme_widget(button), border_color=theme.COLOR_RED.get_int(), border=0, xalign=hippo.ALIGNMENT_CENTER)) button = gtk.Button(' ' + _('Accept') + ' ') - button.connect('clicked', self.__do_clicked_accept, jokebook, joke, parent) + button.connect('clicked', self.__do_clicked_accept, jokebook, joke) buttons.append(hippo.CanvasWidget(widget=theme.theme_widget(button), border_color=theme.COLOR_RED.get_int(), border=0, @@ -282,22 +283,18 @@ class EditReview(Page): self.append(jokes_div) - def __do_clicked_accept(self, button, jokebook, joke, parent): + def __do_clicked_accept(self, button, jokebook, joke): jokebook.jokes.append(joke) jokebook.submissions.remove(joke) - parent.do_tab_clicked(EditReview) - - if not Globals.JokeMachineActivity.is_shared: - return - - # broadcast submission onto the mesh - logging.debug('Broadcasting joke to mesh') - pickle = joke.dumps() - Globals.JokeMachineActivity.tube.BroadcastJoke(jokebook.id, pickle) - logging.debug('Broadcasted joke to mesh') - + self.__parent.do_tab_clicked(EditReview) + if Globals.JokeMachineActivity.is_shared: + # broadcast submission onto the mesh + logging.debug('Broadcasting joke to mesh') + pickle = joke.dumps() + Globals.JokeMachineActivity.tube.BroadcastJoke(jokebook.id, pickle, Globals.nickname) + logging.debug('Broadcasted joke to mesh') - def __do_clicked_reject(self, button, jokebook, joke, parent): + def __do_clicked_reject(self, button, jokebook, joke): jokebook.submissions.remove(joke) - parent.do_tab_clicked(EditReview) + self.__parent.do_tab_clicked(EditReview) diff --git a/pages/joke.py b/pages/joke.py index fedd50e..43d0764 100644 --- a/pages/joke.py +++ b/pages/joke.py @@ -100,6 +100,11 @@ class Joke(Page): button.connect('clicked', self.__do_clicked_submit, jokebook, joke_id) self.append(hippo.CanvasWidget(widget=theme.theme_widget(button), padding_top=20)) + else: + button = gtk.Button(_('Add Jokes')) + button.connect('clicked', self.__do_clicked_add, jokebook, joke_id) + self.append(hippo.CanvasWidget(widget=theme.theme_widget(button), + padding_top=20)) return # the joke box @@ -152,7 +157,12 @@ class Joke(Page): button.connect('clicked', self.__do_clicked_submit, jokebook, joke_id) self.navigation_box.append(hippo.CanvasWidget(widget=theme.theme_widget(button), padding_top=20)) + + def __do_clicked_add(self, button, jokebook, joke_id): + page = Globals.JokeMachineActivity.set_page(pages.edit.Edit, jokebook) + tab = page.do_tab_clicked(pages.edit.EditJokes) + tab.do_clicked_add_joke(None, jokebook) def __do_clicked_submit(self, button, jokebook, joke_id): Globals.JokeMachineActivity.set_page(pages.submit.Submit, jokebook, joke_id) diff --git a/pages/preview.py b/pages/preview.py index de5bc3a..66e1811 100644 --- a/pages/preview.py +++ b/pages/preview.py @@ -37,6 +37,21 @@ class Preview(Page): Page.__init__(self, xalign=hippo.ALIGNMENT_CENTER) preview_box = CanvasListBox(1028, theme.PREVIEW_HEIGHT) # TODO - really shouldn't be hardcoded + + # cover + cover = self.make_listrow() + cover.props.orientation=hippo.ORIENTATION_VERTICAL + cover.append(hippo.CanvasText(text='"' + jokebook.title + '" ' + _('started by') + ' ' + jokebook.owner, + xalign=hippo.ALIGNMENT_CENTER, + padding_top=10, + font_desc=theme.FONT_BODY_BOLD.get_pango_desc())) + cover.append(hippo.CanvasBox(box_height=theme.SPACER_VERTICAL)) + cover_picture = self.make_imagebox(jokebook, 'image', 640, 480, False) + cover.append(cover_picture) + cover.append(hippo.CanvasBox(box_height=theme.SPACER_VERTICAL)) + preview_box.append(cover) + + # jokes for joke in jokebook.jokes: list_row = self.make_listrow(JokeViewer(joke, jokebook.title)) preview_box.append(list_row) -- cgit v0.9.1