Skip to content
Snippets Groups Projects
Commit 399ad59f authored by kh1's avatar kh1
Browse files

Move the factories inside there own source files.

parent 55dc4a9a
Branches
Tags
No related merge requests found
/****************************************************************************
**
** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
** All rights reserved.
** Contact: Nokia Corporation (qt-info@nokia.com)
**
** This file is part of the Qt Creator.
**
** $QT_BEGIN_LICENSE:LGPL$
** No Commercial Usage
** This file contains pre-release code and may not be distributed.
** You may use this file in accordance with the terms and conditions
** contained in the Technology Preview License Agreement accompanying
** this package.
**
** GNU Lesser General Public License Usage
** Alternatively, this file may be used under the terms of the GNU Lesser
** General Public License version 2.1 as published by the Free Software
** Foundation and appearing in the file LICENSE.LGPL included in the
** packaging of this file. Please review the following information to
** ensure the GNU Lesser General Public License version 2.1 requirements
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
**
** In addition, as a special exception, Nokia gives you certain additional
** rights. These rights are described in the Nokia Qt LGPL Exception
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
**
** If you have questions regarding the use of this file, please contact
** Nokia at qt-info@nokia.com.
**
** $QT_END_LICENSE$
**
****************************************************************************/
#ifndef MAEMOCONSTANTS_H
#define MAEMOCONSTANTS_H
namespace Qt4ProjectManager {
namespace Internal {
#define PREFIX "Qt4ProjectManager.MaemoRunConfiguration"
static const QLatin1String MAEMO_RC_ID(PREFIX);
static const QLatin1String MAEMO_RC_ID_PREFIX(PREFIX ".");
static const QLatin1String ArgumentsKey(PREFIX ".Arguments");
static const QLatin1String SimulatorPathKey(PREFIX ".Simulator");
static const QLatin1String DeviceIdKey(PREFIX ".DeviceId");
static const QLatin1String LastDeployedKey(PREFIX ".LastDeployed");
static const QLatin1String DebuggingHelpersLastDeployedKey(PREFIX ".DebuggingHelpersLastDeployed");
static const QLatin1String ProFileKey(".ProFile");
} // namespace Internal
} // namespace Qt4ProjectManager
#endif // MAEMOCONSTANTS_H
...@@ -30,6 +30,7 @@ ...@@ -30,6 +30,7 @@
#include "maemomanager.h" #include "maemomanager.h"
#include "maemodeviceconfigurations.h" #include "maemodeviceconfigurations.h"
#include "maemorunfactories.h"
#include "maemosettingspage.h" #include "maemosettingspage.h"
#include "maemotoolchain.h" #include "maemotoolchain.h"
#include "maemorunconfiguration.h" #include "maemorunconfiguration.h"
......
...@@ -28,56 +28,20 @@ ...@@ -28,56 +28,20 @@
**************************************************************************/ **************************************************************************/
#include "maemorunconfiguration.h" #include "maemorunconfiguration.h"
#include "maemodeviceconfigurations.h" #include "maemoconstants.h"
#include "maemomanager.h" #include "maemomanager.h"
#include "maemorunconfigurationwidget.h" #include "maemorunconfigurationwidget.h"
#include "maemoruncontrol.h"
#include "maemotoolchain.h" #include "maemotoolchain.h"
#include "profilereader.h"
#include "qt4project.h"
#include "qt4target.h"
#include "qt4buildconfiguration.h"
#include <coreplugin/icore.h> #include <coreplugin/icore.h>
#include <coreplugin/messagemanager.h> #include <coreplugin/messagemanager.h>
#include <extensionsystem/pluginmanager.h> #include <qt4projectmanager/qt4project.h>
#include <utils/pathchooser.h>
#include <utils/qtcassert.h> #include <utils/qtcassert.h>
#include <projectexplorer/persistentsettings.h>
#include <projectexplorer/projectexplorerconstants.h>
#include <projectexplorer/session.h>
#include <QtCore/QDebug> #include <QtCore/QDebug>
#include <QtCore/QProcess> #include <QtCore/QProcess>
#include <QtCore/QStringBuilder> #include <QtCore/QStringBuilder>
namespace {
const char * const MAEMO_RC_ID("Qt4ProjectManager.MaemoRunConfiguration");
const char * const MAEMO_RC_ID_PREFIX("Qt4ProjectManager.MaemoRunConfiguration.");
QString targetFromId(const QString &id)
{
QString prefix(MAEMO_RC_ID_PREFIX);
if (!id.startsWith(prefix))
return QString();
return id.mid(prefix.size());
}
QString targetToId(const QString &target)
{
return QString::fromLatin1(MAEMO_RC_ID_PREFIX) + target;
}
} // namespace
static const QLatin1String ArgumentsKey("Qt4ProjectManager.MaemoRunConfiguration.Arguments");
static const QLatin1String SimulatorPathKey("Qt4ProjectManager.MaemoRunConfiguration.Simulator");
static const QLatin1String DeviceIdKey("Qt4ProjectManager.MaemoRunConfiguration.DeviceId");
static const QLatin1String LastDeployedKey("Qt4ProjectManager.MaemoRunConfiguration.LastDeployed");
static const QLatin1String DebuggingHelpersLastDeployedKey(
"Qt4ProjectManager.MaemoRunConfiguration.DebuggingHelpersLastDeployed");
static const QLatin1String ProFileKey("Qt4ProjectManager.MaemoRunConfiguration.ProFile");
namespace Qt4ProjectManager { namespace Qt4ProjectManager {
namespace Internal { namespace Internal {
...@@ -541,226 +505,5 @@ void MaemoRunConfiguration::updateDeviceConfigurations() ...@@ -541,226 +505,5 @@ void MaemoRunConfiguration::updateDeviceConfigurations()
emit deviceConfigurationsUpdated(); emit deviceConfigurationsUpdated();
} }
// #pragma mark -- MaemoRunConfigurationFactory
MaemoRunConfigurationFactory::MaemoRunConfigurationFactory(QObject *parent)
: IRunConfigurationFactory(parent)
{
ProjectExplorerPlugin *explorer = ProjectExplorerPlugin::instance();
connect(explorer->session(), SIGNAL(projectAdded(ProjectExplorer::Project*)),
this, SLOT(projectAdded(ProjectExplorer::Project*)));
connect(explorer->session(), SIGNAL(projectRemoved(ProjectExplorer::Project*)),
this, SLOT(projectRemoved(ProjectExplorer::Project*)));
connect(explorer, SIGNAL(currentProjectChanged(ProjectExplorer::Project*)),
this, SLOT(currentProjectChanged(ProjectExplorer::Project*)));
}
MaemoRunConfigurationFactory::~MaemoRunConfigurationFactory()
{
}
bool MaemoRunConfigurationFactory::canCreate(Target *parent,
const QString &id) const
{
Qt4Target *target = qobject_cast<Qt4Target *>(parent);
if (!target
|| (target->id() != QLatin1String(MAEMO_DEVICE_TARGET_ID)
&& target->id() != QLatin1String(MAEMO_EMULATOR_TARGET_ID))) {
return false;
}
return id == QLatin1String(MAEMO_RC_ID);
}
bool MaemoRunConfigurationFactory::canRestore(Target *parent,
const QVariantMap &map) const
{
return canCreate(parent, ProjectExplorer::idFromMap(map));
}
bool MaemoRunConfigurationFactory::canClone(Target *parent,
RunConfiguration *source) const
{
return canCreate(parent, source->id());
}
QStringList MaemoRunConfigurationFactory::availableCreationIds(Target *parent) const
{
if (Qt4Target *t = qobject_cast<Qt4Target *>(parent)) {
if (t->id() == QLatin1String(MAEMO_DEVICE_TARGET_ID)
|| t->id() == QLatin1String(MAEMO_EMULATOR_TARGET_ID)) {
return t->qt4Project()->
applicationProFilePathes(QLatin1String(MAEMO_RC_ID_PREFIX));
}
}
return QStringList();
}
QString MaemoRunConfigurationFactory::displayNameForId(const QString &id) const
{
QString target(targetFromId(id));
if (target.isEmpty())
return QString();
return tr("%1 on Maemo Device").arg(QFileInfo(target).completeBaseName());
}
RunConfiguration *MaemoRunConfigurationFactory::create(Target *parent,
const QString &id)
{
if (!canCreate(parent, id))
return 0;
Qt4Target *pqt4parent = static_cast<Qt4Target *>(parent);
MaemoRunConfiguration *rc = new MaemoRunConfiguration(pqt4parent,
targetFromId(id));
setupRunConfiguration(rc);
return rc;
}
RunConfiguration *MaemoRunConfigurationFactory::restore(Target *parent,
const QVariantMap &map)
{
if (!canRestore(parent, map))
return 0;
Qt4Target *t = static_cast<Qt4Target *>(parent);
MaemoRunConfiguration *rc = new MaemoRunConfiguration(t, QString());
if (!rc->fromMap(map)) {
delete rc;
return 0;
}
setupRunConfiguration(rc);
return rc;
}
RunConfiguration *MaemoRunConfigurationFactory::clone(Target *parent,
RunConfiguration *source)
{
if (!canClone(parent, source))
return 0;
Qt4Target *t = static_cast<Qt4Target *>(parent);
MaemoRunConfiguration *old = static_cast<MaemoRunConfiguration *>(source);
MaemoRunConfiguration *rc = new MaemoRunConfiguration(t, old);
setupRunConfiguration(rc);
return rc;
}
void MaemoRunConfigurationFactory::setupRunConfiguration(MaemoRunConfiguration *rc)
{
if (rc) {
connect(MaemoManager::instance(), SIGNAL(startStopQemu()), rc,
SLOT(startStopQemu()));
connect(rc, SIGNAL(qemuProcessStatus(bool)), MaemoManager::instance(),
SLOT(updateQemuSimulatorStarter(bool)));
}
}
void MaemoRunConfigurationFactory::projectAdded(
ProjectExplorer::Project *project)
{
connect(project, SIGNAL(addedTarget(ProjectExplorer::Target*)), this,
SLOT(targetAdded(ProjectExplorer::Target*)));
connect(project, SIGNAL(removedTarget(ProjectExplorer::Target*)), this,
SLOT(targetRemoved(ProjectExplorer::Target*)));
foreach (Target *target, project->targets())
targetAdded(target);
}
void MaemoRunConfigurationFactory::projectRemoved(
ProjectExplorer::Project *project)
{
disconnect(project, SIGNAL(addedTarget(ProjectExplorer::Target*)), this,
SLOT(targetAdded(ProjectExplorer::Target*)));
disconnect(project, SIGNAL(removedTarget(ProjectExplorer::Target*)), this,
SLOT(targetRemoved(ProjectExplorer::Target*)));
foreach (Target *target, project->targets())
targetRemoved(target);
}
void MaemoRunConfigurationFactory::targetAdded(ProjectExplorer::Target *target)
{
if (target->id() != QLatin1String(MAEMO_EMULATOR_TARGET_ID)
&& target->id() != QLatin1String(MAEMO_DEVICE_TARGET_ID))
return;
MaemoManager::instance()->addQemuSimulatorStarter(target->project());
}
void MaemoRunConfigurationFactory::targetRemoved(ProjectExplorer::Target *target)
{
if (target->id() != QLatin1String(MAEMO_EMULATOR_TARGET_ID)
&& target->id() != QLatin1String(MAEMO_DEVICE_TARGET_ID))
return;
MaemoManager::instance()->removeQemuSimulatorStarter(target->project());
}
void MaemoRunConfigurationFactory::currentProjectChanged(
ProjectExplorer::Project *project)
{
if (!project)
return;
Target *maemoTarget(project->target(QLatin1String(MAEMO_EMULATOR_TARGET_ID)));
if (!maemoTarget)
maemoTarget = project->target(QLatin1String(MAEMO_DEVICE_TARGET_ID));
MaemoManager::instance()->setQemuSimulatorStarterEnabled(maemoTarget != 0);
bool isRunning = false;
if (maemoTarget
&& project->activeTarget() == maemoTarget
&& maemoTarget->activeRunConfiguration()) {
MaemoRunConfiguration *mrc = qobject_cast<MaemoRunConfiguration *>
(maemoTarget->activeRunConfiguration());
if (mrc)
isRunning = mrc->isQemuRunning();
}
MaemoManager::instance()->updateQemuSimulatorStarter(isRunning);
}
// #pragma mark -- MaemoRunControlFactory
MaemoRunControlFactory::MaemoRunControlFactory(QObject *parent)
: IRunControlFactory(parent)
{
}
bool MaemoRunControlFactory::canRun(RunConfiguration *runConfiguration,
const QString &mode) const
{
return qobject_cast<MaemoRunConfiguration *>(runConfiguration)
&& (mode == ProjectExplorer::Constants::RUNMODE
|| mode == ProjectExplorer::Constants::DEBUGMODE);
}
RunControl* MaemoRunControlFactory::create(RunConfiguration *runConfig,
const QString &mode)
{
MaemoRunConfiguration *rc = qobject_cast<MaemoRunConfiguration *>(runConfig);
Q_ASSERT(rc);
Q_ASSERT(mode == ProjectExplorer::Constants::RUNMODE
|| mode == ProjectExplorer::Constants::DEBUGMODE);
if (mode == ProjectExplorer::Constants::RUNMODE)
return new MaemoRunControl(rc);
return new MaemoDebugRunControl(rc);
}
QString MaemoRunControlFactory::displayName() const
{
return tr("Run on device");
}
QWidget* MaemoRunControlFactory::configurationWidget(RunConfiguration *config)
{
Q_UNUSED(config)
return 0;
}
} // namespace Internal } // namespace Internal
} // namespace Qt4ProjectManager } // namespace Qt4ProjectManager
...@@ -32,12 +32,13 @@ ...@@ -32,12 +32,13 @@
#include "maemodeviceconfigurations.h" #include "maemodeviceconfigurations.h"
#include <projectexplorer/projectexplorer.h>
#include <projectexplorer/runconfiguration.h>
#include <QtCore/QDateTime> #include <QtCore/QDateTime>
#include <QtGui/QWidget>
#include <debugger/debuggermanager.h> QT_FORWARD_DECLARE_CLASS(QProcess)
#include <projectexplorer/runconfiguration.h> QT_FORWARD_DECLARE_CLASS(QWidget)
#include <projectexplorer/applicationlauncher.h>
namespace Qt4ProjectManager { namespace Qt4ProjectManager {
...@@ -59,8 +60,7 @@ class MaemoRunConfiguration : public ProjectExplorer::RunConfiguration ...@@ -59,8 +60,7 @@ class MaemoRunConfiguration : public ProjectExplorer::RunConfiguration
friend class MaemoRunConfigurationFactory; friend class MaemoRunConfigurationFactory;
public: public:
MaemoRunConfiguration(Qt4Target *parent, MaemoRunConfiguration(Qt4Target *parent, const QString &proFilePath);
const QString &proFilePath);
virtual ~MaemoRunConfiguration(); virtual ~MaemoRunConfiguration();
bool isEnabled(ProjectExplorer::BuildConfiguration *config) const; bool isEnabled(ProjectExplorer::BuildConfiguration *config) const;
...@@ -107,8 +107,7 @@ signals: ...@@ -107,8 +107,7 @@ signals:
void qemuProcessStatus(bool running); void qemuProcessStatus(bool running);
protected: protected:
MaemoRunConfiguration(Qt4Target *parent, MaemoRunConfiguration(Qt4Target *parent, MaemoRunConfiguration *source);
MaemoRunConfiguration *source);
virtual bool fromMap(const QVariantMap &map); virtual bool fromMap(const QVariantMap &map);
private slots: private slots:
...@@ -151,56 +150,9 @@ private: ...@@ -151,56 +150,9 @@ private:
QDateTime m_debuggingHelpersLastDeployed; QDateTime m_debuggingHelpersLastDeployed;
QProcess *qemu; QProcess *qemu;
ErrorDumper dumper;
};
class MaemoRunConfigurationFactory : public ProjectExplorer::IRunConfigurationFactory
{
Q_OBJECT
public:
explicit MaemoRunConfigurationFactory(QObject *parent = 0);
~MaemoRunConfigurationFactory();
QStringList availableCreationIds(ProjectExplorer::Target *parent) const;
QString displayNameForId(const QString &id) const;
bool canRestore(ProjectExplorer::Target *parent, const QVariantMap &map) const;
bool canClone(ProjectExplorer::Target *parent, ProjectExplorer::RunConfiguration *source) const;
bool canCreate(ProjectExplorer::Target *parent, const QString &id) const;
ProjectExplorer::RunConfiguration *restore(ProjectExplorer::Target *parent, const QVariantMap &map);
ProjectExplorer::RunConfiguration *clone(ProjectExplorer::Target *parent, ProjectExplorer::RunConfiguration *source);
ProjectExplorer::RunConfiguration *create(ProjectExplorer::Target *parent, const QString &id);
private slots:
void projectAdded(ProjectExplorer::Project *project);
void projectRemoved(ProjectExplorer::Project *project);
void targetAdded(ProjectExplorer::Target *target);
void targetRemoved(ProjectExplorer::Target *target);
void currentProjectChanged(ProjectExplorer::Project *project);
private:
void setupRunConfiguration(MaemoRunConfiguration *rc);
};
class MaemoRunControlFactory : public ProjectExplorer::IRunControlFactory
{
Q_OBJECT
public:
MaemoRunControlFactory(QObject *parent = 0);
bool canRun(ProjectExplorer::RunConfiguration *runConfiguration,
const QString &mode) const;
ProjectExplorer::RunControl* create(ProjectExplorer::RunConfiguration *runConfiguration,
const QString &mode);
QString displayName() const;
QWidget *configurationWidget(ProjectExplorer::RunConfiguration *runConfiguration);
}; };
} // namespace Internal } // namespace Internal
} // namespace Qt4ProjectManager } // namespace Qt4ProjectManager
#endif // MAEMORUNCONFIGURATION_H #endif // MAEMORUNCONFIGURATION_H
/****************************************************************************
**
** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
** All rights reserved.
** Contact: Nokia Corporation (qt-info@nokia.com)
**
** This file is part of the Qt Creator.
**
** $QT_BEGIN_LICENSE:LGPL$
** No Commercial Usage
** This file contains pre-release code and may not be distributed.
** You may use this file in accordance with the terms and conditions
** contained in the Technology Preview License Agreement accompanying
** this package.
**
** GNU Lesser General Public License Usage
** Alternatively, this file may be used under the terms of the GNU Lesser
** General Public License version 2.1 as published by the Free Software
** Foundation and appearing in the file LICENSE.LGPL included in the
** packaging of this file. Please review the following information to
** ensure the GNU Lesser General Public License version 2.1 requirements
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
**
** In addition, as a special exception, Nokia gives you certain additional
** rights. These rights are described in the Nokia Qt LGPL Exception
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
**
** If you have questions regarding the use of this file, please contact
** Nokia at qt-info@nokia.com.
**
** $QT_END_LICENSE$
**
****************************************************************************/
#include "maemorunfactories.h"
#include "maemoconstants.h"
#include "maemomanager.h"
#include "maemorunconfiguration.h"
#include "maemoruncontrol.h"
#include <projectexplorer/projectexplorer.h>
#include <projectexplorer/projectexplorerconstants.h>
#include <projectexplorer/session.h>
#include <qt4projectmanager/qt4project.h>
namespace Qt4ProjectManager {
namespace Internal {
using namespace ProjectExplorer;
namespace {
QString targetFromId(const QString &id)
{
if (!id.startsWith(MAEMO_RC_ID_PREFIX))
return QString();
return id.mid(QString(MAEMO_RC_ID_PREFIX).size());
}
} // namespace
MaemoRunConfigurationFactory::MaemoRunConfigurationFactory(QObject *parent)
: IRunConfigurationFactory(parent)
{
ProjectExplorerPlugin *explorer = ProjectExplorerPlugin::instance();
connect(explorer->session(), SIGNAL(projectAdded(ProjectExplorer::Project*)),
this, SLOT(projectAdded(ProjectExplorer::Project*)));
connect(explorer->session(), SIGNAL(projectRemoved(ProjectExplorer::Project*)),
this, SLOT(projectRemoved(ProjectExplorer::Project*)));
connect(explorer, SIGNAL(currentProjectChanged(ProjectExplorer::Project*)),
this, SLOT(currentProjectChanged(ProjectExplorer::Project*)));
}
MaemoRunConfigurationFactory::~MaemoRunConfigurationFactory()
{
}
bool MaemoRunConfigurationFactory::canCreate(Target *parent,
const QString &id) const
{
Qt4Target *target = qobject_cast<Qt4Target *>(parent);
if (!target
|| (target->id() != QLatin1String(MAEMO_DEVICE_TARGET_ID)
&& target->id() != QLatin1String(MAEMO_EMULATOR_TARGET_ID))) {
return false;
}
return id == QLatin1String(MAEMO_RC_ID);
}
bool MaemoRunConfigurationFactory::canRestore(Target *parent,
const QVariantMap &map) const
{
return canCreate(parent, ProjectExplorer::idFromMap(map));
}
bool MaemoRunConfigurationFactory::canClone(Target *parent,
RunConfiguration *source) const
{
return canCreate(parent, source->id());
}
QStringList MaemoRunConfigurationFactory::availableCreationIds(Target *parent) const
{
if (Qt4Target *t = qobject_cast<Qt4Target *>(parent)) {
if (t->id() == QLatin1String(MAEMO_DEVICE_TARGET_ID)
|| t->id() == QLatin1String(MAEMO_EMULATOR_TARGET_ID)) {
return t->qt4Project()->
applicationProFilePathes(QLatin1String(MAEMO_RC_ID_PREFIX));
}
}
return QStringList();
}
QString MaemoRunConfigurationFactory::displayNameForId(const QString &id) const
{
QString target(targetFromId(id));
if (target.isEmpty())
return QString();
return tr("%1 on Maemo Device").arg(QFileInfo(target).completeBaseName());
}
RunConfiguration *MaemoRunConfigurationFactory::create(Target *parent,
const QString &id)
{
if (!canCreate(parent, id))
return 0;
Qt4Target *pqt4parent = static_cast<Qt4Target *>(parent);
MaemoRunConfiguration *rc = new MaemoRunConfiguration(pqt4parent,
targetFromId(id));
setupRunConfiguration(rc);
return rc;
}
RunConfiguration *MaemoRunConfigurationFactory::restore(Target *parent,
const QVariantMap &map)
{
if (!canRestore(parent, map))
return 0;
Qt4Target *t = static_cast<Qt4Target *>(parent);
MaemoRunConfiguration *rc = new MaemoRunConfiguration(t, QString());
if (!rc->fromMap(map)) {
delete rc;
return 0;
}
setupRunConfiguration(rc);
return rc;
}
RunConfiguration *MaemoRunConfigurationFactory::clone(Target *parent,
RunConfiguration *source)
{
if (!canClone(parent, source))
return 0;
Qt4Target *t = static_cast<Qt4Target *>(parent);
MaemoRunConfiguration *old = static_cast<MaemoRunConfiguration *>(source);
MaemoRunConfiguration *rc = new MaemoRunConfiguration(t, old);
setupRunConfiguration(rc);
return rc;
}
void MaemoRunConfigurationFactory::setupRunConfiguration(MaemoRunConfiguration *rc)
{
if (rc) {
connect(MaemoManager::instance(), SIGNAL(startStopQemu()), rc,
SLOT(startStopQemu()));
connect(rc, SIGNAL(qemuProcessStatus(bool)), MaemoManager::instance(),
SLOT(updateQemuSimulatorStarter(bool)));
}
}
void MaemoRunConfigurationFactory::projectAdded(
ProjectExplorer::Project *project)
{
connect(project, SIGNAL(addedTarget(ProjectExplorer::Target*)), this,
SLOT(targetAdded(ProjectExplorer::Target*)));
connect(project, SIGNAL(removedTarget(ProjectExplorer::Target*)), this,
SLOT(targetRemoved(ProjectExplorer::Target*)));
foreach (Target *target, project->targets())
targetAdded(target);
}
void MaemoRunConfigurationFactory::projectRemoved(
ProjectExplorer::Project *project)
{
disconnect(project, SIGNAL(addedTarget(ProjectExplorer::Target*)), this,
SLOT(targetAdded(ProjectExplorer::Target*)));
disconnect(project, SIGNAL(removedTarget(ProjectExplorer::Target*)), this,
SLOT(targetRemoved(ProjectExplorer::Target*)));
foreach (Target *target, project->targets())
targetRemoved(target);
}
void MaemoRunConfigurationFactory::targetAdded(ProjectExplorer::Target *target)
{
if (target->id() != QLatin1String(MAEMO_EMULATOR_TARGET_ID)
&& target->id() != QLatin1String(MAEMO_DEVICE_TARGET_ID))
return;
MaemoManager::instance()->addQemuSimulatorStarter(target->project());
}
void MaemoRunConfigurationFactory::targetRemoved(ProjectExplorer::Target *target)
{
if (target->id() != QLatin1String(MAEMO_EMULATOR_TARGET_ID)
&& target->id() != QLatin1String(MAEMO_DEVICE_TARGET_ID))
return;
MaemoManager::instance()->removeQemuSimulatorStarter(target->project());
}
void MaemoRunConfigurationFactory::currentProjectChanged(
ProjectExplorer::Project *project)
{
if (!project)
return;
Target *maemoTarget(project->target(QLatin1String(MAEMO_EMULATOR_TARGET_ID)));
if (!maemoTarget)
maemoTarget = project->target(QLatin1String(MAEMO_DEVICE_TARGET_ID));
MaemoManager::instance()->setQemuSimulatorStarterEnabled(maemoTarget != 0);
bool isRunning = false;
if (maemoTarget
&& project->activeTarget() == maemoTarget
&& maemoTarget->activeRunConfiguration()) {
MaemoRunConfiguration *mrc = qobject_cast<MaemoRunConfiguration *>
(maemoTarget->activeRunConfiguration());
if (mrc)
isRunning = mrc->isQemuRunning();
}
MaemoManager::instance()->updateQemuSimulatorStarter(isRunning);
}
// #pragma mark -- MaemoRunControlFactory
MaemoRunControlFactory::MaemoRunControlFactory(QObject *parent)
: IRunControlFactory(parent)
{
}
MaemoRunControlFactory::~MaemoRunControlFactory()
{
}
bool MaemoRunControlFactory::canRun(RunConfiguration *runConfiguration,
const QString &mode) const
{
return qobject_cast<MaemoRunConfiguration *>(runConfiguration)
&& (mode == ProjectExplorer::Constants::RUNMODE
|| mode == ProjectExplorer::Constants::DEBUGMODE);
}
RunControl* MaemoRunControlFactory::create(RunConfiguration *runConfig,
const QString &mode)
{
MaemoRunConfiguration *rc = qobject_cast<MaemoRunConfiguration *>(runConfig);
Q_ASSERT(rc);
Q_ASSERT(mode == ProjectExplorer::Constants::RUNMODE
|| mode == ProjectExplorer::Constants::DEBUGMODE);
if (mode == ProjectExplorer::Constants::RUNMODE)
return new MaemoRunControl(rc);
return new MaemoDebugRunControl(rc);
}
QString MaemoRunControlFactory::displayName() const
{
return tr("Run on device");
}
QWidget* MaemoRunControlFactory::configurationWidget(RunConfiguration *config)
{
Q_UNUSED(config)
return 0;
}
} // namespace Internal
} // namespace Qt4ProjectManager
/****************************************************************************
**
** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
** All rights reserved.
** Contact: Nokia Corporation (qt-info@nokia.com)
**
** This file is part of the Qt Creator.
**
** $QT_BEGIN_LICENSE:LGPL$
** No Commercial Usage
** This file contains pre-release code and may not be distributed.
** You may use this file in accordance with the terms and conditions
** contained in the Technology Preview License Agreement accompanying
** this package.
**
** GNU Lesser General Public License Usage
** Alternatively, this file may be used under the terms of the GNU Lesser
** General Public License version 2.1 as published by the Free Software
** Foundation and appearing in the file LICENSE.LGPL included in the
** packaging of this file. Please review the following information to
** ensure the GNU Lesser General Public License version 2.1 requirements
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
**
** In addition, as a special exception, Nokia gives you certain additional
** rights. These rights are described in the Nokia Qt LGPL Exception
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
**
** If you have questions regarding the use of this file, please contact
** Nokia at qt-info@nokia.com.
**
** $QT_END_LICENSE$
**
****************************************************************************/
#ifndef MAEMORUNFACTORIES_H
#define MAEMORUNFACTORIES_H
#include <projectexplorer/runconfiguration.h>
namespace Qt4ProjectManager {
namespace Internal {
class MaemoRunConfiguration;
using namespace ProjectExplorer;
class MaemoRunConfigurationFactory : public IRunConfigurationFactory
{
Q_OBJECT
public:
explicit MaemoRunConfigurationFactory(QObject *parent = 0);
~MaemoRunConfigurationFactory();
QString displayNameForId(const QString &id) const;
QStringList availableCreationIds(Target *parent) const;
bool canCreate(Target *parent, const QString &id) const;
RunConfiguration *create(Target *parent, const QString &id);
bool canRestore(Target *parent, const QVariantMap &map) const;
RunConfiguration *restore(Target *parent, const QVariantMap &map);
bool canClone(Target *parent, RunConfiguration *source) const;
RunConfiguration *clone(Target *parent, RunConfiguration *source);
private slots:
void projectAdded(ProjectExplorer::Project *project);
void projectRemoved(ProjectExplorer::Project *project);
void targetAdded(ProjectExplorer::Target *target);
void targetRemoved(ProjectExplorer::Target *target);
void currentProjectChanged(ProjectExplorer::Project *project);
private:
void setupRunConfiguration(MaemoRunConfiguration *rc);
};
class MaemoRunControlFactory : public IRunControlFactory
{
Q_OBJECT
public:
explicit MaemoRunControlFactory(QObject *parent = 0);
~MaemoRunControlFactory();
QString displayName() const;
QWidget *configurationWidget(RunConfiguration *runConfiguration);
bool canRun(RunConfiguration *runConfiguration, const QString &mode) const;
RunControl* create(RunConfiguration *runConfiguration, const QString &mode);
};
} // namespace Internal
} // namespace Qt4ProjectManager
#endif // MAEMORUNFACTORIES_H
...@@ -10,7 +10,10 @@ HEADERS += $$PWD/maemorunconfiguration.h \ ...@@ -10,7 +10,10 @@ HEADERS += $$PWD/maemorunconfiguration.h \
$$PWD/maemosshconnection.h \ $$PWD/maemosshconnection.h \
$$PWD/maemosshthread.h \ $$PWD/maemosshthread.h \
$$PWD/maemoruncontrol.h \ $$PWD/maemoruncontrol.h \
$$PWD/maemorunconfigurationwidget.h $$PWD/maemorunconfigurationwidget.h \
$$PWD/maemorunfactories.h \
$$PWD/maemoconstants.h
SOURCES += $$PWD/maemorunconfiguration.cpp \ SOURCES += $$PWD/maemorunconfiguration.cpp \
$$PWD/maemomanager.cpp \ $$PWD/maemomanager.cpp \
$$PWD/maemotoolchain.cpp \ $$PWD/maemotoolchain.cpp \
...@@ -20,6 +23,8 @@ SOURCES += $$PWD/maemorunconfiguration.cpp \ ...@@ -20,6 +23,8 @@ SOURCES += $$PWD/maemorunconfiguration.cpp \
$$PWD/maemosshconnection.cpp \ $$PWD/maemosshconnection.cpp \
$$PWD/maemosshthread.cpp \ $$PWD/maemosshthread.cpp \
$$PWD/maemoruncontrol.cpp \ $$PWD/maemoruncontrol.cpp \
$$PWD/maemorunconfigurationwidget.cpp $$PWD/maemorunconfigurationwidget.cpp \
$$PWD/maemorunfactories.cpp
FORMS += $$PWD/maemosettingswidget.ui FORMS += $$PWD/maemosettingswidget.ui
RESOURCES += $$PWD/qt-maemo.qrc RESOURCES += $$PWD/qt-maemo.qrc
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment