Added a few more server start options.

Sun, 15 Nov 2020 17:35:48 +0100

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Sun, 15 Nov 2020 17:35:48 +0100
changeset 10
506c78268b18
parent 9
79094fb72c18
child 11
da6ef8ab8268

Added a few more server start options.

ProjectFlask/RunServerDialog.py file | annotate | diff | comparison | revisions
ProjectFlask/ServerStartOptionsDialog.py file | annotate | diff | comparison | revisions
ProjectFlask/ServerStartOptionsDialog.ui file | annotate | diff | comparison | revisions
--- a/ProjectFlask/RunServerDialog.py	Sat Nov 14 19:56:06 2020 +0100
+++ b/ProjectFlask/RunServerDialog.py	Sun Nov 15 17:35:48 2020 +0100
@@ -138,6 +138,10 @@
                 args += ["--host", self.__serverOptions["host"]]
             if "port" in self.__serverOptions and self.__serverOptions["port"]:
                 args += ["--port", self.__serverOptions["port"]]
+            if "cert" in self.__serverOptions and self.__serverOptions["cert"]:
+                args += ["--cert", self.__serverOptions["cert"]]
+            if "key" in self.__serverOptions and self.__serverOptions["key"]:
+                args += ["--key", self.__serverOptions["key"]]
             
             self.__process.start(command, args)
             ok = self.__process.waitForStarted(10000)
--- a/ProjectFlask/ServerStartOptionsDialog.py	Sat Nov 14 19:56:06 2020 +0100
+++ b/ProjectFlask/ServerStartOptionsDialog.py	Sun Nov 15 17:35:48 2020 +0100
@@ -9,6 +9,9 @@
 
 from PyQt5.QtWidgets import QDialog
 
+from E5Gui.E5PathPicker import E5PathPickerModes
+from E5Gui.E5Application import e5App
+
 from .Ui_ServerStartOptionsDialog import Ui_ServerStartOptionsDialog
 
 
@@ -28,6 +31,21 @@
         super(ServerStartOptionsDialog, self).__init__(parent)
         self.setupUi(self)
         
+        e5project = e5App().getObject("Project")
+        
+        self.certFilePicker.setMode(E5PathPickerModes.OpenFileMode)
+        self.certFilePicker.setFilters(self.tr(
+            "Certificate Files (*.pem);;"
+            "Certificate Files (*.cert *.cer *.crt)"
+        ))
+        self.certFilePicker.setDefaultDirectory(e5project.getProjectPath())
+        
+        self.keyFilePicker.setMode(E5PathPickerModes.OpenFileMode)
+        self.keyFilePicker.setFilters(self.tr(
+            "Key Files (*.pem *.key)"
+        ))
+        self.keyFilePicker.setDefaultDirectory(e5project.getProjectPath())
+        
         self.developmentCheckBox.setChecked(options.get("development", False))
         self.hostEdit.setText(options.get("host", ""))
         self.portSpinBox.setValue(int(options.get("port", "5000")))
@@ -51,5 +69,9 @@
         port = self.portSpinBox.value()
         if port != 5000:
             options["port"] = str(port)
+        if self.certFilePicker.text():
+            options["cert"] = self.certFilePicker.text()
+        if self.keyFilePicker.text():
+            options["key"] = self.keyFilePicker.text()
         
         return options
--- a/ProjectFlask/ServerStartOptionsDialog.ui	Sat Nov 14 19:56:06 2020 +0100
+++ b/ProjectFlask/ServerStartOptionsDialog.ui	Sun Nov 15 17:35:48 2020 +0100
@@ -6,8 +6,8 @@
    <rect>
     <x>0</x>
     <y>0</y>
-    <width>400</width>
-    <height>141</height>
+    <width>500</width>
+    <height>187</height>
    </rect>
   </property>
   <property name="windowTitle">
@@ -16,75 +16,117 @@
   <property name="sizeGripEnabled">
    <bool>true</bool>
   </property>
