forked from qt-creator/qt-creator
PathChooser migration for Qt4 build config page
This commit is contained in:
@@ -90,6 +90,7 @@ struct PathChooserPrivate
|
|||||||
PathValidatingLineEdit *m_lineEdit;
|
PathValidatingLineEdit *m_lineEdit;
|
||||||
PathChooser::Kind m_acceptingKind;
|
PathChooser::Kind m_acceptingKind;
|
||||||
QString m_dialogTitleOverride;
|
QString m_dialogTitleOverride;
|
||||||
|
QString m_initialBrowsePathOverride;
|
||||||
};
|
};
|
||||||
|
|
||||||
PathChooserPrivate::PathChooserPrivate(PathChooser *chooser) :
|
PathChooserPrivate::PathChooserPrivate(PathChooser *chooser) :
|
||||||
@@ -143,9 +144,15 @@ void PathChooser::setPath(const QString &path)
|
|||||||
|
|
||||||
void PathChooser::slotBrowse()
|
void PathChooser::slotBrowse()
|
||||||
{
|
{
|
||||||
|
emit beforeBrowsing();
|
||||||
|
|
||||||
QString predefined = path();
|
QString predefined = path();
|
||||||
if (!predefined.isEmpty() && !QFileInfo(predefined).isDir())
|
if ((predefined.isEmpty() || !QFileInfo(predefined).isDir())
|
||||||
predefined.clear();
|
&& !m_d->m_initialBrowsePathOverride.isNull()) {
|
||||||
|
predefined = m_d->m_initialBrowsePathOverride;
|
||||||
|
if (!QFileInfo(predefined).isDir())
|
||||||
|
predefined.clear();
|
||||||
|
}
|
||||||
|
|
||||||
// Prompt for a file/dir
|
// Prompt for a file/dir
|
||||||
QString dialogTitle;
|
QString dialogTitle;
|
||||||
@@ -271,6 +278,11 @@ void PathChooser::setPromptDialogTitle(const QString &title)
|
|||||||
m_d->m_dialogTitleOverride = title;
|
m_d->m_dialogTitleOverride = title;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void PathChooser::setInitialBrowsePathBackup(const QString &path)
|
||||||
|
{
|
||||||
|
m_d->m_initialBrowsePathOverride = path;
|
||||||
|
}
|
||||||
|
|
||||||
QString PathChooser::makeDialogTitle(const QString &title)
|
QString PathChooser::makeDialogTitle(const QString &title)
|
||||||
{
|
{
|
||||||
if (m_d->m_dialogTitleOverride.isNull())
|
if (m_d->m_dialogTitleOverride.isNull())
|
||||||
|
|||||||
@@ -71,6 +71,8 @@ public:
|
|||||||
|
|
||||||
void setPromptDialogTitle(const QString &title);
|
void setPromptDialogTitle(const QString &title);
|
||||||
|
|
||||||
|
void setInitialBrowsePathBackup(const QString &path);
|
||||||
|
|
||||||
bool isValid() const;
|
bool isValid() const;
|
||||||
QString errorMessage() const;
|
QString errorMessage() const;
|
||||||
|
|
||||||
@@ -91,6 +93,7 @@ private:
|
|||||||
signals:
|
signals:
|
||||||
void validChanged();
|
void validChanged();
|
||||||
void changed();
|
void changed();
|
||||||
|
void beforeBrowsing();
|
||||||
void browsingFinished();
|
void browsingFinished();
|
||||||
void returnPressed();
|
void returnPressed();
|
||||||
|
|
||||||
|
|||||||
@@ -54,6 +54,8 @@ Qt4BuildConfigWidget::Qt4BuildConfigWidget(Qt4Project *project)
|
|||||||
{
|
{
|
||||||
m_ui = new Ui::Qt4BuildConfigWidget();
|
m_ui = new Ui::Qt4BuildConfigWidget();
|
||||||
m_ui->setupUi(this);
|
m_ui->setupUi(this);
|
||||||
|
m_ui->shadowBuildDirEdit->setPromptDialogTitle(tr("Shadow Build Directory"));
|
||||||
|
m_ui->shadowBuildDirEdit->setExpectedKind(Core::Utils::PathChooser::Directory);
|
||||||
m_ui->invalidQtWarningLabel->setVisible(false);
|
m_ui->invalidQtWarningLabel->setVisible(false);
|
||||||
|
|
||||||
connect(m_ui->nameLineEdit, SIGNAL(textEdited(QString)),
|
connect(m_ui->nameLineEdit, SIGNAL(textEdited(QString)),
|
||||||
@@ -62,10 +64,10 @@ Qt4BuildConfigWidget::Qt4BuildConfigWidget(Qt4Project *project)
|
|||||||
connect(m_ui->shadowBuildCheckBox, SIGNAL(clicked(bool)),
|
connect(m_ui->shadowBuildCheckBox, SIGNAL(clicked(bool)),
|
||||||
this, SLOT(shadowBuildCheckBoxClicked(bool)));
|
this, SLOT(shadowBuildCheckBoxClicked(bool)));
|
||||||
|
|
||||||
connect(m_ui->shadowBuildButton, SIGNAL(clicked(bool)),
|
connect(m_ui->shadowBuildDirEdit, SIGNAL(beforeBrowsing()),
|
||||||
this, SLOT(shadowBuildButtonClicked()));
|
this, SLOT(onBeforeBeforeShadowBuildDirBrowsed()));
|
||||||
|
|
||||||
connect(m_ui->shadowBuildLineEdit, SIGNAL(textEdited(QString)),
|
connect(m_ui->shadowBuildDirEdit, SIGNAL(changed()),
|
||||||
this, SLOT(shadowBuildLineEditTextChanged()));
|
this, SLOT(shadowBuildLineEditTextChanged()));
|
||||||
|
|
||||||
connect(m_ui->qtVersionComboBox, SIGNAL(currentIndexChanged(QString)),
|
connect(m_ui->qtVersionComboBox, SIGNAL(currentIndexChanged(QString)),
|
||||||
@@ -102,10 +104,9 @@ void Qt4BuildConfigWidget::init(const QString &buildConfiguration)
|
|||||||
|
|
||||||
bool shadowBuild = m_pro->value(buildConfiguration, "useShadowBuild").toBool();
|
bool shadowBuild = m_pro->value(buildConfiguration, "useShadowBuild").toBool();
|
||||||
m_ui->shadowBuildCheckBox->setChecked(shadowBuild);
|
m_ui->shadowBuildCheckBox->setChecked(shadowBuild);
|
||||||
m_ui->shadowBuildLineEdit->setEnabled(shadowBuild);
|
m_ui->shadowBuildDirEdit->setEnabled(shadowBuild);
|
||||||
m_ui->shadowBuildLineEdit->setText(m_pro->buildDirectory(buildConfiguration));
|
m_ui->shadowBuildDirEdit->setPath(m_pro->buildDirectory(buildConfiguration));
|
||||||
shadowBuildLineEditTextChanged(); // Update the import label
|
shadowBuildLineEditTextChanged(); // Update the import label
|
||||||
m_ui->shadowBuildButton->setEnabled(shadowBuild);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void Qt4BuildConfigWidget::changeConfigName(const QString &newName)
|
void Qt4BuildConfigWidget::changeConfigName(const QString &newName)
|
||||||
@@ -145,47 +146,39 @@ void Qt4BuildConfigWidget::setupQtVersionsComboBox()
|
|||||||
this, SLOT(qtVersionComboBoxCurrentIndexChanged(QString)));
|
this, SLOT(qtVersionComboBoxCurrentIndexChanged(QString)));
|
||||||
}
|
}
|
||||||
|
|
||||||
void Qt4BuildConfigWidget::shadowBuildButtonClicked()
|
void Qt4BuildConfigWidget::onBeforeBeforeShadowBuildDirBrowsed()
|
||||||
{
|
{
|
||||||
QString initialDirectory = m_ui->shadowBuildLineEdit->text();
|
QString initialDirectory = QFileInfo(m_pro->file()->fileName()).absolutePath();
|
||||||
if (initialDirectory.isEmpty())
|
if (!initialDirectory.isEmpty())
|
||||||
initialDirectory = QFileInfo(m_pro->file()->fileName()).absolutePath();
|
m_ui->shadowBuildDirEdit->setInitialBrowsePathBackup(initialDirectory);
|
||||||
|
|
||||||
QString shadowBuildDirectory =
|
|
||||||
QFileDialog::getExistingDirectory(this, tr("Shadow Build Directory"), initialDirectory );
|
|
||||||
|
|
||||||
if (shadowBuildDirectory != QString::null)
|
|
||||||
m_ui->shadowBuildLineEdit->setText(shadowBuildDirectory);
|
|
||||||
shadowBuildLineEditTextChanged();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void Qt4BuildConfigWidget::shadowBuildCheckBoxClicked(bool checked)
|
void Qt4BuildConfigWidget::shadowBuildCheckBoxClicked(bool checked)
|
||||||
{
|
{
|
||||||
m_ui->shadowBuildLineEdit->setEnabled(checked);
|
m_ui->shadowBuildDirEdit->setEnabled(checked);
|
||||||
m_ui->shadowBuildButton->setEnabled(checked);
|
|
||||||
bool b = m_ui->shadowBuildCheckBox->isChecked();
|
bool b = m_ui->shadowBuildCheckBox->isChecked();
|
||||||
m_pro->setValue(m_buildConfiguration, "useShadowBuild", b);
|
m_pro->setValue(m_buildConfiguration, "useShadowBuild", b);
|
||||||
if (b)
|
if (b)
|
||||||
m_pro->setValue(m_buildConfiguration, "buildDirectory", m_ui->shadowBuildLineEdit->text());
|
m_pro->setValue(m_buildConfiguration, "buildDirectory", m_ui->shadowBuildDirEdit->path());
|
||||||
else
|
else
|
||||||
m_pro->setValue(m_buildConfiguration, "buildDirectory", QVariant(QString::null));
|
m_pro->setValue(m_buildConfiguration, "buildDirectory", QVariant(QString::null));
|
||||||
}
|
}
|
||||||
|
|
||||||
void Qt4BuildConfigWidget::shadowBuildLineEditTextChanged()
|
void Qt4BuildConfigWidget::shadowBuildLineEditTextChanged()
|
||||||
{
|
{
|
||||||
m_pro->setValue(m_buildConfiguration, "buildDirectory", m_ui->shadowBuildLineEdit->text());
|
m_pro->setValue(m_buildConfiguration, "buildDirectory", m_ui->shadowBuildDirEdit->path());
|
||||||
// if the directory already exists
|
// if the directory already exists
|
||||||
// check if we have a build in there and
|
// check if we have a build in there and
|
||||||
// offer to import it
|
// offer to import it
|
||||||
m_ui->importLabel->setVisible(false);
|
m_ui->importLabel->setVisible(false);
|
||||||
if (m_ui->shadowBuildCheckBox->isChecked()) {
|
if (m_ui->shadowBuildCheckBox->isChecked()) {
|
||||||
QString qtPath = m_pro->qt4ProjectManager()->versionManager()->findQtVersionFromMakefile(m_ui->shadowBuildLineEdit->text());
|
QString qtPath = m_pro->qt4ProjectManager()->versionManager()->findQtVersionFromMakefile(m_ui->shadowBuildDirEdit->path());
|
||||||
if (!qtPath.isEmpty()) {
|
if (!qtPath.isEmpty()) {
|
||||||
m_ui->importLabel->setVisible(true);
|
m_ui->importLabel->setVisible(true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// QFileInfo fi(m_ui->shadowBuildLineEdit->text());
|
// QFileInfo fi(m_ui->shadowBuildDirEdit->path());
|
||||||
// if (fi.exists()) {
|
// if (fi.exists()) {
|
||||||
// m_ui->shadowBuildLineEdit->setStyleSheet("");
|
// m_ui->shadowBuildLineEdit->setStyleSheet("");
|
||||||
// m_ui->shadowBuildLineEdit->setToolTip("");
|
// m_ui->shadowBuildLineEdit->setToolTip("");
|
||||||
@@ -198,7 +191,7 @@ void Qt4BuildConfigWidget::shadowBuildLineEditTextChanged()
|
|||||||
void Qt4BuildConfigWidget::importLabelClicked()
|
void Qt4BuildConfigWidget::importLabelClicked()
|
||||||
{
|
{
|
||||||
if (m_ui->shadowBuildCheckBox->isChecked()) {
|
if (m_ui->shadowBuildCheckBox->isChecked()) {
|
||||||
QString directory = m_ui->shadowBuildLineEdit->text();
|
QString directory = m_ui->shadowBuildDirEdit->path();
|
||||||
if (!directory.isEmpty()) {
|
if (!directory.isEmpty()) {
|
||||||
QtVersionManager *vm = m_pro->qt4ProjectManager()->versionManager();
|
QtVersionManager *vm = m_pro->qt4ProjectManager()->versionManager();
|
||||||
QString qtPath = vm->findQtVersionFromMakefile(directory);
|
QString qtPath = vm->findQtVersionFromMakefile(directory);
|
||||||
|
|||||||
@@ -61,6 +61,7 @@ private slots:
|
|||||||
void setupQtVersionsComboBox();
|
void setupQtVersionsComboBox();
|
||||||
void shadowBuildCheckBoxClicked(bool checked);
|
void shadowBuildCheckBoxClicked(bool checked);
|
||||||
void shadowBuildButtonClicked();
|
void shadowBuildButtonClicked();
|
||||||
|
void onBeforeBeforeShadowBuildDirBrowsed();
|
||||||
void shadowBuildLineEditTextChanged();
|
void shadowBuildLineEditTextChanged();
|
||||||
void importLabelClicked();
|
void importLabelClicked();
|
||||||
void qtVersionComboBoxCurrentIndexChanged(const QString &);
|
void qtVersionComboBoxCurrentIndexChanged(const QString &);
|
||||||
|
|||||||
@@ -110,39 +110,6 @@
|
|||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="3" column="1">
|
|
||||||
<layout class="QHBoxLayout" name="horizontalLayout">
|
|
||||||
<item>
|
|
||||||
<widget class="QLineEdit" name="shadowBuildLineEdit">
|
|
||||||
<property name="sizePolicy">
|
|
||||||
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
|
|
||||||
<horstretch>100</horstretch>
|
|
||||||
<verstretch>0</verstretch>
|
|
||||||
</sizepolicy>
|
|
||||||
</property>
|
|
||||||
<property name="maximumSize">
|
|
||||||
<size>
|
|
||||||
<width>16777215</width>
|
|
||||||
<height>16777215</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<widget class="QToolButton" name="shadowBuildButton">
|
|
||||||
<property name="sizePolicy">
|
|
||||||
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
|
|
||||||
<horstretch>0</horstretch>
|
|
||||||
<verstretch>0</verstretch>
|
|
||||||
</sizepolicy>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>...</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</item>
|
|
||||||
<item row="4" column="1">
|
<item row="4" column="1">
|
||||||
<widget class="QLabel" name="importLabel">
|
<widget class="QLabel" name="importLabel">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
@@ -153,6 +120,16 @@
|
|||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
<item row="3" column="1">
|
||||||
|
<widget class="Core::Utils::PathChooser" name="shadowBuildDirEdit" native="true">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Expanding" vsizetype="Preferred">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
</item>
|
</item>
|
||||||
<item row="0" column="1">
|
<item row="0" column="1">
|
||||||
@@ -186,6 +163,14 @@
|
|||||||
</item>
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
</widget>
|
</widget>
|
||||||
|
<customwidgets>
|
||||||
|
<customwidget>
|
||||||
|
<class>Core::Utils::PathChooser</class>
|
||||||
|
<extends>QWidget</extends>
|
||||||
|
<header location="global">utils/pathchooser.h</header>
|
||||||
|
<container>1</container>
|
||||||
|
</customwidget>
|
||||||
|
</customwidgets>
|
||||||
<resources/>
|
<resources/>
|
||||||
<connections/>
|
<connections/>
|
||||||
</ui>
|
</ui>
|
||||||
|
|||||||
Reference in New Issue
Block a user