diff options
author | dt <qtc-committer@nokia.com> | 2011-05-20 21:40:53 +0200 |
---|---|---|
committer | Daniel Teske <daniel.teske@nokia.com> | 2011-05-24 18:35:11 +0200 |
commit | 754be1bcfcd22e41f591ae78642605f639b075b1 (patch) | |
tree | a0f0d1f36165bacede673a13ed26904dc04f3970 /src/plugins/qt4projectmanager/qmlobservertool.cpp | |
parent | dcd34febabccdcb96fc7963172cba270e20aa483 (diff) | |
download | qt-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.cpp | 195 |
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 |