Commit Graph

641 Commits

Author SHA1 Message Date
Benjamin Berg
e05f84bc4f Icon: port to new Height-for-width Geometry Management
GTK3 has replaced [1] the GTK2 geometry management with Height-for-width
Geometry Management [2]. This means we need to replace size_request() methods
with get_preferred_{width,height}().

[1] http://developer.gnome.org/gtk3/3.0/ch25s02.html#id1525688
[2] http://developer.gnome.org/gtk3/3.0/GtkWidget.html#geometry-management

Signed-off-by: Benjamin Berg <benjamin@sipsolutions.net>
[assembled from several patches; fixed up left-over plus sign; added
description]
Signed-off-by: Sascha Silbe <silbe@activitycentral.com>
2011-12-13 17:19:52 -03:00
Sascha Silbe
327ca88ca8 Adapt to Widget.get_child_requisition() API changes
In PyGTK Widget.get_child_requisition() returned a tuple [1]. In GTK3+pygi
a Requisition object is returned instead.

Based on a patch by Benjamin Berg <benjamin@sipsolutions.net>.

[1] http://developer.gnome.org/pygtk/stable/class-gtkwidget.html#method-gtkwidget--get-child-requisition
[2] http://developer.gnome.org/gtk/stable/GtkWidget.html#gtk-widget-get-child-requisition

Signed-off-by: Sascha Silbe <silbe@activitycentral.com>
2011-12-13 17:19:52 -03:00
Simon Schampijer
0d827e7e66 Adapt to Gtk.icon_size_lookup*() API changes
In PyGTK, icon_size_lookup*() returned just the icon size as a 2-tuple [1].
In GTK3+pygi, an additional boolean value indicating whether the passed-in
value was valid is returned. [3,4]

[1] http://developer.gnome.org/pygtk/stable/class-gtkiconsource.html#function-gtk--icon-size-lookup
[2] http://developer.gnome.org/pygtk/stable/class-gtkiconsource.html#function-gtk--icon-size-lookup-for-settings
[3] http://developer.gnome.org/gtk/stable/gtk-Themeable-Stock-Images.html#gtk-icon-size-lookup
[4] http://developer.gnome.org/gtk/stable/gtk-Themeable-Stock-Images.html#gtk-icon-size-lookup-for-settings

Signed-off-by: Simon Schampijer <simon@schampijer.de>
[marked unused local variables, fixed overlong line]
Signed-off-by: Sascha Silbe <silbe@activitycentral.com>
2011-12-13 17:19:52 -03:00
Simon Schampijer
8efb7c3f93 Adapt to changed Gtk.Window.set_geometry_hints() API
Unlike PyGTK [1], GTK3+pygi [2] wants GDK Geometry and WindowHints objects,
rather than individual values.

[1] http://developer.gnome.org/pygtk/stable/class-gtkwindow.html#method-gtkwindow--set-geometry-hints
[2] http://developer.gnome.org/gtk3/3.0/GtkWindow.html#gtk-window-set-geometry-hints

Signed-off-by: Simon Schampijer <simon@schampijer.de>
[replaced description, included fix-up commit]
Signed-off-by: Sascha Silbe <silbe@activitycentral.com>
2011-12-13 17:19:52 -03:00
Simon Schampijer
10d7f7d3f9 Switch sugarext to be an introspectable library
This makes sugarext accessible through introspection. It is used
from the shell (key grabber, sound volume management) and the
shell session management.

Making the sugarext introspectable was done following the
descriptions at: http://live.gnome.org/GObjectIntrospection#Using_GI

Signed-off-by: Simon Schampijer <simon@schampijer.de>
2011-12-13 17:19:52 -03:00
Sascha Silbe
820efa56b9 Run pygi-convert.sh for automatic conversion from GTK2 to GTK3 + pygi.
This is only on a best-effort basis; the code will be in a broken state after
this patch and need to be fixed manually.

The purpose of committing the intermediate, non-working output is to make it
reproducible. It's impractical to manually review the changes.

The exact version used was 4f637212f13b197a95c824967a58496b9e3b877c from the
main pygobject repository [1] plus a custom patch [2] that hasn't been sent
upstream yet.

[1] git://git.gnome.org/pygobject
[2] https://sascha.silbe.org/patches/pygobject-convert-sugar-20111122.patch

Signed-off-by: Sascha Silbe <silbe@activitycentral.com>
2011-12-13 17:19:52 -03:00
Sascha Silbe
aed295ec4e Import GDK in preparation for GTK3 conversion
Some parts of GTK moved to GDK, so we need to import the latter for things to
work after the conversion script runs.

Signed-off-by: Sascha Silbe <silbe@activitycentral.com>
2011-12-13 17:19:52 -03:00
Simon Schampijer
9cb18cdcf3 Remove Canvas* widgets and other hippo-canvas using parts
hippo-canvas isn't available in the GTK3 world, so we need to remove
anything that depends on it. Activities that still use it will need replace
hippo-canvas based widgets with native GTK ones before they can be ported to
GTK3.

