From 4ca48ffd0977e023dcadc1a08b9c05bc3f2d7ba2 Mon Sep 17 00:00:00 2001 From: Tomeu Vizoso Date: Thu, 19 Apr 2007 12:12:57 -0300 Subject: [PATCH 1/3] Look for gecko-prefs.js and mime.types in the correct location. --- browser/sugar-browser.cpp | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/browser/sugar-browser.cpp b/browser/sugar-browser.cpp index 273cea8f..df5769b2 100644 --- a/browser/sugar-browser.cpp +++ b/browser/sugar-browser.cpp @@ -65,6 +65,8 @@ #include #include +#define SUGAR_PATH "SUGAR_PATH" + enum { PROP_0, PROP_PROGRESS, @@ -161,9 +163,11 @@ sugar_browser_startup(const char *profile_path, const char *profile_name) NS_ENSURE_TRUE(prefService, FALSE); /* Read our predefined default prefs */ + nsCString pathToPrefs(g_getenv(SUGAR_PATH)); + pathToPrefs.Append("/data/gecko-prefs.js"); + nsCOMPtr file; - NS_NewNativeLocalFile(nsCString(SHARE_DIR"/gecko-prefs.js"), - PR_TRUE, getter_AddRefs(file)); + NS_NewNativeLocalFile(pathToPrefs, PR_TRUE, getter_AddRefs(file)); NS_ENSURE_TRUE(file, FALSE); rv = prefService->ReadUserPrefs (file); @@ -176,7 +180,10 @@ sugar_browser_startup(const char *profile_path, const char *profile_name) prefService->GetBranch ("", getter_AddRefs(pref)); NS_ENSURE_TRUE(pref, FALSE); - pref->SetCharPref ("helpers.private_mime_types_file", SHARE_DIR"/mime.types"); + nsCString pathToMimeTypes(g_getenv(SUGAR_PATH)); + pathToMimeTypes.Append("/data/mime.types"); + + pref->SetCharPref ("helpers.private_mime_types_file", pathToMimeTypes.get()); rv = prefService->ReadUserPrefs (nsnull); if (NS_FAILED(rv)) { From 96b0bd1cfa97ff2e5f8eba0a1dbc9656acf27864 Mon Sep 17 00:00:00 2001 From: Tomeu Vizoso Date: Thu, 19 Apr 2007 12:13:38 -0300 Subject: [PATCH 2/3] Recognize downloaded .xo as such. --- data/mime.types | 1 + services/clipboard/typeregistry.py | 22 ++++++++++++++++++++++ 2 files changed, 23 insertions(+) diff --git a/data/mime.types b/data/mime.types index 0f76f396..a6ffcb2b 100644 --- a/data/mime.types +++ b/data/mime.types @@ -1,2 +1,3 @@ application/x-squeak-project pr application/x-abiword abw +application/vnd.olpc-x-sugar xo diff --git a/services/clipboard/typeregistry.py b/services/clipboard/typeregistry.py index 88bdf607..8efcd610 100644 --- a/services/clipboard/typeregistry.py +++ b/services/clipboard/typeregistry.py @@ -237,6 +237,26 @@ class UriListFileType(FileType): return mime_type in cls._types matches_mime_type = classmethod(matches_mime_type) +class XoFileType(FileType): + + _types = set(['application/vnd.olpc-x-sugar']) + + def get_name(self): + return _('Activity package') + + def get_icon(self): + return 'theme:stock-missing' + + def get_preview(self): + return '' + + def get_activity(self): + return '' + + def matches_mime_type(cls, mime_type): + return mime_type in cls._types + matches_mime_type = classmethod(matches_mime_type) + class UnknownFileType(FileType): def get_name(self): return _('Object') @@ -267,10 +287,12 @@ class TypeRegistry: self._types.append(AbiwordFileType) self._types.append(TextFileType) self._types.append(SqueakProjectFileType) + self._types.append(XoFileType) def get_type(self, formats): for file_type in self._types: for format, data in formats.iteritems(): + logging.debug(format) if file_type.matches_mime_type(format): return file_type(formats) From 276d374b1ae6a0b7567979707d129aee7a6b2717 Mon Sep 17 00:00:00 2001 From: Tomeu Vizoso Date: Thu, 19 Apr 2007 12:20:48 -0300 Subject: [PATCH 3/3] Remove debug message. --- services/clipboard/typeregistry.py | 1 - 1 file changed, 1 deletion(-) diff --git a/services/clipboard/typeregistry.py b/services/clipboard/typeregistry.py index 8efcd610..0cab0e9c 100644 --- a/services/clipboard/typeregistry.py +++ b/services/clipboard/typeregistry.py @@ -292,7 +292,6 @@ class TypeRegistry: def get_type(self, formats): for file_type in self._types: for format, data in formats.iteritems(): - logging.debug(format) if file_type.matches_mime_type(format): return file_type(formats)