def save_design(self, _=None): """Handles click on save design.""" if self.design: # get file path filename = self.design.save_path if not filename: QMessageBox.warning( self, 'Warning', 'This will save a .metal.py script ' 'that needs to be copied into a jupyter notebook to run.' 'The "Load" button has not yet been implemented.') filename = QFileDialog.getSaveFileName( None, 'Select a new location to save Metal design to', self.design.get_design_name() + '.metal.py', selectedFilter='*.metal.py')[0] self.design.save_path = filename # save python script to file path pyscript = self.design.to_python_script() with open(filename, 'w') as f: f.write(pyscript) #make it clear it's saving saving_dialog = QDialog(self) saving_dialog.setWindowModality(Qt.NonModal) v = QVBoxLayout() saving_dialog.setLayout(v) v.addWidget(QLabel("Saving...")) saving_dialog.open() saving_dialog.show() QTimer.singleShot(200, saving_dialog.close) else: self.logger.info('No design present.') QMessageBox.warning(self, 'Warning', 'No design present! Can' 't save')
def __open_settings_window(self): settings_window = QDialog(self) settings_window.setWindowTitle("Settings") printer_settings = QGroupBox("Printer Settings:", settings_window) printer_type_label = QLabel("Printer Type:", printer_settings) self.printer_type_combo = QComboBox(printer_settings) self.printer_type_combo.addItems(self.supported_printers) self.printer_type_combo.setCurrentIndex( self.supported_printers.index(self.selected_printer)) apply_button = QPushButton("Apply Changes", printer_settings) apply_button.clicked.connect(self.__apply_settings) apply_button.clicked.connect(settings_window.close) apply_button.setAutoDefault(False) printer_settings_layout = QGridLayout(printer_settings) printer_settings_layout.addWidget(printer_type_label, 0, 0) printer_settings_layout.addWidget(self.printer_type_combo, 0, 1) printer_settings_layout.addWidget(apply_button, 4, 1) if self.selected_printer is self.supported_printers[0]: extra_settings = self.dlp_gui.get_settings_window(settings_window) elif self.selected_printer is self.supported_printers[1]: extra_settings = self.metal_gui.get_settings_window( settings_window) settings_layout = QVBoxLayout(settings_window) settings_layout.addWidget(printer_settings) settings_layout.addWidget(extra_settings) settings_window.open()