Sat, 17 Mar 2012 19:29:01 +0100
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()))