mirror of
https://github.com/YACReader/yacreader
synced 2025-07-14 02:54:46 -04:00
Add .gitattributes rules for text and binary handling
This commit is contained in:
@ -1,108 +1,108 @@
|
||||
#include "comic_files_manager.h"
|
||||
#include <QFile>
|
||||
#include <QFileInfo>
|
||||
#include <QDir>
|
||||
|
||||
#include <QsLog.h>
|
||||
|
||||
#include "comic.h"
|
||||
|
||||
ComicFilesManager::ComicFilesManager(QObject *parent) :
|
||||
QObject(parent), canceled(false)
|
||||
{
|
||||
}
|
||||
|
||||
void ComicFilesManager::copyComicsTo(const QList<QPair<QString,QString> > &sourceComics, const QString &folderDest, const QModelIndex & dest)
|
||||
{
|
||||
comics = sourceComics;
|
||||
folder = folderDest;
|
||||
folderDestinationModelIndex = dest;
|
||||
move = false;
|
||||
}
|
||||
|
||||
void ComicFilesManager::moveComicsTo(const QList<QPair<QString, QString> > &sourceComics, const QString &folderDest, const QModelIndex &dest)
|
||||
{
|
||||
comics = sourceComics;
|
||||
folder = folderDest;
|
||||
folderDestinationModelIndex = dest;
|
||||
move = true;
|
||||
}
|
||||
|
||||
QList<QPair<QString, QString> > ComicFilesManager::getDroppedFiles(const QList<QUrl> &urls)
|
||||
{
|
||||
QList<QPair<QString,QString> > dropedFiles;
|
||||
|
||||
QString currentPath;
|
||||
foreach(QUrl url, urls)
|
||||
{
|
||||
currentPath = url.toLocalFile();
|
||||
if(currentPath.endsWith('/'))
|
||||
currentPath = currentPath.remove(currentPath.length()-1,1); //QTBUG-35896 QUrl.toLocalFile inconsistency.
|
||||
if(Comic::fileIsComic(currentPath))
|
||||
dropedFiles << QPair<QString, QString>(currentPath,"/");
|
||||
else
|
||||
{
|
||||
QLOG_DEBUG() << "XXXXXXXXXXXX :" << currentPath;
|
||||
QFileInfo info(currentPath);
|
||||
if(info.isDir())
|
||||
{
|
||||
QLOG_DEBUG() << "origin path prior to absoluteFilePath : " << info.absolutePath();
|
||||
foreach(QString comicPath, Comic::findValidComicFilesInFolder(info.absoluteFilePath()))
|
||||
{
|
||||
QFileInfo comicInfo(comicPath);
|
||||
QString path = comicInfo.absolutePath();
|
||||
QLOG_DEBUG() << "comic path : " << comicPath;
|
||||
QLOG_DEBUG() << "full comic path : " << path;
|
||||
QLOG_DEBUG() << "origin path : " << info.absolutePath();
|
||||
dropedFiles << QPair<QString, QString>(comicPath, path.remove(info.absolutePath()));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return dropedFiles;
|
||||
}
|
||||
|
||||
void ComicFilesManager::process()
|
||||
{
|
||||
int i=0;
|
||||
bool successProcesingFiles = false;
|
||||
QPair<QString, QString> source;
|
||||
foreach (source, comics) {
|
||||
|
||||
if(canceled)
|
||||
{
|
||||
if(successProcesingFiles)
|
||||
emit success(folderDestinationModelIndex);
|
||||
emit finished();
|
||||
|
||||
return; //TODO rollback?
|
||||
}
|
||||
|
||||
QFileInfo info(source.first);
|
||||
QString destPath = QDir::cleanPath(folder+'/'+source.second);
|
||||
QLOG_DEBUG() << "crear : " << destPath;
|
||||
QDir().mkpath(destPath);
|
||||
if(QFile::copy(source.first, QDir::cleanPath(destPath+'/'+info.fileName())))
|
||||
{
|
||||
successProcesingFiles = true;
|
||||
if(move)
|
||||
{
|
||||
QFile::remove(source.first); //TODO: remove the whole path....
|
||||
}
|
||||
}
|
||||
|
||||
i++;
|
||||
emit progress(i);
|
||||
}
|
||||
|
||||
if(successProcesingFiles)
|
||||
emit success(folderDestinationModelIndex);
|
||||
emit finished();
|
||||
}
|
||||
|
||||
void ComicFilesManager::cancel()
|
||||
{
|
||||
QLOG_DEBUG() << "Operation canceled";
|
||||
canceled = true;
|
||||
}
|
||||
#include "comic_files_manager.h"
|
||||
#include <QFile>
|
||||
#include <QFileInfo>
|
||||
#include <QDir>
|
||||
|
||||
#include <QsLog.h>
|
||||
|
||||
#include "comic.h"
|
||||
|
||||
ComicFilesManager::ComicFilesManager(QObject *parent) :
|
||||
QObject(parent), canceled(false)
|
||||
{
|
||||
}
|
||||
|
||||
void ComicFilesManager::copyComicsTo(const QList<QPair<QString,QString> > &sourceComics, const QString &folderDest, const QModelIndex & dest)
|
||||
{
|
||||
comics = sourceComics;
|
||||
folder = folderDest;
|
||||
folderDestinationModelIndex = dest;
|
||||
move = false;
|
||||
}
|
||||
|
||||
void ComicFilesManager::moveComicsTo(const QList<QPair<QString, QString> > &sourceComics, const QString &folderDest, const QModelIndex &dest)
|
||||
{
|
||||
comics = sourceComics;
|
||||
folder = folderDest;
|
||||
folderDestinationModelIndex = dest;
|
||||
move = true;
|
||||
}
|
||||
|
||||
QList<QPair<QString, QString> > ComicFilesManager::getDroppedFiles(const QList<QUrl> &urls)
|
||||
{
|
||||
QList<QPair<QString,QString> > dropedFiles;
|
||||
|
||||
QString currentPath;
|
||||
foreach(QUrl url, urls)
|
||||
{
|
||||
currentPath = url.toLocalFile();
|
||||
if(currentPath.endsWith('/'))
|
||||
currentPath = currentPath.remove(currentPath.length()-1,1); //QTBUG-35896 QUrl.toLocalFile inconsistency.
|
||||
if(Comic::fileIsComic(currentPath))
|
||||
dropedFiles << QPair<QString, QString>(currentPath,"/");
|
||||
else
|
||||
{
|
||||
QLOG_DEBUG() << "XXXXXXXXXXXX :" << currentPath;
|
||||
QFileInfo info(currentPath);
|
||||
if(info.isDir())
|
||||
{
|
||||
QLOG_DEBUG() << "origin path prior to absoluteFilePath : " << info.absolutePath();
|
||||
foreach(QString comicPath, Comic::findValidComicFilesInFolder(info.absoluteFilePath()))
|
||||
{
|
||||
QFileInfo comicInfo(comicPath);
|
||||
QString path = comicInfo.absolutePath();
|
||||
QLOG_DEBUG() << "comic path : " << comicPath;
|
||||
QLOG_DEBUG() << "full comic path : " << path;
|
||||
QLOG_DEBUG() << "origin path : " << info.absolutePath();
|
||||
dropedFiles << QPair<QString, QString>(comicPath, path.remove(info.absolutePath()));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return dropedFiles;
|
||||
}
|
||||
|
||||
void ComicFilesManager::process()
|
||||
{
|
||||
int i=0;
|
||||
bool successProcesingFiles = false;
|
||||
QPair<QString, QString> source;
|
||||
foreach (source, comics) {
|
||||
|
||||
if(canceled)
|
||||
{
|
||||
if(successProcesingFiles)
|
||||
emit success(folderDestinationModelIndex);
|
||||
emit finished();
|
||||
|
||||
return; //TODO rollback?
|
||||
}
|
||||
|
||||
QFileInfo info(source.first);
|
||||
QString destPath = QDir::cleanPath(folder+'/'+source.second);
|
||||
QLOG_DEBUG() << "crear : " << destPath;
|
||||
QDir().mkpath(destPath);
|
||||
if(QFile::copy(source.first, QDir::cleanPath(destPath+'/'+info.fileName())))
|
||||
{
|
||||
successProcesingFiles = true;
|
||||
if(move)
|
||||
{
|
||||
QFile::remove(source.first); //TODO: remove the whole path....
|
||||
}
|
||||
}
|
||||
|
||||
i++;
|
||||
emit progress(i);
|
||||
}
|
||||
|
||||
if(successProcesingFiles)
|
||||
emit success(folderDestinationModelIndex);
|
||||
emit finished();
|
||||
}
|
||||
|
||||
void ComicFilesManager::cancel()
|
||||
{
|
||||
QLOG_DEBUG() << "Operation canceled";
|
||||
canceled = true;
|
||||
}
|
||||
|
Reference in New Issue
Block a user