From 2bf7915456937ef01e63e82f04f5113b7568f00a Mon Sep 17 00:00:00 2001 From: am0ebe <am0ebe@gmx.de> Date: Wed, 22 May 2024 17:26:33 +0200 Subject: [PATCH] search for file ending with json/xml in appdir and use as default if no settings/config is specified as arg --- src/cmd/main.cpp | 4 ++++ src/utils.cpp | 38 +++++++++++++++++++------------------- src/utils.h | 4 +++- 3 files changed, 26 insertions(+), 20 deletions(-) diff --git a/src/cmd/main.cpp b/src/cmd/main.cpp index 6024854..8dac28d 100644 --- a/src/cmd/main.cpp +++ b/src/cmd/main.cpp @@ -5,6 +5,7 @@ #include "../utils.h" #include "../cam.h" +#include "qdebug.h" #include "qobjectdefs.h" #include <QCoreApplication> #include <QTimer> @@ -16,6 +17,9 @@ int main(int argc, char *argv[]) QCoreApplication::setApplicationVersion(utils::getVersion()); QCoreApplication::setApplicationName("recorder"); + qDebug() << utils::getFirstFileInAppDirEndingWith("json"); + qDebug() << utils::getFirstFileInAppDirEndingWith("xml"); + //parse args QStringList arguments = a.arguments(); for (int i = 1; i < arguments.size(); ++i) diff --git a/src/utils.cpp b/src/utils.cpp index 1945ba9..b4450d6 100644 --- a/src/utils.cpp +++ b/src/utils.cpp @@ -157,17 +157,19 @@ QString configFile(QString filename) { static QString _configFile; if( _configFile.isEmpty() ) - { - if(filename.isEmpty()) - { - _configFile = QCoreApplication::applicationDirPath() + "/config.json" ; //default - } - else - { - _configFile = filename; - } - } - return _configFile; + _configFile = filename; + + return _configFile.isEmpty() ? utils::getFirstFileInAppDirEndingWith("json") : _configFile; +} + +QString getFirstFileInAppDirEndingWith( QString const& suffix ) +{ + QDir dir(QCoreApplication::applicationDirPath()); + QStringList files = dir.entryList(QStringList() << "*."+suffix, QDir::Files); + // QStringList const folders = source.entryList(QDir::NoDot | QDir::NoDotDot | QDir::Dirs); + // auto file = QCoreApplication::applicationDirPath()+QDir::separator()+files.first(); + auto file = files.first(); + return files.isEmpty() || suffix.isEmpty() ? QString() : file; } // optional - only set cam settings when they changed @@ -175,13 +177,11 @@ QString settingsFile(QString filename) { static QString _settingsFile; if( _settingsFile.isEmpty() ) - { - if(filename.isEmpty()) - _settingsFile = QCoreApplication::applicationDirPath() + "/settings.xml" ; //default - else - _settingsFile = filename; - } - return _settingsFile; -} + _settingsFile = filename; + return _settingsFile.isEmpty() ? utils::getFirstFileInAppDirEndingWith("xml") : _settingsFile; } + + + +} // namespace utils diff --git a/src/utils.h b/src/utils.h index dec1dbd..b5b1afc 100644 --- a/src/utils.h +++ b/src/utils.h @@ -13,9 +13,11 @@ class QDir; namespace utils { -bool parseConfig(QList<QPair<QString,QString>>& parsedCameras); +bool parseConfig(QList<QPair<QString,QString>>&); QString configFile(QString filename=""); QString settingsFile(QString filename=""); +QString getFirstFileInAppDirEndingWith( QString const&); + const QStringList getVersions(); const QString getVersion(); -- GitLab