From 208b07f206b5f45fd2db384c5ab3f1b64efbdf9b Mon Sep 17 00:00:00 2001 From: Simon Schampijer Date: Fri, 29 Aug 2008 12:24:08 +0000 Subject: Fix some launcher issues introduce the is_journal method for the HomeActivity and cleanup the affected code parts --- diff --git a/src/model/homeactivity.py b/src/model/homeactivity.py index 34ebda3..8965dec 100644 --- a/src/model/homeactivity.py +++ b/src/model/homeactivity.py @@ -166,6 +166,10 @@ class HomeActivity(gobject.GObject): else: return None + def is_journal(self): + """Returns boolean if the activity is of type JournalActivity""" + return self.get_type() == 'org.laptop.JournalActivity' + def get_launch_time(self): """Return the time at which the activity was first launched diff --git a/src/model/homemodel.py b/src/model/homemodel.py index b8770f0..53594c8 100644 --- a/src/model/homemodel.py +++ b/src/model/homemodel.py @@ -185,6 +185,7 @@ class HomeModel(gobject.GObject): home_activity.set_window(window) if _get_sugar_window_type(window) != 'launcher': + home_activity.props.launching = False self.emit('launch-completed', home_activity) if self._active_activity is None: @@ -286,7 +287,12 @@ class HomeModel(gobject.GObject): def _check_activity_launched(self, activity_id): home_activity = self._get_activity_by_id(activity_id) - if home_activity and home_activity.props.launching: + + if not home_activity: + logging.debug('Activity %s has been closed already.' % activity_id) + return False + + if home_activity.props.launching: logging.debug('Activity %s still launching, assuming it failed...' % activity_id) self.notify_launch_failed(activity_id) diff --git a/src/view/BuddyMenu.py b/src/view/BuddyMenu.py index 069f7b6..57ad84d 100644 --- a/src/view/BuddyMenu.py +++ b/src/view/BuddyMenu.py @@ -81,8 +81,7 @@ class BuddyMenu(Palette): else: buddy_activity_id = None - if activity is None or \ - activity.get_type() == 'org.laptop.JournalActivity' or \ + if activity is None or activity.is_journal() or \ activity.get_activity_id() == buddy_activity_id: self._invite_menu.hide() else: diff --git a/src/view/Shell.py b/src/view/Shell.py index 2584043..bfaa72e 100644 --- a/src/view/Shell.py +++ b/src/view/Shell.py @@ -93,14 +93,19 @@ class Shell(gobject.GObject): self.start_activity('org.laptop.JournalActivity') def __launch_started_cb(self, home_model, home_activity): - if home_activity.get_type() != 'org.laptop.JournalActivity': - launch_window = LaunchWindow(home_activity) - launch_window.show() + if home_activity.is_journal(): + return + + launch_window = LaunchWindow(home_activity) + launch_window.show() - self._launchers[home_activity.get_activity_id()] = launch_window - self._model.set_zoom_level(shellmodel.ShellModel.ZOOM_ACTIVITY) + self._launchers[home_activity.get_activity_id()] = launch_window + self._model.set_zoom_level(shellmodel.ShellModel.ZOOM_ACTIVITY) def __launch_failed_cb(self, home_model, home_activity): + if home_activity.is_journal(): + return + activity_id = home_activity.get_activity_id() launch_window = self._launchers[activity_id] @@ -113,6 +118,9 @@ class Shell(gobject.GObject): activity_host = ActivityHost(home_activity) self._hosts[activity_host.get_xid()] = activity_host + if home_activity.is_journal(): + return + activity_id = home_activity.get_activity_id() launch_window = self._launchers[activity_id] if launch_window: @@ -218,7 +226,7 @@ class Shell(gobject.GObject): home_model = self._model.get_home() active_activity = home_model.get_active_activity() - if active_activity.get_type() == 'org.laptop.JournalActivity': + if active_activity.is_journal(): return self.take_activity_screenshot() diff --git a/src/view/frame/activitiestray.py b/src/view/frame/activitiestray.py index 72a03fd..1311f07 100644 --- a/src/view/frame/activitiestray.py +++ b/src/view/frame/activitiestray.py @@ -55,7 +55,7 @@ class ActivityButton(RadioToolButton): self.set_icon_widget(self._icon) self._icon.show() - if self._home_activity.get_type() == "org.laptop.JournalActivity": + if self._home_activity.is_journal(): palette = JournalPalette(self._home_activity) else: palette = CurrentActivityPalette(self._home_activity) diff --git a/src/view/home/favoritesview.py b/src/view/home/favoritesview.py index b549b12..b36e664 100644 --- a/src/view/home/favoritesview.py +++ b/src/view/home/favoritesview.py @@ -379,7 +379,7 @@ class CurrentActivityIcon(CanvasIcon, hippo.CanvasItem): self.props.xo_color = home_activity.get_icon_color() self.props.size = style.STANDARD_ICON_SIZE - if home_activity.get_type() == 'org.laptop.JournalActivity': + if home_activity.is_journal(): palette = JournalPalette(home_activity) else: palette = CurrentActivityPalette(home_activity) -- cgit v0.9.1