aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/qt4projectmanager/qt-s60/s60devicerunconfiguration.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/qt4projectmanager/qt-s60/s60devicerunconfiguration.cpp')
-rw-r--r--src/plugins/qt4projectmanager/qt-s60/s60devicerunconfiguration.cpp41
1 files changed, 35 insertions, 6 deletions
diff --git a/src/plugins/qt4projectmanager/qt-s60/s60devicerunconfiguration.cpp b/src/plugins/qt4projectmanager/qt-s60/s60devicerunconfiguration.cpp
index 3ac0d4b39c..4dde9723de 100644
--- a/src/plugins/qt4projectmanager/qt-s60/s60devicerunconfiguration.cpp
+++ b/src/plugins/qt4projectmanager/qt-s60/s60devicerunconfiguration.cpp
@@ -558,8 +558,22 @@ void S60DeviceRunControlBase::start()
emit addToOutputWindow(this, tr("Creating %1.sisx ...").arg(QDir::toNativeSeparators(m_baseFileName)));
emit addToOutputWindow(this, tr("Executable file: %1").arg(m_executableFileName));
- if (!createPackageFileFromTemplate())
+ QString errorMessage;
+ QString settingsCategory;
+ QString settingsPage;
+ if (!checkConfiguration(&errorMessage, &settingsCategory, &settingsPage)) {
+ error(this, errorMessage);
+ emit finished();
+ Core::ICore::instance()->showWarningWithOptions(tr("S60 Debugger"), errorMessage, QString(),
+ settingsCategory, settingsPage);
+ return;
+ }
+
+ if (!createPackageFileFromTemplate(&errorMessage)) {
+ error(this, errorMessage);
+ emit finished();
return;
+ }
m_makesis->setWorkingDirectory(m_workingDirectory);
emit addToOutputWindow(this, tr("%1 %2").arg(QDir::toNativeSeparators(m_makesisTool), m_packageFile));
m_makesis->start(m_makesisTool, QStringList(m_packageFile), QIODevice::ReadOnly);
@@ -592,12 +606,11 @@ void S60DeviceRunControlBase::readStandardOutput()
emit addToOutputWindowInline(this, QString::fromLocal8Bit(data.constData(), data.length()));
}
-bool S60DeviceRunControlBase::createPackageFileFromTemplate()
+bool S60DeviceRunControlBase::createPackageFileFromTemplate(QString *errorMessage)
{
QFile packageTemplate(m_packageTemplateFile);
if (!packageTemplate.open(QIODevice::ReadOnly)) {
- error(this, tr("Could not read template package file '%1'").arg(QDir::toNativeSeparators(m_packageTemplateFile)));
- emit finished();
+ *errorMessage = tr("Could not read template package file '%1'").arg(QDir::toNativeSeparators(m_packageTemplateFile));
return false;
}
QString contents = packageTemplate.readAll();
@@ -606,8 +619,7 @@ bool S60DeviceRunControlBase::createPackageFileFromTemplate()
contents.replace(QLatin1String("$(TARGET)"), m_symbianTarget);
QFile packageFile(m_packageFilePath);
if (!packageFile.open(QIODevice::WriteOnly)) {
- error(this, tr("Could not write package file '%1'").arg(QDir::toNativeSeparators(m_packageFilePath)));
- emit finished();
+ *errorMessage = tr("Could not write package file '%1'").arg(QDir::toNativeSeparators(m_packageFilePath));
return false;
}
packageFile.write(contents.toLocal8Bit());
@@ -749,6 +761,13 @@ void S60DeviceRunControlBase::printApplicationOutput(const QString &output)
emit addToOutputWindowInline(this, output);
}
+bool S60DeviceRunControlBase::checkConfiguration(QString * /* errorMessage */,
+ QString * /* settingsCategory */,
+ QString * /* settingsPage */) const
+{
+ return true;
+}
+
// =============== S60DeviceRunControl
S60DeviceRunControl::S60DeviceRunControl(const QSharedPointer<ProjectExplorer::RunConfiguration> &runConfiguration) :
S60DeviceRunControlBase(runConfiguration)
@@ -849,3 +868,13 @@ void S60DeviceDebugRunControl::debuggingFinished()
emit addToOutputWindow(this, tr("Debugging finished."));
emit finished();
}
+
+bool S60DeviceDebugRunControl::checkConfiguration(QString *errorMessage,
+ QString *settingsCategory,
+ QString *settingsPage) const
+{
+ return Debugger::DebuggerManager::instance()->checkDebugConfiguration(m_startParams->toolChainType,
+ errorMessage,
+ settingsCategory,
+ settingsPage);
+}