forked from qt-creator/qt-creator
PathChooser migration for Qt version config page
This commit is contained in:
@@ -167,13 +167,15 @@ void PathChooser::slotBrowse()
|
|||||||
;
|
;
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO make cross-platform
|
// Delete trailing slashes unless it is "/"|"\\", only
|
||||||
// Delete trailing slashes unless it is "/", only
|
|
||||||
if (!newPath.isEmpty()) {
|
if (!newPath.isEmpty()) {
|
||||||
|
newPath = QDir::toNativeSeparators(newPath);
|
||||||
if (newPath.size() > 1 && newPath.endsWith(QDir::separator()))
|
if (newPath.size() > 1 && newPath.endsWith(QDir::separator()))
|
||||||
newPath.truncate(newPath.size() - 1);
|
newPath.truncate(newPath.size() - 1);
|
||||||
setPath(newPath);
|
setPath(newPath);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
emit browsingFinished();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool PathChooser::isValid() const
|
bool PathChooser::isValid() const
|
||||||
|
@@ -91,6 +91,7 @@ private:
|
|||||||
signals:
|
signals:
|
||||||
void validChanged();
|
void validChanged();
|
||||||
void changed();
|
void changed();
|
||||||
|
void browsingFinished();
|
||||||
void returnPressed();
|
void returnPressed();
|
||||||
|
|
||||||
public slots:
|
public slots:
|
||||||
|
@@ -368,6 +368,10 @@ QtDirWidget::QtDirWidget(QWidget *parent, QList<QtVersion *> versions, int defau
|
|||||||
, m_specifyPathString(tr("<specify a path>"))
|
, m_specifyPathString(tr("<specify a path>"))
|
||||||
{
|
{
|
||||||
m_ui.setupUi(this);
|
m_ui.setupUi(this);
|
||||||
|
m_ui.qtPath->setExpectedKind(Core::Utils::PathChooser::Directory);
|
||||||
|
m_ui.qtPath->setPromptDialogTitle(tr("Select QTDIR"));
|
||||||
|
m_ui.mingwPath->setExpectedKind(Core::Utils::PathChooser::Directory);
|
||||||
|
m_ui.qtPath->setPromptDialogTitle(tr("Select MinGW Directory"));
|
||||||
|
|
||||||
m_ui.addButton->setIcon(QIcon(Core::Constants::ICON_PLUS));
|
m_ui.addButton->setIcon(QIcon(Core::Constants::ICON_PLUS));
|
||||||
m_ui.delButton->setIcon(QIcon(Core::Constants::ICON_MINUS));
|
m_ui.delButton->setIcon(QIcon(Core::Constants::ICON_MINUS));
|
||||||
@@ -385,19 +389,22 @@ QtDirWidget::QtDirWidget(QWidget *parent, QList<QtVersion *> versions, int defau
|
|||||||
|
|
||||||
connect(m_ui.nameEdit, SIGNAL(textEdited(const QString &)),
|
connect(m_ui.nameEdit, SIGNAL(textEdited(const QString &)),
|
||||||
this, SLOT(updateCurrentQtName()));
|
this, SLOT(updateCurrentQtName()));
|
||||||
connect(m_ui.pathEdit, SIGNAL(textEdited(const QString &)),
|
|
||||||
|
|
||||||
|
connect(m_ui.qtPath, SIGNAL(changed()),
|
||||||
this, SLOT(updateCurrentQtPath()));
|
this, SLOT(updateCurrentQtPath()));
|
||||||
connect(m_ui.mingwLineEdit, SIGNAL(textEdited(const QString &)),
|
connect(m_ui.mingwPath, SIGNAL(changed()),
|
||||||
this, SLOT(updateCurrentMingwDirectory()));
|
this, SLOT(updateCurrentMingwDirectory()));
|
||||||
|
|
||||||
connect(m_ui.addButton, SIGNAL(clicked()),
|
connect(m_ui.addButton, SIGNAL(clicked()),
|
||||||
this, SLOT(addQtDir()));
|
this, SLOT(addQtDir()));
|
||||||
connect(m_ui.delButton, SIGNAL(clicked()),
|
connect(m_ui.delButton, SIGNAL(clicked()),
|
||||||
this, SLOT(removeQtDir()));
|
this, SLOT(removeQtDir()));
|
||||||
connect(m_ui.browseButton, SIGNAL(clicked()),
|
|
||||||
this, SLOT(browse()));
|
connect(m_ui.qtPath, SIGNAL(browsingFinished()),
|
||||||
connect(m_ui.mingwBrowseButton, SIGNAL(clicked()),
|
this, SLOT(onQtBrowsed()));
|
||||||
this, SLOT(mingwBrowse()));
|
connect(m_ui.mingwPath, SIGNAL(browsingFinished()),
|
||||||
|
this, SLOT(onMingwBrowsed()));
|
||||||
|
|
||||||
connect(m_ui.qtdirList, SIGNAL(currentItemChanged(QTreeWidgetItem *, QTreeWidgetItem *)),
|
connect(m_ui.qtdirList, SIGNAL(currentItemChanged(QTreeWidgetItem *, QTreeWidgetItem *)),
|
||||||
this, SLOT(versionChanged(QTreeWidgetItem *, QTreeWidgetItem *)));
|
this, SLOT(versionChanged(QTreeWidgetItem *, QTreeWidgetItem *)));
|
||||||
@@ -421,11 +428,11 @@ void QtDirWidget::addQtDir()
|
|||||||
item->setText(1, newVersion->path());
|
item->setText(1, newVersion->path());
|
||||||
item->setData(0, Qt::UserRole, newVersion->uniqueId());
|
item->setData(0, Qt::UserRole, newVersion->uniqueId());
|
||||||
|
|
||||||
m_ui.nameEdit->setText(newVersion->name());
|
|
||||||
m_ui.pathEdit->setText(newVersion->path());
|
|
||||||
|
|
||||||
m_ui.defaultCombo->addItem(newVersion->name());
|
|
||||||
m_ui.qtdirList->setCurrentItem(item);
|
m_ui.qtdirList->setCurrentItem(item);
|
||||||
|
|
||||||
|
m_ui.nameEdit->setText(newVersion->name());
|
||||||
|
m_ui.qtPath->setPath(newVersion->path());
|
||||||
|
m_ui.defaultCombo->addItem(newVersion->name());
|
||||||
m_ui.nameEdit->setFocus();
|
m_ui.nameEdit->setFocus();
|
||||||
m_ui.nameEdit->selectAll();
|
m_ui.nameEdit->selectAll();
|
||||||
}
|
}
|
||||||
@@ -459,10 +466,14 @@ void QtDirWidget::updateState()
|
|||||||
&& m_versions.at(m_ui.qtdirList->indexOfTopLevelItem(m_ui.qtdirList->currentItem()))->isSystemVersion());
|
&& m_versions.at(m_ui.qtdirList->indexOfTopLevelItem(m_ui.qtdirList->currentItem()))->isSystemVersion());
|
||||||
m_ui.delButton->setEnabled(enabled && !isSystemVersion);
|
m_ui.delButton->setEnabled(enabled && !isSystemVersion);
|
||||||
m_ui.nameEdit->setEnabled(enabled && !isSystemVersion);
|
m_ui.nameEdit->setEnabled(enabled && !isSystemVersion);
|
||||||
m_ui.pathEdit->setEnabled(enabled && !isSystemVersion);
|
m_ui.qtPath->setEnabled(enabled && !isSystemVersion);
|
||||||
m_ui.browseButton->setEnabled(enabled && !isSystemVersion);
|
m_ui.mingwPath->setEnabled(enabled);
|
||||||
m_ui.mingwBrowseButton->setEnabled(enabled);
|
}
|
||||||
m_ui.mingwLineEdit->setEnabled(enabled);
|
|
||||||
|
void QtDirWidget::makeMingwVisible(bool visible)
|
||||||
|
{
|
||||||
|
m_ui.mingwLabel->setVisible(visible);
|
||||||
|
m_ui.mingwPath->setVisible(visible);
|
||||||
}
|
}
|
||||||
|
|
||||||
void QtDirWidget::showEnvironmentPage(QTreeWidgetItem *item)
|
void QtDirWidget::showEnvironmentPage(QTreeWidgetItem *item)
|
||||||
@@ -475,16 +486,12 @@ void QtDirWidget::showEnvironmentPage(QTreeWidgetItem *item)
|
|||||||
if (t == QtVersion::MinGW) {
|
if (t == QtVersion::MinGW) {
|
||||||
m_ui.msvcComboBox->setVisible(false);
|
m_ui.msvcComboBox->setVisible(false);
|
||||||
m_ui.msvcLabel->setVisible(false);
|
m_ui.msvcLabel->setVisible(false);
|
||||||
m_ui.mingwLineEdit->setVisible(true);
|
makeMingwVisible(true);
|
||||||
m_ui.mingwLabel->setVisible(true);
|
m_ui.mingwPath->setPath(m_versions.at(index)->mingwDirectory());
|
||||||
m_ui.mingwBrowseButton->setVisible(true);
|
|
||||||
m_ui.mingwLineEdit->setText(m_versions.at(index)->mingwDirectory());
|
|
||||||
} else if (t == QtVersion::MSVC || t == QtVersion::WINCE){
|
} else if (t == QtVersion::MSVC || t == QtVersion::WINCE){
|
||||||
m_ui.msvcComboBox->setVisible(false);
|
m_ui.msvcComboBox->setVisible(false);
|
||||||
m_ui.msvcLabel->setVisible(true);
|
m_ui.msvcLabel->setVisible(true);
|
||||||
m_ui.mingwLineEdit->setVisible(false);
|
makeMingwVisible(false);
|
||||||
m_ui.mingwLabel->setVisible(false);
|
|
||||||
m_ui.mingwBrowseButton->setVisible(false);
|
|
||||||
QList<MSVCEnvironment> msvcenvironments = MSVCEnvironment::availableVersions();
|
QList<MSVCEnvironment> msvcenvironments = MSVCEnvironment::availableVersions();
|
||||||
if (msvcenvironments.count() == 0) {
|
if (msvcenvironments.count() == 0) {
|
||||||
m_ui.msvcLabel->setText(tr("No Visual Studio Installation found"));
|
m_ui.msvcLabel->setText(tr("No Visual Studio Installation found"));
|
||||||
@@ -506,9 +513,7 @@ void QtDirWidget::showEnvironmentPage(QTreeWidgetItem *item)
|
|||||||
} else if (t == QtVersion::INVALID) {
|
} else if (t == QtVersion::INVALID) {
|
||||||
m_ui.msvcComboBox->setVisible(false);
|
m_ui.msvcComboBox->setVisible(false);
|
||||||
m_ui.msvcLabel->setVisible(false);
|
m_ui.msvcLabel->setVisible(false);
|
||||||
m_ui.mingwLineEdit->setVisible(false);
|
makeMingwVisible(false);
|
||||||
m_ui.mingwLabel->setVisible(false);
|
|
||||||
m_ui.mingwBrowseButton->setVisible(false);
|
|
||||||
if (!m_versions.at(index)->isInstalled())
|
if (!m_versions.at(index)->isInstalled())
|
||||||
m_ui.errorLabel->setText(tr("The Qt Version is not installed. Run make install")
|
m_ui.errorLabel->setText(tr("The Qt Version is not installed. Run make install")
|
||||||
.arg(m_versions.at(index)->path()));
|
.arg(m_versions.at(index)->path()));
|
||||||
@@ -517,9 +522,7 @@ void QtDirWidget::showEnvironmentPage(QTreeWidgetItem *item)
|
|||||||
} else { //QtVersion::Other
|
} else { //QtVersion::Other
|
||||||
m_ui.msvcComboBox->setVisible(false);
|
m_ui.msvcComboBox->setVisible(false);
|
||||||
m_ui.msvcLabel->setVisible(false);
|
m_ui.msvcLabel->setVisible(false);
|
||||||
m_ui.mingwLineEdit->setVisible(false);
|
makeMingwVisible(false);
|
||||||
m_ui.mingwLabel->setVisible(false);
|
|
||||||
m_ui.mingwBrowseButton->setVisible(false);
|
|
||||||
m_ui.errorLabel->setText("Found Qt version "
|
m_ui.errorLabel->setText("Found Qt version "
|
||||||
+ m_versions.at(index)->qtVersionString()
|
+ m_versions.at(index)->qtVersionString()
|
||||||
+ " using mkspec "
|
+ " using mkspec "
|
||||||
@@ -528,9 +531,7 @@ void QtDirWidget::showEnvironmentPage(QTreeWidgetItem *item)
|
|||||||
} else {
|
} else {
|
||||||
m_ui.msvcComboBox->setVisible(false);
|
m_ui.msvcComboBox->setVisible(false);
|
||||||
m_ui.msvcLabel->setVisible(false);
|
m_ui.msvcLabel->setVisible(false);
|
||||||
m_ui.mingwLineEdit->setVisible(false);
|
makeMingwVisible(false);
|
||||||
m_ui.mingwLabel->setVisible(false);
|
|
||||||
m_ui.mingwBrowseButton->setVisible(false);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -541,24 +542,21 @@ void QtDirWidget::versionChanged(QTreeWidgetItem *item, QTreeWidgetItem *old)
|
|||||||
}
|
}
|
||||||
if (item) {
|
if (item) {
|
||||||
m_ui.nameEdit->setText(item->text(0));
|
m_ui.nameEdit->setText(item->text(0));
|
||||||
m_ui.pathEdit->setText(item->text(1));
|
m_ui.qtPath->setPath(item->text(1));
|
||||||
} else {
|
} else {
|
||||||
m_ui.nameEdit->clear();
|
m_ui.nameEdit->clear();
|
||||||
m_ui.pathEdit->clear();
|
m_ui.qtPath->setPath(""); // clear()
|
||||||
}
|
}
|
||||||
showEnvironmentPage(item);
|
showEnvironmentPage(item);
|
||||||
updateState();
|
updateState();
|
||||||
}
|
}
|
||||||
|
|
||||||
void QtDirWidget::browse()
|
void QtDirWidget::onQtBrowsed()
|
||||||
{
|
{
|
||||||
QString dir = QFileDialog::getExistingDirectory(this, tr("Select QTDIR"));
|
const QString dir = m_ui.qtPath->path();
|
||||||
|
|
||||||
if (dir.isEmpty())
|
if (dir.isEmpty())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
dir = QDir::toNativeSeparators(dir);
|
|
||||||
m_ui.pathEdit->setText(dir);
|
|
||||||
updateCurrentQtPath();
|
updateCurrentQtPath();
|
||||||
if (m_ui.nameEdit->text().isEmpty() || m_ui.nameEdit->text() == m_specifyNameString) {
|
if (m_ui.nameEdit->text().isEmpty() || m_ui.nameEdit->text() == m_specifyNameString) {
|
||||||
QStringList dirSegments = dir.split(QDir::separator(), QString::SkipEmptyParts);
|
QStringList dirSegments = dir.split(QDir::separator(), QString::SkipEmptyParts);
|
||||||
@@ -569,14 +567,12 @@ void QtDirWidget::browse()
|
|||||||
updateState();
|
updateState();
|
||||||
}
|
}
|
||||||
|
|
||||||
void QtDirWidget::mingwBrowse()
|
void QtDirWidget::onMingwBrowsed()
|
||||||
{
|
{
|
||||||
QString dir = QFileDialog::getExistingDirectory(this, tr("Select MinGW Directory"));
|
const QString dir = m_ui.mingwPath->path();
|
||||||
if (dir.isEmpty())
|
if (dir.isEmpty())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
dir = QDir::toNativeSeparators(dir);
|
|
||||||
m_ui.mingwLineEdit->setText(dir);
|
|
||||||
updateCurrentMingwDirectory();
|
updateCurrentMingwDirectory();
|
||||||
updateState();
|
updateState();
|
||||||
}
|
}
|
||||||
@@ -647,7 +643,7 @@ void QtDirWidget::updateCurrentQtPath()
|
|||||||
QTreeWidgetItem *currentItem = m_ui.qtdirList->currentItem();
|
QTreeWidgetItem *currentItem = m_ui.qtdirList->currentItem();
|
||||||
Q_ASSERT(currentItem);
|
Q_ASSERT(currentItem);
|
||||||
int currentItemIndex = m_ui.qtdirList->indexOfTopLevelItem(currentItem);
|
int currentItemIndex = m_ui.qtdirList->indexOfTopLevelItem(currentItem);
|
||||||
m_versions[currentItemIndex]->setPath(m_ui.pathEdit->text());
|
m_versions[currentItemIndex]->setPath(m_ui.qtPath->path());
|
||||||
currentItem->setText(1, m_versions[currentItemIndex]->path());
|
currentItem->setText(1, m_versions[currentItemIndex]->path());
|
||||||
|
|
||||||
showEnvironmentPage(currentItem);
|
showEnvironmentPage(currentItem);
|
||||||
@@ -658,7 +654,7 @@ void QtDirWidget::updateCurrentMingwDirectory()
|
|||||||
QTreeWidgetItem *currentItem = m_ui.qtdirList->currentItem();
|
QTreeWidgetItem *currentItem = m_ui.qtdirList->currentItem();
|
||||||
Q_ASSERT(currentItem);
|
Q_ASSERT(currentItem);
|
||||||
int currentItemIndex = m_ui.qtdirList->indexOfTopLevelItem(currentItem);
|
int currentItemIndex = m_ui.qtdirList->indexOfTopLevelItem(currentItem);
|
||||||
m_versions[currentItemIndex]->setMingwDirectory(m_ui.mingwLineEdit->text());
|
m_versions[currentItemIndex]->setMingwDirectory(m_ui.mingwPath->path());
|
||||||
}
|
}
|
||||||
|
|
||||||
void QtDirWidget::msvcVersionChanged()
|
void QtDirWidget::msvcVersionChanged()
|
||||||
|
@@ -149,8 +149,9 @@ private slots:
|
|||||||
void addQtDir();
|
void addQtDir();
|
||||||
void removeQtDir();
|
void removeQtDir();
|
||||||
void updateState();
|
void updateState();
|
||||||
void browse();
|
void makeMingwVisible(bool visible);
|
||||||
void mingwBrowse();
|
void onQtBrowsed();
|
||||||
|
void onMingwBrowsed();
|
||||||
void defaultChanged(int index);
|
void defaultChanged(int index);
|
||||||
void updateCurrentQtName();
|
void updateCurrentQtName();
|
||||||
void updateCurrentQtPath();
|
void updateCurrentQtPath();
|
||||||
|
@@ -109,16 +109,6 @@
|
|||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="2" column="1">
|
|
||||||
<widget class="QLineEdit" name="pathEdit"/>
|
|
||||||
</item>
|
|
||||||
<item row="2" column="2">
|
|
||||||
<widget class="QToolButton" name="browseButton">
|
|
||||||
<property name="text">
|
|
||||||
<string>...</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="3" column="0">
|
<item row="3" column="0">
|
||||||
<widget class="QLabel" name="mingwLabel">
|
<widget class="QLabel" name="mingwLabel">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
@@ -126,16 +116,6 @@
|
|||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="3" column="1">
|
|
||||||
<widget class="QLineEdit" name="mingwLineEdit"/>
|
|
||||||
</item>
|
|
||||||
<item row="3" column="2">
|
|
||||||
<widget class="QToolButton" name="mingwBrowseButton">
|
|
||||||
<property name="text">
|
|
||||||
<string>...</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="4" column="0" colspan="3">
|
<item row="4" column="0" colspan="3">
|
||||||
<widget class="QLabel" name="msvcLabel">
|
<widget class="QLabel" name="msvcLabel">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
@@ -153,6 +133,12 @@
|
|||||||
<item row="5" column="1" colspan="2">
|
<item row="5" column="1" colspan="2">
|
||||||
<widget class="QComboBox" name="msvcComboBox"/>
|
<widget class="QComboBox" name="msvcComboBox"/>
|
||||||
</item>
|
</item>
|
||||||
|
<item row="2" column="1" colspan="2">
|
||||||
|
<widget class="Core::Utils::PathChooser" name="qtPath" native="true"/>
|
||||||
|
</item>
|
||||||
|
<item row="3" column="1" colspan="2">
|
||||||
|
<widget class="Core::Utils::PathChooser" name="mingwPath" native="true"/>
|
||||||
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
@@ -179,34 +165,20 @@
|
|||||||
</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>
|
||||||
<tabstops>
|
<tabstops>
|
||||||
<tabstop>qtdirList</tabstop>
|
<tabstop>qtdirList</tabstop>
|
||||||
<tabstop>delButton</tabstop>
|
<tabstop>delButton</tabstop>
|
||||||
<tabstop>nameEdit</tabstop>
|
<tabstop>nameEdit</tabstop>
|
||||||
<tabstop>pathEdit</tabstop>
|
|
||||||
<tabstop>defaultCombo</tabstop>
|
<tabstop>defaultCombo</tabstop>
|
||||||
<tabstop>browseButton</tabstop>
|
|
||||||
</tabstops>
|
</tabstops>
|
||||||
<resources>
|
<resources/>
|
||||||
<include location="../../libs/cplusplus/cplusplus.qrc"/>
|
|
||||||
<include location="../../libs/extensionsystem/pluginview.qrc"/>
|
|
||||||
<include location="../bookmarks/bookmarks.qrc"/>
|
|
||||||
<include location="../coreplugin/core.qrc"/>
|
|
||||||
<include location="../coreplugin/fancyactionbar.qrc"/>
|
|
||||||
<include location="../cppeditor/cppeditor.qrc"/>
|
|
||||||
<include location="../cpptools/cpptools.qrc"/>
|
|
||||||
<include location="../designer/designer.qrc"/>
|
|
||||||
<include location="../find/find.qrc"/>
|
|
||||||
<include location="../gdbdebugger/gdbdebugger.qrc"/>
|
|
||||||
<include location="../help/help.qrc"/>
|
|
||||||
<include location="../perforce/perforce.qrc"/>
|
|
||||||
<include location="../projectexplorer/projectexplorer.qrc"/>
|
|
||||||
<include location="../../../shared/proparser/proparser.qrc"/>
|
|
||||||
<include location="qt4projectmanager.qrc"/>
|
|
||||||
<include location="wizards/wizards.qrc"/>
|
|
||||||
<include location="../quickopen/quickopen.qrc"/>
|
|
||||||
<include location="../resourceeditor/resourceeditor.qrc"/>
|
|
||||||
<include location="../texteditor/texteditor.qrc"/>
|
|
||||||
</resources>
|
|
||||||
<connections/>
|
<connections/>
|
||||||
</ui>
|
</ui>
|
||||||
|
Reference in New Issue
Block a user