[replaced description]
Signed-off-by: Sascha Silbe <silbe@activitycentral.com>
2011-12-13 17:19:52 -03:00
Simon Schampijer
1edc6ca1b1 Don't use hippo-canvas for rendering pixbufs
hippo-canvas isn't available in the GTK3 world and we can do fine without it
for rendering pixbufs.

[split out from another patch; added description]
Signed-off-by: Sascha Silbe <silbe@activitycentral.com>
2011-12-13 17:19:52 -03:00
Simon Schampijer
af4bde1e83 Notebook: fix passing can-close-tabs
Make sure can_close_tabs can be passed in as a keyword parameter (to be set
by the GObject constructor).

[split out from another patch]
Signed-off-by: Sascha Silbe <silbe@activitycentral.com>
2011-12-13 17:19:52 -03:00
Simon Schampijer
9e4a3688fe Pass all parameters to GtkTextBuffer.get_text()
With PyGTK the include_hidden_chars parameter to GtkTextBuffer.get_text() had
a default value [1]. With GTK3+pygi the value must be explicitly passed [2].

[1] http://developer.gnome.org/pygtk/stable/class-gtktextbuffer.html#method-gtktextbuffer--get-text
[2] http://developer.gnome.org/gtk3/3.0/GtkTextBuffer.html#gtk-text-buffer-get-text

[changed description]
Signed-off-by: Sascha Silbe <silbe@activitycentral.com>
2011-12-13 17:19:52 -03:00
Simon Schampijer
056bc29559 Pass all parameters to ComboBox.set_row_separator_func()
With PyGTK, the func and data parameters to ComboBox.set_row_separator_func()
had defaults [1]. With GTK3+pygi both values must be passed [2].

[1] http://developer.gnome.org/pygtk/stable/class-gtkcombobox.html#method-gtkcombobox--set-row-separator-func
[2] http://developer.gnome.org/gtk/stable/GtkComboBox.html#gtk-combo-box-set-row-separator-func

[replaced description]
Signed-off-by: Sascha Silbe <silbe@activitycentral.com>
2011-12-13 17:19:52 -03:00
Daniel Drake
2f7f95f9af Pass all parameters to Box.pack_start() and ...pack_end()
With PyGTK, several Box.pack_{start,end}() parameters had defaults [1,2].
With GTK3+pygi all values must be passed [3,4].

[1] http://developer.gnome.org/pygtk/stable/class-gtkbox.html#method-gtkbox--pack-start
[2] http://developer.gnome.org/pygtk/stable/class-gtkbox.html#method-gtkbox--pack-end
[3] http://developer.gnome.org/gtk/stable/GtkBox.html#gtk-box-pack-start
[4] http://developer.gnome.org/gtk/stable/GtkBox.html#gtk-box-pack-end

[assembled from several patches; replaced description]
Signed-off-by: Sascha Silbe <silbe@activitycentral.com>
2011-12-13 17:19:52 -03:00
Simon Schampijer
89ef6304a1 Fix broken imports
8f1a821d68 only changed imports starting with
"import", but not those using "from ... import ...".

[replaced description]
Signed-off-by: Sascha Silbe <silbe@activitycentral.com>
2011-11-15 17:51:23 +01:00
Simon Schampijer
8f1a821d68 Rename imports from sugar to sugar3
Signed-off-by: Simon Schampijer <simon@laptop.org>
Acked-by: Sascha Silbe <silbe@activitycentral.com>
2011-11-14 19:17:32 +01:00
Simon Schampijer
000ed75cbe Rename the module to sugar3
The old gtk-2 based module will be present in
the 0.94 branch in the sugar-toolkit.

Signed-off-by: Simon Schampijer <simon@laptop.org>
Acked-by: Sascha Silbe <silbe@activitycentral.com>
2011-11-14 18:17:18 +01:00
Simon Schampijer
37568a0a7e bundlebuilder: refactor get_files_git to Packager to avoid code duplication
Follow up patch for b582736375

Signed-off-by: Simon Schampijer <simon@laptop.org>
Reviewed-by: Daniel Drake <dsd@laptop.org>
Acked-by: Sascha Silbe <silbe@activitycentral.com>
2011-09-28 11:52:38 +02:00
Simon Schampijer
29a700b34a bundlebuilder: add back build_locale functionality to XOPackager SL #3116
Due to the removal of the manifest support we lost as well
the part of the code that does build the locale. This patch
adds that functionality back.

Signed-off-by: Simon Schampijer <simon@laptop.org>
2011-09-28 11:40:52 +02:00
Daniel Drake
720b33ab30 Remove hippo from naming alert
Reimplement the favorite icon as a ToggleButton, and use standard
boxes, entrys and textviews for the other aspects.
2011-09-27 14:57:21 +01:00
Simon Schampijer
d39a813969 Don't put event box in toplevel window
Remove an unnecessary toplevel widget.

