From 9b30763e9d20ca376bc0d457880288c7dfa5a0d3 Mon Sep 17 00:00:00 2001 From: ck <qt-info@nokia.com> Date: Tue, 13 Jul 2010 17:16:23 +0200 Subject: [PATCH] Maemo: Factor out redundant code. --- .../qt-maemo/maemodeploystep.cpp | 14 +++------ .../qt-maemo/maemoglobal.cpp | 2 ++ .../qt4projectmanager/qt-maemo/maemoglobal.h | 13 +++++++++ .../qt-maemo/maemorunconfiguration.cpp | 29 ++++++------------- 4 files changed, 28 insertions(+), 30 deletions(-) diff --git a/src/plugins/qt4projectmanager/qt-maemo/maemodeploystep.cpp b/src/plugins/qt4projectmanager/qt-maemo/maemodeploystep.cpp index eb13bb89333..889076d828a 100644 --- a/src/plugins/qt4projectmanager/qt-maemo/maemodeploystep.cpp +++ b/src/plugins/qt4projectmanager/qt-maemo/maemodeploystep.cpp @@ -149,16 +149,10 @@ void MaemoDeployStep::getDeployTimesFromMap(const QVariantMap &map) const MaemoPackageCreationStep *MaemoDeployStep::packagingStep() const { - const QList<ProjectExplorer::BuildStep *> &buildSteps - = buildConfiguration()->steps(ProjectExplorer::BuildStep::Deploy); - for (int i = buildSteps.count() - 1; i >= 0; --i) { - const MaemoPackageCreationStep * const pStep - = qobject_cast<MaemoPackageCreationStep *>(buildSteps.at(i)); - if (pStep) - return pStep; - } - Q_ASSERT(!"Impossible: Maemo run configuration without packaging step."); - return 0; + const MaemoPackageCreationStep * const step + = MaemoGlobal::buildStep<MaemoPackageCreationStep>(buildConfiguration()); + Q_ASSERT(step && "Impossible: Maemo build configuration without packaging step."); + return step; } void MaemoDeployStep::raiseError(const QString &errorString) diff --git a/src/plugins/qt4projectmanager/qt-maemo/maemoglobal.cpp b/src/plugins/qt4projectmanager/qt-maemo/maemoglobal.cpp index 3a6f7853511..9a797fd7ad9 100644 --- a/src/plugins/qt4projectmanager/qt-maemo/maemoglobal.cpp +++ b/src/plugins/qt4projectmanager/qt-maemo/maemoglobal.cpp @@ -29,6 +29,8 @@ #include "maemoglobal.h" +#include <QtCore/QString> + namespace Qt4ProjectManager { namespace Internal { diff --git a/src/plugins/qt4projectmanager/qt-maemo/maemoglobal.h b/src/plugins/qt4projectmanager/qt-maemo/maemoglobal.h index 3d23e6eef18..7a8b2ff8df9 100644 --- a/src/plugins/qt4projectmanager/qt-maemo/maemoglobal.h +++ b/src/plugins/qt4projectmanager/qt-maemo/maemoglobal.h @@ -32,6 +32,8 @@ #include <projectexplorer/buildconfiguration.h> +#include <QtCore/QList> + QT_BEGIN_NAMESPACE class QString; QT_END_NAMESPACE @@ -44,6 +46,17 @@ class MaemoGlobal public: static QString homeDirOnDevice(const QString &uname); static QString remoteSudo(); + + template<class T> static T *buildStep(const ProjectExplorer::BuildConfiguration *bc) + { + const QList<ProjectExplorer::BuildStep *> &buildSteps + = bc->steps(ProjectExplorer::BuildStep::Deploy); + for (int i = buildSteps.count() - 1; i >= 0; --i) { + if (T * const step = qobject_cast<T *>(buildSteps.at(i))) + return step; + } + return 0; + } }; } // namespace Internal diff --git a/src/plugins/qt4projectmanager/qt-maemo/maemorunconfiguration.cpp b/src/plugins/qt4projectmanager/qt-maemo/maemorunconfiguration.cpp index 1ab2ded58e7..3997dd9a9e6 100644 --- a/src/plugins/qt4projectmanager/qt-maemo/maemorunconfiguration.cpp +++ b/src/plugins/qt4projectmanager/qt-maemo/maemorunconfiguration.cpp @@ -30,6 +30,7 @@ #include "maemorunconfiguration.h" #include "maemodeploystep.h" +#include "maemoglobal.h" #include "maemopackagecreationstep.h" #include "maemorunconfigurationwidget.h" #include "maemotoolchain.h" @@ -171,30 +172,18 @@ const QString MaemoRunConfiguration::gdbCmd() const const MaemoPackageCreationStep *MaemoRunConfiguration::packageStep() const { - const QList<ProjectExplorer::BuildStep *> &buildSteps - = activeQt4BuildConfiguration()->steps(ProjectExplorer::BuildStep::Deploy); - for (int i = buildSteps.count() - 1; i >= 0; --i) { - const MaemoPackageCreationStep * const pStep - = qobject_cast<MaemoPackageCreationStep *>(buildSteps.at(i)); - if (pStep) - return pStep; - } - Q_ASSERT(!"Impossible: Maemo run configuration without packaging step."); - return 0; + const MaemoPackageCreationStep * const step + = MaemoGlobal::buildStep<MaemoPackageCreationStep>(activeQt4BuildConfiguration()); + Q_ASSERT(step && "Impossible: Maemo build configuration without packaging step."); + return step; } MaemoDeployStep *MaemoRunConfiguration::deployStep() const { - const QList<ProjectExplorer::BuildStep *> &buildSteps - = activeQt4BuildConfiguration()->steps(ProjectExplorer::BuildStep::Deploy); - for (int i = buildSteps.count() - 1; i >= 0; --i) { - MaemoDeployStep * const step - = qobject_cast<MaemoDeployStep*>(buildSteps.at(i)); - if (step) - return step; - } - Q_ASSERT(!"Impossible: Maemo run configuration without deploy step."); - return 0; + MaemoDeployStep * const step + = MaemoGlobal::buildStep<MaemoDeployStep>(activeQt4BuildConfiguration()); + Q_ASSERT(step && !"Impossible: Maemo build configuration without deploy step."); + return step; } QString MaemoRunConfiguration::maddeRoot() const -- GitLab