Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPootle User <translate@rt.laptop.org>2008-01-11 14:18:06 (GMT)
committer Pootle User <translate@rt.laptop.org>2008-01-11 14:18:06 (GMT)
commitb59a81b885214699147bfc5fd8b3631b9bcd5dcb (patch)
tree90731d6b34eb8c0efe522e5f3d280304e50a95fc
parent438e7461e7eb44dd9834ced522266577e86b9528 (diff)
parent676035742349f01f608eae50c4662fa3578a4c8b (diff)
Merge branch 'master' of git+ssh://dev.laptop.org/git/sugar
-rwxr-xr-xbin/sugar-shell4
-rw-r--r--lib/sugar/activity/activity.py16
-rw-r--r--lib/sugar/graphics/menuitem.py7
-rw-r--r--lib/sugar/graphics/palette.py9
-rw-r--r--shell/controlpanel/control.py5
-rw-r--r--shell/view/BuddyMenu.py2
6 files changed, 35 insertions, 8 deletions
diff --git a/bin/sugar-shell b/bin/sugar-shell
index b0f66b4..ef69fc1 100755
--- a/bin/sugar-shell
+++ b/bin/sugar-shell
@@ -20,6 +20,10 @@ import os
from ConfigParser import ConfigParser
import gettext
+# HACK we need to import numpy before gtk otherwise we traceback in
+# some locales. See http://dev.laptop.org/ticket/5559.
+import numpy
+
import pygtk
pygtk.require('2.0')
import gtk
diff --git a/lib/sugar/activity/activity.py b/lib/sugar/activity/activity.py
index d9886f9..f6dbd37 100644
--- a/lib/sugar/activity/activity.py
+++ b/lib/sugar/activity/activity.py
@@ -838,12 +838,24 @@ class Activity(Window, gtk.Container):
if response_id == gtk.RESPONSE_OK:
self.close(skip_save=True)
- def close(self, skip_save=False):
+ def can_close(self):
+ """Activities should override this function if they want to perform
+ extra checks before actually closing."""
+
+ return True
+
+ def close(self, force=False, skip_save=False):
"""Request that the activity be stopped and saved to the Journal
Activities should not override this method, but should implement write_file() to
- do any state saving instead.
+ do any state saving instead. If the application wants to control wether it can
+ close, it should override can_close().
"""
+
+ if not force:
+ if not self.can_close():
+ return
+
try:
if not skip_save:
self.save()
diff --git a/lib/sugar/graphics/menuitem.py b/lib/sugar/graphics/menuitem.py
index 1b90843..908cc1f 100644
--- a/lib/sugar/graphics/menuitem.py
+++ b/lib/sugar/graphics/menuitem.py
@@ -18,11 +18,16 @@
import gtk
from sugar.graphics.icon import Icon
+import pango
+
class MenuItem(gtk.ImageMenuItem):
- def __init__(self, text_label=None, icon_name=None):
+ def __init__(self, text_label=None, icon_name=None, text_maxlen=0):
gtk.ImageMenuItem.__init__(self, text_label)
if icon_name:
icon = Icon(icon_name=icon_name, icon_size=gtk.ICON_SIZE_MENU)
self.set_image(icon)
icon.show()
+ if text_maxlen > 0:
+ self.child.set_ellipsize(pango.ELLIPSIZE_MIDDLE)
+ self.child.set_max_width_chars(text_maxlen)
diff --git a/lib/sugar/graphics/palette.py b/lib/sugar/graphics/palette.py
index a24a806..3a27923 100644
--- a/lib/sugar/graphics/palette.py
+++ b/lib/sugar/graphics/palette.py
@@ -21,6 +21,7 @@ import gtk
import gobject
import time
import hippo
+import pango
from sugar.graphics import palettegroup
from sugar.graphics import animator
@@ -140,7 +141,8 @@ class Palette(gtk.Window):
gobject.TYPE_NONE, ([]))
}
- def __init__(self, label, accel_path=None, menu_after_content=False):
+ def __init__(self, label, accel_path=None, menu_after_content=False,
+ text_maxlen=0):
gtk.Window.__init__(self)
self.set_decorated(False)
@@ -178,6 +180,11 @@ class Palette(gtk.Window):
- 2*self.get_border_width())
self._label.set_alignment(0, 0.5)
self._label.set_padding(style.DEFAULT_SPACING, 0)
+
+ if text_maxlen > 0:
+ self._label.set_max_width_chars(text_maxlen)
+ self._label.set_ellipsize(pango.ELLIPSIZE_MIDDLE)
+
vbox.pack_start(self._label, False)
self._secondary_box = gtk.VBox()
diff --git a/shell/controlpanel/control.py b/shell/controlpanel/control.py
index 580536a..a3fa1a4 100644
--- a/shell/controlpanel/control.py
+++ b/shell/controlpanel/control.py
@@ -404,10 +404,9 @@ def set_timezone(timezone):
# Write info to the /etc/sysconfig/clock file
fd = open(_TIMEZONE_CONFIG, "w")
- fd.write('# The ZONE parameter is only evaluated by sugarcontrol.\n')
- fd.write('# The timezone of the system ' +
- 'is defined by the contents of /etc/localtime.\n')
+ fd.write('# use sugar-control-panel to change this\n')
fd.write('ZONE="%s"\n' % timezone)
+ fd.write('UTC=true\n')
fd.close()
else:
print (_("Error timezone does not exist."))
diff --git a/shell/view/BuddyMenu.py b/shell/view/BuddyMenu.py
index 7f2501d..e7e12ca 100644
--- a/shell/view/BuddyMenu.py
+++ b/shell/view/BuddyMenu.py
@@ -37,7 +37,7 @@ class BuddyMenu(Palette):
self._buddy.connect('nick-changed', self._buddy_nick_changed_cb)
owner = self._get_shell_model().get_owner()
- if buddy.get_nick() != owner.get_nick():
+ if not buddy.is_owner():
self._add_items()
def _get_shell_model(self):