From 9e6c289ab8a51921e2d6da58c922f694ed2243f9 Mon Sep 17 00:00:00 2001 From: Seth Alves Date: Thu, 12 Mar 2015 10:23:57 -0700 Subject: [PATCH] move filename utils into shared library --- libraries/octree/src/Octree.cpp | 33 +++----------------- libraries/octree/src/Octree.h | 8 +---- libraries/octree/src/OctreePersistThread.cpp | 5 +-- libraries/shared/src/PathUtils.cpp | 30 ++++++++++++++++++ libraries/shared/src/PathUtils.h | 5 ++- 5 files changed, 42 insertions(+), 39 deletions(-) diff --git a/libraries/octree/src/Octree.cpp b/libraries/octree/src/Octree.cpp index 17c6e26b05..dafbda4ef0 100644 --- a/libraries/octree/src/Octree.cpp +++ b/libraries/octree/src/Octree.cpp @@ -39,6 +39,7 @@ #include #include #include +#include #include "CoverageMap.h" #include "OctreeConstants.h" @@ -47,7 +48,7 @@ #include "ViewFrustum.h" -QVector persistExtensions = {"svo", "json"}; +QVector PERSIST_EXTENSIONS = {"svo", "json"}; float boundaryDistanceForRenderLevel(unsigned int renderLevel, float voxelSizeScale) { return voxelSizeScale / powf(2, renderLevel); @@ -1851,7 +1852,7 @@ int Octree::encodeTreeBitstreamRecursion(OctreeElement* element, bool Octree::readFromFile(const char* fileName) { bool fileOk = false; - QString qFileName = findMostRecentPersist(fileName); + QString qFileName = findMostRecentFileExtension(fileName, PERSIST_EXTENSIONS); QFile file(qFileName); fileOk = file.open(QIODevice::ReadOnly); @@ -2063,7 +2064,7 @@ bool Octree::readJSONFromStream(unsigned long streamLength, QDataStream& inputSt void Octree::writeToFile(const char* fileName, OctreeElement* element, QString persistAsFileType) { // make the sure file extension makes sense - QString qFileName = fileNameWithoutExtension(QString(fileName), persistExtensions) + "." + persistAsFileType; + QString qFileName = fileNameWithoutExtension(QString(fileName), PERSIST_EXTENSIONS) + "." + persistAsFileType; QByteArray byteArray = qFileName.toUtf8(); const char* cFileName = byteArray.constData(); @@ -2193,29 +2194,3 @@ bool Octree::countOctreeElementsOperation(OctreeElement* element, void* extraDat void Octree::cancelImport() { _stopImport = true; } - -QString fileNameWithoutExtension(const QString& fileName, const QVector possibleExtensions) { - foreach (const QString possibleExtension, possibleExtensions) { - if (fileName.endsWith(possibleExtension) || - fileName.endsWith(possibleExtension.toUpper()) || - fileName.endsWith(possibleExtension.toLower())) { - return fileName.left(fileName.count() - possibleExtension.count() - 1); - } - } - return fileName; -} - -QString findMostRecentPersist(const QString& originalFileName) { - QString sansExt = fileNameWithoutExtension(originalFileName, persistExtensions); - QString newestFileName = originalFileName; - QDateTime newestTime = QDateTime::fromMSecsSinceEpoch(0); - foreach (QString possibleExtension, persistExtensions) { - QString fileName = sansExt + "." + possibleExtension; - QFileInfo fileInfo(fileName); - if (fileInfo.exists() && fileInfo.lastModified() > newestTime) { - newestFileName = fileName; - newestTime = fileInfo.lastModified(); - } - } - return newestFileName; -} diff --git a/libraries/octree/src/Octree.h b/libraries/octree/src/Octree.h index fff6a89570..21c3efc01d 100644 --- a/libraries/octree/src/Octree.h +++ b/libraries/octree/src/Octree.h @@ -36,7 +36,7 @@ class Shape; #include -extern QVector persistExtensions; +extern QVector PERSIST_EXTENSIONS; /// derive from this class to use the Octree::recurseTreeWithOperator() method class RecurseOctreeOperator { @@ -407,10 +407,4 @@ protected: float boundaryDistanceForRenderLevel(unsigned int renderLevel, float voxelSizeScale); - -QString fileNameWithoutExtension(const QString& fileName, const QVector possibleExtensions); - -// XXX rename this -QString findMostRecentPersist(const QString& originalFileName); - #endif // hifi_Octree_h diff --git a/libraries/octree/src/OctreePersistThread.cpp b/libraries/octree/src/OctreePersistThread.cpp index 24db400891..c2645f0207 100644 --- a/libraries/octree/src/OctreePersistThread.cpp +++ b/libraries/octree/src/OctreePersistThread.cpp @@ -24,6 +24,7 @@ #include #include +#include #include "OctreePersistThread.h" @@ -46,7 +47,7 @@ OctreePersistThread::OctreePersistThread(Octree* tree, const QString& filename, parseSettings(settings); // in case the persist filename has an extension that doesn't match the file type - QString sansExt = fileNameWithoutExtension(_filename, persistExtensions); + QString sansExt = fileNameWithoutExtension(_filename, PERSIST_EXTENSIONS); _filename = sansExt + "." + _persistAsFileType; } @@ -352,7 +353,7 @@ void OctreePersistThread::rollOldBackupVersions(const BackupRule& rule) { backupExtensionN.replace(QString("%N"), QString::number(n)); backupExtensionNplusOne.replace(QString("%N"), QString::number(n+1)); - QString backupFilenameN = findMostRecentPersist(_filename) + backupExtensionN; + QString backupFilenameN = findMostRecentFileExtension(_filename, PERSIST_EXTENSIONS) + backupExtensionN; QString backupFilenameNplusOne = _filename + backupExtensionNplusOne; QFile backupFileN(backupFilenameN); diff --git a/libraries/shared/src/PathUtils.cpp b/libraries/shared/src/PathUtils.cpp index 0b99f22228..545183e8f5 100644 --- a/libraries/shared/src/PathUtils.cpp +++ b/libraries/shared/src/PathUtils.cpp @@ -11,6 +11,9 @@ #include #include +#include +#include +#include #include "PathUtils.h" @@ -23,3 +26,30 @@ QString& PathUtils::resourcesPath() { #endif return staticResourcePath; } + + +QString fileNameWithoutExtension(const QString& fileName, const QVector possibleExtensions) { + foreach (const QString possibleExtension, possibleExtensions) { + if (fileName.endsWith(possibleExtension) || + fileName.endsWith(possibleExtension.toUpper()) || + fileName.endsWith(possibleExtension.toLower())) { + return fileName.left(fileName.count() - possibleExtension.count() - 1); + } + } + return fileName; +} + +QString findMostRecentFileExtension(const QString& originalFileName, QVector possibleExtensions) { + QString sansExt = fileNameWithoutExtension(originalFileName, possibleExtensions); + QString newestFileName = originalFileName; + QDateTime newestTime = QDateTime::fromMSecsSinceEpoch(0); + foreach (QString possibleExtension, possibleExtensions) { + QString fileName = sansExt + "." + possibleExtension; + QFileInfo fileInfo(fileName); + if (fileInfo.exists() && fileInfo.lastModified() > newestTime) { + newestFileName = fileName; + newestTime = fileInfo.lastModified(); + } + } + return newestFileName; +} diff --git a/libraries/shared/src/PathUtils.h b/libraries/shared/src/PathUtils.h index 71cabc727d..6b6893574b 100644 --- a/libraries/shared/src/PathUtils.h +++ b/libraries/shared/src/PathUtils.h @@ -19,4 +19,7 @@ namespace PathUtils { QString& resourcesPath(); } -#endif // hifi_PathUtils_h \ No newline at end of file +QString fileNameWithoutExtension(const QString& fileName, const QVector possibleExtensions); +QString findMostRecentFileExtension(const QString& originalFileName, QVector possibleExtensions); + +#endif // hifi_PathUtils_h