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