diff options
author | Thomas Jourdan <b.vehikel@googlemail.com> | 2010-01-22 17:57:26 (GMT) |
---|---|---|
committer | Thomas Jourdan <b.vehikel@googlemail.com> | 2010-01-22 17:57:26 (GMT) |
commit | 23467385171f296ab2f3e2f040ff6ae9a8438733 (patch) | |
tree | d2343316f2b4a5d85224230c6a47d31659338946 | |
parent | 765cc603da5c609444d0874b641d743407285fd8 (diff) |
Exporting PNG images to the journal.
-rw-r--r-- | MANIFEST | 1 | ||||
-rw-r--r-- | activity.py | 3 | ||||
-rw-r--r-- | ep_exporter_png.py | 115 | ||||
-rw-r--r-- | ka_controller.py | 17 | ||||
-rw-r--r-- | ka_widget.py | 1 | ||||
-rw-r--r-- | kandid.glade | 410 | ||||
-rw-r--r-- | kandid.py | 6 | ||||
-rw-r--r-- | model_locus.py | 2 | ||||
-rw-r--r-- | po/Kandid.pot | 16 | ||||
-rw-r--r-- | po/de.po | 2 | ||||
-rw-r--r-- | po/es.po | 2 | ||||
-rw-r--r-- | po/it.po | 2 | ||||
-rw-r--r-- | po/pt_BR.po | 2 |
13 files changed, 407 insertions, 172 deletions
@@ -111,6 +111,7 @@ ep_colorconstraint_bw.py ep_colorconstraint_gray.py ep_colorconstraint_none.py ep_directionconstraint_vector.py +ep_exporter_png.py ep_formater_html.py ep_layer_filledspline.py ep_layer_letterpress.py diff --git a/activity.py b/activity.py index 4cceb11..9ce62e3 100644 --- a/activity.py +++ b/activity.py @@ -79,7 +79,8 @@ class KandidActivity(activity.Activity): self._widget = ka_widget.KandidWidget(main_view) # Create a controller to connect view and model self._controller = ka_controller.KandidController( \ - self._widget.widget_tree) + self._widget.widget_tree, + self.get_activity_root()) self.set_canvas(main_view) self.kandidtube = None # Shared session diff --git a/ep_exporter_png.py b/ep_exporter_png.py new file mode 100644 index 0000000..6e10c5a --- /dev/null +++ b/ep_exporter_png.py @@ -0,0 +1,115 @@ +# coding: UTF-8 +# Copyright 2009 Thomas Jourdan +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + +import os.path +import base64 +import sys +import gtk.gdk + +import cairo +from sugar.datastore import datastore +import ka_debug +import ka_task + +_THUMB_SIZE = 100 + +class PngExporter(object): + """ + """ + def __init__(self, protozoon, init_activity_root): + """ + inv: self._protozoon is not None + inv: self._activity_root is not None + """ + self._protozoon = protozoon + self._activity_root = init_activity_root + self._export_surface = None + self._thumb_surface = None + + def export(self, width, height): + """ + pre: width > 0 + pre: height > 0 + pre: width == height + """ + task = ka_task.GeneratorTask(self.task_render, + self.on_render_completed) + task.start(self._protozoon, -1, width, height) + ka_debug.info('export: start_calculation %ux%u for %s' % + (width, height, self._protozoon.get_unique_id())) + + def task_render(self, *args, **kwargs): + """Render bitmap for exporting protozoon. + pre: len(args) == 4 + """ + protozoon, dummy, width, height = \ + args[0], args[1], args[2], args[3] + ka_debug.info('export: task_render entry: ') + self._export_surface = cairo.ImageSurface(cairo.FORMAT_ARGB32, width, height) + ctx = cairo.Context(self._export_surface) + protozoon.render(ctx, width, height) + + self._thumb_surface = cairo.ImageSurface(cairo.FORMAT_ARGB32, + _THUMB_SIZE, _THUMB_SIZE) + ctx = cairo.Context(self._thumb_surface) + protozoon.render(ctx, _THUMB_SIZE, _THUMB_SIZE) + ka_debug.info('export: task_render exit: ') + + def on_render_completed(self, *args): + """Rendering protozoon is completed. + pre: self._export_surface is not None + pre: self._thumb_surface is not None + """ + ka_debug.info('export: on_render_completed: ' + str(args[0])) + unique_id = 'kandidimage' + self._protozoon.get_unique_id() + export_filename = unique_id + '.png' + export_path = os.path.join(self._activity_root, 'instance', export_filename) + + # Create a datastore object + file_dsobject = datastore.create() + + # Write any metadata (here we specifically set the title of the file + # and specify that this is a portable network graphics file). + file_dsobject.metadata['title'] = 'Kandid Image ' + \ + self._protozoon.get_unique_id()[1:] + file_dsobject.metadata['mime_type'] = 'image/png' + + #Write the actual file to the data directory of this activity's root. + try: + self._export_surface.write_to_png(export_path) + except: + ka_debug.err('export: failed exporting to [%s] [%s] [%s]' % \ + (export_path, sys.exc_info()[0], sys.exc_info()[1])) + + #insert thumbnail image into metadata + thumb_filename = unique_id + '.thumb.png' + thumb_path = os.path.join(self._activity_root, 'instance', thumb_filename) + try: + self._thumb_surface.write_to_png(thumb_path) + thumb_in = open(thumb_path, 'rb') + file_dsobject.metadata['preview'] = \ + base64.b64encode(thumb_in.read()) + thumb_in.close() + os.unlink(thumb_path) + except: + ka_debug.err('export: failed creating preview image [%s] [%s] [%s]' % \ + (thumb_path, sys.exc_info()[0], sys.exc_info()[1])) + + #Set the file_path in the datastore. + file_dsobject.set_file_path(export_path) + + datastore.write(file_dsobject) diff --git a/ka_controller.py b/ka_controller.py index bc16334..3d111b0 100644 --- a/ka_controller.py +++ b/ka_controller.py @@ -14,6 +14,7 @@ # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +import ep_exporter_png import gtk import gtk.glade @@ -37,12 +38,13 @@ class KandidController(object): inv: self._widget_tree is not None """ - def __init__(self, init_widget_tree): + def __init__(self, init_widget_tree, init_activity_root): """ pre: init_widget_tree is not None """ self._start_from_scratch = True self._widget_tree = init_widget_tree + self._activity_root = init_activity_root self._tube = None self.surface_cache = {} self._status = ka_status.Status.instance() @@ -91,6 +93,8 @@ class KandidController(object): self.on_publishprotozoon_activate events['on_zoomprotozoon_activate_' + strix] = \ self.on_zoomprotozoon_activate + events['on_exportpng_activate_' + strix] = \ + self.on_exportpng_activate events['on_favorite_activate_' + strix] = self.on_favorite_activate events['on_awfull_activate_' + strix] = self.on_awfull_activate for cell_index in range(3): @@ -301,6 +305,17 @@ class KandidController(object): self.zoom_controller.start_calculation( self.model.protozoans[name_to_index(args[0].get_name())].copy()) + def on_exportpng_activate(self, *args): + """Publish single protozoon to all other buddies. + pre: len(args) >= 1 + """ + ka_debug.info('on_exportpng_activate [%s]' % args[0].get_name()) + protozoon = self.model.protozoans[name_to_index(args[0].get_name())] + exporter = ka_extensionpoint.create('exporter_png', + protozoon.copy(), + self._activity_root) + exporter.export(480, 480) + def on_favorite_activate(self, *args): """Set best ranking for this protozoon. pre: len(args) >= 1 diff --git a/ka_widget.py b/ka_widget.py index 0efa537..95e092d 100644 --- a/ka_widget.py +++ b/ka_widget.py @@ -73,6 +73,7 @@ class KandidWidget(object): 'awfull_menuitem_#' : _('Awful bore, replace it'), 'publishprotozoon_menuitem_#' : _('Publish to my friends'), 'zoomprotozoon_menuitem_#' : _('Zoom'), + 'exportpng_menuitem_#' : _('Send image to journal'), } self._set_localized_child_text(local, cell_index) diff --git a/kandid.glade b/kandid.glade index 48cab87..4f38a2b 100644 --- a/kandid.glade +++ b/kandid.glade @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8" standalone="no"?> <!DOCTYPE glade-interface SYSTEM "glade-2.0.dtd"> -<!--Generated with glade3 3.4.5 on Tue Jan 12 20:09:48 2010 --> +<!--Generated with glade3 3.4.5 on Tue Jan 19 21:30:31 2010 --> <glade-interface> <widget class="GtkWindow" id="kandidWindow"> <child> @@ -267,20 +267,20 @@ <property name="row_spacing">5</property> <property name="homogeneous">True</property> <child> - <widget class="GtkVBox" id="vbox_0"> + <widget class="GtkVBox" id="vbox_11"> <property name="visible">True</property> <child> - <widget class="GtkHBox" id="hbox_0"> + <widget class="GtkHBox" id="hbox_11"> <property name="visible">True</property> <child> - <widget class="GtkButton" id="open_popup_0"> + <widget class="GtkButton" id="open_popup_11"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="receives_default">True</property> <property name="response_id">0</property> - <signal name="button_press_event" handler="on_protozoon_popup_0"/> + <signal name="button_press_event" handler="on_protozoon_popup_11"/> <child> - <widget class="GtkArrow" id="arrow_0"> + <widget class="GtkArrow" id="arrow_11"> <property name="visible">True</property> <property name="arrow_type">GTK_ARROW_DOWN</property> </widget> @@ -291,14 +291,14 @@ </packing> </child> <child> - <widget class="GtkHScale" id="fitness_0"> + <widget class="GtkHScale" id="fitness_11"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="update_policy">GTK_UPDATE_DISCONTINUOUS</property> <property name="adjustment">1 0 10 1 1 1</property> <property name="digits">0</property> <property name="value_pos">GTK_POS_RIGHT</property> - <signal name="value_changed" handler="on_fitness_0_value_changed"/> + <signal name="value_changed" handler="on_fitness_11_value_changed"/> </widget> <packing> <property name="padding">5</property> @@ -311,16 +311,16 @@ </packing> </child> <child> - <widget class="GtkAspectFrame" id="aspectframe_0"> + <widget class="GtkAspectFrame" id="aspectframe_11"> <property name="visible">True</property> <property name="resize_mode">GTK_RESIZE_QUEUE</property> <property name="label_xalign">0</property> <property name="shadow_type">GTK_SHADOW_NONE</property> <child> - <widget class="GtkDrawingArea" id="drawingarea_0"> + <widget class="GtkDrawingArea" id="drawingarea_11"> <property name="visible">True</property> - <signal name="expose_event" handler="on_drawingarea_0_expose"/> - <signal name="size_allocate" handler="on_drawingarea_0_size_allocate"/> + <signal name="expose_event" handler="on_drawingarea_11_expose"/> + <signal name="size_allocate" handler="on_drawingarea_11_size_allocate"/> </widget> </child> </widget> @@ -329,22 +329,26 @@ </packing> </child> </widget> + <packing> + <property name="top_attach">1</property> + <property name="bottom_attach">2</property> + </packing> </child> <child> - <widget class="GtkVBox" id="vbox_1"> + <widget class="GtkVBox" id="vbox_10"> <property name="visible">True</property> <child> - <widget class="GtkHBox" id="hbox_1"> + <widget class="GtkHBox" id="hbox_10"> <property name="visible">True</property> <child> - <widget class="GtkButton" id="open_popup_1"> + <widget class="GtkButton" id="open_popup_10"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="receives_default">True</property> <property name="response_id">0</property> - <signal name="button_press_event" handler="on_protozoon_popup_1"/> + <signal name="button_press_event" handler="on_protozoon_popup_10"/> <child> - <widget class="GtkArrow" id="arrow_1"> + <widget class="GtkArrow" id="arrow_10"> <property name="visible">True</property> <property name="arrow_type">GTK_ARROW_DOWN</property> </widget> @@ -355,14 +359,14 @@ </packing> </child> <child> - <widget class="GtkHScale" id="fitness_1"> + <widget class="GtkHScale" id="fitness_10"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="update_policy">GTK_UPDATE_DISCONTINUOUS</property> <property name="adjustment">1 0 10 1 1 1</property> <property name="digits">0</property> <property name="value_pos">GTK_POS_RIGHT</property> - <signal name="value_changed" handler="on_fitness_1_value_changed"/> + <signal name="value_changed" handler="on_fitness_10_value_changed"/> </widget> <packing> <property name="padding">5</property> @@ -375,16 +379,16 @@ </packing> </child> <child> - <widget class="GtkAspectFrame" id="aspectframe_1"> + <widget class="GtkAspectFrame" id="aspectframe_10"> <property name="visible">True</property> <property name="resize_mode">GTK_RESIZE_QUEUE</property> <property name="label_xalign">0</property> <property name="shadow_type">GTK_SHADOW_NONE</property> <child> - <widget class="GtkDrawingArea" id="drawingarea_1"> + <widget class="GtkDrawingArea" id="drawingarea_10"> <property name="visible">True</property> - <signal name="expose_event" handler="on_drawingarea_1_expose"/> - <signal name="size_allocate" handler="on_drawingarea_1_size_allocate"/> + <signal name="expose_event" handler="on_drawingarea_10_expose"/> + <signal name="size_allocate" handler="on_drawingarea_10_size_allocate"/> </widget> </child> </widget> @@ -394,27 +398,25 @@ </child> </widget> <packing> - <property name="left_attach">3</property> - <property name="right_attach">4</property> <property name="top_attach">2</property> <property name="bottom_attach">3</property> </packing> </child> <child> - <widget class="GtkVBox" id="vbox_2"> + <widget class="GtkVBox" id="vbox_9"> <property name="visible">True</property> <child> - <widget class="GtkHBox" id="hbox_2"> + <widget class="GtkHBox" id="hbox_9"> <property name="visible">True</property> <child> - <widget class="GtkButton" id="open_popup_2"> + <widget class="GtkButton" id="open_popup_9"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="receives_default">True</property> <property name="response_id">0</property> - <signal name="button_press_event" handler="on_protozoon_popup_2"/> + <signal name="button_press_event" handler="on_protozoon_popup_9"/> <child> - <widget class="GtkArrow" id="arrow_2"> + <widget class="GtkArrow" id="arrow_9"> <property name="visible">True</property> <property name="arrow_type">GTK_ARROW_DOWN</property> </widget> @@ -425,14 +427,14 @@ </packing> </child> <child> - <widget class="GtkHScale" id="fitness_2"> + <widget class="GtkHScale" id="fitness_9"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="update_policy">GTK_UPDATE_DISCONTINUOUS</property> <property name="adjustment">1 0 10 1 1 1</property> <property name="digits">0</property> <property name="value_pos">GTK_POS_RIGHT</property> - <signal name="value_changed" handler="on_fitness_2_value_changed"/> + <signal name="value_changed" handler="on_fitness_9_value_changed"/> </widget> <packing> <property name="padding">5</property> @@ -445,16 +447,16 @@ </packing> </child> <child> - <widget class="GtkAspectFrame" id="aspectframe_2"> + <widget class="GtkAspectFrame" id="aspectframe_9"> <property name="visible">True</property> <property name="resize_mode">GTK_RESIZE_QUEUE</property> <property name="label_xalign">0</property> <property name="shadow_type">GTK_SHADOW_NONE</property> <child> - <widget class="GtkDrawingArea" id="drawingarea_2"> + <widget class="GtkDrawingArea" id="drawingarea_9"> <property name="visible">True</property> - <signal name="expose_event" handler="on_drawingarea_2_expose"/> - <signal name="size_allocate" handler="on_drawingarea_2_size_allocate"/> + <signal name="expose_event" handler="on_drawingarea_9_expose"/> + <signal name="size_allocate" handler="on_drawingarea_9_size_allocate"/> </widget> </child> </widget> @@ -464,27 +466,25 @@ </child> </widget> <packing> - <property name="left_attach">3</property> - <property name="right_attach">4</property> - <property name="top_attach">1</property> - <property name="bottom_attach">2</property> + <property name="left_attach">1</property> + <property name="right_attach">2</property> </packing> </child> <child> - <widget class="GtkVBox" id="vbox_3"> + <widget class="GtkVBox" id="vbox_8"> <property name="visible">True</property> <child> - <widget class="GtkHBox" id="hbox_3"> + <widget class="GtkHBox" id="hbox_8"> <property name="visible">True</property> <child> - <widget class="GtkButton" id="open_popup_3"> + <widget class="GtkButton" id="open_popup_8"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="receives_default">True</property> <property name="response_id">0</property> - <signal name="button_press_event" handler="on_protozoon_popup_3"/> + <signal name="button_press_event" handler="on_protozoon_popup_8"/> <child> - <widget class="GtkArrow" id="arrow_3"> + <widget class="GtkArrow" id="arrow_8"> <property name="visible">True</property> <property name="arrow_type">GTK_ARROW_DOWN</property> </widget> @@ -495,14 +495,14 @@ </packing> </child> <child> - <widget class="GtkHScale" id="fitness_3"> + <widget class="GtkHScale" id="fitness_8"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="update_policy">GTK_UPDATE_DISCONTINUOUS</property> <property name="adjustment">1 0 10 1 1 1</property> <property name="digits">0</property> <property name="value_pos">GTK_POS_RIGHT</property> - <signal name="value_changed" handler="on_fitness_3_value_changed"/> + <signal name="value_changed" handler="on_fitness_8_value_changed"/> </widget> <packing> <property name="padding">5</property> @@ -515,16 +515,16 @@ </packing> </child> <child> - <widget class="GtkAspectFrame" id="aspectframe_3"> + <widget class="GtkAspectFrame" id="aspectframe_8"> <property name="visible">True</property> <property name="resize_mode">GTK_RESIZE_QUEUE</property> <property name="label_xalign">0</property> <property name="shadow_type">GTK_SHADOW_NONE</property> <child> - <widget class="GtkDrawingArea" id="drawingarea_3"> + <widget class="GtkDrawingArea" id="drawingarea_8"> <property name="visible">True</property> - <signal name="expose_event" handler="on_drawingarea_3_expose"/> - <signal name="size_allocate" handler="on_drawingarea_3_size_allocate"/> + <signal name="expose_event" handler="on_drawingarea_8_expose"/> + <signal name="size_allocate" handler="on_drawingarea_8_size_allocate"/> </widget> </child> </widget> @@ -534,25 +534,27 @@ </child> </widget> <packing> - <property name="left_attach">3</property> - <property name="right_attach">4</property> + <property name="left_attach">1</property> + <property name="right_attach">2</property> + <property name="top_attach">1</property> + <property name="bottom_attach">2</property> </packing> </child> <child> - <widget class="GtkVBox" id="vbox_4"> + <widget class="GtkVBox" id="vbox_7"> <property name="visible">True</property> <child> - <widget class="GtkHBox" id="hbox_4"> + <widget class="GtkHBox" id="hbox_7"> <property name="visible">True</property> <child> - <widget class="GtkButton" id="open_popup_4"> + <widget class="GtkButton" id="open_popup_7"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="receives_default">True</property> <property name="response_id">0</property> - <signal name="button_press_event" handler="on_protozoon_popup_4"/> + <signal name="button_press_event" handler="on_protozoon_popup_7"/> <child> - <widget class="GtkArrow" id="arrow_4"> + <widget class="GtkArrow" id="arrow_7"> <property name="visible">True</property> <property name="arrow_type">GTK_ARROW_DOWN</property> </widget> @@ -563,14 +565,14 @@ </packing> </child> <child> - <widget class="GtkHScale" id="fitness_4"> + <widget class="GtkHScale" id="fitness_7"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="update_policy">GTK_UPDATE_DISCONTINUOUS</property> <property name="adjustment">1 0 10 1 1 1</property> <property name="digits">0</property> <property name="value_pos">GTK_POS_RIGHT</property> - <signal name="value_changed" handler="on_fitness_4_value_changed"/> + <signal name="value_changed" handler="on_fitness_7_value_changed"/> </widget> <packing> <property name="padding">5</property> @@ -583,16 +585,16 @@ </packing> </child> <child> - <widget class="GtkAspectFrame" id="aspectframe_4"> + <widget class="GtkAspectFrame" id="aspectframe_7"> <property name="visible">True</property> <property name="resize_mode">GTK_RESIZE_QUEUE</property> <property name="label_xalign">0</property> <property name="shadow_type">GTK_SHADOW_NONE</property> <child> - <widget class="GtkDrawingArea" id="drawingarea_4"> + <widget class="GtkDrawingArea" id="drawingarea_7"> <property name="visible">True</property> - <signal name="expose_event" handler="on_drawingarea_4_expose"/> - <signal name="size_allocate" handler="on_drawingarea_4_size_allocate"/> + <signal name="expose_event" handler="on_drawingarea_7_expose"/> + <signal name="size_allocate" handler="on_drawingarea_7_size_allocate"/> </widget> </child> </widget> @@ -602,27 +604,27 @@ </child> </widget> <packing> - <property name="left_attach">2</property> - <property name="right_attach">3</property> + <property name="left_attach">1</property> + <property name="right_attach">2</property> <property name="top_attach">2</property> <property name="bottom_attach">3</property> </packing> </child> <child> - <widget class="GtkVBox" id="vbox_5"> + <widget class="GtkVBox" id="vbox_6"> <property name="visible">True</property> <child> - <widget class="GtkHBox" id="hbox_5"> + <widget class="GtkHBox" id="hbox_6"> <property name="visible">True</property> <child> - <widget class="GtkButton" id="open_popup_5"> + <widget class="GtkButton" id="open_popup_6"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="receives_default">True</property> <property name="response_id">0</property> - <signal name="button_press_event" handler="on_protozoon_popup_5"/> + <signal name="button_press_event" handler="on_protozoon_popup_6"/> <child> - <widget class="GtkArrow" id="arrow_5"> + <widget class="GtkArrow" id="arrow_6"> <property name="visible">True</property> <property name="arrow_type">GTK_ARROW_DOWN</property> </widget> @@ -633,14 +635,14 @@ </packing> </child> <child> - <widget class="GtkHScale" id="fitness_5"> + <widget class="GtkHScale" id="fitness_6"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="update_policy">GTK_UPDATE_DISCONTINUOUS</property> <property name="adjustment">1 0 10 1 1 1</property> <property name="digits">0</property> <property name="value_pos">GTK_POS_RIGHT</property> - <signal name="value_changed" handler="on_fitness_5_value_changed"/> + <signal name="value_changed" handler="on_fitness_6_value_changed"/> </widget> <packing> <property name="padding">5</property> @@ -653,16 +655,16 @@ </packing> </child> <child> - <widget class="GtkAspectFrame" id="aspectframe_5"> + <widget class="GtkAspectFrame" id="aspectframe_6"> <property name="visible">True</property> <property name="resize_mode">GTK_RESIZE_QUEUE</property> <property name="label_xalign">0</property> <property name="shadow_type">GTK_SHADOW_NONE</property> <child> - <widget class="GtkDrawingArea" id="drawingarea_5"> + <widget class="GtkDrawingArea" id="drawingarea_6"> <property name="visible">True</property> - <signal name="expose_event" handler="on_drawingarea_5_expose"/> - <signal name="size_allocate" handler="on_drawingarea_5_size_allocate"/> + <signal name="expose_event" handler="on_drawingarea_6_expose"/> + <signal name="size_allocate" handler="on_drawingarea_6_size_allocate"/> </widget> </child> </widget> @@ -674,25 +676,23 @@ <packing> <property name="left_attach">2</property> <property name="right_attach">3</property> - <property name="top_attach">1</property> - <property name="bottom_attach">2</property> </packing> </child> <child> - <widget class="GtkVBox" id="vbox_6"> + <widget class="GtkVBox" id="vbox_5"> <property name="visible">True</property> <child> - <widget class="GtkHBox" id="hbox_6"> + <widget class="GtkHBox" id="hbox_5"> <property name="visible">True</property> <child> - <widget class="GtkButton" id="open_popup_6"> + <widget class="GtkButton" id="open_popup_5"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="receives_default">True</property> <property name="response_id">0</property> - <signal name="button_press_event" handler="on_protozoon_popup_6"/> + <signal name="button_press_event" handler="on_protozoon_popup_5"/> <child> - <widget class="GtkArrow" id="arrow_6"> + <widget class="GtkArrow" id="arrow_5"> <property name="visible">True</property> <property name="arrow_type">GTK_ARROW_DOWN</property> </widget> @@ -703,14 +703,14 @@ </packing> </child> <child> - <widget class="GtkHScale" id="fitness_6"> + <widget class="GtkHScale" id="fitness_5"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="update_policy">GTK_UPDATE_DISCONTINUOUS</property> <property name="adjustment">1 0 10 1 1 1</property> <property name="digits">0</property> <property name="value_pos">GTK_POS_RIGHT</property> - <signal name="value_changed" handler="on_fitness_6_value_changed"/> + <signal name="value_changed" handler="on_fitness_5_value_changed"/> </widget> <packing> <property name="padding">5</property> @@ -723,16 +723,16 @@ </packing> </child> <child> - <widget class="GtkAspectFrame" id="aspectframe_6"> + <widget class="GtkAspectFrame" id="aspectframe_5"> <property name="visible">True</property> <property name="resize_mode">GTK_RESIZE_QUEUE</property> <property name="label_xalign">0</property> <property name="shadow_type">GTK_SHADOW_NONE</property> <child> - <widget class="GtkDrawingArea" id="drawingarea_6"> + <widget class="GtkDrawingArea" id="drawingarea_5"> <property name="visible">True</property> - <signal name="expose_event" handler="on_drawingarea_6_expose"/> - <signal name="size_allocate" handler="on_drawingarea_6_size_allocate"/> + <signal name="expose_event" handler="on_drawingarea_5_expose"/> + <signal name="size_allocate" handler="on_drawingarea_5_size_allocate"/> </widget> </child> </widget> @@ -744,23 +744,25 @@ <packing> <property name="left_attach">2</property> <property name="right_attach">3</property> + <property name="top_attach">1</property> + <property name="bottom_attach">2</property> </packing> </child> <child> - <widget class="GtkVBox" id="vbox_7"> + <widget class="GtkVBox" id="vbox_4"> <property name="visible">True</property> <child> - <widget class="GtkHBox" id="hbox_7"> + <widget class="GtkHBox" id="hbox_4"> <property name="visible">True</property> <child> - <widget class="GtkButton" id="open_popup_7"> + <widget class="GtkButton" id="open_popup_4"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="receives_default">True</property> <property name="response_id">0</property> - <signal name="button_press_event" handler="on_protozoon_popup_7"/> + <signal name="button_press_event" handler="on_protozoon_popup_4"/> <child> - <widget class="GtkArrow" id="arrow_7"> + <widget class="GtkArrow" id="arrow_4"> <property name="visible">True</property> <property name="arrow_type">GTK_ARROW_DOWN</property> </widget> @@ -771,14 +773,14 @@ </packing> </child> <child> - <widget class="GtkHScale" id="fitness_7"> + <widget class="GtkHScale" id="fitness_4"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="update_policy">GTK_UPDATE_DISCONTINUOUS</property> <property name="adjustment">1 0 10 1 1 1</property> <property name="digits">0</property> <property name="value_pos">GTK_POS_RIGHT</property> - <signal name="value_changed" handler="on_fitness_7_value_changed"/> + <signal name="value_changed" handler="on_fitness_4_value_changed"/> </widget> <packing> <property name="padding">5</property> @@ -791,16 +793,16 @@ </packing> </child> <child> - <widget class="GtkAspectFrame" id="aspectframe_7"> + <widget class="GtkAspectFrame" id="aspectframe_4"> <property name="visible">True</property> <property name="resize_mode">GTK_RESIZE_QUEUE</property> <property name="label_xalign">0</property> <property name="shadow_type">GTK_SHADOW_NONE</property> <child> - <widget class="GtkDrawingArea" id="drawingarea_7"> + <widget class="GtkDrawingArea" id="drawingarea_4"> <property name="visible">True</property> - <signal name="expose_event" handler="on_drawingarea_7_expose"/> - <signal name="size_allocate" handler="on_drawingarea_7_size_allocate"/> + <signal name="expose_event" handler="on_drawingarea_4_expose"/> + <signal name="size_allocate" handler="on_drawingarea_4_size_allocate"/> </widget> </child> </widget> @@ -810,27 +812,27 @@ </child> </widget> <packing> - <property name="left_attach">1</property> - <property name="right_attach">2</property> + <property name="left_attach">2</property> + <property name="right_attach">3</property> <property name="top_attach">2</property> <property name="bottom_attach">3</property> </packing> </child> <child> - <widget class="GtkVBox" id="vbox_8"> + <widget class="GtkVBox" id="vbox_3"> <property name="visible">True</property> <child> - <widget class="GtkHBox" id="hbox_8"> + <widget class="GtkHBox" id="hbox_3"> <property name="visible">True</property> <child> - <widget class="GtkButton" id="open_popup_8"> + <widget class="GtkButton" id="open_popup_3"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="receives_default">True</property> <property name="response_id">0</property> - <signal name="button_press_event" handler="on_protozoon_popup_8"/> + <signal name="button_press_event" handler="on_protozoon_popup_3"/> <child> - <widget class="GtkArrow" id="arrow_8"> + <widget class="GtkArrow" id="arrow_3"> <property name="visible">True</property> <property name="arrow_type">GTK_ARROW_DOWN</property> </widget> @@ -841,14 +843,14 @@ </packing> </child> <child> - <widget class="GtkHScale" id="fitness_8"> + <widget class="GtkHScale" id="fitness_3"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="update_policy">GTK_UPDATE_DISCONTINUOUS</property> <property name="adjustment">1 0 10 1 1 1</property> <property name="digits">0</property> <property name="value_pos">GTK_POS_RIGHT</property> - <signal name="value_changed" handler="on_fitness_8_value_changed"/> + <signal name="value_changed" handler="on_fitness_3_value_changed"/> </widget> <packing> <property name="padding">5</property> @@ -861,16 +863,16 @@ </packing> </child> <child> - <widget class="GtkAspectFrame" id="aspectframe_8"> + <widget class="GtkAspectFrame" id="aspectframe_3"> <property name="visible">True</property> <property name="resize_mode">GTK_RESIZE_QUEUE</property> <property name="label_xalign">0</property> <property name="shadow_type">GTK_SHADOW_NONE</property> <child> - <widget class="GtkDrawingArea" id="drawingarea_8"> + <widget class="GtkDrawingArea" id="drawingarea_3"> <property name="visible">True</property> - <signal name="expose_event" handler="on_drawingarea_8_expose"/> - <signal name="size_allocate" handler="on_drawingarea_8_size_allocate"/> + <signal name="expose_event" handler="on_drawingarea_3_expose"/> + <signal name="size_allocate" handler="on_drawingarea_3_size_allocate"/> </widget> </child> </widget> @@ -880,27 +882,25 @@ </child> </widget> <packing> - <property name="left_attach">1</property> - <property name="right_attach">2</property> - <property name="top_attach">1</property> - <property name="bottom_attach">2</property> + <property name="left_attach">3</property> + <property name="right_attach">4</property> </packing> </child> <child> - <widget class="GtkVBox" id="vbox_9"> + <widget class="GtkVBox" id="vbox_2"> <property name="visible">True</property> <child> - <widget class="GtkHBox" id="hbox_9"> + <widget class="GtkHBox" id="hbox_2"> <property name="visible">True</property> <child> - <widget class="GtkButton" id="open_popup_9"> + <widget class="GtkButton" id="open_popup_2"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="receives_default">True</property> <property name="response_id">0</property> - <signal name="button_press_event" handler="on_protozoon_popup_9"/> + <signal name="button_press_event" handler="on_protozoon_popup_2"/> <child> - <widget class="GtkArrow" id="arrow_9"> + <widget class="GtkArrow" id="arrow_2"> <property name="visible">True</property> <property name="arrow_type">GTK_ARROW_DOWN</property> </widget> @@ -911,14 +911,14 @@ </packing> </child> <child> - <widget class="GtkHScale" id="fitness_9"> + <widget class="GtkHScale" id="fitness_2"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="update_policy">GTK_UPDATE_DISCONTINUOUS</property> <property name="adjustment">1 0 10 1 1 1</property> <property name="digits">0</property> <property name="value_pos">GTK_POS_RIGHT</property> - <signal name="value_changed" handler="on_fitness_9_value_changed"/> + <signal name="value_changed" handler="on_fitness_2_value_changed"/> </widget> <packing> <property name="padding">5</property> @@ -931,16 +931,16 @@ </packing> </child> <child> - <widget class="GtkAspectFrame" id="aspectframe_9"> + <widget class="GtkAspectFrame" id="aspectframe_2"> <property name="visible">True</property> <property name="resize_mode">GTK_RESIZE_QUEUE</property> <property name="label_xalign">0</property> <property name="shadow_type">GTK_SHADOW_NONE</property> <child> - <widget class="GtkDrawingArea" id="drawingarea_9"> + <widget class="GtkDrawingArea" id="drawingarea_2"> <property name="visible">True</property> - <signal name="expose_event" handler="on_drawingarea_9_expose"/> - <signal name="size_allocate" handler="on_drawingarea_9_size_allocate"/> + <signal name="expose_event" handler="on_drawingarea_2_expose"/> + <signal name="size_allocate" handler="on_drawingarea_2_size_allocate"/> </widget> </child> </widget> @@ -950,25 +950,27 @@ </child> </widget> <packing> - <property name="left_attach">1</property> - <property name="right_attach">2</property> + <property name="left_attach">3</property> + <property name="right_attach">4</property> + <property name="top_attach">1</property> + <property name="bottom_attach">2</property> </packing> </child> <child> - <widget class="GtkVBox" id="vbox_10"> + <widget class="GtkVBox" id="vbox_1"> <property name="visible">True</property> <child> - <widget class="GtkHBox" id="hbox_10"> + <widget class="GtkHBox" id="hbox_1"> <property name="visible">True</property> <child> - <widget class="GtkButton" id="open_popup_10"> + <widget class="GtkButton" id="open_popup_1"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="receives_default">True</property> <property name="response_id">0</property> - <signal name="button_press_event" handler="on_protozoon_popup_10"/> + <signal name="button_press_event" handler="on_protozoon_popup_1"/> <child> - <widget class="GtkArrow" id="arrow_10"> + <widget class="GtkArrow" id="arrow_1"> <property name="visible">True</property> <property name="arrow_type">GTK_ARROW_DOWN</property> </widget> @@ -979,14 +981,14 @@ </packing> </child> <child> - <widget class="GtkHScale" id="fitness_10"> + <widget class="GtkHScale" id="fitness_1"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="update_policy">GTK_UPDATE_DISCONTINUOUS</property> <property name="adjustment">1 0 10 1 1 1</property> <property name="digits">0</property> <property name="value_pos">GTK_POS_RIGHT</property> - <signal name="value_changed" handler="on_fitness_10_value_changed"/> + <signal name="value_changed" handler="on_fitness_1_value_changed"/> </widget> <packing> <property name="padding">5</property> @@ -999,16 +1001,16 @@ </packing> </child> <child> - <widget class="GtkAspectFrame" id="aspectframe_10"> + <widget class="GtkAspectFrame" id="aspectframe_1"> <property name="visible">True</property> <property name="resize_mode">GTK_RESIZE_QUEUE</property> <property name="label_xalign">0</property> <property name="shadow_type">GTK_SHADOW_NONE</property> <child> - <widget class="GtkDrawingArea" id="drawingarea_10"> + <widget class="GtkDrawingArea" id="drawingarea_1"> <property name="visible">True</property> - <signal name="expose_event" handler="on_drawingarea_10_expose"/> - <signal name="size_allocate" handler="on_drawingarea_10_size_allocate"/> + <signal name="expose_event" handler="on_drawingarea_1_expose"/> + <signal name="size_allocate" handler="on_drawingarea_1_size_allocate"/> </widget> </child> </widget> @@ -1018,25 +1020,27 @@ </child> </widget> <packing> + <property name="left_attach">3</property> + <property name="right_attach">4</property> <property name="top_attach">2</property> <property name="bottom_attach">3</property> </packing> </child> <child> - <widget class="GtkVBox" id="vbox_11"> + <widget class="GtkVBox" id="vbox_0"> <property name="visible">True</property> <child> - <widget class="GtkHBox" id="hbox_11"> + <widget class="GtkHBox" id="hbox_0"> <property name="visible">True</property> <child> - <widget class="GtkButton" id="open_popup_11"> + <widget class="GtkButton" id="open_popup_0"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="receives_default">True</property> <property name="response_id">0</property> - <signal name="button_press_event" handler="on_protozoon_popup_11"/> + <signal name="button_press_event" handler="on_protozoon_popup_0"/> <child> - <widget class="GtkArrow" id="arrow_11"> + <widget class="GtkArrow" id="arrow_0"> <property name="visible">True</property> <property name="arrow_type">GTK_ARROW_DOWN</property> </widget> @@ -1047,14 +1051,14 @@ </packing> </child> <child> - <widget class="GtkHScale" id="fitness_11"> + <widget class="GtkHScale" id="fitness_0"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="update_policy">GTK_UPDATE_DISCONTINUOUS</property> <property name="adjustment">1 0 10 1 1 1</property> <property name="digits">0</property> <property name="value_pos">GTK_POS_RIGHT</property> - <signal name="value_changed" handler="on_fitness_11_value_changed"/> + <signal name="value_changed" handler="on_fitness_0_value_changed"/> </widget> <packing> <property name="padding">5</property> @@ -1067,16 +1071,16 @@ </packing> </child> <child> - <widget class="GtkAspectFrame" id="aspectframe_11"> + <widget class="GtkAspectFrame" id="aspectframe_0"> <property name="visible">True</property> <property name="resize_mode">GTK_RESIZE_QUEUE</property> <property name="label_xalign">0</property> <property name="shadow_type">GTK_SHADOW_NONE</property> <child> - <widget class="GtkDrawingArea" id="drawingarea_11"> + <widget class="GtkDrawingArea" id="drawingarea_0"> <property name="visible">True</property> - <signal name="expose_event" handler="on_drawingarea_11_expose"/> - <signal name="size_allocate" handler="on_drawingarea_11_size_allocate"/> + <signal name="expose_event" handler="on_drawingarea_0_expose"/> + <signal name="size_allocate" handler="on_drawingarea_0_size_allocate"/> </widget> </child> </widget> @@ -1085,10 +1089,6 @@ </packing> </child> </widget> - <packing> - <property name="top_attach">1</property> - <property name="bottom_attach">2</property> - </packing> </child> </widget> <packing> @@ -1379,6 +1379,14 @@ <signal name="activate" handler="on_publishprotozoon_activate_0"/> </widget> </child> + <child> + <widget class="GtkMenuItem" id="exportpng_menuitem_0"> + <property name="visible">True</property> + <property name="label" translatable="yes">Send image to journal</property> + <property name="use_underline">True</property> + <signal name="activate" handler="on_exportpng_activate_0"/> + </widget> + </child> </widget> <widget class="GtkMenu" id="protozoon_menu_1"> <property name="visible">True</property> @@ -1414,6 +1422,14 @@ <signal name="activate" handler="on_publishprotozoon_activate_1"/> </widget> </child> + <child> + <widget class="GtkMenuItem" id="exportpng_menuitem_1"> + <property name="visible">True</property> + <property name="label" translatable="yes">Send image to journal</property> + <property name="use_underline">True</property> + <signal name="activate" handler="on_exportpng_activate_1"/> + </widget> + </child> </widget> <widget class="GtkMenu" id="protozoon_menu_2"> <property name="visible">True</property> @@ -1449,6 +1465,14 @@ <signal name="activate" handler="on_publishprotozoon_activate_2"/> </widget> </child> + <child> + <widget class="GtkMenuItem" id="exportpng_menuitem_2"> + <property name="visible">True</property> + <property name="label" translatable="yes">Send image to journal</property> + <property name="use_underline">True</property> + <signal name="activate" handler="on_exportpng_activate_2"/> + </widget> + </child> </widget> <widget class="GtkMenu" id="protozoon_menu_3"> <property name="visible">True</property> @@ -1484,6 +1508,14 @@ <signal name="activate" handler="on_publishprotozoon_activate_3"/> </widget> </child> + <child> + <widget class="GtkMenuItem" id="exportpng_menuitem_3"> + <property name="visible">True</property> + <property name="label" translatable="yes">Send image to journal</property> + <property name="use_underline">True</property> + <signal name="activate" handler="on_exportpng_activate_3"/> + </widget> + </child> </widget> <widget class="GtkMenu" id="protozoon_menu_4"> <property name="visible">True</property> @@ -1519,6 +1551,14 @@ <signal name="activate" handler="on_publishprotozoon_activate_4"/> </widget> </child> + <child> + <widget class="GtkMenuItem" id="exportpng_menuitem_4"> + <property name="visible">True</property> + <property name="label" translatable="yes">Send image to journal</property> + <property name="use_underline">True</property> + <signal name="activate" handler="on_exportpng_activate_4"/> + </widget> + </child> </widget> <widget class="GtkMenu" id="protozoon_menu_5"> <property name="visible">True</property> @@ -1554,6 +1594,14 @@ <signal name="activate" handler="on_publishprotozoon_activate_5"/> </widget> </child> + <child> + <widget class="GtkMenuItem" id="exportpng_menuitem_5"> + <property name="visible">True</property> + <property name="label" translatable="yes">Send image to journal</property> + <property name="use_underline">True</property> + <signal name="activate" handler="on_exportpng_activate_5"/> + </widget> + </child> </widget> <widget class="GtkMenu" id="protozoon_menu_6"> <property name="visible">True</property> @@ -1589,6 +1637,14 @@ <signal name="activate" handler="on_publishprotozoon_activate_6"/> </widget> </child> + <child> + <widget class="GtkMenuItem" id="exportpng_menuitem_6"> + <property name="visible">True</property> + <property name="label" translatable="yes">Send image to journal</property> + <property name="use_underline">True</property> + <signal name="activate" handler="on_exportpng_activate_6"/> + </widget> + </child> </widget> <widget class="GtkMenu" id="protozoon_menu_7"> <property name="visible">True</property> @@ -1624,6 +1680,14 @@ <signal name="activate" handler="on_publishprotozoon_activate_7"/> </widget> </child> + <child> + <widget class="GtkMenuItem" id="exportpng_menuitem_7"> + <property name="visible">True</property> + <property name="label" translatable="yes">Send image to journal</property> + <property name="use_underline">True</property> + <signal name="activate" handler="on_exportpng_activate_7"/> + </widget> + </child> </widget> <widget class="GtkMenu" id="protozoon_menu_8"> <property name="visible">True</property> @@ -1659,6 +1723,14 @@ <signal name="activate" handler="on_publishprotozoon_activate_8"/> </widget> </child> + <child> + <widget class="GtkMenuItem" id="exportpng_menuitem_8"> + <property name="visible">True</property> + <property name="label" translatable="yes">Send image to journal</property> + <property name="use_underline">True</property> + <signal name="activate" handler="on_exportpng_activate_8"/> + </widget> + </child> </widget> <widget class="GtkMenu" id="protozoon_menu_9"> <property name="visible">True</property> @@ -1694,6 +1766,14 @@ <signal name="activate" handler="on_publishprotozoon_activate_9"/> </widget> </child> + <child> + <widget class="GtkMenuItem" id="exportpng_menuitem_9"> + <property name="visible">True</property> + <property name="label" translatable="yes">Send image to journal</property> + <property name="use_underline">True</property> + <signal name="activate" handler="on_exportpng_activate_9"/> + </widget> + </child> </widget> <widget class="GtkMenu" id="protozoon_menu_10"> <property name="visible">True</property> @@ -1729,6 +1809,14 @@ <signal name="activate" handler="on_publishprotozoon_activate_10"/> </widget> </child> + <child> + <widget class="GtkMenuItem" id="exportpng_menuitem_10"> + <property name="visible">True</property> + <property name="label" translatable="yes">Send image to journal</property> + <property name="use_underline">True</property> + <signal name="activate" handler="on_exportpng_activate_10"/> + </widget> + </child> </widget> <widget class="GtkMenu" id="protozoon_menu_11"> <property name="visible">True</property> @@ -1764,6 +1852,14 @@ <signal name="activate" handler="on_publishprotozoon_activate_11"/> </widget> </child> + <child> + <widget class="GtkMenuItem" id="exportpng_menuitem_11"> + <property name="visible">True</property> + <property name="label" translatable="yes">Send image to journal</property> + <property name="use_underline">True</property> + <signal name="activate" handler="on_exportpng_activate_11"/> + </widget> + </child> </widget> <widget class="GtkMenu" id="incoming_menu_0"> <property name="visible">True</property> @@ -25,7 +25,8 @@ import ka_debug import ka_controller import ka_widget -TESTMODEL = '/home/strom/minimal/MinimalSzenario/kmodel' +TESTPATH = '/home/strom/minimal/MinimalSzenario/' +TESTMODEL = TESTPATH + 'kmodel' class KandidApplication(object): @@ -58,7 +59,8 @@ class KandidApplication(object): self._window.add(main_view) # Create a controller to connect view and model self._controller = ka_controller.KandidController( \ - self._widget.widget_tree) + self._widget.widget_tree, + TESTPATH) self._controller.read_file(TESTMODEL) # Display everything diff --git a/model_locus.py b/model_locus.py index 1d2ac7a..dd6d07f 100644 --- a/model_locus.py +++ b/model_locus.py @@ -39,7 +39,7 @@ class Locus(object): """ self._pattern = self._random_pattern() Locus._modulo_count = Locus._modulo_count + 1 \ - if Locus._modulo_count < 999 else 0 + if Locus._modulo_count < 999999 else 0 self._unique_id = self._pattern + str(Locus._modulo_count) if trunk == '/': self.path = '/' + self.__class__.__name__ diff --git a/po/Kandid.pot b/po/Kandid.pot index 1c26bbb..7af3f8e 100644 --- a/po/Kandid.pot +++ b/po/Kandid.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-19 18:15+0100\n" +"POT-Creation-Date: 2010-01-22 18:55+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -36,16 +36,16 @@ msgstr "" msgid "getting_started" msgstr "" -#: activity.py:175 +#: activity.py:176 msgid "Activity is shared." msgstr "" -#: activity.py:184 activity.py:231 +#: activity.py:185 activity.py:232 #, python-format msgid "I am '%s', my handle in that group is %u." msgstr "" -#: activity.py:227 +#: activity.py:228 msgid "Joined an existing shared activity." msgstr "" @@ -141,10 +141,14 @@ msgstr "" msgid "Publish to my friends" msgstr "" -#: ka_widget.py:80 -msgid "Accept protozoon" +#: ka_widget.py:76 +msgid "Send image to journal" msgstr "" #: ka_widget.py:81 +msgid "Accept protozoon" +msgstr "" + +#: ka_widget.py:82 msgid "Decline protozoon" msgstr "" @@ -18,7 +18,7 @@ msgstr "" #: activity/activity.info:2 msgid "Kandid" -msgstr "" +msgstr "Kandid" #: ep_page_gettingstarted.py:52 msgid "Getting started" @@ -19,7 +19,7 @@ msgstr "" #: activity/activity.info:2 msgid "Kandid" -msgstr "" +msgstr "Kandid" #: activity.py:176 msgid "activity is shared" @@ -19,7 +19,7 @@ msgstr "" #: activity/activity.info:2 msgid "Kandid" -msgstr "" +msgstr "Kandid" #: activity.py:176 msgid "activity is shared" diff --git a/po/pt_BR.po b/po/pt_BR.po index c4e23ba..66f9f63 100644 --- a/po/pt_BR.po +++ b/po/pt_BR.po @@ -19,7 +19,7 @@ msgstr "" #: activity/activity.info:2 msgid "Kandid" -msgstr "" +msgstr "Kandid" #: activity.py:176 msgid "activity is shared" |