From 7f7e9d8640bf40526e565970f72c8760144522ee Mon Sep 17 00:00:00 2001
From: Kai Koehne <kai.koehne@nokia.com>
Date: Tue, 12 Jan 2010 16:56:36 +0100
Subject: [PATCH] Make QmlProject & QmlRunConfiguration exported classes

Will be used in QmLInspector plugin.
---
 src/plugins/qmlprojectmanager/qmlproject.h    | 195 +++++++++---------
 .../qmlprojectmanager/qmlprojectmanager.h     |   3 +-
 .../qmlprojectmanager/qmlprojectmanager.pro   |   4 +-
 .../qmlprojectmanager_global.h                |  41 ++++
 .../qmlprojectmanager/qmlprojectnodes.h       |   3 +-
 5 files changed, 148 insertions(+), 98 deletions(-)
 create mode 100644 src/plugins/qmlprojectmanager/qmlprojectmanager_global.h

diff --git a/src/plugins/qmlprojectmanager/qmlproject.h b/src/plugins/qmlprojectmanager/qmlproject.h
index 44d65b582a7..16e1d16aeef 100644
--- a/src/plugins/qmlprojectmanager/qmlproject.h
+++ b/src/plugins/qmlprojectmanager/qmlproject.h
@@ -32,6 +32,7 @@
 
 #include "qmlprojectmanager.h"
 #include "qmlprojectnodes.h"
+#include "qmlprojectmanager_global.h"
 
 #include <projectexplorer/project.h>
 #include <projectexplorer/projectnodes.h>