This event box was originally added by Marco "to make it easier
to take screenshot of the canvas area only" (7f731457c2) but we're
unsure why this is, and it doesn't seem to be needed for our current
screenshot-taking mechanism. Screenshots continue to work fine after
removing this.
2011-09-27 12:43:51 +01:00
Simon Schampijer
1609340503 Joining shared activity: set title for activity palette in frame, SL #3109
We need to set the title when we join a shared session AND when
we run a private session.

Signed-off-by: Simon Schampijer <simon@laptop.org>
Tested-By: Gonzalo Odiard <gonzalo@laptop.org>
Reviewed-By: Gonzalo Odiard <gonzalo@laptop.org>
Acked-by: Sascha Silbe <silbe@activitycentral.com>
2011-09-20 08:35:10 +02:00
Simon Schampijer
b582736375 XO_Packager: package files that are in git and the locale folder, OLPC #11217
There had been reports about Activities that had unexpected files in
the xo bundle (e.g. patches). There have been a recent change that the support
for the MANIFEST has been removed from the bundle builder. The MANIFEST
'controlled' which files were bundled. The code did include all the
files present in the folder (which includes patches etc).

The patch does use git-ls to get a list of files to include (like the
tarball packager). Furthermore the locale folder is included which has been
generated. Due to the API freeze we made '_get_files_in_git' a private method
which adds a bit of duplication to the 'get_files' method in the tarball
packager. A patch for master which will implement Builder.get_files_git(),
that can be used by XOPackager and SourcePackager.

Signed-off-by: Simon Schampijer <simon@laptop.org>
Reviewed-By: Daniel Drake <dsd@laptop.org>
2011-09-19 18:49:54 +02:00
Simon Schampijer
a16eedff46 Some activities segfault when closing, OLPC #11201
TurtleArt and Abacus are two known candidates

Signed-off-by: Simon Schampijer <simon@laptop.org>
Reviewed-by: Gonzalo Odiard <gonzalo@laptop.org>
2011-09-07 18:20:01 +02:00
Simon Schampijer
c1f9d716ab Correct title in the activity frame SL #3042
Signed-off-by: Simon Schampijer <simon@laptop.org>
Reviewed-by: Gonzalo Odiard <gonzalo@laptop.org>
Tested-by: Gonzalo Odiard <gonzalo@laptop.org>
2011-08-18 17:17:00 +02:00
Simon Schampijer
e022aa8e4a Do not remove the Keep button completely, keep around for backward compatibility
In order to allow activities keeping their backward compatibility
we keep the Keep button around but do not add it to the toolbar. This
fixes activities that either remove or hide the Keep button or
alter it in any other way. The Keep button is deprecated and we
discourage the usage.

Signed-off-by: Simon Schampijer <simon@laptop.org>
Reviewed-by: Gonzalo Odiard <gonzalo@laptop.org>
2011-08-17 18:04:47 +02:00
Gonzalo Odiard
507dfecc09 Add alpha and scale functionality to the icon, can be used in the launcher to do the animation - v2
Signed-off-by: Gonzalo Odiard <gonzalo@laptop.org>
        Acked-By: Simon Schampijer <simon@laptop.org>
2011-08-17 12:13:10 -03:00
Simon Schampijer
0082e10f8e Remove the Keep button from the activity toolbar
The keep button has led to a false assumption: learners
confused it with a traditional save button and not recognising
it as what it is, an option to duplicate an entry.

Eben suggested to remove the button [1] and others have since
then. The functionality of duplicating an entry will be moved
to the entry palette in the Journal and the entry detail view [2].

We will print a warning when the KeepButton is used and remove
it after another cycle.

[1] http://lists.sugarlabs.org/archive/sugar-devel/2010-April/023439.html
[2] http://lists.sugarlabs.org/archive/sugar-devel/2011-May/031316.html

Signed-off-by: Simon Schampijer <simon@laptop.org>
Acked-By: Sascha Silbe <silbe@activitycentral.com>
2011-08-15 19:29:30 +02:00
Simon Schampijer
3f0822ab1a Toolbox: replace the hippo based separator with a gtk.HSeparator
This makes the old-style Toolbar hippo free.

Signed-off-by: Simon Schampijer <simon@laptop.org>
Reviewed-by: Benjamin Berg <benzea@sugarlabs.org>
2011-08-13 09:45:14 +02:00
Simon Schampijer
17ec110798 Replace the hippo-based TimeoutIcon with one based on a gtk.Label and gtk.Alignment
This patch depends on the addition of the SugarTimeoutIcon
to the artwork where we set the font and background color.

Signed-off-by: Simon Schampijer <simon@laptop.org>
Reviewed-by: Benjamin Berg <benzea@sugarlabs.org>
2011-08-12 10:39:38 +02:00
Simon Schampijer
4018265f6c Replace our custom entry widget with one based on gtk.Entry
Our custom entry widget, which was based on sexyicon, did
support placing an icon in the entry (e.g. the magnifier icon
for the search entry) and displaying progress in the case of
the url entry in Browse. Both is supported since GTK+ 2.16 in the
gtk.Entry.

