def __init__(self, parent=None): super().__init__(parent) self.setWindowTitle(self.tr("Extension Builder")) layout = QFormLayout(self) layout.setFieldGrowthPolicy(QFormLayout.ExpandingFieldsGrow) self.nameEdit = QLineEdit(self) self.versionEdit = QLineEdit(self) self.versionEdit.setValidator(VersionValidator(self)) self.developerEdit = QLineEdit(self) self.developerURLEdit = QLineEdit(self) layout.addRow(self.tr("Name:"), self.nameEdit) layout.addRow(self.tr("Version:"), self.versionEdit) layout.addRow(self.tr("Developer:"), self.developerEdit) layout.addRow(self.tr("Developer URL:"), self.developerURLEdit) layout.addRow(HLine(self)) self.resourcesRootBox = FolderComboBox(self) self.resourcesRootBox.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Preferred) self.scriptRootBox = FolderComboBox(self) self.scriptRootBox.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Preferred) self.scriptRootBox.currentFolderModified.connect(self.updateView) layout.addRow(self.tr("Resources root:"), self.resourcesRootBox) layout.addRow(self.tr("Script root:"), self.scriptRootBox) self.launchAtStartupBox = QCheckBox(self.tr("Launch At Startup"), self) self.mainScriptDrop = QComboBox(self) addScriptsLabel = QLabel(self.tr("Add script to main menu:"), self) self.addScriptsView = ListView(self) self.addScriptsView.setList([["", "", "", ""]]) self.addScriptsView.setHeaderLabels( ["", "Script", "Menu name", "Shortcut"]) scriptLayout = QVBoxLayout() scriptLayout.addWidget(self.launchAtStartupBox) scriptLayout.addWidget(self.mainScriptDrop) scriptLayout.addWidget(addScriptsLabel) scriptLayout.addWidget(self.addScriptsView) layout.addRow("", scriptLayout) layout.addRow(HLine(self)) self.tfVersionEdit = QLineEdit(self) self.tfVersionEdit.setValidator(VersionValidator(self)) layout.addRow(self.tr("Requires TruFont:"), self.tfVersionEdit) buttonBox = QDialogButtonBox( QDialogButtonBox.Save | QDialogButtonBox.Close, self) buttonBox.accepted.connect(self.saveFile) buttonBox.rejected.connect(self.close) layout.addRow(buttonBox) self.setLayout(layout) self.updateView()