diff options
author | Alessandro Portale <alessandro.portale@nokia.com> | 2011-02-03 19:46:41 +0100 |
---|---|---|
committer | Alessandro Portale <alessandro.portale@nokia.com> | 2011-02-03 19:48:12 +0100 |
commit | efc596170cad15f56c18643508fc1ea0c83a5644 (patch) | |
tree | e5a9cd4976a3e2eb395f5441ae1c264bd2f5b6f1 /src/plugins/qt4projectmanager/wizards/qmlstandaloneapp.cpp | |
parent | 07b52446897d6345bc26e5463aa64e5866da6c26 (diff) | |
download | qt-creator-efc596170cad15f56c18643508fc1ea0c83a5644.tar.gz |
Refactoring the template code updater. Reusable for html5
Less static functions, more ploymorphism.
Diffstat (limited to 'src/plugins/qt4projectmanager/wizards/qmlstandaloneapp.cpp')
-rw-r--r-- | src/plugins/qt4projectmanager/wizards/qmlstandaloneapp.cpp | 56 |
1 files changed, 3 insertions, 53 deletions
diff --git a/src/plugins/qt4projectmanager/wizards/qmlstandaloneapp.cpp b/src/plugins/qt4projectmanager/wizards/qmlstandaloneapp.cpp index 5b4cd09234..a3265333f9 100644 --- a/src/plugins/qt4projectmanager/wizards/qmlstandaloneapp.cpp +++ b/src/plugins/qt4projectmanager/wizards/qmlstandaloneapp.cpp @@ -95,11 +95,7 @@ QmlCppPlugin::QmlCppPlugin(const QString &name, const QFileInfo &path, , path(path) , module(module) , proFile(proFile) -{} - -bool QmlAppGeneratedFileInfo::isOutdated() const { - return version < AbstractMobileApp::makeStubVersion(QmlStandaloneApp::StubVersion); } QmlStandaloneApp::QmlStandaloneApp() : AbstractMobileApp() @@ -407,9 +403,9 @@ int QmlStandaloneApp::stubVersionMinor() const return StubVersion; } -static QList<QmlAppGeneratedFileInfo> updateableFiles(const QString &mainProFile) +QList<AbstractGeneratedFileInfo> QmlStandaloneApp::updateableFiles(const QString &mainProFile) const { - QList<QmlAppGeneratedFileInfo> result; + QList<AbstractGeneratedFileInfo> result; static const struct { int fileType; QString fileName; @@ -428,6 +424,7 @@ static QList<QmlAppGeneratedFileInfo> updateableFiles(const QString &mainProFile QmlAppGeneratedFileInfo file; file.fileType = files[i].fileType; file.fileInfo = QFileInfo(fileName); + file.currentVersion = AbstractMobileApp::makeStubVersion(QmlStandaloneApp::StubVersion); result.append(file); } if (result.count() != size) @@ -435,53 +432,6 @@ static QList<QmlAppGeneratedFileInfo> updateableFiles(const QString &mainProFile return result; } -QList<QmlAppGeneratedFileInfo> QmlStandaloneApp::fileUpdates(const QString &mainProFile) -{ - QList<QmlAppGeneratedFileInfo> result; - foreach (const QmlAppGeneratedFileInfo &file, updateableFiles(mainProFile)) { - QmlAppGeneratedFileInfo newFile = file; - QFile readFile(newFile.fileInfo.absoluteFilePath()); - if (!readFile.open(QIODevice::ReadOnly)) - continue; - const QString firstLine = readFile.readLine(); - const QStringList elements = firstLine.split(QLatin1Char(' ')); - if (elements.count() != 5 || elements.at(1) != FileChecksum - || elements.at(3) != FileStubVersion) - continue; - const QString versionString = elements.at(4); - newFile.version = versionString.startsWith(QLatin1String("0x")) - ? versionString.toInt(0, 16) : 0; - newFile.statedChecksum = elements.at(2).toUShort(0, 16); - QByteArray data = readFile.readAll(); - data.replace('\x0D', ""); - data.replace('\x0A', ""); - newFile.dataChecksum = qChecksum(data.constData(), data.length()); - if (!newFile.isUpToDate()) - result.append(newFile); - } - return result; -} - -bool QmlStandaloneApp::updateFiles(const QList<QmlAppGeneratedFileInfo> &list, QString &error) -{ - error.clear(); - const QmlStandaloneApp app; - foreach (const QmlAppGeneratedFileInfo &info, list) { - const QByteArray data = app.generateFile(info.fileType, &error); - if (!error.isEmpty()) - return false; - QFile file(info.fileInfo.absoluteFilePath()); - if (!file.open(QIODevice::WriteOnly) || file.write(data) == -1) { - error = QCoreApplication::translate( - "Qt4ProjectManager::Internal::QmlStandaloneApp", - "Could not write file '%1'."). - arg(QDir::toNativeSeparators(info.fileInfo.canonicalFilePath())); - return false; - } - } - return true; -} - const int QmlStandaloneApp::StubVersion = 10; } // namespace Internal |