The patch does keep the old API, that is why we can land it in
0.94 no change in the shell needed only a small change in Browse,
in a second step I would like to use the upstream API e.g.
's/set_icon_from_name/set_icon_from_icon_name'.

Signed-off-by: Simon Schampijer <simon@laptop.org>
Reviewed-by: Benjamin Berg <benzea@sugarlabs.org>
2011-08-12 10:38:11 +02:00
Simon Schampijer
d0a493e532 Initialize window title with bundle name, OLPC #11037
I had to modify the patch slightly because of
0269f819761cfd803cf4d694298c8ab6a753e242, changes
reviewed by Sascha.

Signed-off-by: Gonzalo Odiard <gonzalo@laptop.org>
Acked-By: Simon Schampijer <simon@laptop.org>
Reviewed-by: Sascha Silbe <silbe@activitycentral.com>
2011-07-24 19:22:35 +02:00
Simon Schampijer
9d21fd7511 Update window title when the activity title changes - OLPC #10978
The patch updates the window title when the user changes
the title in the toolbar or in the Journal.

Signed-of-by: Gonzalo Odiard <gonzalo@laptop.org>
Acked-By: Simon Schampijer <simon@laptop.org>
2011-07-24 18:42:48 +02:00
Bernie Innocenti
e7430faac9 Remove incomplete MANIFEST support
This incomplete feature contributes to confuse new activity authors and
slightly complicates our bundle installation logic.

The day someone finds something useful to do with the MANIFEST
specification, we can revert this patch in no time.

Signed-off-by: Bernie Innocenti <bernie@codewiz.org>
Tested-by: Bernie Innocenti <bernie@codewiz.org>
Tested-by: James Cameron <quozl@laptop.org>
Tested-by: Sascha Silbe <silbe@activitycentral.com>
Reviewed-by: Sascha Silbe <silbe@activitycentral.com>
[rebased on git master, minor style fix]
Signed-off-by: Sascha Silbe <silbe@activitycentral.com>
2011-07-24 16:21:38 +00:00
Simon Schampijer
6b675ed45f Make sure the datastore entry is created in time OLPC #10755
To avoid that we try to access the datastore entry before
it has been created we need to move the creation code up,
before we do get the possible information from a shared
session. If we have a shared session we do then get the
title and icon-color information from it and adjust
accordingly.

Tested that no other operation like for example resuming
has issues with that change.

Signed-off-by: Simon Schampijer <simon@laptop.org>
Acked-By: Sascha Silbe <silbe@activitycentral.com>
2011-07-24 17:27:25 +02:00
Gonzalo Odiard
880e60bdda Sugar-toolkit: Pack page in ToolbarButton when is connected to the window - OLPC #10930
To add the accelerator to the ToolButton the activity must have set
the 'sugar-accel-group' before. The patch does make the ToolbarButton
listen to the 'hierarchy-changed' signal and repack itself accordingly.
Since the ToolButtons of the subtoolbar do listen to 'hierarchy-changed'
as well to set the accelerator they will set it accordingly.

This fixes the accelerators for new-style-toolbar activities
like Terminal, TurtleArt and Paint, more info in #10930.

Signed-by-off: Gonzalo Odiard <gonzalo@laptop.org>
Acked-by: Simon Schampijer <simon@laptop.org>
2011-07-15 18:54:29 +02:00
Daniel Drake
10580fc2a7 GlibTCPServer: defer shutdown_request to avoid closing the socket too early OLPC #10906
In Python 2.7, shutdown_request was added to the BaseServer class and
TCPServer was adopted to use it instead of close_request in the
_handle_request_noblock() path.

GlibTCPServer must be adapted to account for this, so that
shutdown_request is not allowed to prematurely allowed to close the socket,
in the same way that close_request is ignored.

Fixes collaboration in activities that rely on this mechanism for
sharing (including ImageViewer and Read)

Signed-off-by: Daniel Drake <daniel@laptop.org>
Acked-by: Simon Schampijer <simon@laptop.org>
Tested-by: Gonzalo Odiard <gonzalo@laptop.org>
Tested-by: Simon Schampijer <simon@laptop.org>
2011-06-29 14:42:53 +02:00
Simon Schampijer
7e61237c8f Debug logs for default profile
The generic path does not work for the telepathy logs. As we
have removed the support for different profiles it is ok
to just use the default path.

Signed-off-by: Simon Schampijer <simon@laptop.org>
Reviewed-By: Marco Pesenti Gritti <marco@marcopg.org>
2011-06-29 10:01:51 +02:00
Simon Schampijer
7a0d5d9398 Use 'focus-out' event instead of 'changed' event for title entry OLPC #10956, SL #2608
To determine if the title has changed we use the 'focus-out'
event now instead of the 'changed' signal of the gtk.Entry. This
removes races we had before.

Signed-off-by: Daniel Drake <dsd@laptop.org>
Acked-By: Simon Schampijer <simon@laptop.org>
Acked-By: Sascha Silbe <silbe@activitycentral.com>
2011-06-20 17:48:51 +02:00
Simon Schampijer
1ea1b2a0ab Use the activity instance name when joining a shared activity SL #2872
When we join a shared activity we use the name of the shared activity
as the title of the activity. As we set the activity metadata
accordingly this will be visible in the activity toolbar, the Journal
and the activity frame.

Signed-off-by: Simon Schampijer <simon@laptop.org>
Acked-By: Sascha Silbe <silbe@activitycentral.com>
2011-06-09 16:55:56 +02:00
Simon Schampijer
c86b6d5917 Fix invitations from a non sugar client (empathy), part of OLPC #10814
This differentiates between sugar and non sugar invitations using the
handle type. For non-sugar invitations we use the activity id to
determine which activity to join.

Signed-off-by: Simon Schampijer <simon@laptop.org>
Acked-By: Sascha Silbe <silbe@activitycentral.com>
2011-06-09 16:53:18 +02:00
Simon Schampijer
67143d8042 Only show joined buddies on sharer side, part of OLPC#10578
This is a follow-up patch to 95b4eeec758ffa729d0dbb219b21d428115fcc74

Signed-off-by: Simon Schampijer <simon@laptop.org>
Acked-By: Sascha Silbe <silbe@activitycentral.com>
2011-05-31 16:24:08 +02:00
Simon Schampijer
5b09eb1d74 Shared activity does not announce the 'buddy-left' signal OLPC #10800
This fixes a copy and paste error. A good test case is the Memorize
activity since we listen for the 'buddy-left' signal there to
update the members list inside the activity.

Signed-off-by: Simon Schampijer <simon@laptop.org>
Acked-By: Sascha Silbe <silbe@activitycentral.com>
2011-05-23 10:33:50 +02:00
Sascha Silbe
3553fbd2f0 remove obsolete comment
GTK bug #502871 [1] has been fixed in 2007.

[1] http://bugzilla.gnome.org/show_bug.cgi?id=502871

Signed-off-by: Sascha Silbe <silbe@activitycentral.com>
Acked-by: Simon Schampijer <simon@laptop.org>
2011-05-20 23:13:10 +02:00
Sascha Silbe
567bd961a5 Avoid showing decorated windows during start-up (OLPC#10713)
As a side effect, activity start-up is now subjectively faster, maybe even
objectively (due to avoiding a resize).

Tested on XO-1 running Debian Squeeze.

Acked-By: Simon Schampijer <simon@laptop.org>
2011-04-11 18:00:29 +02:00
Gonzalo Odiard
35cb4e3881 The activity icon does not handle the case of a activity without metadata.
If the activity is initiated with create_object=False

Acked-by: Sascha Silbe <silbe@activitycentral.com>
2011-04-03 17:19:54 +02:00
Simon Schampijer
17e52db2b6 Store all the buddies that have been joined in the activity metadata OLPC #10578
Before only the buddies that were present when closing the activity
were logged in the Journal. This patch does add another dictionary
'_joined_buddies' to keep track of the users that did join. The
'_buddies' dictionary keeps on tracking the users currently in the
activity.

Signed-off-by: Simon Schampijer <simon@laptop.org>
Acked-by: Sascha Silbe <silbe@activitycentral.com>
2011-03-31 12:07:53 -04:00
Sascha Silbe
85e714ecb1 fix regressions introduced by 29582de6 (fix for SL#1742)
GTK pops down the palette before it invokes the actions on the
menu item. We need to postpone destruction of the palette until
after all signals have propagated from the menu item to the
palette owner.

Symptoms included the "View Details" palette menu item in the Journal list
view not working.

Signed-off-by: Sascha Silbe <silbe@activitycentral.com>
Acked-by: Simon Schampijer <simon@laptop.org>
2011-03-27 16:39:04 +02:00
Simon Schampijer
ca02d59e11 Open content bundles on a external device #1748
Remove the path parameter as it is not used anyhow. The patch
for the sugar module does make sure the method is called
correctly.

Signed-off-by: Gonzalo Odiard <gonzalo@laptop.org>
Acked-By: Simon Schampijer <simon@laptop.org>
Reviewed-By: Sascha Silbe<silbe@activitycentral.com>
2011-03-03 11:10:26 -05:00
Sascha Silbe
17537c7710 Window: allow removing the toolbar_box
Allow the toolbar_box to be removed by setting it to None, like is supported
for canvas.

Signed-off-by: Sascha Silbe <silbe@activitycentral.com>
Acked-by: Simon Schampijer <simon@laptop.org>
2011-02-17 23:23:33 +01:00
Sascha Silbe
9d45394d40 fix whitespace mistake introduced by c7a80a1
Signed-off-by: Sascha Silbe <silbe@activitycentral.com>
Acked-by: Simon Schampijer <simon@laptop.org>
2011-02-15 21:45:46 +00:00
Sascha Silbe
11bfce1a31 sugar.activity.i18n: add pgettext()
Python 2 will never have pgettext() [1], so we need to ship our own version.
sugar.activity.i18n is the best place for that.

[1] http://bugs.python.org/issue2504#msg122482

Signed-off-by: Sascha Silbe <silbe@activitycentral.com>
Acked-by: Simon Schampijer <simon@laptop.org>
2011-02-15 21:44:57 +00:00
Simon Schampijer
b30bc0151c bundlebuilder: genpot: don't use absolute paths in filenames (SL#2508)
[tweaked description; minor style fix]
Signed-off-by: Sascha Silbe <silbe@activitycentral.com>
Tested-By: Sascha Silbe <silbe@activitycentral.com>
Reviewed-By: Sascha Silbe <silbe@activitycentral.com>
2011-02-12 19:12:43 +00:00
Martin Dengler
45fc0b6186 Throw MalformedBundleException on broken zip files
sugar.bundle.bundle.Bundle users (e.g.
jarabe.model.bundleregistry.BundleRegistry._add_bundle) only expect
MalformedBundleException to be thrown, not exceptions of zipfile.

This patch solves the most severe issue in #1876: filling up the
filesystem with temporary files that won't be deleted afterwards.

Before we can consider this bug completely fixed, we still need
to do something for the remaining issues:

 1) Unpacking shouldn't be attempted if there isn't a safety margin

 2) System becomes unresponsive during unpacking

 3) No progress indication for the operation, so users are tempted
    to click multiple times

 4) No error messages displayed for unpacking errors, which is a
    common Sugar nuisance.

