src/eric7/UI/Previewers/PreviewerHTML.py

branch
eric7
changeset 9482
a2bc06a54d9d
parent 9473
3f23dbf37dbe
child 9573
9960d19d66b5
equal deleted inserted replaced
9481:0b936ff1bbb9 9482:a2bc06a54d9d
14 import shutil 14 import shutil
15 import sys 15 import sys
16 import tempfile 16 import tempfile
17 import threading 17 import threading
18 18
19 from PyQt6.QtCore import Qt, QThread, QUrl, pyqtSignal, pyqtSlot 19 from PyQt6.QtCore import QEventLoop, QPoint, Qt, QThread, QUrl, pyqtSignal, pyqtSlot
20 from PyQt6.QtGui import QCursor, QGuiApplication 20 from PyQt6.QtGui import QCursor, QGuiApplication
21 from PyQt6.QtWidgets import ( 21 from PyQt6.QtWidgets import (
22 QCheckBox, 22 QCheckBox,
23 QGridLayout, 23 QGridLayout,
24 QLabel, 24 QLabel,
56 self.__layout.addWidget(self.titleLabel) 56 self.__layout.addWidget(self.titleLabel)
57 57
58 self.__previewAvailable = True 58 self.__previewAvailable = True
59 59
60 try: 60 try:
61 from PyQt6.QtWebEngineWidgets import QWebEngineView 61 from PyQt6.QtWebEngineWidgets import ( # __IGNORE_WARNING_I10__
62 QWebEngineView,
63 )
62 64
63 self.previewView = QWebEngineView(self) 65 self.previewView = QWebEngineView(self)
64 self.previewView.page().linkHovered.connect(self.__showLink) 66 self.previewView.page().linkHovered.connect(self.__showLink)
65 except ImportError: 67 except ImportError:
66 self.__previewAvailable = False 68 self.__previewAvailable = False
284 286
285 def __saveScrollBarPositions(self): 287 def __saveScrollBarPositions(self):
286 """ 288 """
287 Private method to save scroll bar positions for a previewed editor. 289 Private method to save scroll bar positions for a previewed editor.
288 """ 290 """
289 from PyQt6.QtCore import QPoint
290
291 try: 291 try:
292 pos = self.previewView.scrollPosition() 292 pos = self.previewView.scrollPosition()
293 except AttributeError: 293 except AttributeError:
294 pos = self.__execJavaScript( 294 pos = self.__execJavaScript(
295 "(function() {" 295 "(function() {"
326 @param script JavaScript script source to be executed 326 @param script JavaScript script source to be executed
327 @type str 327 @type str
328 @return result of the script 328 @return result of the script
329 @rtype depending upon script result 329 @rtype depending upon script result
330 """ 330 """
331 from PyQt6.QtCore import QEventLoop
332
333 loop = QEventLoop() 331 loop = QEventLoop()
334 resultDict = {"res": None} 332 resultDict = {"res": None}
335 333
336 def resultCallback(res, resDict=resultDict): 334 def resultCallback(res, resDict=resultDict):
337 if loop and loop.isRunning(): 335 if loop and loop.isRunning():
634 632
635 @param text text to be processed (string) 633 @param text text to be processed (string)
636 @return processed HTML (string) 634 @return processed HTML (string)
637 """ 635 """
638 try: 636 try:
639 from sphinx.application import Sphinx # __IGNORE_EXCEPTION__ 637 from sphinx.application import ( # __IGNORE_EXCEPTION__ __IGNORE_WARNING__
638 Sphinx,
639 )
640 except ImportError: 640 except ImportError:
641 return self.tr( 641 return self.tr(
642 """<p>ReStructuredText preview requires the""" 642 """<p>ReStructuredText preview requires the"""
643 """ <b>sphinx</b> package.<br/>Install it with""" 643 """ <b>sphinx</b> package.<br/>Install it with"""
644 """ your package manager,'pip install Sphinx' or see""" 644 """ your package manager,'pip install Sphinx' or see"""
703 ] 703 ]
704 for key in unloadKeys: 704 for key in unloadKeys:
705 sys.modules.pop(key) 705 sys.modules.pop(key)
706 706
707 try: 707 try:
708 import docutils.core # __IGNORE_EXCEPTION__ 708 import docutils.core # __IGNORE_EXCEPTION__ __IGNORE_WARNING_I10__
709 import docutils.utils # __IGNORE_EXCEPTION__ 709 import docutils.utils # __IGNORE_EXCEPTION__ __IGNORE_WARNING_I10__
710 except ImportError: 710 except ImportError:
711 return self.tr( 711 return self.tr(
712 """<p>ReStructuredText preview requires the""" 712 """<p>ReStructuredText preview requires the"""
713 """ <b>python-docutils</b> package.<br/>Install it with""" 713 """ <b>python-docutils</b> package.<br/>Install it with"""
714 """ your package manager, 'pip install docutils' or see""" 714 """ your package manager, 'pip install docutils' or see"""
750 @type str 750 @type str
751 @return processed HTML 751 @return processed HTML
752 @rtype str 752 @rtype str
753 """ 753 """
754 try: 754 try:
755 import markdown # __IGNORE_EXCEPTION__ 755 import markdown # __IGNORE_EXCEPTION__ __IGNORE_WARNING_I10__
756 except ImportError: 756 except ImportError:
757 return self.tr( 757 return self.tr(
758 """<p>Markdown preview requires the <b>Markdown</b> """ 758 """<p>Markdown preview requires the <b>Markdown</b> """
759 """package.<br/>Install it with your package manager,""" 759 """package.<br/>Install it with your package manager,"""
760 """ 'pip install Markdown' or see """ 760 """ 'pip install Markdown' or see """
761 """<a href="http://pythonhosted.org/Markdown/install.html">""" 761 """<a href="http://pythonhosted.org/Markdown/install.html">"""
762 """installation instructions.</a></p>""" 762 """installation instructions.</a></p>"""
763 ) 763 )
764 764
765 from . import MarkdownExtensions, PreviewerHTMLStyles 765 from . import MarkdownExtensions, PreviewerHTMLStyles # __IGNORE_WARNING_I101__
766 766
767 extensions = [] 767 extensions = []
768 768
769 mermaidNeeded = False 769 mermaidNeeded = False
770 if Preferences.getEditor( 770 if Preferences.getEditor(

eric ide

mercurial