eric6/QScintilla/Exporters/ExporterHTML.py

changeset 7771
787a6b3f8c9f
parent 7524
282680dae446
child 7781
607a6098cb44
diff -r 49f3377aebf1 -r 787a6b3f8c9f eric6/QScintilla/Exporters/ExporterHTML.py
--- a/eric6/QScintilla/Exporters/ExporterHTML.py	Fri Oct 09 17:19:29 2020 +0200
+++ b/eric6/QScintilla/Exporters/ExporterHTML.py	Sat Oct 10 12:20:51 2020 +0200
@@ -15,12 +15,12 @@
 import sys
 import io
 
-from PyQt5.QtCore import Qt
-from PyQt5.QtGui import QCursor, QFontInfo
-from PyQt5.QtWidgets import QApplication, QInputDialog
+from PyQt5.QtGui import QFontInfo
+from PyQt5.QtWidgets import QInputDialog
 from PyQt5.Qsci import QsciScintilla
 
 from E5Gui import E5MessageBox
+from E5Gui.E5OverrideCursor import E5OverrideCursor
 
 from .ExporterBase import ExporterBase
 
@@ -392,60 +392,56 @@
         if not filename:
             return
         
-        try:
-            QApplication.setOverrideCursor(QCursor(Qt.WaitCursor))
-            QApplication.processEvents()
-            
-            fn = self.editor.getFileName()
-            if fn:
-                extension = os.path.normcase(os.path.splitext(fn)[1][1:])
+        fn = self.editor.getFileName()
+        if fn:
+            extension = os.path.normcase(os.path.splitext(fn)[1][1:])
+        else:
+            extension = ""
+        
+        if (
+            extension in Preferences.getEditor(
+                "PreviewMarkdownFileNameExtensions") or
+            self.editor.getLanguage().lower() == "markdown"
+        ):
+            # export markdown to HTML
+            colorSchemes = [
+                self.tr("Light Background Color"),
+                self.tr("Dark Background Color"),
+            ]
+            colorScheme, ok = QInputDialog.getItem(
+                None,
+                self.tr("Markdown Export"),
+                self.tr("Select color scheme:"),
+                colorSchemes,
+                0, False)
+            if ok:
+                colorSchemeIndex = colorSchemes.index(colorScheme)
             else:
-                extension = ""
+                # light background as default
+                colorSchemeIndex = 0
+            with E5OverrideCursor():
+                html = self.__generateFromMarkdown(colorSchemeIndex == 1)
+        elif (
+            extension in Preferences.getEditor(
+                "PreviewRestFileNameExtensions") or
+            self.editor.getLanguage().lower() == "restructuredtext"
+        ):
+            # export ReST to HTML
+            with E5OverrideCursor():
+                html = self.__generateFromReSTDocutils()
+        else:
+            tabSize = self.editor.getEditorConfig("TabWidth")
+            if tabSize == 0:
+                tabSize = 4
+            wysiwyg = Preferences.getEditorExporter("HTML/WYSIWYG")
+            folding = Preferences.getEditorExporter("HTML/Folding")
+            onlyStylesUsed = Preferences.getEditorExporter(
+                "HTML/OnlyStylesUsed")
+            titleFullPath = Preferences.getEditorExporter(
+                "HTML/FullPathAsTitle")
+            tabs = Preferences.getEditorExporter("HTML/UseTabs")
             
-            if (
-                extension in Preferences.getEditor(
-                    "PreviewMarkdownFileNameExtensions") or
-                self.editor.getLanguage().lower() == "markdown"
-            ):
-                # export markdown to HTML
-                colorSchemes = [
-                    self.tr("Light Background Color"),
-                    self.tr("Dark Background Color"),
-                ]
-                QApplication.restoreOverrideCursor()
-                colorScheme, ok = QInputDialog.getItem(
-                    None,
-                    self.tr("Markdown Export"),
-                    self.tr("Select color scheme:"),
-                    colorSchemes,
-                    0, False)
-                if ok:
-                    colorSchemeIndex = colorSchemes.index(colorScheme)
-                else:
-                    # light background as default
-                    colorSchemeIndex = 0
-                QApplication.setOverrideCursor(QCursor(Qt.WaitCursor))
-                QApplication.processEvents()
-                html = self.__generateFromMarkdown(colorSchemeIndex == 1)
-            elif (
-                extension in Preferences.getEditor(
-                    "PreviewRestFileNameExtensions") or
-                self.editor.getLanguage().lower() == "restructuredtext"
-            ):
-                # export ReST to HTML
-                html = self.__generateFromReSTDocutils()
-            else:
-                tabSize = self.editor.getEditorConfig("TabWidth")
-                if tabSize == 0:
-                    tabSize = 4
-                wysiwyg = Preferences.getEditorExporter("HTML/WYSIWYG")
-                folding = Preferences.getEditorExporter("HTML/Folding")
-                onlyStylesUsed = Preferences.getEditorExporter(
-                    "HTML/OnlyStylesUsed")
-                titleFullPath = Preferences.getEditorExporter(
-                    "HTML/FullPathAsTitle")
-                tabs = Preferences.getEditorExporter("HTML/UseTabs")
-                
+            with E5OverrideCursor():
                 generator = HTMLGenerator(self.editor)
                 html = generator.generate(
                     tabSize=tabSize,
@@ -455,33 +451,30 @@
                     onlyStylesUsed=onlyStylesUsed,
                     titleFullPath=titleFullPath
                 )
-            
-            if html:
-                try:
+        
+        if html:
+            try:
+                with E5OverrideCursor():
                     f = open(filename, "w", encoding="utf-8")
                     f.write(html)
                     f.close()
-                except IOError as err:
-                    QApplication.restoreOverrideCursor()
-                    E5MessageBox.critical(
-                        self.editor,
-                        self.tr("Export source"),
-                        self.tr(
-                            """<p>The source could not be exported to"""
-                            """ <b>{0}</b>.</p><p>Reason: {1}</p>""")
-                        .format(filename, str(err)))
-            else:
-                QApplication.restoreOverrideCursor()
+            except IOError as err:
                 E5MessageBox.critical(
                     self.editor,
                     self.tr("Export source"),
                     self.tr(
                         """<p>The source could not be exported to"""
-                        """ <b>{0}</b>.</p><p>Reason: No HTML code"""
-                        """ generated.</p>""")
-                    .format(filename))
-        finally:
-            QApplication.restoreOverrideCursor()
+                        """ <b>{0}</b>.</p><p>Reason: {1}</p>""")
+                    .format(filename, str(err)))
+        else:
+            E5MessageBox.critical(
+                self.editor,
+                self.tr("Export source"),
+                self.tr(
+                    """<p>The source could not be exported to"""
+                    """ <b>{0}</b>.</p><p>Reason: No HTML code"""
+                    """ generated.</p>""")
+                .format(filename))
     
     def __generateFromReSTDocutils(self):
         """

eric ide

mercurial