summaryrefslogtreecommitdiff
path: root/src/plugins/qt4projectmanager/qmlobservertool.cpp
diff options
context:
space:
mode:
authordt <qtc-committer@nokia.com>2011-05-20 21:40:53 +0200
committerDaniel Teske <daniel.teske@nokia.com>2011-05-24 18:35:11 +0200
commit754be1bcfcd22e41f591ae78642605f639b075b1 (patch)
treea0f0d1f36165bacede673a13ed26904dc04f3970 /src/plugins/qt4projectmanager/qmlobservertool.cpp
parentdcd34febabccdcb96fc7963172cba270e20aa483 (diff)
downloadqt-creator-754be1bcfcd22e41f591ae78642605f639b075b1.tar.gz
Move a lot of qmake independent classes to a new plugin qtsupport
Also adjust qmldumptool to remove the dependency on qt4project/qmlproject, by passing in the qtversion instead of figuring it out in qmldumptool. Change-Id: Ie6ac582d36bfef290313c0716b33b62fcf42630c Reviewed-on: http://codereview.qt.nokia.com/70 Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com> Reviewed-by: Daniel Teske <daniel.teske@nokia.com>
Diffstat (limited to 'src/plugins/qt4projectmanager/qmlobservertool.cpp')
-rw-r--r--src/plugins/qt4projectmanager/qmlobservertool.cpp195
1 files changed, 0 insertions, 195 deletions
diff --git a/src/plugins/qt4projectmanager/qmlobservertool.cpp b/src/plugins/qt4projectmanager/qmlobservertool.cpp
deleted file mode 100644
index ca007846e1..0000000000
--- a/src/plugins/qt4projectmanager/qmlobservertool.cpp
+++ /dev/null
@@ -1,195 +0,0 @@
-/**************************************************************************
-**
-** This file is part of Qt Creator
-**
-** Copyright (c) 2011 Nokia Corporation and/or its subsidiary(-ies).
-**
-** Contact: Nokia Corporation (info@qt.nokia.com)
-**
-**
-** GNU Lesser General Public License Usage
-**
-** 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.
-**
-** Other Usage
-**
-** Alternatively, this file may be used in accordance with the terms and
-** conditions contained in a signed written agreement between you and Nokia.
-**
-** If you have questions regarding the use of this file, please contact
-** Nokia at info@qt.nokia.com.
-**
-**************************************************************************/
-
-#include "qmlobservertool.h"
-
-#include "qt4project.h"
-#include "qt4projectmanagerconstants.h"
-#include "baseqtversion.h"
-#include <coreplugin/icore.h>
-#include <utils/qtcassert.h>
-
-#include <projectexplorer/project.h>
-#include <QtGui/QDesktopServices>
-#include <QtCore/QCoreApplication>
-#include <QtCore/QDir>
-#include <QtCore/QDebug>
-
-namespace Qt4ProjectManager {
-
-static inline QStringList validBinaryFilenames()
-{
- return QStringList()
- << QLatin1String("debug/qmlobserver.exe")
- << QLatin1String("qmlobserver.exe")
- << QLatin1String("qmlobserver")
- << QLatin1String("QMLObserver.app/Contents/MacOS/QMLObserver");
-}
-
-bool QmlObserverTool::canBuild(const BaseQtVersion *qtVersion, QString *reason)
-{
- if (!qtVersion->supportsTargetId(Constants::DESKTOP_TARGET_ID)
- && !qtVersion->supportsTargetId(Constants::QT_SIMULATOR_TARGET_ID)) {
- if (reason)
- *reason = QCoreApplication::translate("Qt4ProjectManager::QmlObserverTool", "Only available for Qt for Desktop or Qt for Qt Simulator.");
- return false;
- }
-
- if (qtVersion->qtVersion() < QtVersionNumber(4, 7, 1)) {
- if (reason)
- *reason = QCoreApplication::translate("Qt4ProjectManager::QmlObserverTool", "Only available for Qt 4.7.1 or newer.");
- return false;
- }
- return true;
-}
-
-QString QmlObserverTool::toolForProject(ProjectExplorer::Project *project)
-{
- if (project->id() == Qt4ProjectManager::Constants::QT4PROJECT_ID) {
- Qt4Project *qt4Project = static_cast<Qt4Project*>(project);
- if (qt4Project && qt4Project->activeTarget()
- && qt4Project->activeTarget()->activeBuildConfiguration()) {
- BaseQtVersion *version = qt4Project->activeTarget()->activeBuildConfiguration()->qtVersion();
- if (version && version->isValid()) {
- QString qtInstallData = version->versionInfo().value("QT_INSTALL_DATA");
- QString toolPath = toolByInstallData(qtInstallData);
- return toolPath;
- }
- }
- }
- return QString();
-}
-
-QString QmlObserverTool::toolByInstallData(const QString &qtInstallData)
-{
- if (!Core::ICore::instance())
- return QString();
-
- const QStringList directories = installDirectories(qtInstallData);
- const QStringList binFilenames = validBinaryFilenames();
-
- return byInstallDataHelper(sourcePath(), sourceFileNames(), directories, binFilenames, false);
-}
-
-QStringList QmlObserverTool::locationsByInstallData(const QString &qtInstallData)
-{
- QStringList result;
- QFileInfo fileInfo;
- const QStringList binFilenames = validBinaryFilenames();
- foreach(const QString &directory, installDirectories(qtInstallData)) {
- if (getHelperFileInfoFor(binFilenames, directory, &fileInfo))
- result << fileInfo.filePath();
- }
- return result;
-}
-
-bool QmlObserverTool::build(BuildHelperArguments arguments, QString *log, QString *errorMessage)
-{
- arguments.helperName = QCoreApplication::translate("Qt4ProjectManager::QmlObserverTool", "QMLObserver");
- arguments.proFilename = QLatin1String("qmlobserver.pro");
-
- return buildHelper(arguments, log, errorMessage);
-}
-
-static inline bool mkpath(const QString &targetDirectory, QString *errorMessage)
-{
- if (!QDir().mkpath(targetDirectory)) {
- *errorMessage = QCoreApplication::translate("ProjectExplorer::QmlObserverTool", "The target directory %1 could not be created.").arg(targetDirectory);
- return false;
- }
- return true;
-}
-
-QString QmlObserverTool::copy(const QString &qtInstallData, QString *errorMessage)
-{
- const QStringList directories = QmlObserverTool::installDirectories(qtInstallData);
-
- // Try to find a writeable directory.
- foreach(const QString &directory, directories) {
- if (!mkpath(directory, errorMessage)) {
- continue;
- } else {
- errorMessage->clear();
- }
-
- if (copyFiles(sourcePath(), sourceFileNames(), directory, errorMessage)) {
- errorMessage->clear();
- return directory;
- }
- }
- *errorMessage = QCoreApplication::translate("ProjectExplorer::QmlObserverTool",
- "QMLObserver could not be built in any of the directories:\n- %1\n\nReason: %2")
- .arg(directories.join(QLatin1String("\n- ")), *errorMessage);
- return QString();
-}
-
-QStringList QmlObserverTool::recursiveFileList(const QDir &dir, const QString &prefix)
-{
- QStringList files;
-
- QString _prefix = prefix;
- if (!_prefix.isEmpty() && !_prefix.endsWith('/')) {
- _prefix = _prefix + '/';
- }
- foreach (const QString &fileName, dir.entryList(QDir::Files)) {
- files << _prefix + fileName;
- }
-
- foreach (const QString &subDir, dir.entryList(QDir::Dirs | QDir::NoDotAndDotDot)) {
- files += recursiveFileList(QDir(dir.absoluteFilePath(subDir)), _prefix + subDir);
- }
- return files;
-}
-
-QStringList QmlObserverTool::installDirectories(const QString &qtInstallData)
-{
- const QChar slash = QLatin1Char('/');
- const uint hash = qHash(qtInstallData);
- QStringList directories;
- directories
- << (qtInstallData + QLatin1String("/qtc-qmlobserver/"))
- << QDir::cleanPath((QCoreApplication::applicationDirPath() + QLatin1String("/../qtc-qmlobserver/") + QString::number(hash))) + slash
- << (QDesktopServices::storageLocation(QDesktopServices::DataLocation) + QLatin1String("/qtc-qmlobserver/") + QString::number(hash)) + slash;
- return directories;
-}
-
-QString QmlObserverTool::sourcePath()
-{
- return Core::ICore::instance()->resourcePath() + QLatin1String("/qml/qmlobserver/");
-}
-
-QStringList QmlObserverTool::sourceFileNames()
-{
- return recursiveFileList(QDir(sourcePath()));
-}
-
-} // namespace