diff --git a/Server/config_editor.py b/Server/config_editor.py index e6e5f67..aa4a7de 100644 --- a/Server/config_editor.py +++ b/Server/config_editor.py @@ -2,7 +2,7 @@ # Form implementation generated from reading ui file 'config_editor.ui' # -# Created by: PyQt5 UI code generator 5.13.2 +# Created by: PyQt5 UI code generator 5.14.0 # # WARNING! All changes made in this file will be lost! @@ -25,19 +25,22 @@ class Ui_config_dialog(object): self.gridLayout.addWidget(self.config_view, 0, 0, 1, 1) self.gridLayout_2 = QtWidgets.QGridLayout() self.gridLayout_2.setObjectName("gridLayout_2") - self.buttonBox = QtWidgets.QDialogButtonBox(config_dialog) - self.buttonBox.setOrientation(QtCore.Qt.Horizontal) - self.buttonBox.setStandardButtons(QtWidgets.QDialogButtonBox.Cancel|QtWidgets.QDialogButtonBox.Save) - self.buttonBox.setCenterButtons(False) - self.buttonBox.setObjectName("buttonBox") - self.gridLayout_2.addWidget(self.buttonBox, 0, 2, 1, 1) + spacerItem = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) + self.gridLayout_2.addItem(spacerItem, 0, 2, 1, 1) self.do_restart = QtWidgets.QCheckBox(config_dialog) self.do_restart.setObjectName("do_restart") self.gridLayout_2.addWidget(self.do_restart, 0, 1, 1, 1) + self.buttonBox = QtWidgets.QDialogButtonBox(config_dialog) + self.buttonBox.setStandardButtons(QtWidgets.QDialogButtonBox.Cancel|QtWidgets.QDialogButtonBox.Save) + self.buttonBox.setObjectName("buttonBox") + self.gridLayout_2.addWidget(self.buttonBox, 0, 4, 1, 1) self.do_coloring = QtWidgets.QCheckBox(config_dialog) self.do_coloring.setChecked(True) self.do_coloring.setObjectName("do_coloring") self.gridLayout_2.addWidget(self.do_coloring, 0, 0, 1, 1) + self.save_as_button = QtWidgets.QPushButton(config_dialog) + self.save_as_button.setObjectName("save_as_button") + self.gridLayout_2.addWidget(self.save_as_button, 0, 3, 1, 1) self.gridLayout.addLayout(self.gridLayout_2, 2, 0, 1, 1) self.line = QtWidgets.QFrame(config_dialog) self.line.setFrameShape(QtWidgets.QFrame.HLine) @@ -56,6 +59,7 @@ class Ui_config_dialog(object): self.do_restart.setText(_translate("config_dialog", "Restart")) self.do_restart.setShortcut(_translate("config_dialog", "R")) self.do_coloring.setText(_translate("config_dialog", "Color Indication")) + self.save_as_button.setText(_translate("config_dialog", "Save as")) if __name__ == "__main__": diff --git a/Server/config_editor.ui b/Server/config_editor.ui index 6527d93..d9110f3 100644 --- a/Server/config_editor.ui +++ b/Server/config_editor.ui @@ -33,17 +33,17 @@ - + Qt::Horizontal - - QDialogButtonBox::Cancel|QDialogButtonBox::Save + + + 40 + 20 + - - false - - + @@ -55,6 +55,13 @@ + + + + QDialogButtonBox::Cancel|QDialogButtonBox::Save + + + @@ -65,6 +72,13 @@ + + + + Save as + + + diff --git a/Server/config_editor_models.py b/Server/config_editor_models.py index 898db7b..b12627c 100644 --- a/Server/config_editor_models.py +++ b/Server/config_editor_models.py @@ -715,6 +715,7 @@ class ConfigDialog(QtWidgets.QDialog): self.ui.config_view.expandAll() self.ui.do_coloring.stateChanged.connect(self.model.enable_color) + self.ui.save_as_button.clicked.connect(self.save_as) # self.ui.delete_button.pressed.connect(self.remove_selected) @@ -728,6 +729,17 @@ class ConfigDialog(QtWidgets.QDialog): ) return reply == QMessageBox.Yes + def save_as(self): + cfg = config.ConfigManager() + cfg.load_from_dict(self.model.to_config_dict()) + save_path = QFileDialog.getSaveFileName(self, "Save as configuration file", + filter="Config files (*.ini)")[0] + if not save_path: + return + + cfg.config.filename = save_path + cfg.write() + @pyqtSlot() def run(self): self.show() @@ -807,6 +819,7 @@ class ConfigDialog(QtWidgets.QDialog): cfg.config.filename = save_path cfg.write() + return True if __name__ == '__main__':