-  <layout class="QVBoxLayout" name="verticalLayout">
-   <item>
-    <layout class="QGridLayout" name="gridLayout">
-     <item row="0" column="0" colspan="3">
-      <widget class="QCheckBox" name="developmentCheckBox">
-       <property name="toolTip">
-        <string>Select to start the server in development mode</string>
-       </property>
-       <property name="text">
-        <string>Development Mode</string>
-       </property>
-      </widget>
-     </item>
-     <item row="1" column="0">
-      <widget class="QLabel" name="label">
-       <property name="text">
-        <string>Host:</string>
-       </property>
-      </widget>
-     </item>
-     <item row="1" column="1" colspan="2">
-      <widget class="QLineEdit" name="hostEdit">
-       <property name="toolTip">
-        <string>Enter the interface to bind to</string>
-       </property>
-       <property name="clearButtonEnabled">
-        <bool>true</bool>
-       </property>
-      </widget>
-     </item>
-     <item row="2" column="0">
-      <widget class="QLabel" name="label_2">
-       <property name="text">
-        <string>Port:</string>
-       </property>
-      </widget>
-     </item>
-     <item row="2" column="1">
-      <widget class="QSpinBox" name="portSpinBox">
-       <property name="toolTip">
-        <string>Enter the port to bind to</string>
-       </property>
-       <property name="alignment">
-        <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
-       </property>
-       <property name="minimum">
-        <number>1025</number>
-       </property>
-       <property name="maximum">
-        <number>65565</number>
-       </property>
-      </widget>
-     </item>
-     <item row="2" column="2">
-      <spacer name="horizontalSpacer">
-       <property name="orientation">
-        <enum>Qt::Horizontal</enum>
-       </property>
-       <property name="sizeHint" stdset="0">
-        <size>
-         <width>188</width>
-         <height>20</height>
-        </size>
-       </property>
-      </spacer>
-     </item>
-    </layout>
+  <layout class="QGridLayout" name="gridLayout">
+   <item row="0" column="0" colspan="3">
+    <widget class="QCheckBox" name="developmentCheckBox">
+     <property name="toolTip">
+      <string>Select to start the server in development mode</string>
+     </property>
+     <property name="text">
+      <string>Development Mode</string>
+     </property>
+    </widget>
+   </item>
+   <item row="1" column="0">
+    <widget class="QLabel" name="label">
+     <property name="text">
+      <string>Host:</string>
+     </property>
+    </widget>
+   </item>
+   <item row="1" column="1" colspan="2">
+    <widget class="QLineEdit" name="hostEdit">
+     <property name="toolTip">
+      <string>Enter the interface to bind to</string>
+     </property>
+     <property name="clearButtonEnabled">
+      <bool>true</bool>
+     </property>
+    </widget>
+   </item>
+   <item row="2" column="0">
+    <widget class="QLabel" name="label_2">
+     <property name="text">
+      <string>Port:</string>
+     </property>
+    </widget>
+   </item>
+   <item row="2" column="1">
+    <widget class="QSpinBox" name="portSpinBox">
+     <property name="toolTip">
+      <string>Enter the port to bind to</string>
+     </property>
+     <property name="alignment">
+      <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+     </property>
+     <property name="minimum">
+      <number>1025</number>
+     </property>
+     <property name="maximum">
+      <number>65565</number>
+     </property>
+    </widget>
    </item>
-   <item>
+   <item row="2" column="2">
+    <spacer name="horizontalSpacer">
+     <property name="orientation">
+      <enum>Qt::Horizontal</enum>
+     </property>
+     <property name="sizeHint" stdset="0">
+      <size>
+       <width>349</width>
+       <height>20</height>
+      </size>
+     </property>
+    </spacer>
+   </item>
+   <item row="3" column="0">
+    <widget class="QLabel" name="label_3">
+     <property name="text">
+      <string>Cert File:</string>
+     </property>
+    </widget>
+   </item>
+   <item row="3" column="1" colspan="2">
+    <widget class="E5PathPicker" name="certFilePicker" native="true">
+     <property name="sizePolicy">
+      <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
+       <horstretch>0</horstretch>
+       <verstretch>0</verstretch>
+      </sizepolicy>
+     </property>
+     <property name="focusPolicy">
+      <enum>Qt::StrongFocus</enum>
+     </property>
+     <property name="toolTip">
+      <string>Enter the name of the certificate file</string>
+     </property>
+    </widget>
+   </item>
+   <item row="4" column="0">
+    <widget class="QLabel" name="label_4">
+     <property name="text">
+      <string>Key File:</string>
+     </property>
+    </widget>
+   </item>
+   <item row="4" column="1" colspan="2">
+    <widget class="E5PathPicker" name="keyFilePicker" native="true">
+     <property name="sizePolicy">
+      <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
+       <horstretch>0</horstretch>
+       <verstretch>0</verstretch>
+      </sizepolicy>
+     </property>
+     <property name="focusPolicy">
+      <enum>Qt::StrongFocus</enum>
+     </property>
+     <property name="toolTip">
+      <string>Enter the name of the key file</string>
+     </property>
+    </widget>
+   </item>
+   <item row="5" column="0" colspan="3">
     <widget class="QDialogButtonBox" name="buttonBox">
      <property name="orientation">
       <enum>Qt::Horizontal</enum>
@@ -96,6 +138,14 @@
    </item>
   </layout>
  </widget>
+ <customwidgets>
+  <customwidget>
+   <class>E5PathPicker</class>
+   <extends>QWidget</extends>
+   <header>E5Gui/E5PathPicker.h</header>
+   <container>1</container>
+  </customwidget>
+ </customwidgets>
  <tabstops>
   <tabstop>developmentCheckBox</tabstop>
   <tabstop>hostEdit</tabstop>

eric ide

mercurial