[pkg-fso-commits] [SCM] FSO frameworkd Debian packaging branch, debian, updated. upstream/0.9.5.5-717-g0f98819

Sebastian Krzyszkowiak seba.dos1 at gmail.com
Sat Aug 6 08:18:47 UTC 2011


The following commit has been merged in the debian branch:
commit 47f1e0de61a9f87c1415892ff408742970b3d202
Author: Sebastian Krzyszkowiak <seba.dos1 at gmail.com>
Date:   Sun Dec 6 17:36:34 2009 +0100

    opimd: generic: support loading, storing and fallbacking to default field types

diff --git a/framework/subsystems/opimd/pimd_generic.py b/framework/subsystems/opimd/pimd_generic.py
index 0f61769..537a188 100644
--- a/framework/subsystems/opimd/pimd_generic.py
+++ b/framework/subsystems/opimd/pimd_generic.py
@@ -41,6 +41,10 @@ from query_manager import QueryMatcher, SingleQueryHandler
 
 from framework.config import config, busmap
 
+import os,pickle
+
+_CONF_PATH = '/etc/freesmartphone/opim/'
+
 #----------------------------------------------------------------------------#
 
 #_DOMAIN_NAME = "Generic"
@@ -590,11 +594,14 @@ class GenericDomain():
     query_manager = None
     Entry = None
     _dbus_path = None
+    DefaultTypes = None
+    FieldTypes = None
 
     def __init__(self):
         """Creates a new GenericDomain instance"""
         self._backends = {}
         self._entries = []
+        self.DefaultTypes = {}
         self.Entry = GenericEntry
         self._dbus_path = _DIN_ENTRY
         self.query_manager = QueryManager(self._entries, self.name)
@@ -649,10 +656,28 @@ class GenericDomain():
         return entry_id
 
     @classmethod
+    def load_field_types(self):
+        if os.path.exists(_CONF_PATH+self.name+'Fields.pickle'):
+            pickleFile = open(_CONF_PATH+self.name+'Fields.pickle', "r")
+            self.FieldTypes = pickle.load(pickleFile)
+            pickleFile.close()
+        else:
+            self.FieldTypes = self.DefaultTypes
+
+    @classmethod
+    def save_field_types(self):
+        pickleFile = open(_CONF_PATH+self.name+'Fields.pickle', "w")
+        pickle.dump(self.FieldTypes,pickleFile)
+        pickleFile.close()
+
+    @classmethod
     def field_type_from_name(self, name):
-        if name=='Phone':
-            return 'phonenumber'
-        return 'generic'
+        if not self.FieldTypes:
+            self.load_field_types()
+        if name in self.FieldTypes:
+            return self.FieldTypes[name]
+        else:
+            return 'generic'
 
     def enumerate_items(self, backend):
         """Enumerates all entry data belonging to a specific backend

-- 
FSO frameworkd Debian packaging



More information about the pkg-fso-commits mailing list