Fix Do not prepend \\ to network share paths

This commit is contained in:
2025-03-02 17:09:33 +01:00
parent e47c99fd21
commit 58abf762c0
4 changed files with 16 additions and 14 deletions
+10 -8
View File
@@ -9,16 +9,18 @@
#include <libexif/exif-data.h>
#include "rawimage.h"
QString makeMaxPath(QString path)
QString makeUNCPath(const QString &path)
{
#ifdef Q_OS_WIN64
if(!path.startsWith("\\\\"))
if(!path.startsWith("\\\\") && !path.startsWith("//"))
{
QString tmp;
QFileInfo info(path);
path = info.absoluteFilePath();
path = QDir::toNativeSeparators(path);
path.prepend("\\\\?\\");
qDebug() << path;
tmp = info.absoluteFilePath();
tmp = QDir::toNativeSeparators(tmp);
tmp.prepend("\\\\?\\");
qDebug() << "makeMaxPath" << path << tmp;
return tmp;
}
#endif
return path;
@@ -276,7 +278,7 @@ bool readFITSHeader(const QString &path, ImageInfoData &info)
{
fitsfile *fr;
int status = 0;
QString path2 = makeMaxPath(path);
QString path2 = makeUNCPath(path);
fits_open_diskfile(&fr, path2.toLocal8Bit().data(), READONLY, &status);
if(fr && status == 0)
@@ -289,7 +291,7 @@ bool readFITSHeader(const QString &path, ImageInfoData &info)
bool readXISFHeader(const QString &path, ImageInfoData &info)
{
QString path2 = makeMaxPath(path);
QString path2 = makeUNCPath(path);
try
{
LibXISF::XISFReader xisf;
+1 -1
View File
@@ -6,7 +6,7 @@
class RawImage;
QString makeMaxPath(QString path);
QString makeUNCPath(const QString &path);
bool readFITSHeader(const QString &path, ImageInfoData &info);
bool readXISFHeader(const QString &path, ImageInfoData &info);
bool loadImage(const QString &path, ImageInfoData &info, std::shared_ptr<RawImage> &rawImage, bool planar = false);
+3 -3
View File
@@ -11,7 +11,7 @@
#include <lcms2.h>
LoadRunable::LoadRunable(const QString &file, Image *receiver, AnalyzeLevel level, bool thumbnail) :
m_file(makeMaxPath(file)),
m_file(makeUNCPath(file)),
m_receiver(receiver),
m_analyzeLevel(level),
m_thumbnail(thumbnail)
@@ -100,8 +100,8 @@ void LoadRunable::run()
}
ConvertRunable::ConvertRunable(const QString &in, const QString &out, const QString &format, const ConvertParams &params, QSemaphore *semaphore) :
m_infile(makeMaxPath(in)),
m_outfile(makeMaxPath(out)),
m_infile(makeUNCPath(in)),
m_outfile(makeUNCPath(out)),
m_format(format),
m_params(params),
m_semaphore(semaphore)
+2 -2
View File
@@ -520,7 +520,7 @@ bool File::modifyFITSRecords(const FITSRecordModify *modify)
{
fitsfile *file;
int status = 0;
QString path = makeMaxPath(_path);
QString path = makeUNCPath(_path);
fits_open_diskfile(&file, path.toLocal8Bit().data(), READWRITE, &status);
int num = 0;
fits_get_num_hdus(file, &num, &status);
@@ -644,7 +644,7 @@ bool File::modifyFITSRecords(const FITSRecordModify *modify)
try
{
LibXISF::XISFModify modifyXISF;
QString in = makeMaxPath(absoluteFilePath());
QString in = makeUNCPath(absoluteFilePath());
QString out = in + "~";
modifyXISF.open(in.toLocal8Bit().data());
qDebug() << "modify" << in << out;