[conduit/config-unstable: 17/19] Fixed files and folders serialization.
- From: Alexandre Rosenfeld <arosenfeld src gnome org>
- To: svn-commits-list gnome org
- Subject: [conduit/config-unstable: 17/19] Fixed files and folders serialization.
- Date: Tue, 19 May 2009 00:20:12 -0400 (EDT)
commit d64e5b9720f5ec19cc6a60f3018dd75a6923a621
Author: Alexandre Rosenfeld <airmind gmail com>
Date: Tue May 19 01:13:31 2009 -0300
Fixed files and folders serialization.
Fixed unicode handling in XML serialization.
Broke compatibility with older Files and Folders settings.
---
conduit/XMLSerialization.py | 6 +++-
conduit/modules/FileModule/FileModule.py | 44 +++++++++++------------------
2 files changed, 22 insertions(+), 28 deletions(-)
diff --git a/conduit/XMLSerialization.py b/conduit/XMLSerialization.py
index 5e82c1c..ad07b3e 100644
--- a/conduit/XMLSerialization.py
+++ b/conduit/XMLSerialization.py
@@ -45,7 +45,9 @@ class Settings( object ):
elif desired_type == "int":
return int(string)
elif desired_type == "str":
- return str(string) # 'just in case'
+ return str(string)
+ elif desired_type == "unicode":
+ return unicode(string)
elif desired_type == "none":
return None
else:
@@ -67,6 +69,8 @@ class Settings( object ):
return "float"
elif type(data_type) == str:
return "str"
+ elif type(data_type) == unicode:
+ return "unicode"
elif type(data_type) == bool:
return "bool"
elif data_type is None:
diff --git a/conduit/modules/FileModule/FileModule.py b/conduit/modules/FileModule/FileModule.py
index 84b252d..d98beae 100644
--- a/conduit/modules/FileModule/FileModule.py
+++ b/conduit/modules/FileModule/FileModule.py
@@ -27,19 +27,17 @@ class FileSource(FileDataProvider.FileSource):
def __init__(self, *args):
FileDataProvider.FileSource.__init__(self)
self.file_configurator = None
- self._files_folders = None
+ self.files = None
+ self.folders = None
self.update_configuration(
- files = ([], self.set_files, self.get_files),
- folders = ([], self.set_folders, self.get_folders)
+ files_and_folders = ({'files':[], 'folders':[]}, self._set_files_folders, self._get_files_folders)
)
- def set_files(self, files):
- for f in files:
- self._add_file(f)
-
- def set_folders(self, folders):
- for folder in folders:
- folder, group = folder.split("---FIXME---")
+ def _set_files_folders(self, value):
+ for f in value['files']:
+ self._add_file(f)
+ for folder in value['folders']:
+ folder, group = folder
self._add_folder(folder, group)
def get_config_container(self, configContainerKlass, name, icon, configurator):
@@ -57,23 +55,15 @@ class FileSource(FileDataProvider.FileSource):
return self.file_configurator
- def _get_files_folders(self, get_files = False, get_folders = False):
- if self._files_folders:
- files, folders = self._files_folders
- self._files_folders = None
- else:
- files = []
- folders = []
- for uri,ftype,group in self.db.select("SELECT URI,TYPE,GROUP_NAME FROM config"):
- if ftype == FileDataProvider.TYPE_FILE:
- files.append(uri)
- else:
- folders.append("%s---FIXME---%s" % (uri,group))
- self._files_folders = (files, folders)
- if get_files:
- return files
- if get_folders:
- return folders
+ def _get_files_folders(self):
+ files = []
+ folders = []
+ for uri,ftype,group in self.db.select("SELECT URI,TYPE,GROUP_NAME FROM config"):
+ if ftype == FileDataProvider.TYPE_FILE:
+ files.append(uri)
+ else:
+ folders.append((uri,group))
+ return {'files': files, 'folders':folders}
def get_files(self):
self._get_files_folders(get_files = True)
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]