Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas 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)
commit23467385171f296ab2f3e2f040ff6ae9a8438733 (patch)
treed2343316f2b4a5d85224230c6a47d31659338946
parent765cc603da5c609444d0874b641d743407285fd8 (diff)
Exporting PNG images to the journal.
-rw-r--r--MANIFEST1
-rw-r--r--activity.py3
-rw-r--r--ep_exporter_png.py115
-rw-r--r--ka_controller.py17
-rw-r--r--ka_widget.py1
-rw-r--r--kandid.glade410
-rw-r--r--kandid.py6
-rw-r--r--model_locus.py2
-rw-r--r--po/Kandid.pot16
-rw-r--r--po/de.po2
-rw-r--r--po/es.po2
-rw-r--r--po/it.po2
-rw-r--r--po/pt_BR.po2
13 files changed, 407 insertions, 172 deletions
diff --git a/MANIFEST b/MANIFEST
index 0f718d9..ee1ca65 100644
--- a/MANIFEST
+++ b/MANIFEST
@@ -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>
diff --git a/kandid.py b/kandid.py
index b754ccf..14130bf 100644
--- a/kandid.py
+++ b/kandid.py
@@ -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 ""
diff --git a/po/de.po b/po/de.po
index f01c7da..b70d4fb 100644
--- a/po/de.po
+++ b/po/de.po
@@ -18,7 +18,7 @@ msgstr ""
#: activity/activity.info:2
msgid "Kandid"
-msgstr ""
+msgstr "Kandid"
#: ep_page_gettingstarted.py:52
msgid "Getting started"
diff --git a/po/es.po b/po/es.po
index 54044b9..cc6a3e9 100644
--- a/po/es.po
+++ b/po/es.po
@@ -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/it.po b/po/it.po
index 4eace1e..46b681f 100644
--- a/po/it.po
+++ b/po/it.po
@@ -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"