QWidget *CustomWizardFieldPage::registerPathChooser(const QString &fieldName, const CustomWizardField &field) { Utils::PathChooser *pathChooser = new Utils::PathChooser; const QString expectedKind = field.controlAttributes.value(QLatin1String("expectedkind")).toLower(); if (expectedKind == QLatin1String("existingdirectory")) pathChooser->setExpectedKind(Utils::PathChooser::ExistingDirectory); else if (expectedKind == QLatin1String("directory")) pathChooser->setExpectedKind(Utils::PathChooser::Directory); else if (expectedKind == QLatin1String("file")) pathChooser->setExpectedKind(Utils::PathChooser::File); else if (expectedKind == QLatin1String("existingcommand")) pathChooser->setExpectedKind(Utils::PathChooser::ExistingCommand); else if (expectedKind == QLatin1String("command")) pathChooser->setExpectedKind(Utils::PathChooser::Command); else if (expectedKind == QLatin1String("any")) pathChooser->setExpectedKind(Utils::PathChooser::Any); pathChooser->setHistoryCompleter(QString::fromLatin1("PE.Custom.") + m_parameters->id + QLatin1Char('.') + field.name); registerField(fieldName, pathChooser, "path", SIGNAL(changed(QString))); // Connect to completeChanged() for derived classes that reimplement isComplete() connect(pathChooser, SIGNAL(changed(QString)), SIGNAL(completeChanged())); const QString defaultText = field.controlAttributes.value(QLatin1String("defaulttext")); m_pathChoosers.push_back(PathChooserData(pathChooser, defaultText)); return pathChooser; } // Utils::PathChooser
QWidget *PathChooserDelegate::createEditor(QWidget *parent, const QStyleOptionViewItem &option, const QModelIndex &index) const { Q_UNUSED(option); Q_UNUSED(index); Utils::PathChooser *editor = new Utils::PathChooser(parent); editor->setHistoryCompleter(m_historyKey); editor->setAutoFillBackground(true); // To hide the text beneath the editor widget editor->lineEdit()->setMinimumWidth(0); connect(editor, SIGNAL(browsingFinished()), this, SLOT(emitCommitData())); return editor; }