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