summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMartin Jones <martin.jones@nokia.com>2011-05-04 13:19:37 +1000
committerMartin Jones <martin.jones@nokia.com>2011-05-04 13:19:37 +1000
commitf6dc6ecda9581cbf4420ce33a522ac54579bccd3 (patch)
tree53ffbdddd3cdf35fe8be165352cdba371739a4af
parente10665d7bcea917e3c650c15495b678f18766801 (diff)
Allow setting a custom test directory.customtestdir
This allows me to use autotester with modularized Qt. YMMV.
-rw-r--r--src/mainwindow.cpp13
-rw-r--r--src/qtdirectory.cpp21
-rw-r--r--src/qtdirectory.h6
-rw-r--r--src/qtdirectorydialog.cpp45
-rw-r--r--src/qtdirectorydialog.h4
-rw-r--r--src/qtdirectorydialog.ui36
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>