summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordt <qtc-commiter@nokia.com>2008-12-09 14:53:06 +0100
committerdt <qtc-commiter@nokia.com>2008-12-09 14:53:06 +0100
commite99d8ce3fc67925437a9bef344b66db39ca232aa (patch)
treeea1dcf0ec02b82afdb1ce57079b4c178d7c49030
parentf293f4d7efc4b973c9fdec8eb6910766fa8f5c4c (diff)
downloadqt-creator-e99d8ce3fc67925437a9bef344b66db39ca232aa.tar.gz
Fixes: Add those files.
Task: - RevBy: - AutoTest: - Details: -
-rw-r--r--src/plugins/cmakeprojectmanager/cmakerunconfiguration.cpp155
-rw-r--r--src/plugins/cmakeprojectmanager/cmakerunconfiguration.h93
2 files changed, 248 insertions, 0 deletions
diff --git a/src/plugins/cmakeprojectmanager/cmakerunconfiguration.cpp b/src/plugins/cmakeprojectmanager/cmakerunconfiguration.cpp
new file mode 100644
index 0000000000..eed15c3593
--- /dev/null
+++ b/src/plugins/cmakeprojectmanager/cmakerunconfiguration.cpp
@@ -0,0 +1,155 @@
+/***************************************************************************
+**
+** This file is part of Qt Creator
+**
+** Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies).
+**
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+**
+** Non-Open Source Usage
+**
+** Licensees may use this file in accordance with the Qt Beta Version
+** License Agreement, Agreement version 2.2 provided with the Software or,
+** alternatively, in accordance with the terms contained in a written
+** agreement between you and Nokia.
+**
+** GNU General Public License Usage
+**
+** Alternatively, this file may be used under the terms of the GNU General
+** Public License versions 2.0 or 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the packaging
+** of this file. Please review the following information to ensure GNU
+** General Public Licensing requirements will be met:
+**
+** http://www.fsf.org/licensing/licenses/info/GPLv2.html and
+** http://www.gnu.org/copyleft/gpl.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt GPL Exception
+** version 1.2, included in the file GPL_EXCEPTION.txt in this package.
+**
+***************************************************************************/
+
+#include "cmakerunconfiguration.h"
+#include "cmakeprojectconstants.h"
+#include "cmakeproject.h"
+
+#include <projectexplorer/environment.h>
+
+using namespace CMakeProjectManager;
+using namespace CMakeProjectManager::Internal;
+
+CMakeRunConfiguration::CMakeRunConfiguration(CMakeProject *pro, const QString &target, const QString &workingDirectory)
+ : ProjectExplorer::ApplicationRunConfiguration(pro), m_target(target), m_workingDirectory(workingDirectory)
+{
+ setName(target);
+}
+CMakeRunConfiguration::~CMakeRunConfiguration()
+{
+
+}
+
+QString CMakeRunConfiguration::type() const
+{
+ return Constants::CMAKERUNCONFIGURATION;
+}
+
+QString CMakeRunConfiguration::executable() const
+{
+ return m_target;
+}
+
+ProjectExplorer::ApplicationRunConfiguration::RunMode CMakeRunConfiguration::runMode() const
+{
+ return ProjectExplorer::ApplicationRunConfiguration::Gui;
+}
+
+QString CMakeRunConfiguration::workingDirectory() const
+{
+ return m_workingDirectory;
+}
+
+QStringList CMakeRunConfiguration::commandLineArguments() const
+{
+ // TODO
+ return QStringList();
+}
+
+ProjectExplorer::Environment CMakeRunConfiguration::environment() const
+{
+ // TODO
+ return ProjectExplorer::Environment::systemEnvironment();
+}
+
+void CMakeRunConfiguration::save(ProjectExplorer::PersistentSettingsWriter &writer) const
+{
+ ProjectExplorer::ApplicationRunConfiguration::save(writer);
+}
+
+void CMakeRunConfiguration::restore(const ProjectExplorer::PersistentSettingsReader &reader)
+{
+ ProjectExplorer::ApplicationRunConfiguration::restore(reader);
+}
+
+QWidget *CMakeRunConfiguration::configurationWidget()
+{
+ //TODO
+ return new QWidget();
+}
+
+// Factory
+CMakeRunConfigurationFactory::CMakeRunConfigurationFactory()
+{
+
+}
+
+CMakeRunConfigurationFactory::~CMakeRunConfigurationFactory()
+{
+
+}
+
+// used to recreate the runConfigurations when restoring settings
+bool CMakeRunConfigurationFactory::canCreate(const QString &type) const
+{
+ if (type.startsWith(Constants::CMAKERUNCONFIGURATION))
+ return true;
+ return false;
+}
+
+// used to show the list of possible additons to a project, returns a list of types
+QStringList CMakeRunConfigurationFactory::canCreate(ProjectExplorer::Project *project) const
+{
+ CMakeProject *pro = qobject_cast<CMakeProject *>(project);
+ if (!pro)
+ return QStringList();
+ // TODO gather all targets and return them here
+ return QStringList();
+}
+
+// used to translate the types to names to display to the user
+QString CMakeRunConfigurationFactory::nameForType(const QString &type) const
+{
+ Q_ASSERT(type.startsWith(Constants::CMAKERUNCONFIGURATION));
+
+ if (type == Constants::CMAKERUNCONFIGURATION)
+ return "CMake"; // Doesn't happen
+ else
+ return type.mid(QString(Constants::CMAKERUNCONFIGURATION).length());
+}
+
+QSharedPointer<ProjectExplorer::RunConfiguration> CMakeRunConfigurationFactory::create(ProjectExplorer::Project *project, const QString &type)
+{
+ CMakeProject *pro = qobject_cast<CMakeProject *>(project);
+ Q_ASSERT(pro);
+ if (type == Constants::CMAKERUNCONFIGURATION) {
+ // Restoring, filename will be added by restoreSettings
+ QSharedPointer<ProjectExplorer::RunConfiguration> rc(new CMakeRunConfiguration(pro, QString::null, QString::null));
+ return rc;
+ } else {
+ // Adding new
+ QString file = type.mid(QString(Constants::CMAKERUNCONFIGURATION).length());
+ QSharedPointer<ProjectExplorer::RunConfiguration> rc(new CMakeRunConfiguration(pro, file, QString::null));
+ return rc;
+ }
+}
diff --git a/src/plugins/cmakeprojectmanager/cmakerunconfiguration.h b/src/plugins/cmakeprojectmanager/cmakerunconfiguration.h
new file mode 100644
index 0000000000..082364e304
--- /dev/null
+++ b/src/plugins/cmakeprojectmanager/cmakerunconfiguration.h
@@ -0,0 +1,93 @@
+/***************************************************************************
+**
+** This file is part of Qt Creator
+**
+** Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies).
+**
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+**
+** Non-Open Source Usage
+**
+** Licensees may use this file in accordance with the Qt Beta Version
+** License Agreement, Agreement version 2.2 provided with the Software or,
+** alternatively, in accordance with the terms contained in a written
+** agreement between you and Nokia.
+**
+** GNU General Public License Usage
+**
+** Alternatively, this file may be used under the terms of the GNU General
+** Public License versions 2.0 or 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the packaging
+** of this file. Please review the following information to ensure GNU
+** General Public Licensing requirements will be met:
+**
+** http://www.fsf.org/licensing/licenses/info/GPLv2.html and
+** http://www.gnu.org/copyleft/gpl.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt GPL Exception
+** version 1.2, included in the file GPL_EXCEPTION.txt in this package.
+**
+***************************************************************************/
+
+#ifndef CMAKERUNCONFIGURATION_H
+#define CMAKERUNCONFIGURATION_H
+
+#include <projectexplorer/applicationrunconfiguration.h>
+#include <projectexplorer/environment.h>
+#include <projectexplorer/persistentsettings.h>
+
+namespace CMakeProjectManager {
+namespace Internal {
+
+class CMakeProject;
+
+class CMakeRunConfiguration : public ProjectExplorer::ApplicationRunConfiguration
+{
+public:
+ CMakeRunConfiguration(CMakeProject *pro, const QString &target, const QString &workingDirectory);
+ virtual ~CMakeRunConfiguration();
+ virtual QString type() const;
+ virtual QString executable() const;
+ virtual RunMode runMode() const;
+ virtual QString workingDirectory() const;
+ virtual QStringList commandLineArguments() const;
+ virtual ProjectExplorer::Environment environment() const;
+ virtual QWidget *configurationWidget();
+
+ virtual void save(ProjectExplorer::PersistentSettingsWriter &writer) const;
+ virtual void restore(const ProjectExplorer::PersistentSettingsReader &reader);
+private:
+ QString m_target;
+ QString m_workingDirectory;
+};
+
+/* The run configuration factory is used for restoring run configurations from
+ * settings. And used to create new runconfigurations in the "Run Settings" Dialog.
+ * For the first case bool canCreate(const QString &type) and
+ * QSharedPointer<RunConfiguration> create(Project *project, QString type) are used.
+ * For the second type the functions QStringList canCreate(Project *pro) and
+ * QString nameForType(const QString&) are used to generate a list of creatable
+ * RunConfigurations, and create(..) is used to create it.
+ */
+class CMakeRunConfigurationFactory : public QObject
+{
+ Q_OBJECT;
+public:
+ CMakeRunConfigurationFactory();
+ virtual ~CMakeRunConfigurationFactory();
+ // used to recreate the runConfigurations when restoring settings
+ virtual bool canCreate(const QString &type) const;
+ // used to show the list of possible additons to a project, returns a list of types
+ virtual QStringList canCreate(ProjectExplorer::Project *pro) const;
+ // used to translate the types to names to display to the user
+ virtual QString nameForType(const QString &type) const;
+ virtual QSharedPointer<ProjectExplorer::RunConfiguration> create(ProjectExplorer::Project *project, const QString &type);
+};
+
+
+}
+}
+
+#endif // CMAKERUNCONFIGURATION_H