http://bugs.sugarlabs.org/ticket/1876#comment:5 offers possible
strategies for (1) and (2).

Signed-off-by: Martin Dengler <martin@martindengler.com>
Signed-off-by: Bernie Innocenti <bernie@codewiz.org>
[style fixes, adjusted description]
Signed-off-by: Sascha Silbe <silbe@activitycentral.com>
Reviewed-by: Aleksey Lim <alsroot@activitycentral.org>
2011-02-05 16:30:03 +01:00
Sascha Silbe
924e2e62bf fix sugar-emulator detection logic broken by 814ab2d (has_key() cleanup)
This broke Shutdown and Restart (buddy menu).

Signed-off-by: Sascha Silbe <silbe@activitycentral.com>
2011-02-05 16:28:24 +01:00
Sascha Silbe
3b0e761f4a XoColor: don't choke if passed the wrong type (SL#1408)
Color data is stored in the Journal as a JSON dump, so we can get back
arbitrary types. XoColor already checks the color string for validity and
handles invalid strings gracefully, so it makes sense to enhance this to
invalid types as well.

Acked-by: Simon Schampijer <simon@schampijer.de>
2010-11-30 11:48:31 +00:00
Simon Schampijer
18e39672ce Apply new version scheme as well to content bundles #2425
Reviewed-by: James Cameron <quozl@laptop.org>
2010-11-25 11:23:30 +01:00
Simon Schampijer
aadfeed305 bundlebuilder: install mimetypes.xml and associated icon #2262
As we do create the ActivityBundle in the config of the bundlebuilder
we can use the code from the activitybundle as well to install
the mime type.

Reviewed-By: Sascha Silbe <sascha-pgp@silbe.org>
2010-11-24 21:39:09 +01:00
Sascha Silbe
1adc165a8c bundlebuilder: ignore incorrect pylint warning
pylint isn't smart enough to figure out the return type of Popen.communicate(),
so squelch the warning.

Reviewed-by: James Cameron <quozl@laptop.org>
Acked-by: Simon Schampijer <simon@laptop.org>
CC: Aleksey Lim <alsroot@member.fsf.org>
2010-11-23 17:14:37 +01:00
Sascha Silbe
46deeb64e6 pylint: sugar.wm._property_change_trapped: allow overriding built-in method
"format" is the name of a parameter of the function we are wrapping, so we
shouldn't change it.

Reviewed-by: James Cameron <quozl@laptop.org>
Acked-by: Simon Schampijer <simon@laptop.org>
CC: Aleksey Lim <alsroot@member.fsf.org>
2010-11-23 17:14:36 +01:00
Sascha Silbe
0521234fec CellRendererInvoker._redraw_path(): assure column is defined
We know that our code is correct and column should always be assigned, but it
never hurts to act defensively and guard against bugs in other pieces of the
code (or other components like GTK).

Reviewed-by: James Cameron <quozl@laptop.org>
Acked-by: Simon Schampijer <simon@laptop.org>
CC: Aleksey Lim <alsroot@member.fsf.org>
2010-11-23 17:14:36 +01:00
Sascha Silbe
05fd5fe2d7 ToolInvoker._get_alignments: fix missing self parameter
Caught by pylint. I wonder if we need this piece of code as nobody every
triggered it.

Reviewed-by: James Cameron <quozl@laptop.org>
Acked-by: Simon Schampijer <simon@laptop.org>
CC: Aleksey Lim <alsroot@member.fsf.org>
2010-11-23 17:14:36 +01:00
Sascha Silbe
7983242f7a pylint cleanup: initialise all attributes in __init__()
Reviewed-by: James Cameron <quozl@laptop.org>
Acked-by: Simon Schampijer <simon@laptop.org>
CC: Aleksey Lim <alsroot@member.fsf.org>
2010-11-23 17:14:36 +01:00
Sascha Silbe
adba508d8f pylint cleanup: pass format parameters to log functions instead of using %
This avoids the overhead from the string formatting on production systems.

Reviewed-by: James Cameron <quozl@laptop.org>
Acked-by: Simon Schampijer <simon@laptop.org>
CC: Aleksey Lim <alsroot@member.fsf.org>
2010-11-23 17:14:35 +01:00
Sascha Silbe
ff16cb0fa9 pylint cleanup: disable warnings for reasonable catch-all exception handlers
Reviewed-by: James Cameron <quozl@laptop.org>
Acked-by: Simon Schampijer <simon@laptop.org>
CC: Aleksey Lim <alsroot@member.fsf.org>
2010-11-23 17:14:35 +01:00
Sascha Silbe
431e36a427 sugar.util: use logging.exception instead of traceback.format_exc()
logging.exception() handles exceptions nicely for us, no need to explicitly
use traceback.

Reviewed-by: James Cameron <quozl@laptop.org>
Acked-by: Simon Schampijer <simon@laptop.org>
CC: Aleksey Lim <alsroot@member.fsf.org>
2010-11-23 17:14:35 +01:00
Sascha Silbe
3d227102c4 pylint cleanup: remove unused imports
Reviewed-by: James Cameron <quozl@laptop.org>
Acked-by: Simon Schampijer <simon@laptop.org>
CC: Aleksey Lim <alsroot@member.fsf.org>
2010-11-23 17:14:35 +01:00
Sascha Silbe
eacce98f88 pylint cleanup: replace disable-msg with disable
Adapt to upstream format change.

Reviewed-by: James Cameron <quozl@laptop.org>
Acked-by: Simon Schampijer <simon@laptop.org>
CC: Aleksey Lim <alsroot@member.fsf.org>
2010-11-23 17:14:34 +01:00
Sascha Silbe
7acfbd070f style cleanup: prefer ' for strings
Tomeu prefers ' for strings, so let's use it wherever we don't have a good
reason to use ".

Reviewed-by: James Cameron <quozl@laptop.org>
Acked-by: Simon Schampijer <simon@laptop.org>
CC: Aleksey Lim <alsroot@member.fsf.org>
2010-11-23 17:14:34 +01:00
Sascha Silbe
5f13fcfc84 style cleanup: use """ everywhere
Most of the code uses """, so adjust the few deviations.

Reviewed-by: James Cameron <quozl@laptop.org>
Acked-by: Simon Schampijer <simon@laptop.org>
CC: Aleksey Lim <alsroot@member.fsf.org>
2010-11-23 17:14:34 +01:00
Sascha Silbe
5f8ec81023 PEP8 cleanup: fix deprecated raise syntax
Reviewed-by: James Cameron <quozl@laptop.org>
Acked-by: Simon Schampijer <simon@laptop.org>
CC: Aleksey Lim <alsroot@member.fsf.org>
2010-11-23 17:14:34 +01:00
Sascha Silbe
9c7769cc21 PEP8 cleanup: fix whitespace before ':'
Reviewed-by: James Cameron <quozl@laptop.org>
Acked-by: Simon Schampijer <simon@laptop.org>
CC: Aleksey Lim <alsroot@member.fsf.org>
2010-11-23 17:14:33 +01:00
Sascha Silbe
73de340d27 PEP8 cleanup: fix spaces around keyword parameters
Reviewed-by: James Cameron <quozl@laptop.org>
Acked-by: Simon Schampijer <simon@laptop.org>
CC: Aleksey Lim <alsroot@member.fsf.org>
2010-11-23 17:14:33 +01:00
Sascha Silbe
72ed58cbca PEP8 cleanup: fix inline comment spacing
pep8 wants inline comments to be prefixed by at least two spaces. Let's just
move them to a separate line as that's easier to read anyway.

Acked-by: Simon Schampijer <simon@laptop.org>
CC: Aleksey Lim <alsroot@member.fsf.org>
2010-11-23 17:14:33 +01:00
Sascha Silbe
60707443ea PEP8 cleanup: fix whitespace around operator
Reviewed-by: James Cameron <quozl@laptop.org>
Acked-by: Simon Schampijer <simon@laptop.org>
CC: Aleksey Lim <alsroot@member.fsf.org>
2010-11-23 17:14:33 +01:00
Sascha Silbe
814ab2ddf9 PEP8 cleanup: don't use has_key()
has_key() has been deprecated for quite some time now.

