diff options
author | Martin Jones <martin.jones@nokia.com> | 2011-05-04 13:19:37 +1000 |
---|---|---|
committer | Martin Jones <martin.jones@nokia.com> | 2011-05-04 13:19:37 +1000 |
commit | f6dc6ecda9581cbf4420ce33a522ac54579bccd3 (patch) | |
tree | 53ffbdddd3cdf35fe8be165352cdba371739a4af | |
parent | e10665d7bcea917e3c650c15495b678f18766801 (diff) |
Allow setting a custom test directory.customtestdir
This allows me to use autotester with modularized Qt. YMMV.
-rw-r--r-- | src/mainwindow.cpp | 13 | ||||
-rw-r--r-- | src/qtdirectory.cpp | 21 | ||||
-rw-r--r-- | src/qtdirectory.h | 6 | ||||
-rw-r--r-- | src/qtdirectorydialog.cpp | 45 | ||||
-rw-r--r-- | src/qtdirectorydialog.h | 4 | ||||
-rw-r--r-- | src/qtdirectorydialog.ui | 36 |
6 files changed, 115 insertions, 10 deletions
diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 8a2e2cb..6be0132 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -328,7 +328,7 @@ void MainWindow::setCurrentQtRepo(const QString &repoName) proxyModel = 0; } - ui->profiles->clear(); +// ui->profiles->clear(); ui->qtvariants->clear(); ui->qtvariants->addItems(currentRepository->variants()); @@ -540,14 +540,15 @@ void MainWindow::onDialogAccepted() { QString name = dialog->name(); QString location = dialog->location(); + QString testLocation = dialog->testsLocation(); if (repositories.contains(name)) return; #ifdef Q_WS_WIN - QtDirectory *dir = new QtDirectory(name, location, dialog->makeLocation()); + QtDirectory *dir = new QtDirectory(name, location, testLocation, dialog->makeLocation()); #else - QtDirectory *dir = new QtDirectory(name, location); + QtDirectory *dir = new QtDirectory(name, location, testLocation); #endif repositories.insert(name, dir); ui->qtversions->addItem(name); @@ -795,6 +796,7 @@ void MainWindow::saveRepoSettings() settings.setArrayIndex(i); settings.setValue("name", repositories.value(repo)->name()); settings.setValue("location", repositories.value(repo)->qmake()); + settings.setValue("testLocation", repositories.value(repo)->testLocation()); #ifdef Q_WS_WIN settings.setValue("make", repositories.value(repo)->make()); #endif @@ -854,11 +856,12 @@ void MainWindow::restoreSettings() settings.setArrayIndex(i); QString name = settings.value("name").toString(); QString location = settings.value("location").toString(); + QString testLocation = settings.value("testLocation").toString(); #ifdef Q_WS_WIN QString make = settings.value("make").toString(); - QtDirectory *dir = new QtDirectory(name, location, make); + QtDirectory *dir = new QtDirectory(name, location, testLocation, make); #else - QtDirectory *dir = new QtDirectory(name, location); + QtDirectory *dir = new QtDirectory(name, location, testLocation); #endif repositories.insert(name, dir); repos.append(name); diff --git a/src/qtdirectory.cpp b/src/qtdirectory.cpp index 3f91546..028717d 100644 --- a/src/qtdirectory.cpp +++ b/src/qtdirectory.cpp @@ -49,14 +49,15 @@ /************************************************************************************************** **************************************************************************************************/ -QtDirectory::QtDirectory(const QString &name, const QString &location +QtDirectory::QtDirectory(const QString &name, const QString &location, const QString &testLocation #ifdef Q_WS_WIN , const QString &make #endif ) : QObject(), repoName(name), - repoQmake(location) + repoQmake(location), + customTestLocation(false) { repoBuildDir = location; QString toRemove = "/bin/qmake"; @@ -64,8 +65,18 @@ QtDirectory::QtDirectory(const QString &name, const QString &location toRemove += QString(".exe"); #endif repoBuildDir.replace(toRemove, QString("")); - repoTestBuildDir = repoBuildDir + QString("/tests/auto"); repoBinDir = repoBuildDir + QString("/bin"); + if (testLocation.isEmpty()) { + repoTestBuildDir = repoBuildDir + QString("/tests/auto"); + repoTestSrcDir = repoTestBuildDir; + } else { + customTestLocation = true; + repoTestLocation = testLocation; + repoTestBuildDir = testLocation; + repoTestSrcDir = repoTestBuildDir; + } + + qDebug() << repoTestBuildDir << repoBinDir; bool symbianBuildSystem = false; repoVariants.clear(); @@ -78,6 +89,8 @@ QtDirectory::QtDirectory(const QString &name, const QString &location line.replace("\\", "/"); repoSrcDir = line; repoSrcDir.remove(0, repoSrcDir.indexOf("=") + 1); + if (repoSrcDir.contains("$$QT_SOURCE_TREE")) + continue; repoSrcDir = repoSrcDir.trimmed(); repoSrcDir.replace("$$quote(", ""); repoSrcDir.replace(")", ""); @@ -116,6 +129,8 @@ QtDirectory::QtDirectory(const QString &name, const QString &location } } + qDebug() << "tests" << repoTestSrcDir; + QStringList arguments; arguments << "--version"; QProcess process; diff --git a/src/qtdirectory.h b/src/qtdirectory.h index 5102a4a..87f13b1 100644 --- a/src/qtdirectory.h +++ b/src/qtdirectory.h @@ -55,7 +55,7 @@ class QtDirectory : public QObject Q_OBJECT public: - QtDirectory(const QString &name, const QString& location + QtDirectory(const QString &name, const QString& location, const QString &testLocation #ifdef Q_WS_WIN , const QString &make #endif @@ -78,6 +78,8 @@ public: { return repoTestSrcDir; } inline QString qmake() const { return repoQmake; } + inline QString testLocation() const + { return repoTestLocation; } #ifdef Q_WS_WIN inline QString make() const { return repoMakeLocation; } @@ -105,6 +107,8 @@ private: QString repoTestSrcDir; bool repoCrossCompiled; QString repoRemoteOS; + bool customTestLocation; + QString repoTestLocation; #ifdef Q_WS_WIN QString repoMakeLocation; diff --git a/src/qtdirectorydialog.cpp b/src/qtdirectorydialog.cpp index 92a9a62..00e0f52 100644 --- a/src/qtdirectorydialog.cpp +++ b/src/qtdirectorydialog.cpp @@ -96,6 +96,15 @@ QString QtDirectoryDialog::location() const /************************************************************************************************** **************************************************************************************************/ +QString QtDirectoryDialog::testsLocation() const +{ + if (!ui->customTests->isChecked()) + return QString(); + return ui->tests->text(); +} + +/************************************************************************************************** + **************************************************************************************************/ #ifdef Q_WS_WIN QString QtDirectoryDialog::makeLocation() const { @@ -127,6 +136,24 @@ void QtDirectoryDialog::on_browse_clicked() /************************************************************************************************** **************************************************************************************************/ +void QtDirectoryDialog::on_customTests_toggled(bool enabled) +{ + ui->tests->setEnabled(enabled); + ui->testsLabel->setEnabled(enabled); + ui->browseTests->setEnabled(enabled); +} + +/************************************************************************************************** + **************************************************************************************************/ +void QtDirectoryDialog::on_browseTests_clicked() +{ + QString loc = QFileDialog::getExistingDirectory(this, "Select tests location"); + if (!loc.isEmpty()) + ui->tests->setText(loc); +} + +/************************************************************************************************** + **************************************************************************************************/ #ifdef Q_WS_WIN void QtDirectoryDialog::onuibrowsemake_clicked() { @@ -154,6 +181,14 @@ void QtDirectoryDialog::on_qmake_textChanged(const QString &text) /************************************************************************************************** **************************************************************************************************/ +void QtDirectoryDialog::on_tests_textChanged(const QString &text) +{ + Q_UNUSED(text) + checkFields(); +} + +/************************************************************************************************** + **************************************************************************************************/ #ifdef Q_WS_WIN void QtDirectoryDialog::onuimake_textChanged(const QString &text) { @@ -290,6 +325,16 @@ void QtDirectoryDialog::checkFields() } #endif + if (ui->customTests->isChecked()) { + QString fn = ui->tests->text() + "/auto.pro"; + QFileInfo fileAuto(fn); + if (!fileAuto.exists()) { + ui->message->setText("Unable to find " + fn + " at this location"); + ui->buttonBox->button(QDialogButtonBox::Ok)->setEnabled(false); + return; + } + } + QString version = read.mid(read.indexOf("Using ") + 6, 16); ui->message->setStyleSheet("color:green"); ui->message->setText(QString("Found %1").arg(version)); diff --git a/src/qtdirectorydialog.h b/src/qtdirectorydialog.h index f849646..24dbb65 100644 --- a/src/qtdirectorydialog.h +++ b/src/qtdirectorydialog.h @@ -63,6 +63,7 @@ public: void promptDialog(); QString name() const; QString location() const; + QString testsLocation() const; #ifdef Q_WS_WIN QString makeLocation() const; #endif @@ -71,6 +72,9 @@ protected Q_SLOTS: void on_browse_clicked(); void on_name_textChanged(const QString &text); void on_qmake_textChanged(const QString &text); + void on_customTests_toggled(bool); + void on_browseTests_clicked(); + void on_tests_textChanged(const QString &text); #ifdef Q_WS_WIN void onuimake_textChanged(const QString &text); void onuibrowsemake_clicked(); diff --git a/src/qtdirectorydialog.ui b/src/qtdirectorydialog.ui index dc8a322..7e1b51a 100644 --- a/src/qtdirectorydialog.ui +++ b/src/qtdirectorydialog.ui @@ -7,7 +7,7 @@ <x>0</x> <y>0</y> <width>428</width> - <height>141</height> + <height>203</height> </rect> </property> <property name="windowTitle"> @@ -52,6 +52,40 @@ </property> </widget> </item> + <item row="2" column="0" colspan="2"> + <widget class="QCheckBox" name="customTests"> + <property name="text"> + <string>Custom test location</string> + </property> + </widget> + </item> + <item row="3" column="0"> + <widget class="QLabel" name="testsLabel"> + <property name="enabled"> + <bool>false</bool> + </property> + <property name="text"> + <string>Test Location:</string> + </property> + </widget> + </item> + <item row="3" column="1"> + <widget class="QLineEdit" name="tests"> + <property name="enabled"> + <bool>false</bool> + </property> + </widget> + </item> + <item row="3" column="2"> + <widget class="QPushButton" name="browseTests"> + <property name="enabled"> + <bool>false</bool> + </property> + <property name="text"> + <string>Browse...</string> + </property> + </widget> + </item> </layout> </item> <item> |