aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTobias Hunger <tobias.hunger@digia.com>2013-07-09 16:41:57 +0200
committerTobias Hunger <tobias.hunger@digia.com>2013-07-10 14:36:17 +0200
commit81eba6f9843179804ed2e53d490e718b12c04044 (patch)
treec30421eece561e65dec10c4efa748423b602101b
parent062b8f5d31343fb2dbc8d27c14eb9f0ae807a6da (diff)
Move Ui code model support into QtSupport
* Move basic ui code model support from CppTools into QtSupport * Use Kit infrastructure to retrieve uicCommand and environment * Remove specialization for cmake projects (no longer needed) * Remove specialization for qmake based projects (no longer needed) Change-Id: I8569cc01acb46a540883c2da235d169bebf7db39 Reviewed-by: Daniel Teske <daniel.teske@digia.com>
-rw-r--r--src/plugins/cmakeprojectmanager/cmakeproject.cpp37
-rw-r--r--src/plugins/cmakeprojectmanager/cmakeproject.h7
-rw-r--r--src/plugins/cmakeprojectmanager/cmakeprojectmanager.pro2
-rw-r--r--src/plugins/cmakeprojectmanager/cmakeprojectmanager.qbs2
-rw-r--r--src/plugins/cmakeprojectmanager/cmakeuicodemodelsupport.cpp63
-rw-r--r--src/plugins/cmakeprojectmanager/cmakeuicodemodelsupport.h63
-rw-r--r--src/plugins/cpptools/cpptools.pro2
-rw-r--r--src/plugins/cpptools/cpptools.qbs2
-rw-r--r--src/plugins/qt4projectmanager/qt4nodes.cpp18
-rw-r--r--src/plugins/qt4projectmanager/qt4nodes.h4
-rw-r--r--src/plugins/qt4projectmanager/qt4projectmanager.pro2
-rw-r--r--src/plugins/qt4projectmanager/qt4projectmanager.qbs2
-rw-r--r--src/plugins/qt4projectmanager/qtuicodemodelsupport.cpp74
-rw-r--r--src/plugins/qt4projectmanager/qtuicodemodelsupport.h62
-rw-r--r--src/plugins/qtsupport/baseqtversion.h2
-rw-r--r--src/plugins/qtsupport/qtsupport.pro2
-rw-r--r--src/plugins/qtsupport/qtsupport.qbs3
-rw-r--r--src/plugins/qtsupport/qtsupport_dependencies.pri1
-rw-r--r--src/plugins/qtsupport/uicodemodelsupport.cpp (renamed from src/plugins/cpptools/uicodecompletionsupport.cpp)100
-rw-r--r--src/plugins/qtsupport/uicodemodelsupport.h (renamed from src/plugins/cpptools/uicodecompletionsupport.h)40
20 files changed, 121 insertions, 367 deletions
diff --git a/src/plugins/cmakeprojectmanager/cmakeproject.cpp b/src/plugins/cmakeprojectmanager/cmakeproject.cpp
index 3606363747..16503b09fe 100644
--- a/src/plugins/cmakeprojectmanager/cmakeproject.cpp
+++ b/src/plugins/cmakeprojectmanager/cmakeproject.cpp
@@ -35,7 +35,6 @@
#include "cmakerunconfiguration.h"
#include "makestep.h"
#include "cmakeopenprojectwizard.h"
-#include "cmakeuicodemodelsupport.h"
#include <projectexplorer/projectexplorerconstants.h>
#include <projectexplorer/projectexplorer.h>
@@ -51,6 +50,7 @@
#include <qtsupport/customexecutablerunconfiguration.h>
#include <qtsupport/baseqtversion.h>
#include <qtsupport/qtkitinformation.h>
+#include <qtsupport/uicodemodelsupport.h>
#include <cpptools/cppmodelmanagerinterface.h>
#include <extensionsystem/pluginmanager.h>
#include <utils/qtcassert.h>
@@ -124,7 +124,7 @@ CMakeProject::~CMakeProject()
// Remove CodeModel support
CppTools::CppModelManagerInterface *modelManager
= CppTools::CppModelManagerInterface::instance();
- QMap<QString, CMakeUiCodeModelSupport *>::const_iterator it, end;
+ QMap<QString, QtSupport::UiCodeModelSupport *>::const_iterator it, end;
it = m_uiCodeModelSupport.constBegin();
end = m_uiCodeModelSupport.constEnd();
for (; it!=end; ++it) {
@@ -289,20 +289,6 @@ bool CMakeProject::parseCMakeLists()
// }
- // TOOD this code ain't very pretty ...
- m_uicCommand.clear();
- QFile cmakeCache(activeBC->buildDirectory() + QLatin1String("/CMakeCache.txt"));
- cmakeCache.open(QIODevice::ReadOnly);
- while (!cmakeCache.atEnd()) {
- QByteArray line = cmakeCache.readLine();
- if (line.startsWith("QT_UIC_EXECUTABLE")) {
- if (int pos = line.indexOf('='))
- m_uicCommand = QString::fromLocal8Bit(line.mid(pos + 1).trimmed());
- break;
- }
- }
- cmakeCache.close();
-
createUiCodeModelSupport();
Kit *k = activeTarget()->kit();
@@ -692,11 +678,6 @@ CMakeBuildTarget CMakeProject::buildTargetForTitle(const QString &title)
return CMakeBuildTarget();
}
-QString CMakeProject::uicCommand() const
-{
- return m_uicCommand;
-}
-
QString CMakeProject::uiHeaderFile(const QString &uiFile)
{
QFileInfo fi(uiFile);
@@ -794,7 +775,7 @@ void CMakeProject::createUiCodeModelSupport()
= CppTools::CppModelManagerInterface::instance();
// First move all to
- QMap<QString, CMakeUiCodeModelSupport *> oldCodeModelSupport;
+ QMap<QString, QtSupport::UiCodeModelSupport *> oldCodeModelSupport;
oldCodeModelSupport = m_uiCodeModelSupport;
m_uiCodeModelSupport.clear();
@@ -803,17 +784,17 @@ void CMakeProject::createUiCodeModelSupport()
if (uiFile.endsWith(QLatin1String(".ui"))) {
// UI file, not convert to
QString uiHeaderFilePath = uiHeaderFile(uiFile);
- QMap<QString, CMakeUiCodeModelSupport *>::iterator it
+ QMap<QString, QtSupport::UiCodeModelSupport *>::iterator it
= oldCodeModelSupport.find(uiFile);
if (it != oldCodeModelSupport.end()) {
// qDebug()<<"updated old codemodelsupport";
- CMakeUiCodeModelSupport *cms = it.value();
+ QtSupport::UiCodeModelSupport *cms = it.value();
cms->setFileName(uiHeaderFilePath);
m_uiCodeModelSupport.insert(it.key(), cms);
oldCodeModelSupport.erase(it);
} else {
// qDebug()<<"adding new codemodelsupport";
- CMakeUiCodeModelSupport *cms = new CMakeUiCodeModelSupport(modelManager, this, uiFile, uiHeaderFilePath);
+ QtSupport::UiCodeModelSupport *cms = new QtSupport::UiCodeModelSupport(modelManager, this, uiFile, uiHeaderFilePath);
m_uiCodeModelSupport.insert(uiFile, cms);
modelManager->addEditorSupport(cms);
}
@@ -821,7 +802,7 @@ void CMakeProject::createUiCodeModelSupport()
}
// Remove old
- QMap<QString, CMakeUiCodeModelSupport *>::const_iterator it, end;
+ QMap<QString, QtSupport::UiCodeModelSupport *>::const_iterator it, end;
end = oldCodeModelSupport.constEnd();
for (it = oldCodeModelSupport.constBegin(); it!=end; ++it) {
modelManager->removeEditorSupport(it.value());
@@ -832,7 +813,7 @@ void CMakeProject::createUiCodeModelSupport()
void CMakeProject::updateCodeModelSupportFromEditor(const QString &uiFileName,
const QString &contents)
{
- const QMap<QString, CMakeUiCodeModelSupport *>::const_iterator it =
+ const QMap<QString, QtSupport::UiCodeModelSupport *>::const_iterator it =
m_uiCodeModelSupport.constFind(uiFileName);
if (it != m_uiCodeModelSupport.constEnd())
it.value()->updateFromEditor(contents);
@@ -885,7 +866,7 @@ void CMakeProject::buildStateChanged(ProjectExplorer::Project *project)
{
if (project == this) {
if (!ProjectExplorer::ProjectExplorerPlugin::instance()->buildManager()->isBuilding(this)) {
- QMap<QString, CMakeUiCodeModelSupport *>::const_iterator it, end;
+ QMap<QString, QtSupport::UiCodeModelSupport *>::const_iterator it, end;
end = m_uiCodeModelSupport.constEnd();
for (it = m_uiCodeModelSupport.constBegin(); it != end; ++it) {
it.value()->updateFromBuild();
diff --git a/src/plugins/cmakeprojectmanager/cmakeproject.h b/src/plugins/cmakeprojectmanager/cmakeproject.h
index 543f3bdc8f..936139ea75 100644
--- a/src/plugins/cmakeprojectmanager/cmakeproject.h
+++ b/src/plugins/cmakeprojectmanager/cmakeproject.h
@@ -52,13 +52,13 @@ class QFileSystemWatcher;
QT_END_NAMESPACE
namespace ProjectExplorer { class Target; }
+namespace QtSupport { class UiCodeModelSupport; }
namespace CMakeProjectManager {
namespace Internal {
class CMakeFile;
class CMakeBuildSettingsWidget;
-class CMakeUiCodeModelSupport;
struct CMakeBuildTarget
{
@@ -97,8 +97,6 @@ public:
QString shadowBuildDirectory(const QString &projectFilePath, const ProjectExplorer::Kit *k,
const QString &bcName);
- QString uicCommand() const;
-
bool isProjectFile(const QString &fileName);
bool parseCMakeLists();
@@ -139,7 +137,6 @@ private:
QString m_fileName;
CMakeFile *m_file;
QString m_projectName;
- QString m_uicCommand;
// TODO probably need a CMake specific node structure
CMakeProjectNode *m_rootNode;
@@ -149,7 +146,7 @@ private:
QSet<QString> m_watchedFiles;
QFuture<void> m_codeModelFuture;
- QMap<QString, CMakeUiCodeModelSupport *> m_uiCodeModelSupport;
+ QMap<QString, QtSupport::UiCodeModelSupport *> m_uiCodeModelSupport;
Core::IEditor *m_lastEditor;
bool m_dirtyUic;
};
diff --git a/src/plugins/cmakeprojectmanager/cmakeprojectmanager.pro b/src/plugins/cmakeprojectmanager/cmakeprojectmanager.pro
index 5a79a0676e..2df5d239a8 100644
--- a/src/plugins/cmakeprojectmanager/cmakeprojectmanager.pro
+++ b/src/plugins/cmakeprojectmanager/cmakeprojectmanager.pro
@@ -12,7 +12,6 @@ HEADERS = cmakeproject.h \
cmakeeditorfactory.h \
cmakeeditor.h \
cmakehighlighter.h \
- cmakeuicodemodelsupport.h \
cmakelocatorfilter.h \
cmakefilecompletionassist.h \
cmakevalidator.h
@@ -28,7 +27,6 @@ SOURCES = cmakeproject.cpp \
cmakeeditorfactory.cpp \
cmakeeditor.cpp \
cmakehighlighter.cpp \
- cmakeuicodemodelsupport.cpp \
cmakelocatorfilter.cpp \
cmakefilecompletionassist.cpp \
cmakevalidator.cpp
diff --git a/src/plugins/cmakeprojectmanager/cmakeprojectmanager.qbs b/src/plugins/cmakeprojectmanager/cmakeprojectmanager.qbs
index 1d8ca15973..22c32b4dcf 100644
--- a/src/plugins/cmakeprojectmanager/cmakeprojectmanager.qbs
+++ b/src/plugins/cmakeprojectmanager/cmakeprojectmanager.qbs
@@ -46,8 +46,6 @@ QtcPlugin {
"cmakeprojectplugin.h",
"cmakerunconfiguration.cpp",
"cmakerunconfiguration.h",
- "cmakeuicodemodelsupport.cpp",
- "cmakeuicodemodelsupport.h",
"cmakevalidator.cpp",
"cmakevalidator.h",
"makestep.cpp",
diff --git a/src/plugins/cmakeprojectmanager/cmakeuicodemodelsupport.cpp b/src/plugins/cmakeprojectmanager/cmakeuicodemodelsupport.cpp
deleted file mode 100644
index f490b2554c..0000000000
--- a/src/plugins/cmakeprojectmanager/cmakeuicodemodelsupport.cpp
+++ /dev/null
@@ -1,63 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of Qt Creator.
-**
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** 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, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-****************************************************************************/
-
-#include "cmakeuicodemodelsupport.h"
-#include "cmakeproject.h"
-#include "cmakebuildconfiguration.h"
-
-#include <cpptools/cppmodelmanagerinterface.h>
-#include <projectexplorer/target.h>
-
-#include <QProcess>
-
-using namespace CMakeProjectManager;
-using namespace Internal;
-
-CMakeUiCodeModelSupport::CMakeUiCodeModelSupport(CppTools::CppModelManagerInterface *modelmanager,
- CMakeProject *project,
- const QString &source,
- const QString &uiHeaderFile)
- : CppTools::UiCodeModelSupport(modelmanager, source, uiHeaderFile),
- m_project(project)
-{ }
-
-CMakeUiCodeModelSupport::~CMakeUiCodeModelSupport()
-{ }
-
-QString CMakeUiCodeModelSupport::uicCommand() const
-{
- return m_project->uicCommand();
-}
-
-QStringList CMakeUiCodeModelSupport::environment() const
-{
- if (!m_project || !m_project->activeTarget() || !m_project->activeTarget()->activeBuildConfiguration())
- return QStringList();
- return m_project->activeTarget()->activeBuildConfiguration()->environment().toStringList();
-}
diff --git a/src/plugins/cmakeprojectmanager/cmakeuicodemodelsupport.h b/src/plugins/cmakeprojectmanager/cmakeuicodemodelsupport.h
deleted file mode 100644
index c68dafeed3..0000000000
--- a/src/plugins/cmakeprojectmanager/cmakeuicodemodelsupport.h
+++ /dev/null
@@ -1,63 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of Qt Creator.
-**
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** 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, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-****************************************************************************/
-
-#ifndef CMAKEUICODEMODELSUPPORT_H
-#define CMAKEUICODEMODELSUPPORT_H
-
-#include <cpptools/uicodecompletionsupport.h>
-
-#include <QDateTime>
-
-namespace CppTools { class CppModelManagerInterface; }
-
-namespace CMakeProjectManager {
-namespace Internal {
-
-class CMakeProject;
-
-class CMakeUiCodeModelSupport : public CppTools::UiCodeModelSupport
-{
- Q_OBJECT
-public:
- CMakeUiCodeModelSupport(CppTools::CppModelManagerInterface *modelmanager,
- CMakeProject *project,
- const QString &sourceFile,
- const QString &uiHeaderFile);
- ~CMakeUiCodeModelSupport();
-protected:
- virtual QString uicCommand() const;
- virtual QStringList environment() const;
-private:
- CMakeProject *m_project;
-};
-
-
-} // Internal
-} // Qt4ProjectManager
-#endif // CMAKEUICODEMODELSUPPORT_H
diff --git a/src/plugins/cpptools/cpptools.pro b/src/plugins/cpptools/cpptools.pro
index 89415fdea7..a766102d2e 100644
--- a/src/plugins/cpptools/cpptools.pro
+++ b/src/plugins/cpptools/cpptools.pro
@@ -19,7 +19,6 @@ HEADERS += completionsettingspage.h \
cppfindreferences.h \
cppcodeformatter.h \
symbolsfindfilter.h \
- uicodecompletionsupport.h \
insertionpointlocator.h \
cpprefactoringchanges.h \
abstracteditorsupport.h \
@@ -65,7 +64,6 @@ SOURCES += completionsettingspage.cpp \
cppfindreferences.cpp \
cppcodeformatter.cpp \
symbolsfindfilter.cpp \
- uicodecompletionsupport.cpp \
insertionpointlocator.cpp \
cpprefactoringchanges.cpp \
cppcompletionassist.cpp \
diff --git a/src/plugins/cpptools/cpptools.qbs b/src/plugins/cpptools/cpptools.qbs
index 2275812162..b323a8d66f 100644
--- a/src/plugins/cpptools/cpptools.qbs
+++ b/src/plugins/cpptools/cpptools.qbs
@@ -102,8 +102,6 @@ QtcPlugin {
"symbolsfindfilter.h",
"typehierarchybuilder.cpp",
"typehierarchybuilder.h",
- "uicodecompletionsupport.cpp",
- "uicodecompletionsupport.h",
"builtinindexingsupport.cpp",
"builtinindexingsupport.h",
"cpppreprocessor.cpp",
diff --git a/src/plugins/qt4projectmanager/qt4nodes.cpp b/src/plugins/qt4projectmanager/qt4nodes.cpp
index 94de5f5691..eeb393fb91 100644
--- a/src/plugins/qt4projectmanager/qt4nodes.cpp
+++ b/src/plugins/qt4projectmanager/qt4nodes.cpp
@@ -31,7 +31,6 @@
#include "qt4project.h"
#include "qt4projectmanager.h"
#include "qt4projectmanagerconstants.h"
-#include "qtuicodemodelsupport.h"
#include "qt4buildconfiguration.h"
#include "qmakerunconfigurationfactory.h"
@@ -50,6 +49,7 @@
#include <projectexplorer/target.h>
#include <qtsupport/profilereader.h>
#include <qtsupport/qtkitinformation.h>
+#include <qtsupport/uicodemodelsupport.h>
#include <cpptools/cppmodelmanagerinterface.h>
#include <cpptools/cpptoolsconstants.h>
@@ -1470,7 +1470,7 @@ Qt4ProFileNode::~Qt4ProFileNode()
{
CppTools::CppModelManagerInterface *modelManager
= CppTools::CppModelManagerInterface::instance();
- QMap<QString, Internal::Qt4UiCodeModelSupport *>::const_iterator it, end;
+ QMap<QString, QtSupport::UiCodeModelSupport *>::const_iterator it, end;
end = m_uiCodeModelSupport.constEnd();
for (it = m_uiCodeModelSupport.constBegin(); it != end; ++it) {
modelManager->removeEditorSupport(it.value());
@@ -2253,7 +2253,7 @@ QString Qt4ProFileNode::buildDir(Qt4BuildConfiguration *bc) const
void Qt4ProFileNode::updateCodeModelSupportFromBuild()
{
- QMap<QString, Internal::Qt4UiCodeModelSupport *>::const_iterator it, end;
+ QMap<QString, QtSupport::UiCodeModelSupport *>::const_iterator it, end;
end = m_uiCodeModelSupport.constEnd();
for (it = m_uiCodeModelSupport.constBegin(); it != end; ++it)
it.value()->updateFromBuild();
@@ -2262,7 +2262,7 @@ void Qt4ProFileNode::updateCodeModelSupportFromBuild()
void Qt4ProFileNode::updateCodeModelSupportFromEditor(const QString &uiFileName,
const QString &contents)
{
- const QMap<QString, Internal::Qt4UiCodeModelSupport *>::const_iterator it =
+ const QMap<QString, QtSupport::UiCodeModelSupport *>::const_iterator it =
m_uiCodeModelSupport.constFind(uiFileName);
if (it != m_uiCodeModelSupport.constEnd())
it.value()->updateFromEditor(contents);
@@ -2295,7 +2295,7 @@ void Qt4ProFileNode::createUiCodeModelSupport()
= CppTools::CppModelManagerInterface::instance();
// First move all to
- QMap<QString, Internal::Qt4UiCodeModelSupport *> oldCodeModelSupport;
+ QMap<QString, QtSupport::UiCodeModelSupport *> oldCodeModelSupport;
oldCodeModelSupport = m_uiCodeModelSupport;
m_uiCodeModelSupport.clear();
@@ -2314,23 +2314,23 @@ void Qt4ProFileNode::createUiCodeModelSupport()
const QString uiHeaderFilePath = uiHeaderFile(uiDir, uiFile->path());
m_uiHeaderFiles << uiHeaderFilePath;
// qDebug()<<"code model support for "<<uiFile->path()<<" "<<uiHeaderFilePath;
- QMap<QString, Internal::Qt4UiCodeModelSupport *>::iterator it = oldCodeModelSupport.find(uiFile->path());
+ QMap<QString, QtSupport::UiCodeModelSupport *>::iterator it = oldCodeModelSupport.find(uiFile->path());
if (it != oldCodeModelSupport.end()) {
// qDebug()<<"updated old codemodelsupport";
- Internal::Qt4UiCodeModelSupport *cms = it.value();
+ QtSupport::UiCodeModelSupport *cms = it.value();
cms->setFileName(uiHeaderFilePath);
m_uiCodeModelSupport.insert(it.key(), cms);
oldCodeModelSupport.erase(it);
} else {
// qDebug()<<"adding new codemodelsupport";
- Internal::Qt4UiCodeModelSupport *cms = new Internal::Qt4UiCodeModelSupport(modelManager, m_project, uiFile->path(), uiHeaderFilePath);
+ QtSupport::UiCodeModelSupport *cms = new QtSupport::UiCodeModelSupport(modelManager, m_project, uiFile->path(), uiHeaderFilePath);
m_uiCodeModelSupport.insert(uiFile->path(), cms);
modelManager->addEditorSupport(cms);
}
}
}
// Remove old
- QMap<QString, Internal::Qt4UiCodeModelSupport *>::const_iterator it, end;
+ QMap<QString, QtSupport::UiCodeModelSupport *>::const_iterator it, end;
end = oldCodeModelSupport.constEnd();
for (it = oldCodeModelSupport.constBegin(); it!=end; ++it) {
modelManager->removeEditorSupport(it.value());
diff --git a/src/plugins/qt4projectmanager/qt4nodes.h b/src/plugins/qt4projectmanager/qt4nodes.h
index e8828c5edc..5021ac809d 100644
--- a/src/plugins/qt4projectmanager/qt4nodes.h
+++ b/src/plugins/qt4projectmanager/qt4nodes.h
@@ -34,6 +34,7 @@
#include <coreplugin/idocument.h>
#include <projectexplorer/projectnodes.h>
+#include <qtsupport/uicodemodelsupport.h>
#include <QHash>
#include <QStringList>
@@ -126,7 +127,6 @@ using ProjectExplorer::ProjectFileType;
using ProjectExplorer::FileType;
namespace Internal {
-class Qt4UiCodeModelSupport;
class Qt4PriFile;
struct InternalNode;
}
@@ -204,7 +204,7 @@ private:
QString m_projectFilePath;
QString m_projectDir;
- QMap<QString, Internal::Qt4UiCodeModelSupport *> m_uiCodeModelSupport;
+ QMap<QString, QtSupport::UiCodeModelSupport *> m_uiCodeModelSupport;
Internal::Qt4PriFile *m_qt4PriFile;
// Memory is cheap...
diff --git a/src/plugins/qt4projectmanager/qt4projectmanager.pro b/src/plugins/qt4projectmanager/qt4projectmanager.pro
index 928abf0165..c37d4b7648 100644
--- a/src/plugins/qt4projectmanager/qt4projectmanager.pro
+++ b/src/plugins/qt4projectmanager/qt4projectmanager.pro
@@ -53,7 +53,6 @@ HEADERS += \
qmakestep.h \
qtmodulesinfo.h \
qt4projectconfigwidget.h \
- qtuicodemodelsupport.h \
externaleditors.h \
qt4buildconfiguration.h \
qmakeparser.h \
@@ -116,7 +115,6 @@ SOURCES += \
qmakestep.cpp \
qtmodulesinfo.cpp \
qt4projectconfigwidget.cpp \
- qtuicodemodelsupport.cpp \
externaleditors.cpp \
qt4buildconfiguration.cpp \
qmakeparser.cpp \
diff --git a/src/plugins/qt4projectmanager/qt4projectmanager.qbs b/src/plugins/qt4projectmanager/qt4projectmanager.qbs
index 557fe9495f..5a109a1139 100644
--- a/src/plugins/qt4projectmanager/qt4projectmanager.qbs
+++ b/src/plugins/qt4projectmanager/qt4projectmanager.qbs
@@ -82,8 +82,6 @@ QtcPlugin {
"qt4targetsetupwidget.h",
"qtmodulesinfo.cpp",
"qtmodulesinfo.h",
- "qtuicodemodelsupport.cpp",
- "qtuicodemodelsupport.h",
"unconfiguredprojectpanel.cpp",
"unconfiguredprojectpanel.h",
"winceqtversion.cpp",
diff --git a/src/plugins/qt4projectmanager/qtuicodemodelsupport.cpp b/src/plugins/qt4projectmanager/qtuicodemodelsupport.cpp
deleted file mode 100644
index 50836e6227..0000000000
--- a/src/plugins/qt4projectmanager/qtuicodemodelsupport.cpp
+++ /dev/null
@@ -1,74 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of Qt Creator.
-**
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** 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, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-****************************************************************************/
-
-#include "qtuicodemodelsupport.h"
-#include "qt4buildconfiguration.h"
-
-#include "qt4project.h"
-#include <projectexplorer/target.h>
-#include <qtsupport/qtkitinformation.h>
-
-using namespace Qt4ProjectManager;
-using namespace Internal;
-
-Qt4UiCodeModelSupport::Qt4UiCodeModelSupport(CppTools::CppModelManagerInterface *modelmanager,
- Qt4Project *project,
- const QString &source,
- const QString &uiHeaderFile)
- : CppTools::UiCodeModelSupport(modelmanager, source, uiHeaderFile),
- m_project(project)
-{ }
-
-Qt4UiCodeModelSupport::~Qt4UiCodeModelSupport()
-{ }
-
-QString Qt4UiCodeModelSupport::uicCommand() const
-{
- QtSupport::BaseQtVersion *version;
- if (m_project->needsConfiguration()) {
- version = QtSupport::QtKitInformation::qtVersion(ProjectExplorer::KitManager::instance()->defaultKit());
- } else {
- ProjectExplorer::Target *target = m_project->activeTarget();
- version = QtSupport::QtKitInformation::qtVersion(target->kit());
- }
- return version ? version->uicCommand() : QString();
-}
-
-QStringList Qt4UiCodeModelSupport::environment() const
-{
- if (m_project->needsConfiguration()) {
- return Utils::Environment::systemEnvironment().toStringList();
- } else {
- ProjectExplorer::Target *target = m_project->activeTarget();
- if (!target)
- return QStringList();
- ProjectExplorer::BuildConfiguration *bc = target->activeBuildConfiguration();
- return bc ? bc->environment().toStringList() : QStringList();
- }
-}
diff --git a/src/plugins/qt4projectmanager/qtuicodemodelsupport.h b/src/plugins/qt4projectmanager/qtuicodemodelsupport.h
deleted file mode 100644
index 58d645ea22..0000000000
--- a/src/plugins/qt4projectmanager/qtuicodemodelsupport.h
+++ /dev/null
@@ -1,62 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of Qt Creator.
-**
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** 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, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-****************************************************************************/
-
-#ifndef QTUICODEMODELSUPPORT_H
-#define QTUICODEMODELSUPPORT_H
-
-#include <cpptools/uicodecompletionsupport.h>
-
-namespace CPlusPlus {
-class CppModelManagerInterface;
-}
-
-namespace Qt4ProjectManager {
-class Qt4Project;
-namespace Internal {
-
-class Qt4UiCodeModelSupport : public CppTools::UiCodeModelSupport
-{
- Q_OBJECT
-public:
- Qt4UiCodeModelSupport(CppTools::CppModelManagerInterface *modelmanager,
- Qt4Project *project,
- const QString &sourceFile,
- const QString &uiHeaderFile);
- virtual ~Qt4UiCodeModelSupport();
-protected:
- virtual QString uicCommand() const;
- virtual QStringList environment() const;
-private:
- Qt4Project *m_project;
-};
-
-
-} // Internal
-} // Qt4ProjectManager
-#endif // QTUICODEMODELSUPPORT_H
diff --git a/src/plugins/qtsupport/baseqtversion.h b/src/plugins/qtsupport/baseqtversion.h
index c0d14e419a..b0e39476da 100644
--- a/src/plugins/qtsupport/baseqtversion.h
+++ b/src/plugins/qtsupport/baseqtversion.h
@@ -129,7 +129,7 @@ public:
virtual Utils::Environment qmakeRunEnvironment() const;
virtual Utils::FileName sourcePath() const;
- // used by QtUiCodeModelSupport
+ // used by UiCodeModelSupport
virtual QString uicCommand() const;
virtual QString designerCommand() const;
virtual QString linguistCommand() const;
diff --git a/src/plugins/qtsupport/qtsupport.pro b/src/plugins/qtsupport/qtsupport.pro
index 9229d5376a..d98993eddd 100644
--- a/src/plugins/qtsupport/qtsupport.pro
+++ b/src/plugins/qtsupport/qtsupport.pro
@@ -14,6 +14,7 @@ HEADERS += \
qtoutputformatter.h \
qtversionmanager.h \
qtversionfactory.h \
+ uicodemodelsupport.h \
baseqtversion.h \
qmldumptool.h \
qmlobservertool.h \
@@ -39,6 +40,7 @@ SOURCES += \
qtoutputformatter.cpp \
qtversionmanager.cpp \
qtversionfactory.cpp \
+ uicodemodelsupport.cpp \
baseqtversion.cpp \
qmldumptool.cpp \
qmlobservertool.cpp \
diff --git a/src/plugins/qtsupport/qtsupport.qbs b/src/plugins/qtsupport/qtsupport.qbs
index b9bbe2f796..6556dcae23 100644
--- a/src/plugins/qtsupport/qtsupport.qbs
+++ b/src/plugins/qtsupport/qtsupport.qbs
@@ -10,6 +10,7 @@ QtcPlugin {
Depends { name: "ProjectExplorer" }
Depends { name: "TextEditor" }
Depends { name: "QmlJS" }
+ Depends { name: "CppTools" }
cpp.includePaths: base.concat([
"../../shared",
@@ -94,6 +95,8 @@ QtcPlugin {
"qtsupportconstants.h",
"qtsupportplugin.cpp",
"qtsupportplugin.h",
+ "qtuicodemodelsupport.cpp",
+ "qtuicodemodelsupport.h",
"qtversionfactory.cpp",
"qtversionfactory.h",
"qtversioninfo.ui",
diff --git a/src/plugins/qtsupport/qtsupport_dependencies.pri b/src/plugins/qtsupport/qtsupport_dependencies.pri
index fb03eb1c12..88d89ae173 100644
--- a/src/plugins/qtsupport/qtsupport_dependencies.pri
+++ b/src/plugins/qtsupport/qtsupport_dependencies.pri
@@ -4,6 +4,7 @@ QTC_LIB_DEPENDS += \
utils
QTC_PLUGIN_DEPENDS += \
coreplugin \
+ cpptools \
projectexplorer \
texteditor
DEFINES *= \
diff --git a/src/plugins/cpptools/uicodecompletionsupport.cpp b/src/plugins/qtsupport/uicodemodelsupport.cpp
index 54403f9a93..47d4fc0463 100644
--- a/src/plugins/cpptools/uicodecompletionsupport.cpp
+++ b/src/plugins/qtsupport/uicodemodelsupport.cpp
@@ -27,21 +27,29 @@
**
****************************************************************************/
-#include "uicodecompletionsupport.h"
+#include "uicodemodelsupport.h"
+
+#include "qtkitinformation.h"
+
+#include <projectexplorer/buildconfiguration.h>
+#include <projectexplorer/project.h>
+#include <projectexplorer/target.h>
-#include <QProcess>
#include <QFile>
#include <QFileInfo>
enum { debug = 0 };
-using namespace CppTools;
using namespace CPlusPlus;
-UiCodeModelSupport::UiCodeModelSupport(CppModelManagerInterface *modelmanager,
+namespace QtSupport {
+
+UiCodeModelSupport::UiCodeModelSupport(CppTools::CppModelManagerInterface *modelmanager,
+ ProjectExplorer::Project *project,
const QString &source,
const QString &uiHeaderFile)
- : AbstractEditorSupport(modelmanager),
+ : CppTools::AbstractEditorSupport(modelmanager),
+ m_project(project),
m_sourceName(source),
m_fileName(uiHeaderFile),
m_state(BARE)
@@ -178,34 +186,6 @@ void UiCodeModelSupport::updateFromEditor(const QString &formEditorContents)
updateDocument();
}
-bool UiCodeModelSupport::finishProcess() const
-{
- if (m_state != RUNNING)
- return false;
- if (!m_process.waitForFinished(3000)
- && m_process.exitStatus() != QProcess::NormalExit
- && m_process.exitCode() != 0) {
- if (m_state != RUNNING) // waitForFinished can recurse into finishProcess
- return false;
-
- if (debug)
- qDebug() << "failed" << m_process.readAllStandardError();
- m_process.kill();
- m_state = FINISHED;
- return false;
- }
-
- if (m_state != RUNNING) // waitForFinished can recurse into finishProcess
- return true;
-
- m_contents = m_process.readAllStandardOutput();
- m_cacheTime = QDateTime::currentDateTime();
- if (debug)
- qDebug() << "ok" << m_contents.size() << "bytes.";
- m_state = FINISHED;
- return true;
-}
-
void UiCodeModelSupport::updateFromBuild()
{
if (debug)
@@ -244,3 +224,57 @@ void UiCodeModelSupport::updateFromBuild()
}
}
+QString UiCodeModelSupport::uicCommand() const
+{
+ QtSupport::BaseQtVersion *version;
+ if (m_project->needsConfiguration()) {
+ version = QtSupport::QtKitInformation::qtVersion(ProjectExplorer::KitManager::instance()->defaultKit());
+ } else {
+ ProjectExplorer::Target *target = m_project->activeTarget();
+ version = QtSupport::QtKitInformation::qtVersion(target->kit());
+ }
+ return version ? version->uicCommand() : QString();
+}
+
+QStringList UiCodeModelSupport::environment() const
+{
+ if (m_project->needsConfiguration()) {
+ return Utils::Environment::systemEnvironment().toStringList();
+ } else {
+ ProjectExplorer::Target *target = m_project->activeTarget();
+ if (!target)
+ return QStringList();
+ ProjectExplorer::BuildConfiguration *bc = target->activeBuildConfiguration();
+ return bc ? bc->environment().toStringList() : QStringList();
+ }
+}
+
+bool UiCodeModelSupport::finishProcess() const
+{
+ if (m_state != RUNNING)
+ return false;
+ if (!m_process.waitForFinished(3000)
+ && m_process.exitStatus() != QProcess::NormalExit
+ && m_process.exitCode() != 0) {
+ if (m_state != RUNNING) // waitForFinished can recurse into finishProcess
+ return false;
+
+ if (debug)
+ qDebug() << "failed" << m_process.readAllStandardError();
+ m_process.kill();
+ m_state = FINISHED;
+ return false;
+ }
+
+ if (m_state != RUNNING) // waitForFinished can recurse into finishProcess
+ return true;
+
+ m_contents = m_process.readAllStandardOutput();
+ m_cacheTime = QDateTime::currentDateTime();
+ if (debug)
+ qDebug() << "ok" << m_contents.size() << "bytes.";
+ m_state = FINISHED;
+ return true;
+}
+
+} // namespace QtSupport
diff --git a/src/plugins/cpptools/uicodecompletionsupport.h b/src/plugins/qtsupport/uicodemodelsupport.h
index df56b544de..76fa9476c1 100644
--- a/src/plugins/cpptools/uicodecompletionsupport.h
+++ b/src/plugins/qtsupport/uicodemodelsupport.h
@@ -27,42 +27,52 @@
**
****************************************************************************/
+#ifndef UICODEMODELSUPPORT_H
+#define UICODEMODELSUPPORT_H
-#ifndef UICODECOMPLETIONSUPPORT_H
-#define UICODECOMPLETIONSUPPORT_H
+#include "qtsupport_global.h"
-#include "cpptools_global.h"
-#include "abstracteditorsupport.h"
-#include "cppmodelmanagerinterface.h"
+#include <cpptools/abstracteditorsupport.h>
#include <QDateTime>
#include <QProcess>
-namespace CppTools {
+namespace CPlusPlus { class CppModelManagerInterface; }
+namespace ProjectExplorer { class Project; }
-class CPPTOOLS_EXPORT UiCodeModelSupport : public AbstractEditorSupport
+namespace QtSupport {
+
+class QTSUPPORT_EXPORT UiCodeModelSupport : public CppTools::AbstractEditorSupport
{
Q_OBJECT
+
public:
UiCodeModelSupport(CppTools::CppModelManagerInterface *modelmanager,
+ ProjectExplorer::Project *project,
const QString &sourceFile,
const QString &uiHeaderFile);
~UiCodeModelSupport();
+
void setFileName(const QString &name);
void setSourceName(const QString &name);
- virtual QByteArray contents() const;
- virtual QString fileName() const;
+ QByteArray contents() const;
+ QString fileName() const;
void updateFromEditor(const QString &formEditorContents);
void updateFromBuild();
-protected:
- virtual QString uicCommand() const = 0;
- virtual QStringList environment() const = 0;
+
+private:
+ QString uicCommand() const;
+ QStringList environment() const;
+
+private slots:
+ bool finishProcess() const;
+
private:
+ ProjectExplorer::Project *m_project;
enum State { BARE, RUNNING, FINISHED };
void init() const;
bool runUic(const QString &ui) const;
- Q_SLOT bool finishProcess() const;
mutable QProcess m_process;
QString m_sourceName;
QString m_fileName;
@@ -72,6 +82,6 @@ private:
static QList<UiCodeModelSupport *> m_waitingForStart;
};
-} // CppTools
+} // QtSupport
-#endif // UICODECOMPLETIONSUPPORT_H
+#endif // UICODEMODELSUPPORT_H