src/eric7/Plugins/PluginEricdoc.py

branch
eric7
changeset 10315
4102a69604eb
parent 10069
435cc5875135
child 10437
2f70ca07f0af
diff -r 1f7d52f024b1 -r 4102a69604eb src/eric7/Plugins/PluginEricdoc.py
--- a/src/eric7/Plugins/PluginEricdoc.py	Thu Nov 16 15:56:12 2023 +0100
+++ b/src/eric7/Plugins/PluginEricdoc.py	Thu Nov 16 16:45:23 2023 +0100
@@ -9,7 +9,7 @@
 
 import os
 
-from PyQt6.QtCore import QCoreApplication, QObject
+from PyQt6.QtCore import QCoreApplication, QObject, pyqtSlot
 from PyQt6.QtWidgets import QDialog
 
 from eric7 import Preferences
@@ -152,6 +152,7 @@
         Private slot to (re)initialize the plugin.
         """
         self.__projectAct = None
+        self.__execDialog = None
 
     def activate(self):
         """
@@ -243,14 +244,41 @@
                 args.append("--eol={0}".format(eolTranslation[project.getEolString()]))
 
             # now do the call
-            dia = EricdocExecDialog("Ericdoc")
-            res = dia.start(args, startDir)
-            if res:
-                dia.exec()
+            self.__execDialog = EricdocExecDialog("Ericdoc")
+            self.__execDialog.finished.connect(self.__execDialogFinished)
+            self.__execDialog.processFinished.connect(self.__ericdocProcessFinished)
+            self.__execDialog.show()
+            self.__execDialog.start(args, startDir)
+
+    @pyqtSlot()
+    def __ericdocProcessFinished(self):
+        """
+        Private slot to perform actions after the documentation was generated.
+        """
+        project = ericApp().getObject("Project")
+        parms = project.getData("DOCUMENTATIONPARMS", "ERIC4DOC")
+
+        outdir = FileSystemUtilities.toNativeSeparators(parms["outputDirectory"])
+        if outdir == "":
+            outdir = "doc"  # that is eric7_docs default output dir
 
-            outdir = FileSystemUtilities.toNativeSeparators(parms["outputDirectory"])
+        # add it to the project data, if it isn't in already
+        outdir = project.getRelativePath(outdir)
+        if outdir not in project.getProjectData(dataKey="OTHERS"):
+            project.setProjectData(
+                project.getProjectData(dataKey="OTHERS") + [outdir],
+                dataKey="OTHERS",
+            )
+            project.setDirty(True)
+            project.othersAdded(outdir)
+
+        if parms["qtHelpEnabled"]:
+            outdir = FileSystemUtilities.toNativeSeparators(
+                parms["qtHelpOutputDirectory"]
+            )
             if outdir == "":
-                outdir = "doc"  # that is eric7_docs default output dir
+                outdir = "help"
+                # that is eric7_docs default QtHelp output dir
 
             # add it to the project data, if it isn't in already
             outdir = project.getRelativePath(outdir)
@@ -262,20 +290,9 @@
                 project.setDirty(True)
                 project.othersAdded(outdir)
 
-            if parms["qtHelpEnabled"]:
-                outdir = FileSystemUtilities.toNativeSeparators(
-                    parms["qtHelpOutputDirectory"]
-                )
-                if outdir == "":
-                    outdir = "help"
-                    # that is eric7_docs default QtHelp output dir
-
-                # add it to the project data, if it isn't in already
-                outdir = project.getRelativePath(outdir)
-                if outdir not in project.getProjectData(dataKey="OTHERS"):
-                    project.setProjectData(
-                        project.getProjectData(dataKey="OTHERS") + [outdir],
-                        dataKey="OTHERS",
-                    )
-                    project.setDirty(True)
-                    project.othersAdded(outdir)
+    @pyqtSlot()
+    def __execDialogFinished(self):
+        """
+        Private slot to handle the execution dialog being closed.
+        """
+        self.__execDialog = None

eric ide

mercurial