From 3608e922650ad6cfd25b91c6549f849cb9f9d456 Mon Sep 17 00:00:00 2001 From: Ahmad Abdul Rehman Date: Thu, 3 Apr 2025 03:47:18 +0500 Subject: [PATCH] Detects Python 2 Activities_ fixes #991 --- po/sugar.pot | 7 ++++++- src/jarabe/model/shell.py | 21 +++++++++++++++------ src/jarabe/view/launcher.py | 12 ++++++++---- 3 files changed, 29 insertions(+), 11 deletions(-) diff --git a/po/sugar.pot b/po/sugar.pot index d453832698..9526b8c213 100644 --- a/po/sugar.pot +++ b/po/sugar.pot @@ -1905,7 +1905,7 @@ msgstr "" msgid "Invite to %s" msgstr "" -#: src/jarabe/view/launcher.py:158 +#: src/jarabe/view/launcher.py:162 #, python-format msgid "%s failed to start." msgstr "" @@ -2005,3 +2005,8 @@ msgstr "" #: src/jarabe/view/viewsource.py:814 msgid "Please select a file in the left panel." msgstr "" + +#: ../src/jarabe/view/launcher.py:159 +#, python-format +msgid "%s cannot start because it was made for an older version." +msgstr "" \ No newline at end of file diff --git a/src/jarabe/model/shell.py b/src/jarabe/model/shell.py index 581d969469..e790c12a93 100644 --- a/src/jarabe/model/shell.py +++ b/src/jarabe/model/shell.py @@ -723,23 +723,32 @@ def notify_launch(self, activity_id, service_name): GLib.source_remove(self._launch_timers[activity_id]) del self._launch_timers[activity_id] - timer = GLib.timeout_add_seconds(90, self._check_activity_launched, + timer = GLib.timeout_add_seconds(10, self._check_activity_launched, activity_id) self._launch_timers[activity_id] = timer def notify_launch_failed(self, activity_id): home_activity = self.get_activity_by_id(activity_id) + if home_activity: logging.debug('Activity %s (%s) launch failed', activity_id, - home_activity.get_type()) + home_activity.get_type()) + + is_python2 = hasattr(self, '_python2_activity_check') and activity_id in self._python2_activity_check + + if is_python2: + home_activity.is_python2_activity = True + + if hasattr(self, '_python2_activity_check'): + self._python2_activity_check.discard(activity_id) + if self.get_launcher(activity_id) is not None: - self.emit('launch-failed', home_activity) + self.emit('launch-failed', home_activity) else: - # activity sent failure notification after closing launcher self._remove_activity(home_activity) else: logging.error('Model for activity id %s does not exist.', - activity_id) + activity_id) def _check_activity_launched(self, activity_id): del self._launch_timers[activity_id] @@ -769,4 +778,4 @@ def get_model(): global _model if _model is None: _model = ShellModel() - return _model + return _model \ No newline at end of file diff --git a/src/jarabe/view/launcher.py b/src/jarabe/view/launcher.py index eef58978ad..7d3d9a3965 100644 --- a/src/jarabe/view/launcher.py +++ b/src/jarabe/view/launcher.py @@ -155,8 +155,13 @@ def __launch_failed_cb(home_model, home_activity): if launcher is None: logging.error('Launcher for %s is missing', activity_id) else: - launcher.error_text.props.label = _('%s failed to start.') % \ - home_activity.get_activity_name() + if hasattr(home_activity, 'is_python2_activity') and home_activity.is_python2_activity: + launcher.error_text.props.label = _('%s cannot start because it was made for an older version.') % \ + home_activity.get_activity_name() + else: + launcher.error_text.props.label = _('%s failed to start.') % \ + home_activity.get_activity_name() + launcher.error_text.show() launcher.cancel_button.connect('clicked', @@ -164,7 +169,6 @@ def __launch_failed_cb(home_model, home_activity): home_activity) launcher.cancel_button.show() - def __cancel_button_clicked_cb(button, home_activity): _destroy_launcher(home_activity) @@ -183,4 +187,4 @@ def _destroy_launcher(home_activity): return shell.get_model().unregister_launcher(activity_id) - launcher.destroy() + launcher.destroy() \ No newline at end of file