forked from qt-creator/qt-creator
Move the factories inside there own source files.
This commit is contained in:
55
src/plugins/qt4projectmanager/qt-maemo/maemoconstants.h
Normal file
55
src/plugins/qt4projectmanager/qt-maemo/maemoconstants.h
Normal file
@@ -0,0 +1,55 @@
|
|||||||
|
/****************************************************************************
|
||||||
|
**
|
||||||
|
** 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 @@
|
|||||||
#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 @@
|
|||||||
**************************************************************************/
|
**************************************************************************/
|
||||||
#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()
|
|||||||
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 @@
|
|||||||
|
|
||||||
#include "maemodeviceconfigurations.h"
|
#include "maemodeviceconfigurations.h"
|
||||||
|
|
||||||
#include <QtCore/QDateTime>
|
#include <projectexplorer/projectexplorer.h>
|
||||||
#include <QtGui/QWidget>
|
|
||||||
|
|
||||||
#include <debugger/debuggermanager.h>
|
|
||||||
#include <projectexplorer/runconfiguration.h>
|
#include <projectexplorer/runconfiguration.h>
|
||||||
#include <projectexplorer/applicationlauncher.h>
|
|
||||||
|
#include <QtCore/QDateTime>
|
||||||
|
|
||||||
|
QT_FORWARD_DECLARE_CLASS(QProcess)
|
||||||
|
QT_FORWARD_DECLARE_CLASS(QWidget)
|
||||||
|
|
||||||
namespace Qt4ProjectManager {
|
namespace Qt4ProjectManager {
|
||||||
|
|
||||||
@@ -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:
|
|||||||
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:
|
|||||||
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
|
||||||
|
|||||||
284
src/plugins/qt4projectmanager/qt-maemo/maemorunfactories.cpp
Normal file
284
src/plugins/qt4projectmanager/qt-maemo/maemorunfactories.cpp
Normal file
@@ -0,0 +1,284 @@
|
|||||||
|
/****************************************************************************
|
||||||
|
**
|
||||||
|
** 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
|
||||||
95
src/plugins/qt4projectmanager/qt-maemo/maemorunfactories.h
Normal file
95
src/plugins/qt4projectmanager/qt-maemo/maemorunfactories.h
Normal file
@@ -0,0 +1,95 @@
|
|||||||
|
/****************************************************************************
|
||||||
|
**
|
||||||
|
** 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 \
|
|||||||
$$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 \
|
|||||||
$$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
|
||||||
|
|||||||
Reference in New Issue
Block a user