From c3b0bdeacf14f54bca6db3e4ea00b377681f2890 Mon Sep 17 00:00:00 2001 From: byloveletter Date: Mon, 29 May 2017 14:13:37 +0900 Subject: [PATCH] =?UTF-8?q?=EC=84=A4=EC=A0=95=20=ED=94=84=EB=A1=9C?= =?UTF-8?q?=EA=B7=B8=EB=9E=A8=20=EC=97=85=EB=A1=9C=EB=93=9C=20=EB=B2=84?= =?UTF-8?q?=EA=B7=B8=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 파일 목록 리스트 복사 루틴 디버그 --- app/gui/oven_control/fileprocessdlg.cpp | 81 ++++++++++++++++++++++++--------- app/gui/oven_control/fileprocessor.cpp | 2 +- 2 files changed, 60 insertions(+), 23 deletions(-) diff --git a/app/gui/oven_control/fileprocessdlg.cpp b/app/gui/oven_control/fileprocessdlg.cpp index 8b749c4..5c03e4b 100644 --- a/app/gui/oven_control/fileprocessdlg.cpp +++ b/app/gui/oven_control/fileprocessdlg.cpp @@ -48,20 +48,32 @@ void ProgramCopyWorker::workerMain(){ qDebug() << "Target Path is " << m_strDestDir; - foreach(QString filepath, m_arrSrcFileList){ + foreach(QString strinfo, m_arrSrcFileList){ + QString filepath = strinfo.left(strinfo.indexOf(',',0)); QFileInfo finfo(filepath); - nTotalFileSize+= finfo.size(); + nTotalFileSize+= finfo.size(); } + qDebug() << "File List info : count = " << m_arrSrcFileList.size() << ", File Total Size = " << nTotalFileSize; foreach(QString srcpath, m_arrSrcDirList){ nTotalFileSize += FileProcessor::getDirSize(srcpath); } - qDebug()<<"Total Size : " << nTotalFileSize; + qDebug() << " Dir List info : count = " << m_arrSrcFileList.size() << ", File Total Size = " << nTotalFileSize; + if(nTotalFileSize <=0 ){ + emit finished(); + progressed(0,0); + return; + } + - foreach(QString filepath, m_arrSrcFileList){ + foreach(QString strinfo, m_arrSrcFileList){ + QString filepath = strinfo.left(strinfo.indexOf(',',0)); + QString destfiledir = strinfo.right(strinfo.size() - (strinfo.indexOf(',',0)+1)); + QDir destdir(destfiledir); + if(destdir.exists() == false) destdir.mkpath(destfiledir); QFileInfo finfo(filepath); srcFilepath = filepath; - destFilePath = QString("%1/%2").arg(m_strDestDir).arg(finfo.fileName()); + destFilePath = QString("%1/%2").arg(destfiledir).arg(finfo.fileName()); if(QFile::exists(destFilePath)){ QFile::rename(destFilePath, QString("%1.bak").arg(destFilePath)); } @@ -72,12 +84,12 @@ void ProgramCopyWorker::workerMain(){ emit progressed(nCurProgress,nRemainSec); if(QThread::currentThread()->isInterruptionRequested()){ sync(); - emit finished(); QThread::currentThread()->quit(); break; } QThread::currentThread()->msleep(10); } + qDebug() << "File List Copy Finished"; if(QThread::currentThread()->isInterruptionRequested() == false){ foreach(QString srcpath, m_arrSrcDirList){ @@ -93,31 +105,27 @@ void ProgramCopyWorker::workerMain(){ QDir destDir(targetpath); if(destDir.exists()) { - qDebug() << "remove target path"; + qDebug() << "rename target path"; QDir().rename(targetpath, QString("%1_").arg(targetpath)); } foreach(QString strDir, strdirlist){ QDir srcItem(strDir); srcItem.mkpath( QString(strDir).replace(srcpath,targetpath)); - qDebug() << "make path : " << QString(strDir).replace(srcpath,targetpath); - strFilelist = srcItem.entryList(QDir::NoDotAndDotDot | QDir::Files ); - foreach(QString filename, strFilelist){ - srcFilepath = QString("%1/%2").arg(strDir).arg(filename); - destFilePath = QString("%1/%2").arg(QString(strDir).replace(srcpath,targetpath)).arg(filename); - QFile::copy(srcFilepath, destFilePath); - qDebug() << srcFilepath << destFilePath; - QFileInfo finfo(srcFilepath); + QFileInfoList strFileInfolist = srcItem.entryInfoList(QDir::Files | QDir::NoSymLinks | QDir::NoDotAndDotDot); + foreach(QFileInfo finfo, strFileInfolist){ + srcFilepath = finfo.absoluteFilePath(); + destFilePath = QString("%1/%2").arg(QString(strDir).replace(srcpath,targetpath)).arg(finfo.fileName()); nCpyFileSize += finfo.size(); nCurProgress = (nCpyFileSize *100) / nTotalFileSize; nRemainSec = (nTotalFileSize-nCpyFileSize)/200000; + //qDebug() << srcFilepath << destFilePath << "total size " << nTotalFileSize << "nCpyFileSize " << nCpyFileSize; emit progressed(nCurProgress,nRemainSec); if(QThread::currentThread()->isInterruptionRequested()){ sync(); - emit finished(); break; } - QThread::currentThread()->msleep(100); + //QThread::currentThread()->msleep(100); } if(QThread::currentThread()->isInterruptionRequested()) break; } @@ -125,12 +133,15 @@ void ProgramCopyWorker::workerMain(){ if(QThread::currentThread()->isInterruptionRequested()) break; } } + qDebug() << "File Copy Complete! SRC File Size = " << nTotalFileSize << "DEST File Size = " << nCpyFileSize; if(QThread::currentThread()->isInterruptionRequested()){ - foreach(QString filepath, m_arrSrcFileList){ + foreach(QString strinfo, m_arrSrcFileList){ + QString filepath = strinfo.left(strinfo.indexOf(',',0)+1); + QString destfiledir = strinfo.right(strinfo.size() - (strinfo.indexOf(',',0)+1)); QFileInfo finfo(filepath); srcFilepath = filepath; - destFilePath = QString("%1/%2").arg(m_strDestDir).arg(finfo.fileName()); + destFilePath = QString("%1/%2").arg(destfiledir).arg(finfo.fileName()); if(QFile::exists( QString("%1.bak").arg(destFilePath))){ QFile::remove(destFilePath); QFile::rename(QString("%1.bak").arg(destFilePath), destFilePath); @@ -160,12 +171,9 @@ void ProgramCopyWorker::workerMain(){ else{ foreach(QString srcpath, m_arrSrcDirList){ qDebug() << "src dir : " << srcpath; - QDir srcdir(srcpath); - QString targetpath =QString("%1%2").arg(m_strDestDir).arg(srcpath.mid(srcpath.lastIndexOf('/'))); qDebug() << "target dir : " << targetpath; - QDir destDir(targetpath); QDir renameDir(QString("%1_").arg(targetpath)); if(renameDir.exists()) { @@ -576,7 +584,36 @@ void FileProcessDlg::onProgressed(int progress, int sec){ } void FileProcessDlg::programUpload(){ + QString strDescPath; + QString strSrcPath; + + if(FileProcessor::detectUSB(strSrcPath)){ + worker.addSrcFile(QString("%1/prime/falinux/run.sh,/falinux").arg(strSrcPath)); + worker.addSrcFile(QString("%1/prime/falinux/app-prime-modbus,/falinux").arg(strSrcPath)); + worker.addSrcFile(QString("%1/prime/falinux/app-prime-gui,/falinux").arg(strSrcPath)); + worker.addSrcFile(QString("%1/prime/falinux/service-web,/falinux").arg(strSrcPath)); + worker.addSrcFile(QString("%1/prime/falinux/templates/main.tmpl,/falinux/templates").arg(strSrcPath)); + worker.addSrcFile(QString("%1/prime/falinux/system.ini,/falinux").arg(strSrcPath)); + //worker.addSrcFile(QString("%1/prime/falinux/superdaemon,/falinux").arg(strSrcPath)); + //worker.addSrcFile(QString("%1/prime/falinux/superdaemon.ini,/falinux").arg(strSrcPath)); + worker.setDestPath("/prime"); + worker.addSrcDir(QString("%1/%2").arg(strSrcPath,"cookbook")); + worker.moveToThread(&programCopyThd); + + connect(&programCopyThd,SIGNAL(started()), &worker, SLOT(workerMain())); + connect(&worker, SIGNAL(progressed(int,int)), this, SLOT(onProgressed(int,int))); + connect(this, SIGNAL(stopcopy()), &worker, SLOT(workerStop())); + connect(&worker, SIGNAL(finished()), &programCopyThd,SLOT(quit())); + connect(&programCopyThd, SIGNAL(finished()), this, SLOT(onProgressFinished())); + //connect(ui->ctrBtnCancel, SIGNAL(clicked(bool)), &worker, SLOT(workerStop())); + programCopyThd.start(); + qDebug() << "thread start"; + } + else{ + ui->ctrLbRemainTime->setText(tr("USB 인식을 실패하였습니다.")); + QTimer::singleShot(1000,this,SLOT(close())); + } } void FileProcessDlg::configDownload(){ diff --git a/app/gui/oven_control/fileprocessor.cpp b/app/gui/oven_control/fileprocessor.cpp index 20403a9..f9b91b1 100644 --- a/app/gui/oven_control/fileprocessor.cpp +++ b/app/gui/oven_control/fileprocessor.cpp @@ -65,7 +65,7 @@ quint64 FileProcessor::getDirSize(const QString &str){ sizex += getDirSize(fileInfo.absoluteFilePath()); } else{ - qDebug() << fileInfo.absoluteFilePath() << fileInfo.size(); + //qDebug() << fileInfo.absoluteFilePath() << fileInfo.size(); sizex += fileInfo.size(); } } -- 2.1.4