--- a/ProjectFlask/Project.py Tue Nov 10 19:38:00 2020 +0100 +++ b/ProjectFlask/Project.py Wed Nov 11 20:03:21 2020 +0100 @@ -85,6 +85,20 @@ self.runServerAct.triggered.connect(self.__runServer) self.actions.append(self.runServerAct) + self.runDevServerAct = E5Action( + self.tr('Run Development Server'), + self.tr('Run &Development Server'), + 0, 0, + self, 'flask_run_dev_server') + self.runDevServerAct.setStatusTip(self.tr( + 'Starts the Flask Web server in development mode')) + self.runDevServerAct.setWhatsThis(self.tr( + """<b>Run Development Server</b>""" + """<p>Starts the Flask Web server in development mode.</p>""" + )) + self.runDevServerAct.triggered.connect(self.__runDevelopmentServer) + self.actions.append(self.runDevServerAct) + ################################## ## documentation action below ## ################################## @@ -134,6 +148,7 @@ menu.setTearOffEnabled(True) menu.addAction(self.runServerAct) + menu.addAction(self.runDevServerAct) menu.addSeparator() menu.addAction(self.documentationAct) menu.addSeparator() @@ -175,6 +190,8 @@ """ Public method to handle the closing of a project. """ + if self.__serverDialog is not None: + self.__serverDialog.close() ## if self.__serverProc is not None: ## self.__serverProcFinished() @@ -384,32 +401,30 @@ ## slots below implement run functions ################################################################## - # TODO: does the flask server support logging? - def __runServer(self, logging=False): + @pyqtSlot() + def __runServer(self, development=False): """ Private slot to start the Flask Web server. - @param logging flag indicating to enable logging + @param development flag indicating development mode @type bool """ - # TODO: implement this (flask run) - workdir, env = self.prepareRuntimeEnvironment() - if env is not None: - cmd = self.getFlaskCommand() - - dlg = RunServerDialog() - if dlg.startServer(cmd, workdir, env): - dlg.show() - self.__serverDialog = dlg + if self.__serverDialog is not None: + self.__serverDialog.close() + + dlg = RunServerDialog(self.__plugin) + if dlg.startServer(self, development=development): + dlg.show() + self.__serverDialog = dlg - def __runDevelopmentServer(self, logging=False): + @pyqtSlot() + def __runDevelopmentServer(self): """ Private slot to start the Flask Web server in development mode. - - @param logging flag indicating to enable logging - @type bool """ - # TODO: implement this (flask run with FLASK_ENV=development) + self.__runServer(development=True) + + # TODO: add method to start a server with parameters ## def __serverProcFinished(self): ## """