Commit Graph

154 Commits

Author SHA1 Message Date
Gonzalo Odiard 1bd8349b84 Deprecate create_jobject parameter on activity.py - Fixes #3450
As the ticket describe, create a object in the Journal
is no longer optional. The change do not break activities,
because the optional parameter is not removed, just ignored.
2015-10-05 00:41:21 -03:00
Gonzalo Odiard 7c804354a0 Improve documentation on activity module 2015-08-25 16:25:55 -03:00
Gonzalo Odiard 100a6b56b6 Check if parameter 'options' is None in cmd_dist_xo
When is used to clone a activity from sugar,
the options parameter is set to None.
The other uses of no_fail have False as default value
but this case was missing.
The effect of this error is that a .xo is not created in the Journal,
when the user select 'Duplicate' in the View Source window.
2015-08-05 17:13:17 -03:00
Gonzalo Odiard 04d8f596bc Add get_bundle method to activity.py
When a programmer need open one activity from other [1]
usually need display in the user interface information about the activity
to open, like the name or the icon.
This method allow get this information, previously only available on jarabe.

[1] http://wiki.sugarlabs.org/go/Features/Start_activity_from_another_activity
2015-07-03 15:03:27 -03:00
Martin Abente Lahaye e8553c13a1 Add skip-install-mime option to bundlebuilder
Historically, distro packagers have been using bunblebuilder, via
"setup.py install", to populate packages directories and files.

The install procedure uses ActivityBundle.install_mime_type to install
custom mime types, by creating symlinks and updating the system mime
types database via the update-mime-database tool.

When ActivityBundle.install_mime_type is executed during packages
creation, the symlinks end-up broken in the final package and the use
of update-mime-database populates the final packages with a new copy
of the database files which could clash with the system copy.

This patch adds a new option, called --skip-install-mime to "setup.py
install" to skip the execution of ActivityBundle.install_mime_type and
avoid the issues mentioned above.

Activity packagers should use this new option. The creation of symlinks
and the execution of update-mime-database should be done in post install
packaging steps.

Signed-off-by: Martin Abente Lahaye <tch@sugarlabs.org>
2015-05-28 16:30:04 -04:00
Gonzalo Odiard bbdebce0d4 Simplify routine used to get the list of files from git
This change remove duplicated code
2015-05-15 20:37:21 +10:00
Gonzalo Odiard 34b0e17e95 Add screenshots to ignored dirs in bundlebuilder
After add the directory to the IGNORE_DIRS array,
we need make the standard procedure to get the list off files
for the bundle, get_files_in_git honor the configured ignored
files and dirs. That was not a problem until now,
because that files was already not added to git,
but in the case of the screenshots, are included in git,
but we don't want include them in our bundles.
2015-05-15 20:37:21 +10:00
Sam Parkinson a56282991f Add ability to launch a bundle
This commit adds the `launch_bundle` function in `sugar3.activity.
activity` which accesses the same function in the shell is over dbus.
This is means the shell process launches the bundle.  Activities
should not launch child processes as per the Rainbow security model
[1].

[1]  http://wiki.laptop.org/go/Rainbow
2015-05-12 16:11:49 -03:00
Gonzalo Odiard 026146a081 Pep8 fixes 2015-04-17 08:05:58 +10:00
Gonzalo Odiard 954be953ca Remove new line chars when create linfo files
If a translator add a '\n' char in the summary translation
ConfigParser can't parse the linfo file.
Remove them when the file is created and show a message to warning
to the developer.
2015-04-17 08:05:58 +10:00
Martin Abente Lahaye 06c3f01998 Revert "Add ability to launch a bundle"
This reverts commit 8fcb0b48d3.
2015-04-12 10:11:59 -04:00
Manuel Quiñones 8fcb0b48d3 Add ability to launch a bundle
FIXME, to be written.
2015-04-12 20:02:11 +10:00
Sam Parkinson 712682a3b0 BundleBuilder: Don't crash on malformed translation files
The BundleBuilder currently crashes on a malformed translation file.  This is
good for humans (makes them fix their issues) but crashes bots who need it
compiled and don't care about that single translation file.

