Merge pull request #1762 from srcejon/fix_1760

Use QFileInfo to get file extension.
This commit is contained in:
Edouard Griffiths 2023-08-07 09:41:54 +02:00 committed by GitHub
commit ffede33b12
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 14 additions and 28 deletions

View File

@ -16,6 +16,7 @@
///////////////////////////////////////////////////////////////////////////////////
#include <QDebug>
#include <QFileInfo>
#include "dsp/dspcommands.h"
#include "dsp/spectrumvis.h"
@ -278,21 +279,14 @@ void FileSinkSink::applySettings(const FileSinkSettings& settings, bool force)
if ((settings.m_fileRecordName != m_settings.m_fileRecordName) || force)
{
QStringList dotBreakout = settings.m_fileRecordName.split(QLatin1Char('.'));
if (dotBreakout.size() > 1) {
QString extension = dotBreakout.last();
if ((extension != "sdriq") && (extension != "wav")) {
dotBreakout.last() = "sdriq";
}
QFileInfo fileInfo(settings.m_fileRecordName);
QString extension = fileInfo.suffix();
if (extension.isEmpty()) {
fileRecordName.append(".sdriq");
} else if ((extension != "sdriq") && (extension != "wav")) {
fileRecordName.chop(extension.size());
fileRecordName.append("sdriq");
}
else
{
dotBreakout.append("sdriq");
}
fileRecordName = dotBreakout.join(QLatin1Char('.'));
QString fileBase;
FileRecordInterface::RecordType recordType = FileRecordInterface::guessTypeFromFileName(fileRecordName, fileBase);

View File

@ -18,6 +18,7 @@
///////////////////////////////////////////////////////////////////////////////////
#include <QDateTime>
#include <QFileInfo>
#include "filerecordinterface.h"
@ -40,41 +41,32 @@ QString FileRecordInterface::genUniqueFileName(unsigned int deviceUID, int istre
FileRecordInterface::RecordType FileRecordInterface::guessTypeFromFileName(const QString& fileName, QString& fileBase)
{
QStringList dotBreakout = fileName.split(QLatin1Char('.'));
QFileInfo fileInfo(fileName);
QString extension = fileInfo.suffix();
if (dotBreakout.length() > 1)
fileBase = fileName;
if (!extension.isEmpty())
{
QString extension = dotBreakout.last();
dotBreakout.removeLast();
fileBase.chop(extension.size() + 1);
if (extension == "sdriq")
{
if (dotBreakout.length() > 1) {
dotBreakout.removeLast();
}
fileBase = dotBreakout.join(QLatin1Char('.'));
return RecordTypeSdrIQ;
}
else if (extension == "sigmf-meta")
{
fileBase = dotBreakout.join(QLatin1Char('.'));
return RecordTypeSigMF;
}
else if (extension == "wav")
{
fileBase = dotBreakout.join(QLatin1Char('.'));
return RecordTypeWav;
}
else
{
fileBase = fileName;
return RecordTypeUndefined;
}
}
else
{
fileBase = fileName;
return RecordTypeUndefined;
}
}