Maemo: Factor out redundant code.

This commit is contained in:
ck
2010-07-13 17:16:23 +02:00
parent e17b99e7f3
commit 9b30763e9d
4 changed files with 28 additions and 30 deletions

View File

@@ -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)

View File

@@ -29,6 +29,8 @@
#include "maemoglobal.h"
#include <QtCore/QString>
namespace Qt4ProjectManager {
namespace Internal {

View File

@@ -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

View File

@@ -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)
= MaemoGlobal::buildStep<MaemoDeployStep>(activeQt4BuildConfiguration());
Q_ASSERT(step && !"Impossible: Maemo build configuration without deploy step.");
return step;
}
Q_ASSERT(!"Impossible: Maemo run configuration without deploy step.");
return 0;
}
QString MaemoRunConfiguration::maddeRoot() const