From 80e913ba4af35dae32ce41f627177031d8794676 Mon Sep 17 00:00:00 2001 From: Ajay Garg Date: Sun, 12 May 2013 10:22:55 +0000 Subject: sdxo#3220: Now, activity-usage time will be updated, when an activity-window is exited. Signed-off-by: Ajay Garg --- diff --git a/src/jarabe/desktop/activitieslist.py b/src/jarabe/desktop/activitieslist.py index 7b1c9c1..9fdaa16 100644 --- a/src/jarabe/desktop/activitieslist.py +++ b/src/jarabe/desktop/activitieslist.py @@ -213,6 +213,13 @@ class ListModel(Gtk.TreeModelSort): registry.connect('bundle-changed', self.__activity_changed_cb) registry.connect('bundle-removed', self.__activity_removed_cb) + def refresh_model(self): + self._model.clear() + + registry = bundleregistry.get_registry() + for info in registry: + self._add_activity(info) + def __activity_added_cb(self, activity_registry, activity_info): self._add_activity(activity_info) @@ -248,7 +255,7 @@ class ListModel(Gtk.TreeModelSort): if activity_info.get_bundle_id() == 'org.laptop.JournalActivity': return - timestamp = activity_info.get_installation_time() + timestamp = os.stat(activity_info._path).st_mtime version = activity_info.get_activity_version() registry = bundleregistry.get_registry() diff --git a/src/jarabe/model/shell.py b/src/jarabe/model/shell.py index 1a2b919..6078b3c 100644 --- a/src/jarabe/model/shell.py +++ b/src/jarabe/model/shell.py @@ -17,6 +17,7 @@ import logging import time +import os from gi.repository import GConf from gi.repository import Wnck @@ -27,6 +28,7 @@ from gi.repository import GdkX11 import dbus from sugar3 import dispatch +from sugar3 import util from sugar3.graphics.xocolor import XoColor from gi.repository import SugarExt @@ -598,6 +600,21 @@ class ShellModel(GObject.GObject): xid = window.get_xid() activity = self._get_activity_by_xid(xid) if activity is not None: + + # Now, update the modification-time on the filesystem, + # and in the activities-list. + # + bundle_path = activity._activity_info.get_path() + current_timestamp = time.time() + + # 1. On filesystem. + os.utime(bundle_path, (os.stat(bundle_path).st_mtime, current_timestamp)) + + # 2. On the activities-list. + from jarabe.desktop.homewindow import get_instance + activities_model = get_instance()._home_box._list_view._tree_view.get_model() + activities_model.refresh_model() + activity.remove_window_by_xid(xid) if activity.get_window() is None: logging.debug('last window gone - remove activity %s', -- cgit v0.9.1