class OutputWizardPage(QtGui.QWizardPage):
    def __init__(self, parent=None):
        super(OutputWizardPage, self).__init__(parent)

        self.setTitle('Output Files')
        self.setSubTitle(
            'Specify where you want the wizard to put the generated skeleton code.'
        )

        self._ui = Ui_Output()
        self._ui.setupUi(self)

        self._invalidPixmap = QtGui.QPixmap(':wizard/images/cross.png')
        self._invalidDirectoryLabel = QtGui.QLabel(self)
        self._invalidDirectoryLabel.setStyleSheet(
            'border: none; padding: 0px;')

        self.registerField(OUTPUT_DIRECTORY_FIELD + '*',
                           self._ui.directoryLineEdit)

        self._makeConnections()

    def _makeConnections(self):
        self._ui.directoryLineEdit.textChanged.connect(self.completeChanged)
        self._ui.directoryButton.clicked.connect(self._chooseDirectory)

    def _chooseDirectory(self):
        directory = QtGui.QFileDialog.getExistingDirectory(
            self,
            caption='Select Output Directory',
            directory=self._ui.directoryLineEdit.text(),
            options=QtGui.QFileDialog.ShowDirsOnly
            | QtGui.QFileDialog.DontResolveSymlinks
            | QtGui.QFileDialog.ReadOnly)
        if len(directory) > 0:
            self._ui.directoryLineEdit.setText(directory)

    def setDirectory(self, location):
        self._ui.directoryLineEdit.setText(location)

    def resizeEvent(self, event):
        rect = self._ui.directoryLineEdit.rect()
        pos = self._ui.directoryLineEdit.pos()
        self._invalidDirectoryLabel.setPixmap(
            self._invalidPixmap.scaledToHeight(rect.height() / 2))
        self._invalidDirectoryLabel.move(pos.x() - rect.height() / 2,
                                         pos.y() + rect.height() / 4)
        self._invalidDirectoryLabel.setFixedSize(
            self._invalidDirectoryLabel.sizeHint())

    def isComplete(self):
        status = False
        directory = self._ui.directoryLineEdit.text()
        if os.path.isdir(directory) and os.access(directory,
                                                  os.W_OK | os.X_OK):
            status = True

        self._invalidDirectoryLabel.setVisible(not status)

        return status
class OutputWizardPage(QtGui.QWizardPage):

    def __init__(self, parent=None):
        super(OutputWizardPage, self).__init__(parent)

        self.setTitle('Output Files')
        self.setSubTitle('Specify where you want the wizard to put the generated skeleton code.')

        self._ui = Ui_Output()
        self._ui.setupUi(self)

        self._invalidPixmap = QtGui.QPixmap(':wizard/images/cross.png')
        self._invalidDirectoryLabel = QtGui.QLabel(self)
        self._invalidDirectoryLabel.setStyleSheet('border: none; padding: 0px;')

        self.registerField(OUTPUT_DIRECTORY_FIELD, self._ui.directoryLineEdit)

        self._makeConnections()

    def _makeConnections(self):
        self._ui.directoryLineEdit.textChanged.connect(self.completeChanged)
        self._ui.directoryButton.clicked.connect(self._chooseDirectory)

    def _chooseDirectory(self):
        directory = QtGui.QFileDialog.getExistingDirectory(self, caption='Select Output Directory', directory=self._ui.directoryLineEdit.text(), options=QtGui.QFileDialog.ShowDirsOnly | QtGui.QFileDialog.DontResolveSymlinks | QtGui.QFileDialog.ReadOnly)
        if len(directory) > 0:
            self._ui.directoryLineEdit.setText(directory)

    def resizeEvent(self, event):
        rect = self._ui.directoryLineEdit.rect()
        pos = self._ui.directoryLineEdit.pos()
        self._invalidDirectoryLabel.setPixmap(self._invalidPixmap.scaledToHeight(rect.height() / 2))
        self._invalidDirectoryLabel.move(pos.x() - rect.height() / 2, pos.y() + rect.height() / 4)
        self._invalidDirectoryLabel.setFixedSize(self._invalidDirectoryLabel.sizeHint())

    def isComplete(self):
        status = False
        directory = self._ui.directoryLineEdit.text()
        if os.path.isdir(directory) and os.access(directory, os.W_OK | os.X_OK):
            status = True

        self._invalidDirectoryLabel.setVisible(not status)

        return status
    def __init__(self, parent=None):
        super(OutputWizardPage, self).__init__(parent)

        self.setTitle('Output Files')
        self.setSubTitle(
            'Specify where you want the wizard to put the generated skeleton code.'
        )

        self._ui = Ui_Output()
        self._ui.setupUi(self)

        self._invalidPixmap = QtGui.QPixmap(':wizard/images/cross.png')
        self._invalidDirectoryLabel = QtGui.QLabel(self)
        self._invalidDirectoryLabel.setStyleSheet(
            'border: none; padding: 0px;')

        self.registerField(OUTPUT_DIRECTORY_FIELD + '*',
                           self._ui.directoryLineEdit)

        self._makeConnections()
    def __init__(self, parent=None):
        super(OutputWizardPage, self).__init__(parent)

        self.setTitle('Output Files')
        self.setSubTitle('Specify where you want the wizard to put the generated skeleton code.')

        self._ui = Ui_Output()
        self._ui.setupUi(self)

        self._invalidPixmap = QtGui.QPixmap(':wizard/images/cross.png')
        self._invalidDirectoryLabel = QtGui.QLabel(self)
        self._invalidDirectoryLabel.setStyleSheet('border: none; padding: 0px;')

        self.registerField(OUTPUT_DIRECTORY_FIELD, self._ui.directoryLineEdit)

        self._makeConnections()