Acked-by: Simon Schampijer <simon@laptop.org>
CC: Aleksey Lim <alsroot@member.fsf.org>
2010-11-23 17:14:32 +01:00
Sascha Silbe
4d978fda14 PEP8 cleanup: ensure lines are shorter than 80 characters
Caught by PEP8. This is important for Sugar because the XO has a small screen
where long lines would make the code hard to understand (because you need to
constantly scroll horizontally).

Reviewed-by: James Cameron <quozl@laptop.org>
Acked-by: Simon Schampijer<simon@schampijer.de>
CC: Aleksey Lim <alsroot@member.fsf.org>
2010-11-23 17:14:32 +01:00
Sascha Silbe
e2231d5620 PEP8 cleanup: fix number of blank lines
Caught by pep8.

Reviewed-by: James Cameron <quozl@laptop.org>
Acked-by: Simon Schampijer <simon@laptop.org>
CC: Aleksey Lim <alsroot@member.fsf.org>
2010-11-23 17:14:32 +01:00
Sascha Silbe
131c28bb72 fix EOL spaces
Reviewed-by: James Cameron <quozl@laptop.org>
Acked-by: Simon Schampijer <simon@laptop.org>
CC: Aleksey Lim <alsroot@member.fsf.org>
2010-11-23 17:14:31 +01:00
Simon Schampijer
c7a80a1e56 Add new numbering scheme #2425
- add class NormalizedVersion to parse and compare the new activity versions
- change the bundlebuilder and activitybundle to use the new scheme, instead
of an int version we expect a string that matches the format defined in
NormalizedVersion
2010-11-09 10:53:05 +01:00
Tomeu Vizoso
29582de67f Add 'cache-palette' property to Invoker #1742
Meaning that the palette will be cached after it's created.
2010-10-14 19:06:31 +02:00
Tomeu Vizoso
4fb2943ec4 Fix running multiple instances of Browse by adapting to API changes #2404
* sugar/presence/presenceservice.py: Specify the D-Bus interface when
  calling ActivityProperties.GetActivity
* sugar/activity/main.py: Set a default for the --invite option and
  make the create() D-Bus method accept a{sv} so we can pass the
  boolean value.
2010-10-05 16:36:13 +02:00
Tomeu Vizoso
7dedaeb7bb Cast floats to ints before calling cairo.ImageSurface() #2291
Otherwise Python 2.7 will raise an exception.
2010-10-04 16:56:26 +02:00
Simon Schampijer
106b9fba68 Do not break if the string contains no conversion specifier #2354 2010-09-29 16:15:59 +02:00
Tomeu Vizoso
a2b8518489 Don't try to share the activity if we couldn't find a suitable connection #2217 2010-09-10 09:45:06 +02:00
Tomeu Vizoso
0002c93e96 sugar.presence: Remove dead code and make clear which methonds are deprecated 2010-08-30 19:21:35 +02:00
Tomeu Vizoso
e21ab06e34 Read the public and private keys lazily 2010-08-26 17:07:15 +02:00
Tomeu Vizoso
d780248e87 Use Account.ConnectionStatus instead of Account.Connection.Status 2010-08-26 15:26:33 +02:00
Martin Abente
4260a53d3f Merge branch 'master' of gitorious@git.sugarlabs.org:sugar-toolkit/mainline 2010-08-23 14:22:49 -04:00
Martin Abente
f0a570b5ae Delete activities profile data when uninstall #2074
When activities are uninstalled, profile data persists. Profile
data can consume a lot of storage space. Therefore it is necessary
to delete it when required.

Signed-off-by: Martin Abente <mabente@paraguayeduca.org>
2010-08-23 14:09:33 -04:00
Tomeu Vizoso
c56154d938 Remove sugar/__init__.py, it should come from sugar-base #1868 2010-08-23 19:27:57 +02:00
Tomeu Vizoso
d156ff56a8 Address comments from Simon's review 2010-08-20 16:25:13 +02:00
Tomeu Vizoso
1af1bc9713 Address several nitpicks from Marco 2010-08-20 15:33:54 +02:00
Tomeu Vizoso
56679a3de6 Rename ActivityHandle.handle_invite to ActivityHandle.invited 2010-08-20 15:33:54 +02:00
Tomeu Vizoso
d66eb39c9b Remove unused constant 2010-08-20 15:33:54 +02:00
Tomeu Vizoso
6a12411477 Add copyright statement due to the collaboration refactoring 2010-08-20 15:33:54 +02:00
Tomeu Vizoso
fdfacaf26f Misc. pylint fixes 2010-08-20 15:33:54 +02:00
Tomeu Vizoso
fab271ac9c Wrap lines with more than 80 chars 2010-08-20 15:33:54 +02:00
Tomeu Vizoso
ead42a6945 Remove some unused imports 2010-08-20 15:33:54 +02:00
Tomeu Vizoso
1d16629d1b For several reasons, a shared activity won't survive to its connection
disconnecting and coming back.
2010-08-20 15:33:54 +02:00
Tomeu Vizoso
cd6c0101af No need to dispose the buddies currently in the activity, as it is information that is needed through the whole life of the activity instance 2010-08-20 15:33:53 +02:00