Fixed an issue importing HTML bookmark files. 5_2_x

Sat, 17 Mar 2012 19:29:01 +0100

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Sat, 17 Mar 2012 19:29:01 +0100
branch
5_2_x
changeset 1712
0f345e53a8b7
parent 1711
cd50b6eb350a
child 1722
267dc49092c4

Fixed an issue importing HTML bookmark files.

Helpviewer/Bookmarks/BookmarksManager.py file | annotate | diff | comparison | revisions
--- a/Helpviewer/Bookmarks/BookmarksManager.py	Sat Mar 17 13:03:30 2012 +0100
+++ b/Helpviewer/Bookmarks/BookmarksManager.py	Sat Mar 17 19:29:01 2012 +0100
@@ -8,6 +8,7 @@
 """
 
 import os
+import tempfile
 
 from PyQt4.QtCore import pyqtSignal, Qt, QT_TRANSLATE_NOOP, QObject, QFile, QByteArray, \
     QBuffer, QIODevice, QXmlStreamReader, QDate, QFileInfo, QUrl
@@ -347,9 +348,11 @@
         reader = XbelReader()
         importRootNode = None
         if fileName.endswith(".html"):
-            inFile = QFile(fileName)
-            inFile.open(QIODevice.ReadOnly)
-            if inFile.openMode == QIODevice.NotOpen:
+            try:
+                f = open(fileName, "r")
+                contents = f.read()
+                f.close()
+            except IOError:
                 E5MessageBox.warning(None,
                     self.trUtf8("Import Bookmarks"),
                     self.trUtf8("""Error opening bookmarks file <b>{0}</b>.""")\
@@ -357,11 +360,15 @@
                 return
             
             webpage = QWebPage()
-            webpage.mainFrame().setHtml(inFile.readAll())
+            webpage.mainFrame().setHtml(contents)
             result = webpage.mainFrame().evaluateJavaScript(extract_js)
-            buffer_ = QBuffer(result)
-            buffer_.open(QIODevice.ReadOnly)
-            importRootNode = reader.read(buffer_)
+            
+            fd, name = tempfile.mkstemp(text=True)
+            f = os.fdopen(fd, "w")
+            f.write(result)
+            f.close()
+            importRootNode = reader.read(name)
+            os.remove(name)
         else:
             importRootNode = reader.read(fileName)
         
@@ -369,7 +376,7 @@
             E5MessageBox.warning(None,
                 self.trUtf8("Import Bookmarks"),
                 self.trUtf8("""Error when importing bookmarks on"""
-                            """ line {0}, column [1}:\n{2}""")\
+                            """ line {0}, column {1}:\n{2}""")\
                     .format(reader.lineNumber(),
                             reader.columnNumber(),
                             reader.errorString()))

eric ide

mercurial