Fix Do not prepend \\ to network share paths
This commit is contained in:
+10
-8
@@ -9,16 +9,18 @@
|
|||||||
#include <libexif/exif-data.h>
|
#include <libexif/exif-data.h>
|
||||||
#include "rawimage.h"
|
#include "rawimage.h"
|
||||||
|
|
||||||
QString makeMaxPath(QString path)
|
QString makeUNCPath(const QString &path)
|
||||||
{
|
{
|
||||||
#ifdef Q_OS_WIN64
|
#ifdef Q_OS_WIN64
|
||||||
if(!path.startsWith("\\\\"))
|
if(!path.startsWith("\\\\") && !path.startsWith("//"))
|
||||||
{
|
{
|
||||||
|
QString tmp;
|
||||||
QFileInfo info(path);
|
QFileInfo info(path);
|
||||||
path = info.absoluteFilePath();
|
tmp = info.absoluteFilePath();
|
||||||
path = QDir::toNativeSeparators(path);
|
tmp = QDir::toNativeSeparators(tmp);
|
||||||
path.prepend("\\\\?\\");
|
tmp.prepend("\\\\?\\");
|
||||||
qDebug() << path;
|
qDebug() << "makeMaxPath" << path << tmp;
|
||||||
|
return tmp;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
return path;
|
return path;
|
||||||
@@ -276,7 +278,7 @@ bool readFITSHeader(const QString &path, ImageInfoData &info)
|
|||||||
{
|
{
|
||||||
fitsfile *fr;
|
fitsfile *fr;
|
||||||
int status = 0;
|
int status = 0;
|
||||||
QString path2 = makeMaxPath(path);
|
QString path2 = makeUNCPath(path);
|
||||||
fits_open_diskfile(&fr, path2.toLocal8Bit().data(), READONLY, &status);
|
fits_open_diskfile(&fr, path2.toLocal8Bit().data(), READONLY, &status);
|
||||||
|
|
||||||
if(fr && status == 0)
|
if(fr && status == 0)
|
||||||
@@ -289,7 +291,7 @@ bool readFITSHeader(const QString &path, ImageInfoData &info)
|
|||||||
|
|
||||||
bool readXISFHeader(const QString &path, ImageInfoData &info)
|
bool readXISFHeader(const QString &path, ImageInfoData &info)
|
||||||
{
|
{
|
||||||
QString path2 = makeMaxPath(path);
|
QString path2 = makeUNCPath(path);
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
LibXISF::XISFReader xisf;
|
LibXISF::XISFReader xisf;
|
||||||
|
|||||||
+1
-1
@@ -6,7 +6,7 @@
|
|||||||
|
|
||||||
class RawImage;
|
class RawImage;
|
||||||
|
|
||||||
QString makeMaxPath(QString path);
|
QString makeUNCPath(const QString &path);
|
||||||
bool readFITSHeader(const QString &path, ImageInfoData &info);
|
bool readFITSHeader(const QString &path, ImageInfoData &info);
|
||||||
bool readXISFHeader(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);
|
bool loadImage(const QString &path, ImageInfoData &info, std::shared_ptr<RawImage> &rawImage, bool planar = false);
|
||||||
|
|||||||
+3
-3
@@ -11,7 +11,7 @@
|
|||||||
#include <lcms2.h>
|
#include <lcms2.h>
|
||||||
|
|
||||||
LoadRunable::LoadRunable(const QString &file, Image *receiver, AnalyzeLevel level, bool thumbnail) :
|
LoadRunable::LoadRunable(const QString &file, Image *receiver, AnalyzeLevel level, bool thumbnail) :
|
||||||
m_file(makeMaxPath(file)),
|
m_file(makeUNCPath(file)),
|
||||||
m_receiver(receiver),
|
m_receiver(receiver),
|
||||||
m_analyzeLevel(level),
|
m_analyzeLevel(level),
|
||||||
m_thumbnail(thumbnail)
|
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) :
|
ConvertRunable::ConvertRunable(const QString &in, const QString &out, const QString &format, const ConvertParams ¶ms, QSemaphore *semaphore) :
|
||||||
m_infile(makeMaxPath(in)),
|
m_infile(makeUNCPath(in)),
|
||||||
m_outfile(makeMaxPath(out)),
|
m_outfile(makeUNCPath(out)),
|
||||||
m_format(format),
|
m_format(format),
|
||||||
m_params(params),
|
m_params(params),
|
||||||
m_semaphore(semaphore)
|
m_semaphore(semaphore)
|
||||||
|
|||||||
+2
-2
@@ -520,7 +520,7 @@ bool File::modifyFITSRecords(const FITSRecordModify *modify)
|
|||||||
{
|
{
|
||||||
fitsfile *file;
|
fitsfile *file;
|
||||||
int status = 0;
|
int status = 0;
|
||||||
QString path = makeMaxPath(_path);
|
QString path = makeUNCPath(_path);
|
||||||
fits_open_diskfile(&file, path.toLocal8Bit().data(), READWRITE, &status);
|
fits_open_diskfile(&file, path.toLocal8Bit().data(), READWRITE, &status);
|
||||||
int num = 0;
|
int num = 0;
|
||||||
fits_get_num_hdus(file, &num, &status);
|
fits_get_num_hdus(file, &num, &status);
|
||||||
@@ -644,7 +644,7 @@ bool File::modifyFITSRecords(const FITSRecordModify *modify)
|
|||||||
try
|
try
|
||||||
{
|
{
|
||||||
LibXISF::XISFModify modifyXISF;
|
LibXISF::XISFModify modifyXISF;
|
||||||
QString in = makeMaxPath(absoluteFilePath());
|
QString in = makeUNCPath(absoluteFilePath());
|
||||||
QString out = in + "~";
|
QString out = in + "~";
|
||||||
modifyXISF.open(in.toLocal8Bit().data());
|
modifyXISF.open(in.toLocal8Bit().data());
|
||||||
qDebug() << "modify" << in << out;
|
qDebug() << "modify" << in << out;
|
||||||
|
|||||||
Reference in New Issue
Block a user