diff --git a/loadimage.cpp b/loadimage.cpp index 1bc71aa..03e265b 100644 --- a/loadimage.cpp +++ b/loadimage.cpp @@ -9,16 +9,18 @@ #include #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; diff --git a/loadimage.h b/loadimage.h index df8146e..0c05544 100644 --- a/loadimage.h +++ b/loadimage.h @@ -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, bool planar = false); diff --git a/loadrunable.cpp b/loadrunable.cpp index d72a9b5..8f06432 100644 --- a/loadrunable.cpp +++ b/loadrunable.cpp @@ -11,7 +11,7 @@ #include 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 ¶ms, 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) diff --git a/scriptengine.cpp b/scriptengine.cpp index a3676e1..f7d9758 100644 --- a/scriptengine.cpp +++ b/scriptengine.cpp @@ -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;