@@ -46,69 +47,13 @@ class QmlModelManagerInterface;
 }
 
 namespace QmlProjectManager {
-namespace Internal {
-
-class QmlMakeStep;
-class QmlProjectFile;
-
-class QmlProject : public ProjectExplorer::Project
-{
-    Q_OBJECT
-
-public:
-    QmlProject(Manager *manager, const QString &filename);
-    virtual ~QmlProject();
-
-    QString filesFileName() const;
-
-    virtual QString displayName() const;
-    virtual Core::IFile *file() const;
-    virtual Manager *projectManager() const;
-    virtual ProjectExplorer::IBuildConfigurationFactory *buildConfigurationFactory() const;
-
-    virtual QList<ProjectExplorer::Project *> dependsOn();
-
-    virtual bool isApplication() const;
-    virtual bool hasBuildSettings() const;
-
-    virtual ProjectExplorer::BuildConfigWidget *createConfigWidget();
-    virtual QList<ProjectExplorer::BuildConfigWidget*> subConfigWidgets();
-
-    virtual QmlProjectNode *rootProjectNode() const;
-    virtual QStringList files(FilesMode fileMode) const;
-
-    QStringList targets() const;
-
-    enum RefreshOptions {
-        Files         = 0x01,
-        Configuration = 0x02,
-        Everything    = Files | Configuration
-    };
-
-    void refresh(RefreshOptions options);
-
-    QDir projectDir() const;
-    QStringList files() const;
-
-protected:
-    virtual void saveSettingsImpl(ProjectExplorer::PersistentSettingsWriter &writer);
-    virtual bool restoreSettingsImpl(ProjectExplorer::PersistentSettingsReader &reader);
-
-private:
-    void parseProject(RefreshOptions options);
-    QStringList convertToAbsoluteFiles(const QStringList &paths) const;
 
-    Manager *m_manager;
-    QString m_fileName;
-    QString m_filesFileName;
-    QmlProjectFile *m_file;
-    QString m_projectName;
-    QmlEditor::QmlModelManagerInterface *m_modelManager;
+class QmlProject;
+class QmlRunConfiguration;
 
-    QStringList m_files;
+namespace Internal {
 
-    QmlProjectNode *m_rootNode;
-};
+class QmlMakeStep;
 
 class QmlProjectFile : public Core::IFile
 {
@@ -136,41 +81,6 @@ private:
     QString m_fileName;
 };
 
-class QmlRunConfiguration : public ProjectExplorer::RunConfiguration
-{
-    Q_OBJECT
-public:
-    QmlRunConfiguration(QmlProject *pro);
-    virtual ~QmlRunConfiguration();
-
-    QString viewerPath() const;
-    QStringList viewerArguments() const;
-    QString workingDirectory() const;
-    uint debugServerPort() const;
-
-    // RunConfiguration
-    virtual QString id() const;
-    virtual QWidget *configurationWidget();
-
-    virtual void save(ProjectExplorer::PersistentSettingsWriter &writer) const;
-    virtual void restore(const ProjectExplorer::PersistentSettingsReader &reader);
-
-private Q_SLOTS:
-    QString mainScript() const;
-    void setMainScript(const QString &scriptFile);
-    void onQmlViewerChanged();
-    void onQmlViewerArgsChanged();
-    void onDebugServerPortChanged();
-
-private:
-    QmlProject *m_project;
-    QString m_scriptFile;
-    QString m_qmlViewerCustomPath;
-    QString m_qmlViewerDefaultPath;
-    QString m_qmlViewerArgs;
-    uint m_debugServerPort;
-};
-
 class QmlRunConfigurationFactory : public ProjectExplorer::IRunConfigurationFactory
 {
     Q_OBJECT
@@ -231,6 +141,101 @@ public:
 };
 
 } // namespace Internal
+
+class QMLPROJECTMANAGER_EXPORT QmlProject : public ProjectExplorer::Project
+{
+    Q_OBJECT
+
+public:
+    QmlProject(Internal::Manager *manager, const QString &filename);
+    virtual ~QmlProject();
+
+    QString filesFileName() const;
+
+    virtual QString displayName() const;
+    virtual Core::IFile *file() const;
+    virtual Internal::Manager *projectManager() const;
+    virtual ProjectExplorer::IBuildConfigurationFactory *buildConfigurationFactory() const;
+
+    virtual QList<ProjectExplorer::Project *> dependsOn();
+
+    virtual bool isApplication() const;
+    virtual bool hasBuildSettings() const;
+
+    virtual ProjectExplorer::BuildConfigWidget *createConfigWidget();
+    virtual QList<ProjectExplorer::BuildConfigWidget*> subConfigWidgets();
+
+    virtual Internal::QmlProjectNode *rootProjectNode() const;
+    virtual QStringList files(FilesMode fileMode) const;
+
+    QStringList targets() const;
+
+    enum RefreshOptions {
+        Files         = 0x01,
+        Configuration = 0x02,
+        Everything    = Files | Configuration
+    };
+
+    void refresh(RefreshOptions options);
+
+    QDir projectDir() const;
+    QStringList files() const;
+
+protected:
+    virtual void saveSettingsImpl(ProjectExplorer::PersistentSettingsWriter &writer);
+    virtual bool restoreSettingsImpl(ProjectExplorer::PersistentSettingsReader &reader);
+
+private:
+    void parseProject(RefreshOptions options);
+    QStringList convertToAbsoluteFiles(const QStringList &paths) const;
+
+    Internal::Manager *m_manager;
+    QString m_fileName;
+    QString m_filesFileName;
+    Internal::QmlProjectFile *m_file;
+    QString m_projectName;
+    QmlEditor::QmlModelManagerInterface *m_modelManager;
+
+    QStringList m_files;
+
+    Internal::QmlProjectNode *m_rootNode;
+};
+
+class QMLPROJECTMANAGER_EXPORT QmlRunConfiguration : public ProjectExplorer::RunConfiguration
+{
+    Q_OBJECT
+public:
+    QmlRunConfiguration(QmlProject *pro);
+    virtual ~QmlRunConfiguration();
+
+    QString viewerPath() const;
+    QStringList viewerArguments() const;
+    QString workingDirectory() const;
+    uint debugServerPort() const;
+
+    // RunConfiguration
+    virtual QString id() const;
+    virtual QWidget *configurationWidget();
+
+    virtual void save(ProjectExplorer::PersistentSettingsWriter &writer) const;
+    virtual void restore(const ProjectExplorer::PersistentSettingsReader &reader);
+
+private Q_SLOTS:
+    QString mainScript() const;
+    void setMainScript(const QString &scriptFile);
+    void onQmlViewerChanged();
+    void onQmlViewerArgsChanged();
+    void onDebugServerPortChanged();
+
+private:
+    QmlProject *m_project;
+    QString m_scriptFile;
+    QString m_qmlViewerCustomPath;
+    QString m_qmlViewerDefaultPath;
+    QString m_qmlViewerArgs;
+    uint m_debugServerPort;
+};
+
 } // namespace QmlProjectManager
 
 #endif // QMLPROJECT_H
diff --git a/src/plugins/qmlprojectmanager/qmlprojectmanager.h b/src/plugins/qmlprojectmanager/qmlprojectmanager.h
index 2e1b753e9d0..1d4f234a625 100644
--- a/src/plugins/qmlprojectmanager/qmlprojectmanager.h
+++ b/src/plugins/qmlprojectmanager/qmlprojectmanager.h
@@ -33,10 +33,11 @@
 #include <projectexplorer/iprojectmanager.h>
 
 namespace QmlProjectManager {
-namespace Internal {
 
 class QmlProject;
 
+namespace Internal {
+
 class Manager: public ProjectExplorer::IProjectManager
 {
     Q_OBJECT
diff --git a/src/plugins/qmlprojectmanager/qmlprojectmanager.pro b/src/plugins/qmlprojectmanager/qmlprojectmanager.pro
index fe6ef1615fc..b142423b063 100644
--- a/src/plugins/qmlprojectmanager/qmlprojectmanager.pro
+++ b/src/plugins/qmlprojectmanager/qmlprojectmanager.pro
@@ -2,6 +2,7 @@ TEMPLATE = lib
 TARGET = QmlProjectManager
 include(../../qtcreatorplugin.pri)
 include(qmlprojectmanager_dependencies.pri)
+DEFINES += QMLPROJECTMANAGER_LIBRARY
 HEADERS = qmlproject.h \
     qmlprojectplugin.h \
     qmlprojectmanager.h \
@@ -10,7 +11,8 @@ HEADERS = qmlproject.h \
     qmlprojectwizard.h \
     qmlnewprojectwizard.h \
     qmltaskmanager.h \
-    qmlprojectfileseditor.h
+    qmlprojectfileseditor.h \
+    qmlprojectmanager_global.h
 SOURCES = qmlproject.cpp \
     qmlprojectplugin.cpp \
     qmlprojectmanager.cpp \
diff --git a/src/plugins/qmlprojectmanager/qmlprojectmanager_global.h b/src/plugins/qmlprojectmanager/qmlprojectmanager_global.h
new file mode 100644
index 00000000000..ea1a8a8e87b
--- /dev/null
+++ b/src/plugins/qmlprojectmanager/qmlprojectmanager_global.h
@@ -0,0 +1,41 @@
+/**************************************************************************
+**
+** This file is part of Qt Creator
+**
+** Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+**
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** Commercial Usage
+**
+** Licensees holding valid Qt Commercial licenses may use this file in
+** accordance with the Qt Commercial License Agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Nokia.
+**
+** 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.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at http://qt.nokia.com/contact.
+**
+**************************************************************************/
+
+#ifndef QMLPROJECTMANAGER_GLOBAL_H
+#define QMLPROJECTMANAGER_GLOBAL_H
+
+#include <QtCore/qglobal.h>
+
+#if defined(QMLPROJECTMANAGER_LIBRARY)
+#  define QMLPROJECTMANAGER_EXPORT Q_DECL_EXPORT
+#else
+#  define QMLPROJECTMANAGER_EXPORT Q_DECL_IMPORT
+#endif
+
+#endif // QMLPROJECTMANAGER_GLOBAL_H
diff --git a/src/plugins/qmlprojectmanager/qmlprojectnodes.h b/src/plugins/qmlprojectmanager/qmlprojectnodes.h
index cd07ed9a0ff..1682e3964ce 100644
--- a/src/plugins/qmlprojectmanager/qmlprojectnodes.h
+++ b/src/plugins/qmlprojectmanager/qmlprojectnodes.h
@@ -40,10 +40,11 @@ class IFile;
 }
 
 namespace QmlProjectManager {
-namespace Internal {
 
 class QmlProject;
 
+namespace Internal {
+
 class QmlProjectNode : public ProjectExplorer::ProjectNode
 {
 public:
-- 
GitLab