def __init__(self, parent=None): super(NameWizardPage, self).__init__(parent) self.setTitle('Identify Workflow Step') self.setSubTitle( 'Set the name and icon (optional) for the workflow step.') self._ui = Ui_Name() self._ui.setupUi(self) self._previous_location = '' self._invalidPixmap = QtGui.QPixmap(':wizard/images/cross.png') self._invalidNameLabel = QtGui.QLabel(self) self._invalidNameLabel.setStyleSheet('border: none; padding: 0px;') self._invalidPackageLabel = QtGui.QLabel(self) self._invalidPackageLabel.setStyleSheet('border: none; padding: 0px;') self._invalidIconLabel = QtGui.QLabel(self) self._invalidIconLabel.setStyleSheet('border: none; padding: 0px;') self._updateImage() self._makeConnections() self._defineFields() self._packageNameEdited = False
def __init__(self, parent=None): super(NameWizardPage, self).__init__(parent) self.setTitle('Identify Workflow Step') self.setSubTitle('Set the name and icon (optional) for the workflow step.') self._ui = Ui_Name() self._ui.setupUi(self) self._invalidPixmap = QtGui.QPixmap(':wizard/images/cross.png') self._invalidNameLabel = QtGui.QLabel(self) self._invalidNameLabel.setStyleSheet('border: none; padding: 0px;') self._invalidPackageLabel = QtGui.QLabel(self) self._invalidPackageLabel.setStyleSheet('border: none; padding: 0px;') self._invalidIconLabel = QtGui.QLabel(self) self._invalidIconLabel.setStyleSheet('border: none; padding: 0px;') self._updateImage() self._makeConnections() self._defineFields() self._packageNameEdited = False
class NameWizardPage(QtGui.QWizardPage): def __init__(self, parent=None): super(NameWizardPage, self).__init__(parent) self.setTitle('Identify Workflow Step') self.setSubTitle( 'Set the name and icon (optional) for the workflow step.') self._ui = Ui_Name() self._ui.setupUi(self) self._previous_location = '' self._invalidPixmap = QtGui.QPixmap(':wizard/images/cross.png') self._invalidNameLabel = QtGui.QLabel(self) self._invalidNameLabel.setStyleSheet('border: none; padding: 0px;') self._invalidPackageLabel = QtGui.QLabel(self) self._invalidPackageLabel.setStyleSheet('border: none; padding: 0px;') self._invalidIconLabel = QtGui.QLabel(self) self._invalidIconLabel.setStyleSheet('border: none; padding: 0px;') self._updateImage() self._makeConnections() self._defineFields() self._packageNameEdited = False def _defineFields(self): self.registerField(NAME_FIELD + '*', self._ui.nameLineEdit) self.registerField(PACKAGE_NAME_FIELD + '*', self._ui.packageNameLineEdit) self.registerField(IMAGE_FILE_FIELD, self._ui.iconLineEdit) self.registerField(PREDEFINED_IMAGE_FIELD, self._ui.comboBoxPresetIcons) self.registerField(ICON_PICTURE_LABEL_FIELD, self._ui.iconPictureLabel) def _makeConnections(self): self._ui.nameLineEdit.textChanged.connect(self._nameChanged) self._ui.nameLineEdit.textChanged.connect(self._updateImage) self._ui.packageNameLineEdit.textEdited.connect( self._packageNameChanged) self._ui.iconLineEdit.textChanged.connect(self._updateImage) self._ui.iconButton.clicked.connect(self._chooseImage) self._ui.comboBoxPresetIcons.currentIndexChanged.connect( self._selectPredefinedImage) def _nameChanged(self): if not self._packageNameEdited: package_name = convertNameToPythonPackage( self._ui.nameLineEdit.text()) self._ui.packageNameLineEdit.setText(package_name) self.completeChanged.emit() def _packageNameChanged(self): self._packageNameEdited = True def _selectPredefinedImage(self, index): image_file = getPredefinedImageLocation( self._ui.comboBoxPresetIcons.currentText()) self._ui.iconLineEdit.setText(image_file) def _chooseImage(self): image, _ = QtGui.QFileDialog.getOpenFileName( self, caption='Choose Image File', dir=self._previous_location, options=QtGui.QFileDialog.ReadOnly) if len(image) > 0: self._previous_location = os.path.dirname(image) self._ui.iconLineEdit.setText(image) def _updateImage(self): image_file = self._ui.iconLineEdit.text() if image_file: image = QtGui.QPixmap(image_file) predefined_image_file = getPredefinedImageLocation( self._ui.comboBoxPresetIcons.currentText()) if predefined_image_file == image_file: image = self._combineImageWithBackground(image.toImage()) image = QtGui.QPixmap.fromImage(image) if image: self._ui.iconPictureLabel.setPixmap( image.scaled(64, 64, aspectRatioMode=QtCore.Qt.KeepAspectRatio, transformMode=QtCore.Qt.FastTransformation)) else: image = QtGui.QImage(':icons/images/default.png') image = self._combineImageWithBackground(image) self._ui.iconPictureLabel.setPixmap( QtGui.QPixmap.fromImage(image).scaled( 64, 64, aspectRatioMode=QtCore.Qt.KeepAspectRatio, transformMode=QtCore.Qt.FastTransformation)) self.completeChanged.emit() def _combineImageWithBackground(self, image): background_image = QtGui.QImage(':icons/images/icon-background.png') painter = QtGui.QPainter(background_image) painter.drawImage(QtCore.QPoint(0, 0), image) painter.end() return background_image def setPreviousLocation(self, location): self._previous_location = location def resizeEvent(self, event): rect = self._ui.nameLineEdit.rect() pos = self._ui.nameLineEdit.pos() self._invalidNameLabel.setPixmap( self._invalidPixmap.scaledToHeight(rect.height() / 2)) self._invalidNameLabel.move(pos.x() - rect.height() / 2, pos.y() + rect.height() / 4) self._invalidNameLabel.setFixedSize(self._invalidNameLabel.sizeHint()) rect = self._ui.packageNameLineEdit.rect() pos = self._ui.packageNameLineEdit.pos() self._invalidPackageLabel.setPixmap( self._invalidPixmap.scaledToHeight(rect.height() / 2)) self._invalidPackageLabel.move(pos.x() - rect.height() / 2, pos.y() + rect.height() / 4) self._invalidPackageLabel.setFixedSize( self._invalidPackageLabel.sizeHint()) rect = self._ui.iconLineEdit.rect() pos = self._ui.iconLineEdit.pos() self._invalidIconLabel.setPixmap( self._invalidPixmap.scaledToHeight(rect.height() / 2)) self._invalidIconLabel.move(pos.x() - rect.height() / 2, pos.y() + rect.height() / 4) self._invalidIconLabel.setFixedSize(self._invalidIconLabel.sizeHint()) def isComplete(self): name_status = False if len(self._ui.nameLineEdit.text()) > 0: name_status = True package_status = isIdentifier(str(self._ui.packageNameLineEdit.text())) image_status = os.path.exists(self._ui.iconLineEdit.text()) if len( self._ui.iconLineEdit.text()) > 0 else True self._invalidNameLabel.setVisible(not name_status) self._invalidPackageLabel.setVisible(not package_status) self._invalidIconLabel.setVisible(not image_status) return name_status and package_status and image_status
class NameWizardPage(QtGui.QWizardPage): def __init__(self, parent=None): super(NameWizardPage, self).__init__(parent) self.setTitle('Identify Workflow Step') self.setSubTitle('Set the name and icon (optional) for the workflow step.') self._ui = Ui_Name() self._ui.setupUi(self) self._invalidPixmap = QtGui.QPixmap(':wizard/images/cross.png') self._invalidNameLabel = QtGui.QLabel(self) self._invalidNameLabel.setStyleSheet('border: none; padding: 0px;') self._invalidPackageLabel = QtGui.QLabel(self) self._invalidPackageLabel.setStyleSheet('border: none; padding: 0px;') self._invalidIconLabel = QtGui.QLabel(self) self._invalidIconLabel.setStyleSheet('border: none; padding: 0px;') self._updateImage() self._makeConnections() self._defineFields() self._packageNameEdited = False def _defineFields(self): self.registerField(NAME_FIELD, self._ui.nameLineEdit) self.registerField(PACKAGE_NAME_FIELD, self._ui.packageNameLineEdit) self.registerField(IMAGE_FILE_FIELD, self._ui.iconLineEdit) def _makeConnections(self): self._ui.nameLineEdit.textChanged.connect(self._nameChanged) self._ui.nameLineEdit.textChanged.connect(self._updateImage) self._ui.packageNameLineEdit.textEdited.connect(self._packageNameChanged) self._ui.iconLineEdit.textChanged.connect(self._updateImage) self._ui.iconButton.clicked.connect(self._chooseImage) def _nameChanged(self): self.completeChanged.emit() if not self._packageNameEdited: package_name = self._ui.nameLineEdit.text().lower() package_name = package_name.replace(' ', '') self._ui.packageNameLineEdit.setText(package_name + 'step') def _packageNameChanged(self): self._packageNameEdited = True def _chooseImage(self): image, _ = QtGui.QFileDialog.getOpenFileName(self, caption='Choose Image File', options=QtGui.QFileDialog.ReadOnly) if len(image) > 0: self._ui.iconLineEdit.setText(image) def _updateImage(self): image_file = self._ui.iconLineEdit.text() if image_file: image = QtGui.QPixmap(image_file) if image: self._ui.iconPictureLabel.setPixmap(image.scaled(64, 64, aspectRatioMode=QtCore.Qt.KeepAspectRatio, transformMode=QtCore.Qt.FastTransformation)) else: image = createDefaultImageIcon(self._ui.nameLineEdit.text()) self._ui.iconPictureLabel.setPixmap(QtGui.QPixmap.fromImage(image).scaled(64, 64, aspectRatioMode=QtCore.Qt.KeepAspectRatio, transformMode=QtCore.Qt.FastTransformation)) self.completeChanged.emit() def resizeEvent(self, event): rect = self._ui.nameLineEdit.rect() pos = self._ui.nameLineEdit.pos() self._invalidNameLabel.setPixmap(self._invalidPixmap.scaledToHeight(rect.height() / 2)) self._invalidNameLabel.move(pos.x() - rect.height() / 2, pos.y() + rect.height() / 4) self._invalidNameLabel.setFixedSize(self._invalidNameLabel.sizeHint()) rect = self._ui.packageNameLineEdit.rect() pos = self._ui.packageNameLineEdit.pos() self._invalidPackageLabel.setPixmap(self._invalidPixmap.scaledToHeight(rect.height() / 2)) self._invalidPackageLabel.move(pos.x() - rect.height() / 2, pos.y() + rect.height() / 4) self._invalidPackageLabel.setFixedSize(self._invalidPackageLabel.sizeHint()) rect = self._ui.iconLineEdit.rect() pos = self._ui.iconLineEdit.pos() self._invalidIconLabel.setPixmap(self._invalidPixmap.scaledToHeight(rect.height() / 2)) self._invalidIconLabel.move(pos.x() - rect.height() / 2, pos.y() + rect.height() / 4) self._invalidIconLabel.setFixedSize(self._invalidIconLabel.sizeHint()) def isComplete(self): name_status = False if len(self._ui.nameLineEdit.text()) > 0: name_status = True package_status = isValidPythonPackageName(self._ui.packageNameLineEdit.text()) image_status = os.path.exists(self._ui.iconLineEdit.text()) if len(self._ui.iconLineEdit.text()) > 0 else True self._invalidNameLabel.setVisible(not name_status) self._invalidPackageLabel.setVisible(not package_status) self._invalidIconLabel.setVisible(not image_status) return name_status and package_status and image_status