summaryrefslogtreecommitdiff
path: root/plugins/CopyEngine/Ultracopier/MkPath.cpp
diff options
context:
space:
mode:
authorThomas Preud'homme <robotux@celest.fr>2018-02-23 23:49:48 +0000
committerThomas Preud'homme <robotux@celest.fr>2018-02-23 23:49:48 +0000
commitbd56579c7d9de94c17287adefa118290e6b7ba33 (patch)
tree666d7d0b6945b442573b7a3145969f66a53aa460 /plugins/CopyEngine/Ultracopier/MkPath.cpp
parentb3c8bdcc0d1e4b2ab298847a7902b6d60410a5bc (diff)
New upstream version 1.4.0.3
Diffstat (limited to 'plugins/CopyEngine/Ultracopier/MkPath.cpp')
-rw-r--r--plugins/CopyEngine/Ultracopier/MkPath.cpp87
1 files changed, 44 insertions, 43 deletions
diff --git a/plugins/CopyEngine/Ultracopier/MkPath.cpp b/plugins/CopyEngine/Ultracopier/MkPath.cpp
index 15c423f..52d67af 100644
--- a/plugins/CopyEngine/Ultracopier/MkPath.cpp
+++ b/plugins/CopyEngine/Ultracopier/MkPath.cpp
@@ -9,7 +9,7 @@
#endif
#endif
-QString MkPath::text_slash=QLatin1Literal("/");
+std::string MkPath::text_slash="/";
MkPath::MkPath()
{
@@ -22,7 +22,7 @@ MkPath::MkPath()
start();
#ifdef Q_OS_WIN32
#ifndef ULTRACOPIER_PLUGIN_SET_TIME_UNIX_WAY
- regRead=QRegularExpression(QStringLiteral("^[a-z]:"));
+ regRead=std::regex("^[a-z]:");
#endif
#endif
}
@@ -36,7 +36,7 @@ MkPath::~MkPath()
void MkPath::addPath(const QFileInfo& source, const QFileInfo& destination, const ActionType &actionType)
{
- ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,QStringLiteral("source: %1, destination: %2").arg(source.absoluteFilePath()).arg(destination.absoluteFilePath()));
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,QStringLiteral("source: %1, destination: %2").arg(source.absoluteFilePath()).arg(destination.absoluteFilePath()).toStdString());
if(stopIt)
return;
emit internalStartAddPath(source,destination,actionType);
@@ -67,7 +67,7 @@ void MkPath::internalDoThisPath()
{
if(waitAction || pathList.isEmpty())
return;
- ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,QStringLiteral("source: %1, destination: %2, move: %3").arg(pathList.first().source.absoluteFilePath()).arg(pathList.first().destination.absoluteFilePath()).arg(pathList.first().actionType));
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,QStringLiteral("source: %1, destination: %2, move: %3").arg(pathList.first().source.absoluteFilePath()).arg(pathList.first().destination.absoluteFilePath()).arg(pathList.first().actionType).toStdString());
#ifdef ULTRACOPIER_PLUGIN_RSYNC
if(pathList.first().actionType==ActionType_RmSync)
{
@@ -79,8 +79,8 @@ void MkPath::internalDoThisPath()
if(stopIt)
return;
waitAction=true;
- ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Warning,"Unable to remove the inode: "+pathList.first().destination.absoluteFilePath()+", error: "+removedFile.errorString());
- emit errorOnFolder(pathList.first().destination,removedFile.errorString());
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Warning,"Unable to remove the inode: "+pathList.first().destination.absoluteFilePath().toStdString()+", error: "+removedFile.errorString().toStdString());
+ emit errorOnFolder(pathList.first().destination,removedFile.errorString().toStdString());
return;
}
}
@@ -89,8 +89,8 @@ void MkPath::internalDoThisPath()
if(stopIt)
return;
waitAction=true;
- ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Warning,"Unable to remove the inode: "+pathList.first().destination.absoluteFilePath());
- emit errorOnFolder(pathList.first().destination,tr("Unable to remove"));
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Warning,"Unable to remove the inode: "+pathList.first().destination.absoluteFilePath().toStdString());
+ emit errorOnFolder(pathList.first().destination,tr("Unable to remove").toStdString());
return;
}
pathList.removeFirst();
@@ -104,12 +104,12 @@ void MkPath::internalDoThisPath()
{
if(!pathList.first().source.exists())
{
- ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Warning,"the sources not exists: "+pathList.first().source.absoluteFilePath());
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Warning,"the sources not exists: "+pathList.first().source.absoluteFilePath().toStdString());
doTheDateTransfer=false;
}
else if(maxTime>=pathList.first().source.lastModified())
{
- ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Warning,"the sources is older to copy the time: "+pathList.first().source.absoluteFilePath()+": "+maxTime.toString("dd.MM.yyyy hh:mm:ss.zzz")+">="+pathList.first().source.lastModified().toString("dd.MM.yyyy hh:mm:ss.zzz"));
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Warning,"the sources is older to copy the time: "+pathList.first().source.absoluteFilePath().toStdString()+": "+maxTime.toString("dd.MM.yyyy hh:mm:ss.zzz").toStdString()+">="+pathList.first().source.lastModified().toString("dd.MM.yyyy hh:mm:ss.zzz").toStdString());
doTheDateTransfer=false;
}
else
@@ -138,8 +138,8 @@ void MkPath::internalDoThisPath()
if(stopIt)
return;
waitAction=true;
- ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Warning,"Unable to make the folder: "+pathList.first().destination.absoluteFilePath());
- emit errorOnFolder(pathList.first().destination,tr("Unable to create the folder"));
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Warning,"Unable to make the folder: "+pathList.first().destination.absoluteFilePath().toStdString());
+ emit errorOnFolder(pathList.first().destination,tr("Unable to create the folder").toStdString());
return;
}
}
@@ -151,36 +151,36 @@ void MkPath::internalDoThisPath()
if(stopIt)
return;
waitAction=true;
- ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Warning,"The source folder don't exists: "+pathList.first().source.absoluteFilePath());
- emit errorOnFolder(pathList.first().destination,tr("The source folder don't exists"));
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Warning,"The source folder don't exists: "+pathList.first().source.absoluteFilePath().toStdString());
+ emit errorOnFolder(pathList.first().destination,tr("The source folder don't exists").toStdString());
return;
}
if(!pathList.first().source.isDir())//it's really an error?
{
- ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Warning,"The source is not a folder: "+pathList.first().source.absoluteFilePath());
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Warning,"The source is not a folder: "+pathList.first().source.absoluteFilePath().toStdString());
/*if(stopIt)
return;
waitAction=true;
emit errorOnFolder(pathList.first().destination,tr("The source is not a folder"));
return;*/
}
- if(pathList.first().destination.absoluteFilePath().startsWith(pathList.first().source.absoluteFilePath()+text_slash))
+ if(pathList.first().destination.absoluteFilePath().startsWith(pathList.first().source.absoluteFilePath()+QString::fromStdString(text_slash)))
{
- ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Warning,"move into it self: "+pathList.first().destination.absoluteFilePath());
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Warning,"move into it self: "+pathList.first().destination.absoluteFilePath().toStdString());
int random=rand();
- QFileInfo tempFolder=pathList.first().source.absolutePath()+text_slash+QString::number(random);
+ QFileInfo tempFolder=pathList.first().source.absolutePath()+QString::fromStdString(text_slash)+QString::number(random);
while(tempFolder.exists())
{
random=rand();
- tempFolder=pathList.first().source.absolutePath()+text_slash+QString::number(random);
+ tempFolder=pathList.first().source.absolutePath()+QString::fromStdString(text_slash)+QString::number(random);
}
if(!dir.rename(pathList.first().source.absoluteFilePath(),tempFolder.absoluteFilePath()))
{
if(stopIt)
return;
waitAction=true;
- ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Warning,"Unable to temporary rename the folder: "+pathList.first().destination.absoluteFilePath());
- emit errorOnFolder(pathList.first().destination,tr("Unable to temporary rename the folder"));
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Warning,"Unable to temporary rename the folder: "+pathList.first().destination.absoluteFilePath().toStdString());
+ emit errorOnFolder(pathList.first().destination,tr("Unable to temporary rename the folder").toStdString());
return;
}
/* http://doc.qt.io/qt-5/qdir.html#rename
@@ -202,8 +202,8 @@ void MkPath::internalDoThisPath()
if(stopIt)
return;
waitAction=true;
- ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Warning,"Unable to do the final real move the folder: "+pathList.first().destination.absoluteFilePath());
- emit errorOnFolder(pathList.first().destination,tr("Unable to do the final real move the folder"));
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Warning,"Unable to do the final real move the folder: "+pathList.first().destination.absoluteFilePath().toStdString());
+ emit errorOnFolder(pathList.first().destination,tr("Unable to do the final real move the folder").toStdString());
return;
}
}
@@ -228,8 +228,9 @@ void MkPath::internalDoThisPath()
if(stopIt)
return;
waitAction=true;
- ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Warning,"Unable to make the folder: from: "+pathList.first().source.absoluteFilePath()+", soruce exists: "+QString::number(QDir(pathList.first().source.absoluteFilePath()).exists())+", to: "+pathList.first().destination.absoluteFilePath()+", destination exist: "+QString::number(QDir(pathList.first().destination.absoluteFilePath()).exists()));
- emit errorOnFolder(pathList.first().destination,tr("Unable to move the folder"));
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Warning,"Unable to make the folder: from: "+pathList.first().source.absoluteFilePath().toStdString()+", soruce exists: "+std::to_string(QDir(pathList.first().source.absoluteFilePath()).exists())+", to: "+pathList.first().destination.absoluteFilePath().toStdString()
+ +", destination exist: "+std::to_string(QDir(pathList.first().destination.absoluteFilePath()).exists()));
+ emit errorOnFolder(pathList.first().destination,tr("Unable to move the folder").toStdString());
return;
}
}
@@ -238,11 +239,11 @@ void MkPath::internalDoThisPath()
if(!writeFileDateTime(pathList.first().destination))
{
if(!pathList.first().destination.exists())
- ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Warning,"Unable to set destination folder time (not exists): "+pathList.first().destination.absoluteFilePath());
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Warning,"Unable to set destination folder time (not exists): "+pathList.first().destination.absoluteFilePath().toStdString());
else if(!pathList.first().destination.isDir())
- ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Warning,"Unable to set destination folder time (not a dir): "+pathList.first().destination.absoluteFilePath());
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Warning,"Unable to set destination folder time (not a dir): "+pathList.first().destination.absoluteFilePath().toStdString());
else
- ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Warning,"Unable to set destination folder time: "+pathList.first().destination.absoluteFilePath());
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Warning,"Unable to set destination folder time: "+pathList.first().destination.absoluteFilePath().toStdString());
/*if(stopIt)
return;
waitAction=true;
@@ -256,7 +257,7 @@ void MkPath::internalDoThisPath()
QFile destination(pathList.first().destination.absoluteFilePath());
if(!destination.setPermissions(source.permissions()))
{
- ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Warning,"Unable to set the right: "+pathList.first().destination.absoluteFilePath());
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Warning,"Unable to set the right: "+pathList.first().destination.absoluteFilePath().toStdString());
/*if(stopIt)
return;
waitAction=true;
@@ -271,8 +272,8 @@ void MkPath::internalDoThisPath()
if(stopIt)
return;
waitAction=true;
- ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Warning,"Unable to remove the source folder: "+pathList.first().destination.absoluteFilePath());
- emit errorOnFolder(pathList.first().source,tr("Unable to remove"));
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Warning,"Unable to remove the source folder: "+pathList.first().destination.absoluteFilePath().toStdString());
+ emit errorOnFolder(pathList.first().source,tr("Unable to remove").toStdString());
return;
}
}
@@ -283,7 +284,7 @@ void MkPath::internalDoThisPath()
void MkPath::internalAddPath(const QFileInfo& source, const QFileInfo& destination, const ActionType &actionType)
{
- ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,QStringLiteral("source: %1, destination: %2").arg(source.absoluteFilePath()).arg(destination.absoluteFilePath()));
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,QStringLiteral("source: %1, destination: %2").arg(source.absoluteFilePath()).arg(destination.absoluteFilePath()).toStdString());
Item tempPath;
tempPath.source=source;
tempPath.destination=destination;
@@ -351,24 +352,24 @@ bool MkPath::rmpath(const QDir &dir
QFile file(fileInfo.absoluteFilePath());
if(!file.remove())
{
- ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Warning,"unable to remove a file: "+fileInfo.absoluteFilePath()+", due to: "+file.errorString());
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Warning,"unable to remove a file: "+fileInfo.absoluteFilePath().toStdString()+", due to: "+file.errorString().toStdString());
allHaveWork=false;
}
}
else
{
- ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Warning,"found a file: "+fileInfo.fileName());
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Warning,"found a file: "+fileInfo.fileName().toStdString());
allHaveWork=false;
}
}
}
else
{
- ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Warning,"found a file: "+fileInfo.fileName());
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Warning,"found a file: "+fileInfo.fileName().toStdString());
allHaveWork=false;
}
#else
- ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Warning,"found a file: "+fileInfo.fileName());
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Warning,"found a file: "+fileInfo.fileName().toStdString());
allHaveWork=false;
#endif
}
@@ -383,14 +384,14 @@ bool MkPath::rmpath(const QDir &dir
return false;
allHaveWork=dir.rmdir(dir.absolutePath());
if(!allHaveWork)
- ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Warning,"unable to remove the folder: "+dir.absolutePath());
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Warning,"unable to remove the folder: "+dir.absolutePath().toStdString());
return allHaveWork;
}
//fonction to edit the file date time
bool MkPath::readFileDateTime(const QFileInfo &source)
{
- ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,"readFileDateTime("+source.absoluteFilePath()+")");
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,"readFileDateTime("+source.absoluteFilePath().toStdString()+")");
/** Why not do it with Qt? Because it not support setModificationTime(), and get the time with Qt, that's mean use local time where in C is UTC time */
#ifdef Q_OS_UNIX
#ifdef Q_OS_LINUX
@@ -433,14 +434,14 @@ bool MkPath::readFileDateTime(const QFileInfo &source)
return true;
#else
wchar_t filePath[65535];
- if(source.absoluteFilePath().contains(regRead))
+ if(std::regex_match(source.absoluteFilePath().toStdString(),regRead))
filePath[QDir::toNativeSeparators(QStringLiteral("\\\\?\\")+source.absoluteFilePath()).toWCharArray(filePath)]=L'\0';
else
filePath[QDir::toNativeSeparators(source.absoluteFilePath()).toWCharArray(filePath)]=L'\0';
HANDLE hFileSouce = CreateFileW(filePath, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_READONLY | FILE_FLAG_BACKUP_SEMANTICS, NULL);
if(hFileSouce == INVALID_HANDLE_VALUE)
{
- ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Warning,"open failed to read: "+QString::fromWCharArray(filePath)+", error: "+QString::number(GetLastError()));
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Warning,"open failed to read: "+QString::fromWCharArray(filePath).toStdString()+", error: "+std::to_string(GetLastError()));
return false;
}
FILETIME ftCreate, ftAccess, ftWrite;
@@ -468,7 +469,7 @@ bool MkPath::readFileDateTime(const QFileInfo &source)
bool MkPath::writeFileDateTime(const QFileInfo &destination)
{
- ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,"writeFileDateTime("+destination.absoluteFilePath()+")");
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,"writeFileDateTime("+destination.absoluteFilePath().toStdString()+")");
/** Why not do it with Qt? Because it not support setModificationTime(), and get the time with Qt, that's mean use local time where in C is UTC time */
#ifdef Q_OS_UNIX
#ifdef Q_OS_LINUX
@@ -482,14 +483,14 @@ bool MkPath::writeFileDateTime(const QFileInfo &destination)
return utime(destination.toLatin1().data(),&butime)==0;
#else
wchar_t filePath[65535];
- if(destination.absoluteFilePath().contains(regRead))
+ if(std::regex_match(destination.absoluteFilePath().toStdString(),regRead))
filePath[QDir::toNativeSeparators(QStringLiteral("\\\\?\\")+destination.absoluteFilePath()).toWCharArray(filePath)]=L'\0';
else
filePath[QDir::toNativeSeparators(destination.absoluteFilePath()).toWCharArray(filePath)]=L'\0';
HANDLE hFileDestination = CreateFileW(filePath, GENERIC_WRITE, 0, NULL, OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS, NULL);
if(hFileDestination == INVALID_HANDLE_VALUE)
{
- ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Warning,"open failed to write: "+QString::fromWCharArray(filePath)+", error: "+QString::number(GetLastError()));
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Warning,"open failed to write: "+QString::fromWCharArray(filePath).toStdString()+", error: "+std::to_string(GetLastError()));
return false;
}
FILETIME ftCreate, ftAccess, ftWrite;