diff --git a/src/plugins/remotelinux/abstractremotelinuxdeployservice.h b/src/plugins/remotelinux/abstractremotelinuxdeployservice.h index de465a22674..b7a14777702 100644 --- a/src/plugins/remotelinux/abstractremotelinuxdeployservice.h +++ b/src/plugins/remotelinux/abstractremotelinuxdeployservice.h @@ -75,6 +75,7 @@ public: signals: void errorMessage(const QString &message); void progressMessage(const QString &message); + void warningMessage(const QString &message); void stdOutData(const QString &data); void stdErrData(const QString &data); diff --git a/src/plugins/remotelinux/abstractremotelinuxdeploystep.cpp b/src/plugins/remotelinux/abstractremotelinuxdeploystep.cpp index 401c2c6d26e..8c0fbcff005 100644 --- a/src/plugins/remotelinux/abstractremotelinuxdeploystep.cpp +++ b/src/plugins/remotelinux/abstractremotelinuxdeploystep.cpp @@ -95,7 +95,9 @@ bool AbstractRemoteLinuxDeployStep::isDeploymentPossible(QString *whyNot) const void AbstractRemoteLinuxDeployStep::run(QFutureInterface &fi) { connect(deployService(), SIGNAL(errorMessage(QString)), SLOT(handleErrorMessage(QString))); - connect(deployService(), SIGNAL(progressMessage(QString)), SLOT(handleProgressMessage(QString))); + connect(deployService(), SIGNAL(progressMessage(QString)), + SLOT(handleProgressMessage(QString))); + connect(deployService(), SIGNAL(warningMessage(QString)), SLOT(handleWarningMessage(QString))); connect(deployService(), SIGNAL(stdOutData(QString)), SLOT(handleStdOutData(QString))); connect(deployService(), SIGNAL(stdErrData(QString)), SLOT(handleStdErrData(QString))); connect(deployService(), SIGNAL(finished()), SLOT(handleFinished())); @@ -132,11 +134,19 @@ void AbstractRemoteLinuxDeployStep::handleProgressMessage(const QString &message void AbstractRemoteLinuxDeployStep::handleErrorMessage(const QString &message) { + emit addOutput(message, ErrorMessageOutput); emit addTask(Task(Task::Error, message, QString(), -1, ProjectExplorer::Constants::TASK_CATEGORY_BUILDSYSTEM)); d->hasError = true; } +void AbstractRemoteLinuxDeployStep::handleWarningMessage(const QString &message) +{ + emit addOutput(message, ErrorMessageOutput); + emit addTask(Task(Task::Warning, message, QString(), -1, + ProjectExplorer::Constants::TASK_CATEGORY_BUILDSYSTEM)); +} + void AbstractRemoteLinuxDeployStep::handleFinished() { if (d->hasError) diff --git a/src/plugins/remotelinux/abstractremotelinuxdeploystep.h b/src/plugins/remotelinux/abstractremotelinuxdeploystep.h index b1870ec8dbf..f135f5b73cd 100644 --- a/src/plugins/remotelinux/abstractremotelinuxdeploystep.h +++ b/src/plugins/remotelinux/abstractremotelinuxdeploystep.h @@ -72,6 +72,7 @@ protected: private slots: void handleProgressMessage(const QString &message); void handleErrorMessage(const QString &message); + void handleWarningMessage(const QString &message); void handleFinished(); void handleStdOutData(const QString &data); void handleStdErrData(const QString &data); diff --git a/src/plugins/remotelinux/genericdirectuploadservice.cpp b/src/plugins/remotelinux/genericdirectuploadservice.cpp index 27d338d4f59..16f5e7dcd20 100644 --- a/src/plugins/remotelinux/genericdirectuploadservice.cpp +++ b/src/plugins/remotelinux/genericdirectuploadservice.cpp @@ -86,23 +86,6 @@ void GenericDirectUploadService::setIncrementalDeployment(bool incremental) d->incremental = incremental; } -bool GenericDirectUploadService::isDeploymentPossible(QString *whyNot) const -{ - if (!AbstractRemoteLinuxDeployService::isDeploymentPossible(whyNot)) - return false; - foreach (const DeployableFile &df, d->deployableFiles) { - if (df.remoteDir.isEmpty()) { // Can happen with targets. - if (whyNot) { - *whyNot = tr("Don't know where to deploy local file '%1'.") - .arg(QFileInfo(df.localFilePath).fileName()); - } - return false; - } - } - - return true; -} - bool GenericDirectUploadService::isDeploymentNecessary() const { d->filesToUpload.clear(); @@ -328,6 +311,14 @@ void GenericDirectUploadService::uploadNextFile() const DeployableFile &df = d->filesToUpload.first(); QString dirToCreate = df.remoteDir; + if (dirToCreate.isEmpty()) { + emit warningMessage(tr("Warning: No remote path set for local file '%1'. Skipping upload.") + .arg(QDir::toNativeSeparators(df.localFilePath))); + d->filesToUpload.takeFirst(); + uploadNextFile(); + return; + } + QFileInfo fi(df.localFilePath); if (fi.isDir()) dirToCreate += QLatin1Char('/') + fi.fileName(); diff --git a/src/plugins/remotelinux/genericdirectuploadservice.h b/src/plugins/remotelinux/genericdirectuploadservice.h index 405f8d2d54d..ee2e3037081 100644 --- a/src/plugins/remotelinux/genericdirectuploadservice.h +++ b/src/plugins/remotelinux/genericdirectuploadservice.h @@ -55,7 +55,6 @@ public: void setIncrementalDeployment(bool incremental); protected: - bool isDeploymentPossible(QString *whyNot) const; bool isDeploymentNecessary() const; void doDeviceSetup();