UI/UserInterface.py

changeset 585
f40889943c0a
parent 583
08bc660d6a15
child 595
7d2c8346021c
diff -r b5d4c116952a -r f40889943c0a UI/UserInterface.py
--- a/UI/UserInterface.py	Fri Sep 10 20:03:59 2010 +0200
+++ b/UI/UserInterface.py	Sat Sep 11 17:33:02 2010 +0200
@@ -94,7 +94,7 @@
 from E5XML.XMLUtilities import make_parser
 from E5XML.XMLErrorHandler import XMLErrorHandler, XMLFatalParseError
 from E5XML.XMLEntityResolver import XMLEntityResolver
-from E5XML.TasksHandler import TasksHandler
+from E5XML.TasksReader import TasksReader
 from E5XML.TasksWriter import TasksWriter
 from E5XML.SessionWriter import SessionWriter
 from E5XML.SessionHandler import SessionHandler
@@ -5046,58 +5046,18 @@
         """
         Private slot to read in the tasks file (.e4t)
         """
-        try:
-            fn = os.path.join(Utilities.getConfigDir(), "eric5tasks.e4t")
-            if not os.path.exists(fn):
-                return
-            f = open(fn, "r", encoding = "utf-8")
-            line = f.readline()
-            dtdLine = f.readline()
-            f.close()
-        except IOError:
+        fn = os.path.join(Utilities.getConfigDir(), "eric5tasks.e4t")
+        if not os.path.exists(fn):
+            return
+        f = QFile(fn)
+        if f.open(QIODevice.ReadOnly):
+            reader = TasksReader(f, viewer = self.taskViewer)
+            reader.readXML()
+        else:
             E5MessageBox.critical(self,
                 self.trUtf8("Read tasks"),
                 self.trUtf8("<p>The tasks file <b>{0}</b> could not be read.</p>")
                     .format(fn))
-            return
-            
-        # now read the file
-        if line.startswith('<?xml'):
-            parser = make_parser(dtdLine.startswith("<!DOCTYPE"))
-            handler = TasksHandler(taskViewer = self.taskViewer)
-            er = XMLEntityResolver()
-            eh = XMLErrorHandler()
-            
-            parser.setContentHandler(handler)
-            parser.setEntityResolver(er)
-            parser.setErrorHandler(eh)
-            
-            try:
-                f = open(fn, "r", encoding = "utf-8")
-                try:
-                    try:
-                        parser.parse(f)
-                    except UnicodeEncodeError:
-                        f.seek(0)
-                        buf = io.StringIO(f.read())
-                        parser.parse(buf)
-                finally:
-                    f.close()
-            except IOError:
-                E5MessageBox.critical(self,
-                    self.trUtf8("Read tasks"),
-                    self.trUtf8("<p>The tasks file <b>{0}</b> could not be read.</p>")\
-                        .format(fn))
-                return
-            except XMLFatalParseError:
-                pass
-                
-            eh.showParseMessages()
-        else:
-            E5MessageBox.critical(self,
-                self.trUtf8("Read tasks"),
-                self.trUtf8("<p>The tasks file <b>{0}</b> has an unsupported"
-                            " format.</p>").format(fn))
         
     def __writeSession(self):
         """

eric ide

mercurial