This patch adds a --no-fail option which stops the builder from crashing
2014-11-22 02:40:59 -03:00
Sam Parkinson f48c3247f6 Merge branch 'godiard-bundlebuilder_gitls' 2014-10-18 19:31:08 +11:00
Gonzalo Odiard e50a90c243 Bundlebuilder check if activity files are in git
git version 1.9.3, in a activity directory created inside sugar-build/activities
return a empty string when the command "git ls-files" is executed,
and no repository is configured.
We need verify that condition, and process a file list from the filesystem.
2014-10-13 23:01:29 -03:00
Martin Abente Lahaye 98a29ae12c Save spent time on activities
Use set_active and save events to keep track of the time,
in seconds, that the activity is on the main screen. The
time is calculated and stored each time an activity is
open/resumed and closed. Therefore, each activity entry
will have an array of seconds for each time it was used.

This makes a 1 to 1 relationship between the spent and
lauch times. In orders words, we can reflect not only the
"when", but also the " for how long".

Even though this time does not necessarily represents the
real time the user "used" the activity, it is a low-cost
approach for reflecting time.

This is a long requested featured from deployments that have
been using statistics tools on journal metadata, and this
patch is already being used by OLPC-AU.

Signed-off-by: Martin Abente Lahaye <tch@sugarlabs.org>
2014-10-02 13:24:59 -04:00
Sam Parkinson 6e81c67622 Remove a double / in webkit1 activity's request's filenames 2014-06-13 09:43:50 -03:00
Gonzalo Odiard 568e0254d7 Pep8 fix 2014-05-05 09:26:37 -03:00
Walter Bender d0cca91fe8 Assign max_participants in activity.info
As part of an effort to "honor" max_participants, this patch supports setting
max_participants in activity.info, thus making it available in the bundle.

By default, if it is not set in the bundle, the previous behavior persists.

In support of this change, a cache of Activity bundles is
maintained. The goal is to eliminate unnecessary calls to the file
system.
2014-05-02 10:41:12 -03:00
Gonzalo Odiard e47feb3b0f Make webactivity and webkit1 implementations independient
We can't import webkit and Webkit2 in the same process
and that was introduced in 4ea52b3173

Signed-off-by: Gonzalo Odiard <godiard@sugarlabs.org>
2014-04-09 13:04:37 -03:00
Sam Parkinson 4ea52b3173 Now show sugar object choosers as file pickers in web activities 2014-03-29 21:48:28 +00:00
Daniel Narvaez 01ed63ee4b Fixes for pep8 1.5 2014-03-29 19:25:34 +00:00
Sam Parkinson cbf325d994 Extend API for activities notifications
Add a new method, called notify_user, to the base
Activity class.

This method can be used by activity developers to
send notifications to the new notification front
end. ie.,

    self.notify_user('New High Score!',
                     'Your score is over 8999')
2014-03-28 12:20:51 -04:00
gauravp94 cf45a7a732 Add verbosity to the activity tests 2014-03-17 00:25:24 +05:30
gauravp94 d4b2e87276 port optparse to argparse in bundlebuilder.py 2014-03-11 02:06:35 +05:30
Gonzalo Odiard 62b60fa1e1 Inhibit suspend while a activity is shared
In some network environments, suspend/reume can make loose
messages and break collaboration. This patch inhibit suspend
when collaboration start. The implementation can be used by activities
or Sugar to inhibit suspend/resume when needed.

More information in http://dev.laptop.org/ticket/10363

Signed-off-by: Gonzalo Odiard <gonzalo@laptop.org>
2014-01-31 11:08:41 -03:00
Gonzalo Odiard cf7a5905fd Remove unused code
Fixes pyflakes error

Signed-off-by: Gonzalo Odiard <godiard@sugarlabs.org>
2014-01-31 01:48:32 +01:00
Gonzalo Odiard 30b67cc3d1 Webkit1 compatibility: send 404 error if the file don't exists
Signed-off-by: Gonzalo Odiard <godiard@sugarlabs.org>
2014-01-30 12:08:55 -03:00
Sam Parkinson 8c8c913cb2 Fixes #1929, update toolbar examples in activity doc strings 2014-01-27 11:15:28 +11:00
Sai Vineet 29738c9087 Add Activity Testing API and check command to setup.py
./setup.py check now invokes tests in tests/ directory. tests directory should
have integration(UI tests) and unit(unit tests) sub directories, but it isn't
necessary to have any dir. of the above.
2014-01-03 14:33:58 +00:00
Emil Dudev db2ba3e579 GConf to GSettings port 2013-12-27 17:39:02 +00:00
akskumarnot 81b388c554 Use proper formatting syntax, fixes #2170 2013-12-26 15:57:33 +01:00
Gonzalo Odiard f52b4e1a96 Make webactivity compatible with webkit1
If a env variable SUGAR_USE_WEBKIT1 exists,
uses a different module to start the activity using a local webserver,
borrowed from wikipedia activity.
When use webkit1 the web inspector is not enabled, because do not work.

