Project/Project.py

changeset 606
cc26d1c27da5
parent 599
ee87fe94bf96
child 607
d95d60ba16aa
--- a/Project/Project.py	Mon Sep 13 08:32:36 2010 +0200
+++ b/Project/Project.py	Mon Sep 13 09:06:38 2010 +0200
@@ -43,7 +43,7 @@
 
 from E5XML.ProjectHandler import ProjectHandler
 from E5XML.ProjectWriter import ProjectWriter
-from E5XML.UserProjectHandler import UserProjectHandler
+from E5XML.UserProjectReader import UserProjectReader
 from E5XML.UserProjectWriter import UserProjectWriter
 from E5XML.SessionReader import SessionReader
 from E5XML.SessionWriter import SessionWriter
@@ -823,40 +823,18 @@
             return
         
         fn, ext = os.path.splitext(os.path.basename(self.pfile))
-        
         fn = os.path.join(self.getProjectManagementDir(), '{0}.e4q'.format(fn))
         if os.path.exists(fn):
-            try:
-                f = open(fn, "r", encoding = "utf-8")
-                
-                parser = make_parser(True)
-                handler = UserProjectHandler(self)
-                er = XMLEntityResolver()
-                eh = XMLErrorHandler()
-                
-                parser.setContentHandler(handler)
-                parser.setEntityResolver(er)
-                parser.setErrorHandler(eh)
-                
-                try:
-                    try:
-                        parser.parse(f)
-                    except UnicodeEncodeError:
-                        f.seek(0)
-                        buf = io.StringIO(f.read())
-                        parser.parse(buf)
-                finally:
-                    f.close()
-            except IOError:
+            f = QFile(fn)
+            if f.open(QIODevice.ReadOnly):
+                reader = UserProjectReader(f, self)
+                reader.readXML()
+                f.close()
+            else:
                 E5MessageBox.critical(self.ui,
                     self.trUtf8("Read user project properties"),
                     self.trUtf8("<p>The user specific project properties file <b>{0}</b>"
                         " could not be read.</p>").format(fn))
-                return
-            except XMLFatalParseError:
-                pass
-            
-            eh.showParseMessages()
         
     def __writeUserProperties(self):
         """
@@ -866,16 +844,13 @@
             return
         
         fn, ext = os.path.splitext(os.path.basename(self.pfile))
-        
         fn = os.path.join(self.getProjectManagementDir(), '{0}.e4q'.format(fn))
         
-        try:
-            f = open(fn, "w", encoding = "utf-8")
-            
+        f = QFile(fn)
+        if f.open(QIODevice.WriteOnly):
             UserProjectWriter(f, os.path.splitext(os.path.basename(fn))[0]).writeXML()
-            
             f.close()
-        except IOError:
+        else:
             E5MessageBox.critical(self.ui,
                 self.trUtf8("Save user project properties"),
                 self.trUtf8("<p>The user specific project properties file <b>{0}</b>"

eric ide

mercurial