From 508e8b92a9ce4cad273052c1104460fabd84df07 Mon Sep 17 00:00:00 2001
From: "ar.graf" <ar.graf@fz-juelich.de>
Date: Tue, 2 May 2023 10:33:51 +0200
Subject: [PATCH] changed File-Extension Check to be Qt::CaseInsensitive

---
 src/IO.cpp               |  4 ++--
 src/backgroundFilter.cpp |  2 +-
 src/extrCalibration.cpp  |  2 +-
 src/main.cpp             | 14 ++++++++------
 src/petrack.cpp          | 26 ++++++++++++++------------
 src/stereoContext.cpp    |  2 +-
 6 files changed, 27 insertions(+), 23 deletions(-)

diff --git a/src/IO.cpp b/src/IO.cpp
index 9d8a461d1..69510f6db 100644
--- a/src/IO.cpp
+++ b/src/IO.cpp
@@ -55,7 +55,7 @@ std::variant<std::unordered_map<int, float>, std::string> IO::readHeightFile(con
     if(!heightFileName.isEmpty())
     {
         // Import heights from txt-file
-        if(heightFileName.right(4) == ".txt")
+        if(heightFileName.endsWith(".txt", Qt::CaseInsensitive))
         {
             QFile heightFile(heightFileName);
             if(!heightFile.open(QIODevice::ReadOnly | QIODevice::Text))
@@ -280,7 +280,7 @@ std::variant<std::unordered_map<int, int>, std::string> IO::readMarkerIDFile(con
     if(!markerFileName.isEmpty())
     {
         // Import heights from txt-file
-        if(markerFileName.right(4) == ".txt")
+        if(markerFileName.endsWith(".txt", Qt::CaseInsensitive))
         {
             QFile markerFile(markerFileName);
             if(!markerFile.open(QIODevice::ReadOnly | QIODevice::Text))
diff --git a/src/backgroundFilter.cpp b/src/backgroundFilter.cpp
index 9ea5b2514..655bbd2df 100644
--- a/src/backgroundFilter.cpp
+++ b/src/backgroundFilter.cpp
@@ -117,7 +117,7 @@ bool BackgroundFilter::save(QString /*dest*/) // default = ""
         }
         if(!dest.isEmpty())
         {
-            if(dest.right(4) != ".png")
+            if(!dest.endsWith(".png", Qt::CaseInsensitive))
                 dest = dest + ".png";
 
             Mat bgImg(Size(mBgPointCloud.cols, mBgPointCloud.rows), CV_8UC1);
diff --git a/src/extrCalibration.cpp b/src/extrCalibration.cpp
index badbc37fe..7f8763e27 100644
--- a/src/extrCalibration.cpp
+++ b/src/extrCalibration.cpp
@@ -159,7 +159,7 @@ std::optional<ExtrinsicParameters> ExtrCalibration::loadExtrCalibFile()
         return std::nullopt;
     }
 
-    if(mExtrCalibFile.right(4) != ".3dc" && mExtrCalibFile.right(4) != ".txt")
+    if(!mExtrCalibFile.endsWith(".3dc", Qt::CaseInsensitive) && !mExtrCalibFile.endsWith(".txt", Qt::CaseInsensitive))
     {
         PWarning(nullptr, "Unsupported File Type", "Unsupported file extension (supported: .3dc, .txt)");
         return std::nullopt;
diff --git a/src/main.cpp b/src/main.cpp
index ceae9291c..d254e167c 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -121,7 +121,7 @@ int main(int argc, char *argv[])
             // hat tracker_file bestimmte Dateiendung txt oder trc, dann wird nur genau diese exportiert, sonst beide
             autoPlayDest = arg.at(++i);
         }
-        else if(arg.at(i).right(4) == ".pet")
+        else if(arg.at(i).endsWith(".pet", Qt::CaseInsensitive))
         {
             // -project option ueberschreibt *.pet uebergabe ohne option!!
             if(project.isEmpty())
@@ -198,9 +198,11 @@ int main(int argc, char *argv[])
     {
         petrack.openSequence(sequence);
     }
-    if(autoSave && (autoSaveDest.right(4) != ".pet"))
+    if(autoSave && (!autoSaveDest.endsWith(".pet", Qt::CaseInsensitive)))
     {
-        if((autoSaveDest.right(4) == ".txt") || (autoSaveDest.right(5) == ".trav") || (autoSaveDest.right(4) == ".dat"))
+        if((autoSaveDest.endsWith(".txt", Qt::CaseInsensitive)) ||
+           (autoSaveDest.endsWith(".trav", Qt::CaseInsensitive)) ||
+           (autoSaveDest.endsWith(".dat", Qt::CaseInsensitive)))
         {
             petrack.exportTracker(autoSaveDest); // projekt wird geladen und nur Trajektoprien herausgeschrieben (zB
                                                  // wenn sich .pet (altitude) oder .trc aendert (delrec))
@@ -275,7 +277,7 @@ int main(int argc, char *argv[])
         }
 
         petrack.exportTracker(autoTrackDest);
-        if(autoSave && (autoSaveDest.right(4) == ".pet"))
+        if(autoSave && (autoSaveDest.endsWith(".pet", Qt::CaseInsensitive)))
         {
             petrack.saveProject(autoSaveDest);
         }
@@ -287,7 +289,7 @@ int main(int argc, char *argv[])
     {
         petrack.playAll();
         petrack.exportTracker(autoPlayDest);
-        if(autoSave && (autoSaveDest.right(4) == ".pet"))
+        if(autoSave && (autoSaveDest.endsWith(".pet", Qt::CaseInsensitive)))
         {
             petrack.saveProject(autoSaveDest);
         }
@@ -329,7 +331,7 @@ int main(int argc, char *argv[])
     {
         petrack.exportTracker(autoSaveTrackerFile);
     }
-    if(autoSave && (autoSaveDest.right(4) == ".pet"))
+    if(autoSave && (autoSaveDest.endsWith(".pet", Qt::CaseInsensitive)))
     {
         petrack.saveProject(autoSaveDest);
         return EXIT_SUCCESS;
diff --git a/src/petrack.cpp b/src/petrack.cpp
index 5e7428440..3dfc74abd 100644
--- a/src/petrack.cpp
+++ b/src/petrack.cpp
@@ -348,11 +348,11 @@ void Petrack::dropEvent(QDropEvent *event)
 {
     if(event->mimeData()->hasUrls())
     {
-        if(event->mimeData()->urls().first().toLocalFile().right(4) == ".pet")
+        if(event->mimeData()->urls().first().toLocalFile().endsWith(".pet", Qt::CaseInsensitive))
         {
             openProject(event->mimeData()->urls().first().toLocalFile());
         }
-        else if(event->mimeData()->urls().first().toLocalFile().right(4) == ".trc")
+        else if(event->mimeData()->urls().first().toLocalFile().endsWith(".trc", Qt::CaseInsensitive))
         {
             importTracker(event->mimeData()->urls().first().toLocalFile());
         }
@@ -1148,7 +1148,7 @@ void Petrack::saveSequence(bool saveVideo, bool saveView, QString dest) // defau
             }
         }
     }
-    auto extension = dest.right(4);
+    auto extension = dest.right(4).toLower();
 
     int fourcc = -1;
     if(extension == ".mp4")
@@ -1481,7 +1481,8 @@ void Petrack::saveView(QString dest) // default = ""
 
         if(!dest.isEmpty())
         {
-            if(dest.right(4) == ".pdf" || dest.right(3) == ".ps" || dest.right(4) == ".eps")
+            if(dest.endsWith(".pdf", Qt::CaseInsensitive) || dest.endsWith(".ps", Qt::CaseInsensitive) ||
+               dest.endsWith(".eps", Qt::CaseInsensitive))
             {
                 QPdfWriter pdfWriter(dest);
                 pdfWriter.setPageMargins({0, 0, 0, 0});
@@ -1562,7 +1563,8 @@ void Petrack::saveImage(QString dest) // default = ""
 
         if(!dest.isEmpty())
         {
-            if(dest.right(4) == ".pdf" || dest.right(3) == ".ps" || dest.right(4) == ".eps")
+            if(dest.endsWith(".pdf", Qt::CaseInsensitive) || dest.endsWith(".ps", Qt::CaseInsensitive) ||
+               dest.endsWith(".eps", Qt::CaseInsensitive))
             {
                 QPdfWriter pdfWriter(dest);
                 pdfWriter.setPageMargins({0, 0, 0, 0});
@@ -2513,7 +2515,7 @@ void Petrack::importTracker(QString dest) // default = ""
 
     if(!dest.isEmpty())
     {
-        if(dest.right(4) == ".trc")
+        if(dest.endsWith(".trc", Qt::CaseInsensitive))
         {
             QFile file(dest);
             int   i, sz;
@@ -2593,8 +2595,8 @@ void Petrack::importTracker(QString dest) // default = ""
             mTrcFileName =
                 dest; // fuer Project-File, dann koennte track path direkt mitgeladen werden, wenn er noch da ist
         }
-        else if(dest.right(4) == ".txt") // 3D Koordinaten als Tracking-Daten importieren Zeilenformat: Personennr,
-                                         // Framenr, x, y, z
+        else if(dest.endsWith(".txt", Qt::CaseInsensitive)) // 3D Koordinaten als Tracking-Daten importieren
+                                                            // Zeilenformat: Personennr, Framenr, x, y, z
         {
             PWarning(
                 this,
@@ -2825,7 +2827,7 @@ void Petrack::exportTracker(QString dest) // default = ""
                                      mMultiColorMarkerWidget->autoCorrect->isChecked() &&
                                      mMultiColorMarkerWidget->autoCorrectOnlyExport->isChecked();
 
-        if(dest.right(4) == ".trc")
+        if(dest.endsWith(".trc", Qt::CaseInsensitive))
         {
             QTemporaryFile file;
 
@@ -2895,7 +2897,7 @@ void Petrack::exportTracker(QString dest) // default = ""
             mTrcFileName =
                 dest; // fuer Project-File, dann koennte track path direkt mitgeladen werden, wenn er// noch da ist
         }
-        else if(dest.right(4) == ".txt")
+        else if(dest.endsWith(".txt", Qt::CaseInsensitive))
         {
             QTemporaryFile file;
 
@@ -3004,7 +3006,7 @@ void Petrack::exportTracker(QString dest) // default = ""
 
             SPDLOG_INFO("finished");
         }
-        else if(dest.right(4) == ".dat")
+        else if(dest.endsWith(".dat", Qt::CaseInsensitive))
         {
             QTemporaryFile fileDat;
 
@@ -3067,7 +3069,7 @@ void Petrack::exportTracker(QString dest) // default = ""
 
             SPDLOG_INFO("finished");
         }
-        else if(dest.right(5) == ".trav")
+        else if(dest.endsWith(".trav", Qt::CaseInsensitive))
         {
             // recalcHeight true, wenn personenhoehe ueber trackpoints neu berechnet werden soll (z.b. um
             // waehrend play mehrfachberuecksichtigung von punkten auszuschliessen, aenderungen in altitude neu
diff --git a/src/stereoContext.cpp b/src/stereoContext.cpp
index 8bdcd2508..deded4703 100644
--- a/src/stereoContext.cpp
+++ b/src/stereoContext.cpp
@@ -1439,7 +1439,7 @@ bool pet::StereoContext::exportPointCloud(QString dest) // default = ""
 
         if(!dest.isEmpty())
         {
-            if(dest.right(4) == ".pts")
+            if(dest.endsWith(".pts", Qt::CaseInsensitive))
             {
                 QFile file(dest);
 
-- 
GitLab