Signed-off-by: Manuel Quiñones <manuq@laptop.org>
Signed-off-by: Gonzalo Odiard <gonzalo@laptop.org>
2013-12-13 10:56:21 -03:00
Gonzalo Odiard c47b842fb9 Fix mistake in the last commit
Error detected by the tests.

Signed-off-by: Gonzalo Odiard <gonzalo@laptop.org>
2013-12-02 17:46:18 -03:00
Gonzalo Odiard b8074549f6 Fix cloning activity in sugar - SL #4608
Probably this code was not included in the initial port from gtk2 to
gtk3, because is only used by Sugar, but now we need it.

I changed the way the parameter dist_name is used,
then a complementary patch in sugar is needed

Fixes #4608

Signed-off-by: Gonzalo Odiard <gonzalo@laptop.org>
2013-11-29 16:14:07 -03:00
Daniel Narvaez e908aeb8ca Remove unused imports 2013-09-11 16:34:48 +02:00
Daniel Narvaez d12a1d5131 Fix translations domains to point to new toolkit 2013-09-11 16:02:47 +02:00
Daniel Narvaez b83ddaefaf Revert "Fix translations domains to point to new toolkit"
This reverts commit abe0de3ef8.
2013-09-11 15:59:34 +02:00
Daniel Narvaez abe0de3ef8 Fix translations domains to point to new toolkit 2013-09-11 15:27:46 +02:00
Daniel Narvaez 9717e5954b Fix translations in non standard prefix
This drops a lot of code at the same time. The code in
__init__ was:

* Using a SUGAR_PREFIX environment variable that is not
defined anywhere
* Hardcoding prefix to /usr
* Setting up the sugar-base domain which doesn't exist anymore

The i18n module code was overcomplex because it was thought
for language packs which we don't support anymore, it was
not handling correctly locales with a country prefix, it
was hard coding the python prefix and it was not sorting
the directories as it intended too anyway.

The logic is very simple now. Use the locale directory in
the same prefix sugar-toolkit-gtk3 was installed, unless
SUGAR_LOCALEDIR is defined (for self contained bundles).
2013-09-10 22:55:11 +02:00
Manuel Quiñones fa7a765f4e Drop session.py
SessionManager has been moved to shell, and the other class has
nothing inside.
2013-09-02 21:38:49 +02:00
Manuel Quiñones d45560e3c7 Web activity: quit the GTK main loop when activity is destroyed
Fixes #4603 .

In GTK activities, this is done by _ActivitySession when the activity
unregisters itself, in _complete_close method.

Making the web activity aware of session logout will be handled in
another patch for the shell, see http://bugs.sugarlabs.org/ticket/4611
2013-08-30 08:36:28 -03:00
Manuel Quiñones c8fa6bd694 Web activity: set activity name as the title of the window - SL #4605
At least View Source uses it.
2013-08-30 08:22:10 -03:00
Daniel Drake 147d80aa78 ActivityFactory: don't run which to check for rainbow
One less thing to do in the common activity startup path.
Also, which might not be available.
2013-07-13 11:05:41 -06:00
Daniel Narvaez 363eef5293 Fix pep8 2013-07-05 00:57:03 +02:00
surajgillespie 8c736d3870 Pass activity name to the webactivity 2013-07-05 00:53:23 +02:00
Daniel Drake efaf9f9b2f Avoid use of uuid module
Upon import of uuid, that module uses ctypes.util to find libuuid/libc,
which involves forking a shell process which then forks and runs ldconfig.

ldconfig performs a whole bunch of disk accesses. This is a slowdown.

uuid.getnode() is also documented to be slow. Lets avoid using it in
the activity launch path; we don't need such a high degree of
randomness.

This makes activities launch 1-2 seconds faster on XO-1.
2013-07-04 11:43:54 -06:00
William Orr 8a6c935dd0 pep8'd sugar3.activity 2013-06-11 15:06:49 +02:00
Daniel Narvaez 9396b09ee4 Send bundleId and objectId to javascript
Also use the json module to generate the environemnt
dictionary string. This takes care of a None objectId
cleanly.
2013-06-10 15:46:54 +02:00
Gonzalo Odiard 58bab9cf6a Do not use the translated summary to get the value from gettext in the bundle builder
This patch is a rebased push from pull request #31

Signed-off-by: Gonzalo Odiard <gonzalo@laptop.org>
2013-06-10 15:46:54 +02:00