class ProfileAssemblyEditorDialog(DatasetInProjectEditorDialog): def __init__(self, parent, data): DatasetInProjectEditorDialog.__init__(self, parent, data) self.addContentPanel(self.tr("Profile Assembly")) self.addIdDisplay() self.addProjectSelector() self.addNameEdit() self.addDescriptionEdit() self.addSaveProfileAssemblyButton() self.addDetailsWidget() self.addButtons() self.idW.setValue(self.data.id) self.projectW.reload() self.projectW.selectDataset(data.project) self.nameW.setValue(unicode(self.data.name)) self.descriptionW.setValue(unicode(self.data.description)) self.nameW.nameChanged.connect(self.onNameChange) self.descriptionW.descriptionChanged.connect(self.onDescriptionChange) self.setDetailsWidgetStatus(self.data.hasId()) def onNameChange(self, txt): self.data.name = unicode(txt) def onDescriptionChange(self, txt): self.data.description = unicode(txt) def onSaveRequest(self): if self.save(): self.enableDetailsWidget() else: self.disableDetailsWidget() def addSaveProfileAssemblyButton(self): self.saveProfileAssemblyW = QPushButton(self.tr("&Save Profile Assembly"), self.contentW) self.contentW.layout().addWidget(self.saveProfileAssemblyW, self.currentContentRow, self.widgetCol) self.currentContentRow += 1 self.saveProfileAssemblyW.clicked.connect(self.onSaveRequest) def addDetailsWidget(self): self.detailsW = QTabWidget(self.contentW) self.profileInProfileAssemblyW = ProfileInProfileAssemblyItemView(self.detailsW) self.detailsW.addTab(self.profileInProfileAssemblyW, self.tr("Profiles")) self.contentW.layout().addWidget(self.detailsW, self.currentContentRow, self.widgetCol) self.currentContentRow += 1 def onSaveRequest(self): if self.save(): self.enableDetailsWidget() else: self.disableDetailsWidget() def enableDetailsWidget(self): self.setDetailsWidgetStatus(True) def disableDetailsWidget(self): self.setDetailsWidgetStatus(False) def setDetailsWidgetStatus(self, isEnabled): self.detailsW.setEnabled(isEnabled) if isEnabled: self.profileInProfileAssemblyW.setProfileAssembly(self.data) else: self.profileInProfileAssemblyW.setProfileAssembly(None)
def addDetailsWidget(self): self.detailsW = QTabWidget(self.contentW) self.profileInProfileAssemblyW = ProfileInProfileAssemblyItemView(self.detailsW) self.detailsW.addTab(self.profileInProfileAssemblyW, self.tr("Profiles")) self.contentW.layout().addWidget(self.detailsW, self.currentContentRow, self.widgetCol) self.currentContentRow += 1