Helpviewer/Bookmarks/BookmarksManager.py

branch
5_2_x
changeset 1712
0f345e53a8b7
parent 1509
c0b5e693b0eb
child 2303
0ed4ed026c16
equal deleted inserted replaced
1711:cd50b6eb350a 1712:0f345e53a8b7
6 """ 6 """
7 Module implementing the bookmarks manager. 7 Module implementing the bookmarks manager.
8 """ 8 """
9 9
10 import os 10 import os
11 import tempfile
11 12
12 from PyQt4.QtCore import pyqtSignal, Qt, QT_TRANSLATE_NOOP, QObject, QFile, QByteArray, \ 13 from PyQt4.QtCore import pyqtSignal, Qt, QT_TRANSLATE_NOOP, QObject, QFile, QByteArray, \
13 QBuffer, QIODevice, QXmlStreamReader, QDate, QFileInfo, QUrl 14 QBuffer, QIODevice, QXmlStreamReader, QDate, QFileInfo, QUrl
14 from PyQt4.QtGui import QUndoStack, QUndoCommand, QApplication 15 from PyQt4.QtGui import QUndoStack, QUndoCommand, QApplication
15 from PyQt4.QtWebKit import QWebPage 16 from PyQt4.QtWebKit import QWebPage
345 return 346 return
346 347
347 reader = XbelReader() 348 reader = XbelReader()
348 importRootNode = None 349 importRootNode = None
349 if fileName.endswith(".html"): 350 if fileName.endswith(".html"):
350 inFile = QFile(fileName) 351 try:
351 inFile.open(QIODevice.ReadOnly) 352 f = open(fileName, "r")
352 if inFile.openMode == QIODevice.NotOpen: 353 contents = f.read()
354 f.close()
355 except IOError:
353 E5MessageBox.warning(None, 356 E5MessageBox.warning(None,
354 self.trUtf8("Import Bookmarks"), 357 self.trUtf8("Import Bookmarks"),
355 self.trUtf8("""Error opening bookmarks file <b>{0}</b>.""")\ 358 self.trUtf8("""Error opening bookmarks file <b>{0}</b>.""")\
356 .format(fileName)) 359 .format(fileName))
357 return 360 return
358 361
359 webpage = QWebPage() 362 webpage = QWebPage()
360 webpage.mainFrame().setHtml(inFile.readAll()) 363 webpage.mainFrame().setHtml(contents)
361 result = webpage.mainFrame().evaluateJavaScript(extract_js) 364 result = webpage.mainFrame().evaluateJavaScript(extract_js)
362 buffer_ = QBuffer(result) 365
363 buffer_.open(QIODevice.ReadOnly) 366 fd, name = tempfile.mkstemp(text=True)
364 importRootNode = reader.read(buffer_) 367 f = os.fdopen(fd, "w")
368 f.write(result)
369 f.close()
370 importRootNode = reader.read(name)
371 os.remove(name)
365 else: 372 else:
366 importRootNode = reader.read(fileName) 373 importRootNode = reader.read(fileName)
367 374
368 if reader.error() != QXmlStreamReader.NoError: 375 if reader.error() != QXmlStreamReader.NoError:
369 E5MessageBox.warning(None, 376 E5MessageBox.warning(None,
370 self.trUtf8("Import Bookmarks"), 377 self.trUtf8("Import Bookmarks"),
371 self.trUtf8("""Error when importing bookmarks on""" 378 self.trUtf8("""Error when importing bookmarks on"""
372 """ line {0}, column [1}:\n{2}""")\ 379 """ line {0}, column {1}:\n{2}""")\
373 .format(reader.lineNumber(), 380 .format(reader.lineNumber(),
374 reader.columnNumber(), 381 reader.columnNumber(),
375 reader.errorString())) 382 reader.errorString()))
376 return 383 return
377 384

eric ide

mercurial