Version 1.15
Ajout de la fonction d'archivage des passages.
This commit is contained in:
@@ -46,6 +46,7 @@
|
||||
#include <QCoreApplication>
|
||||
#include <QMessageBox>
|
||||
#include <QFileInfo>
|
||||
#include <QCoreApplication>
|
||||
|
||||
|
||||
CDatabaseMgrPage::~CDatabaseMgrPage()
|
||||
@@ -137,12 +138,13 @@ CDatabaseMgrPage::CDatabaseMgrPage(QGraphicsWidget *Parent, bool EngMode)
|
||||
mDatabaseImporterWorkerThread = new CDatabaseImporterThread();
|
||||
mDatabaseImporterThread = new QThread();
|
||||
mDatabaseImporterWorkerThread->moveToThread(mDatabaseImporterThread);
|
||||
connect(mDatabaseImporterThread,SIGNAL(started()),mDatabaseImporterWorkerThread,SLOT(ImportLogs()));
|
||||
connect(mDatabaseImporterThread,SIGNAL(started()),mDatabaseImporterWorkerThread,SLOT(ExecuteThread()));
|
||||
connect(mDatabaseImporterWorkerThread,SIGNAL(DatabaseImportFinished(bool,QStringList*)),this,SLOT(DatabaseImportFinished(bool,QStringList*)));
|
||||
connect(mDatabaseImporterWorkerThread,SIGNAL(ResetProgressBar()),mProgressBar,SLOT(reset()));
|
||||
connect(mDatabaseImporterWorkerThread,SIGNAL(SetProgressBarRange(int,int)),mProgressBar,SLOT(setRange(int,int)));
|
||||
connect(mDatabaseImporterWorkerThread,SIGNAL(SetProgressBarVal(int)),mProgressBar,SLOT(setValue(int)));
|
||||
connect(mDatabaseImporterWorkerThread,SIGNAL(SetProgressText(QString)),this,SLOT(SetProgressText(QString)));
|
||||
connect(mDatabaseImporterWorkerThread,SIGNAL(DatabaseArchiveFinished(bool,int)),this,SLOT(DatabaseArchiveFinished(bool,int)));
|
||||
|
||||
|
||||
Title = new QGraphicsTextItem("Maintenance de la BD",this);
|
||||
@@ -306,6 +308,7 @@ bool CDatabaseMgrPage::ImportData(bool OnlyErrorLogs, bool FilterDuplicates)
|
||||
mDatabaseImporterWorkerThread->SetDatabasePath(mProgramHandle->GetLogDataPath());
|
||||
mDatabaseImporterWorkerThread->SetImporParams(SelectedDirs,FilterDuplicates,OnlyErrorLogs);
|
||||
mDatabaseImporterWorkerThread->SetLogMgrHandle(mLogMgrHandle);
|
||||
mDatabaseImporterWorkerThread->SetThreadTask(CDatabaseImporterThread::DATABASE_THREAD_IMPORT_LOGS_TASK);
|
||||
|
||||
mCancelButton->hide();
|
||||
mImportDataButton->hide();
|
||||
@@ -461,153 +464,14 @@ bool CDatabaseMgrPage::CleanSingleZTLogFiles()
|
||||
|
||||
bool CDatabaseMgrPage::ArchiveDB()
|
||||
{
|
||||
QList<CLogElement*> *LogsList = mLogMgrHandle->GetLogsList();
|
||||
QDate FilterDate = QDate::currentDate();
|
||||
FilterDate = FilterDate.addDays(-1 * mArchiveKeepDays->value());
|
||||
|
||||
mDBMaintenanceProgressStatusText->setPlainText(QString().sprintf("Archivage de la base de données\n%d fichiers à analyser",LogsList->size()));
|
||||
mDBMaintenanceProgressBar->setRange(0,LogsList->size());
|
||||
|
||||
QDir ArchiveDir = mLogMgrHandle->GetBaseLogDataDir();
|
||||
ArchiveDir.cdUp();
|
||||
QString Path = QString("Archives/%1").arg(QDate::currentDate().toString("yyyy-MM-dd"));
|
||||
ArchiveDir.mkpath(Path);
|
||||
ArchiveDir.cd(Path);
|
||||
QDir CurDir;
|
||||
QFileInfo FileInfo;
|
||||
|
||||
if(LogsList->at(0)->mZTLogType == ZT1_LOG_TYPE)
|
||||
{
|
||||
CZT1LogElement *tmp = (CZT1LogElement*)LogsList->at(0);
|
||||
QFileInfo FilePath(tmp->mLogFileName);
|
||||
CurDir = ArchiveDir;
|
||||
QDir StationDir = FilePath.dir();
|
||||
StationDir.cdUp();
|
||||
CurDir.mkdir(StationDir.dirName());
|
||||
CurDir.cd(StationDir.dirName());
|
||||
CurDir.mkdir(FilePath.dir().dirName());
|
||||
CurDir.cd(FilePath.dir().dirName());
|
||||
FileInfo = FilePath;
|
||||
}
|
||||
else
|
||||
{
|
||||
CZT2LogElement *tmp =(CZT2LogElement*)LogsList->at(0);
|
||||
QFileInfo FilePath(tmp->mLogFileName);
|
||||
CurDir = ArchiveDir;
|
||||
QDir StationDir = FilePath.dir();
|
||||
StationDir.cdUp();
|
||||
CurDir.mkdir(StationDir.dirName());
|
||||
CurDir.cd(StationDir.dirName());
|
||||
CurDir.mkdir(FilePath.dir().dirName());
|
||||
CurDir.cd(FilePath.dir().dirName());
|
||||
FileInfo = FilePath;
|
||||
}
|
||||
|
||||
int IgnoredFiles = 0;
|
||||
|
||||
|
||||
for(int i = 0; i < LogsList->size(); i++)
|
||||
{
|
||||
if(LogsList->at(i)->mZTLogType == ZT1_LOG_TYPE)
|
||||
{
|
||||
CZT1LogElement *tmp = (CZT1LogElement*)LogsList->at(i);
|
||||
|
||||
//We are changing directory...
|
||||
if(CurDir.dirName() != QFileInfo(tmp->mLogFileName).dir().dirName())
|
||||
{
|
||||
//Copy the Log file into the archive
|
||||
QFile::copy(FileInfo.dir().absoluteFilePath("ZTLog.txt"),CurDir.absoluteFilePath("ZTLog.txt"));
|
||||
|
||||
QDir DatabaseDir = FileInfo.dir();
|
||||
DatabaseDir.setFilter(QDir::Files);
|
||||
QStringList filter;
|
||||
filter << "*.bin";
|
||||
DatabaseDir.setNameFilters(filter);
|
||||
//If no binary file is left in the database dir, delete it.
|
||||
if(DatabaseDir.count() == 0)
|
||||
{
|
||||
filter.clear();
|
||||
DatabaseDir.setNameFilters(filter);
|
||||
RemoveDir(DatabaseDir);
|
||||
}
|
||||
|
||||
//Create the new archive dir.
|
||||
QFileInfo FilePath(tmp->mLogFileName);
|
||||
CurDir = ArchiveDir;
|
||||
QDir StationDir = FilePath.dir();
|
||||
StationDir.cdUp();
|
||||
CurDir.mkdir(StationDir.dirName());
|
||||
CurDir.cd(StationDir.dirName());
|
||||
CurDir.mkdir(FilePath.dir().dirName());
|
||||
CurDir.cd(FilePath.dir().dirName());
|
||||
FileInfo = FilePath;
|
||||
|
||||
}
|
||||
|
||||
FileInfo = QFileInfo(tmp->mLogFileName);
|
||||
|
||||
//Copy the file into archive
|
||||
QFile::copy(FileInfo.filePath(),CurDir.absoluteFilePath(FileInfo.fileName()));
|
||||
|
||||
//Check if we have to delete the source file
|
||||
if((tmp->mZTDetections.size() == 0) && (tmp->mPassageDateTime.date() < FilterDate) && (tmp->mFileProtected == false))
|
||||
{
|
||||
//Remove file from database
|
||||
QFile::remove(FileInfo.filePath());
|
||||
}
|
||||
else
|
||||
{
|
||||
IgnoredFiles++;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
CZT2LogElement *tmp =(CZT2LogElement*)LogsList->at(i);
|
||||
if(CurDir.dirName() != QFileInfo(tmp->mLogFileName).dir().dirName())
|
||||
{
|
||||
//Copy the Log file into the archive
|
||||
QFile::copy(FileInfo.dir().absoluteFilePath("ZTLog.txt"),CurDir.absoluteFilePath("ZTLog.txt"));
|
||||
|
||||
QDir DatabaseDir = FileInfo.dir();
|
||||
DatabaseDir.setFilter(QDir::Files);
|
||||
DatabaseDir.setNameFilters(QStringList("*.bin"));
|
||||
//If no binary file is left in the database dir, delete it.
|
||||
if(DatabaseDir.count() == 0)
|
||||
{
|
||||
RemoveDir(DatabaseDir);
|
||||
}
|
||||
|
||||
//Create the new archive dir.
|
||||
QFileInfo FilePath(tmp->mLogFileName);
|
||||
CurDir = ArchiveDir;
|
||||
QDir StationDir = FilePath.dir();
|
||||
StationDir.cdUp();
|
||||
CurDir.mkdir(StationDir.dirName());
|
||||
CurDir.cd(StationDir.dirName());
|
||||
CurDir.mkdir(FilePath.dir().dirName());
|
||||
CurDir.cd(FilePath.dir().dirName());
|
||||
FileInfo = FilePath;
|
||||
|
||||
}
|
||||
|
||||
FileInfo = QFileInfo(tmp->mLogFileName);
|
||||
|
||||
//Copy the file into archive
|
||||
QFile::copy(FileInfo.filePath(),CurDir.absoluteFilePath(FileInfo.fileName()));
|
||||
|
||||
//Check if we have to delete the source file
|
||||
if((tmp->mZTDetections.size() == 0) && (tmp->mPassageDateTime.date() < FilterDate))
|
||||
{
|
||||
//Remove file from database
|
||||
QFile::remove(FileInfo.filePath());
|
||||
}
|
||||
else
|
||||
{
|
||||
IgnoredFiles++;
|
||||
}
|
||||
}
|
||||
}
|
||||
mDatabaseImporterWorkerThread->SetDatabasePath(mProgramHandle->GetLogDataPath());
|
||||
mDatabaseImporterWorkerThread->SetLogMgrHandle(mLogMgrHandle);
|
||||
mDatabaseImporterWorkerThread->SetThreadTask(CDatabaseImporterThread::DATABASE_THREAD_ARCHIVE_DB_TASK);
|
||||
QDate FilterDate = QDate::currentDate().addDays(-1 * (mArchiveKeepDays->value()));
|
||||
mDatabaseImporterWorkerThread->SetDatabaseFilters(FilterDate);
|
||||
|
||||
mDatabaseImporterThread->start();
|
||||
|
||||
return true;
|
||||
|
||||
@@ -633,6 +497,15 @@ void CDatabaseMgrPage::DatabaseImportFinished(bool ret,QStringList* FilesList)
|
||||
}
|
||||
}
|
||||
|
||||
void CDatabaseMgrPage::DatabaseArchiveFinished(bool success, int IgnoredFiles)
|
||||
{
|
||||
mProgramHandle->RebuildDatabaseFile();
|
||||
mDatabaseImporterThread->quit();
|
||||
mCancelButton->show();
|
||||
mImportDataButton->show();
|
||||
mCancelImportButton->hide();
|
||||
}
|
||||
|
||||
void CDatabaseMgrPage::SetProgressText(QString Text)
|
||||
{
|
||||
mProgressStatusText->setPlainText(Text);
|
||||
@@ -740,6 +613,238 @@ CDatabaseImporterThread::CDatabaseImporterThread()
|
||||
mKillThread = false;
|
||||
}
|
||||
|
||||
void CDatabaseImporterThread::ExecuteThread()
|
||||
{
|
||||
switch(mThreadTask)
|
||||
{
|
||||
case DATABASE_THREAD_NO_TASK:
|
||||
{
|
||||
return;
|
||||
break;
|
||||
}
|
||||
case DATABASE_THREAD_IMPORT_LOGS_TASK:
|
||||
{
|
||||
ImportLogs();
|
||||
break;
|
||||
}
|
||||
case DATABASE_THREAD_ARCHIVE_DB_TASK:
|
||||
{
|
||||
ArchiveDB();
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
int CDatabaseImporterThread::ArchiveDB()
|
||||
{
|
||||
mKillThread = false;
|
||||
|
||||
emit SetProgressBarRange(0,0);
|
||||
emit ResetProgressBar();
|
||||
emit SetProgressText("Copie des fichiers dans l'archive");
|
||||
|
||||
//Create archive dir.
|
||||
QDir ArchiveDir = mLogMgrHandle->GetBaseLogDataDir();
|
||||
ArchiveDir.cdUp();
|
||||
QString Path = QString("Archives");//.arg(QDate::currentDate().toString("yyyy-MM-dd"));
|
||||
ArchiveDir.mkpath(Path);
|
||||
ArchiveDir.cd(Path);
|
||||
|
||||
/* int ret = -1;
|
||||
emit SetProgressText("Compression de l'archive...");
|
||||
QString CmdLine = QString(".\\7zip\\7z a %1\\ArchiveTrains%2.7z %3 -r").arg(QDir::toNativeSeparators(ArchiveDir.absolutePath())).arg(QDate::currentDate().toString("yyyy-MM-dd")).arg(QDir::toNativeSeparators(mLogMgrHandle->GetBaseLogDataDir().absolutePath()));
|
||||
//ret = QProcess::execute(CmdLine.toAscii().data());
|
||||
QString Exec7zip = ".\\7zip\\7z.exe";
|
||||
QStringList Params;
|
||||
Params << "a"
|
||||
<< QString("%1\\ArchiveTrains%2.7z").arg(QDir::toNativeSeparators(ArchiveDir.absolutePath())).arg(QDate::currentDate().toString("yyyy-MM-dd"))
|
||||
<< QDir::toNativeSeparators(mLogMgrHandle->GetBaseLogDataDir().absolutePath())
|
||||
<< "-r"
|
||||
<< "-bsp1"
|
||||
<< "-bso0";
|
||||
|
||||
m7zipProcess = new QProcess();
|
||||
|
||||
m7zipProcess->start(Exec7zip,Params);
|
||||
if(m7zipProcess->waitForStarted() == false)
|
||||
{
|
||||
ret = -1;
|
||||
}
|
||||
else
|
||||
{
|
||||
while(m7zipProcess->state() == QProcess::Running)
|
||||
{
|
||||
QCoreApplication::processEvents(QEventLoop::ExcludeUserInputEvents);
|
||||
QString StdOut;
|
||||
StdOut = QString(m7zipProcess->readAllStandardOutput());
|
||||
if(StdOut.isEmpty() == false)
|
||||
{
|
||||
|
||||
qDebug(qPrintable(StdOut));
|
||||
emit SetProgressText(StdOut);
|
||||
}
|
||||
}
|
||||
ret = 0;
|
||||
}
|
||||
|
||||
emit SetProgressBarRange(0,1);
|
||||
emit ResetProgressBar();
|
||||
if(ret != 0 && ret != 1)
|
||||
{
|
||||
//Return values of 7z.exe
|
||||
mKillThread = true;
|
||||
switch(ret)
|
||||
{
|
||||
case 2:
|
||||
{
|
||||
emit SetProgressText("Échec de compression, erreur fatale.");
|
||||
break;
|
||||
}
|
||||
case 7:
|
||||
{
|
||||
emit SetProgressText("Échec de compression, erreur ligne de commande.");
|
||||
break;
|
||||
}
|
||||
case 8:
|
||||
{
|
||||
emit SetProgressText("Échec de compression, mémoire insuffisante");
|
||||
break;
|
||||
}
|
||||
case 255:
|
||||
{
|
||||
emit SetProgressText("Échec de compression, intervention de l'utilisateur.");
|
||||
break;
|
||||
}
|
||||
case -2:
|
||||
{
|
||||
emit SetProgressText("Échec de compression, 7z.exe introuvable.");
|
||||
break;
|
||||
}
|
||||
default:
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
emit DatabaseArchiveFinished(false,0);
|
||||
mThreadTask = DATABASE_THREAD_NO_TASK;
|
||||
return RET_ERROR;
|
||||
|
||||
}
|
||||
*/
|
||||
int IgnoredFiles = 0;
|
||||
|
||||
|
||||
QList<CLogElement*> *LogsList = mLogMgrHandle->GetLogsList();
|
||||
|
||||
emit SetProgressBarRange(0,LogsList->size());
|
||||
emit ResetProgressBar();
|
||||
emit SetProgressText("Nettoyage de l'archive");
|
||||
|
||||
QDir LastDir;
|
||||
if(LogsList->at(0)->mZTLogType == ZT1_LOG_TYPE)
|
||||
{
|
||||
CZT1LogElement *tmp = (CZT1LogElement*)LogsList->at(0);
|
||||
QFileInfo FilePath(tmp->mLogFileName);
|
||||
LastDir = FilePath.dir();
|
||||
}
|
||||
else
|
||||
{
|
||||
CZT2LogElement *tmp =(CZT2LogElement*)LogsList->at(0);
|
||||
QFileInfo FilePath(tmp->mLogFileName);
|
||||
LastDir = FilePath.dir();
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
for(int i = 0; i < LogsList->size(); i++)
|
||||
{
|
||||
bool DeleteFile = false;
|
||||
QFileInfo FileInfo;
|
||||
|
||||
emit SetProgressBarVal(i);
|
||||
// if(IsThreadKilled())
|
||||
// {
|
||||
// emit DatabaseArchiveFinished(false,0);
|
||||
// return;
|
||||
// }
|
||||
|
||||
if(LogsList->at(i)->mZTLogType == ZT1_LOG_TYPE)
|
||||
{
|
||||
CZT1LogElement *tmp = (CZT1LogElement*)LogsList->at(i);
|
||||
FileInfo = QFileInfo(tmp->mLogFileName);
|
||||
|
||||
emit SetProgressText(QString("Analyse: %1").arg(FileInfo.fileName()));
|
||||
|
||||
if((tmp->mZTDetections.size() == 0) && (tmp->mPassageDateTime.date() < mDatabaseArchiveFilterDate) && (tmp->mFileProtected == false))
|
||||
{
|
||||
//Remove file from database
|
||||
DeleteFile = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
DeleteFile = false;
|
||||
IgnoredFiles++;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
CZT2LogElement *tmp = (CZT2LogElement*)LogsList->at(i);
|
||||
FileInfo = QFileInfo(tmp->mLogFileName);
|
||||
|
||||
if((tmp->mZTDetections.size() == 0) && (tmp->mPassageDateTime.date() < mDatabaseArchiveFilterDate) && (tmp->mFileProtected == false))
|
||||
{
|
||||
//Remove file from database
|
||||
DeleteFile = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
DeleteFile = false;
|
||||
IgnoredFiles++;
|
||||
}
|
||||
}
|
||||
|
||||
//Delete the current file if necessary...
|
||||
if(DeleteFile == true)
|
||||
{
|
||||
QFile::remove(FileInfo.filePath());
|
||||
}
|
||||
|
||||
//Check if we are changing directory or analyzing the last one...
|
||||
if(LastDir.dirName() != FileInfo.dir().dirName() ||
|
||||
i == LogsList->size() - 1 )
|
||||
{
|
||||
//Check if we need to delete the directory (if there are any .bin in the dir, we have to keep it)
|
||||
//Make a list of the .bin files in the directory
|
||||
LastDir.setFilter(QDir::Files);
|
||||
QStringList filter;
|
||||
filter << "*.bin";
|
||||
LastDir.setNameFilters(filter);
|
||||
|
||||
//If no binary file is left in the database dir, delete it.
|
||||
if(LastDir.count() == 0)
|
||||
{
|
||||
LastDir.setNameFilters(QStringList());
|
||||
ClearDir(LastDir);
|
||||
if(QDir().rmdir(LastDir.absolutePath()) == false)
|
||||
{
|
||||
qDebug("Could not delete dir...");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
LastDir = FileInfo.dir();
|
||||
}
|
||||
|
||||
emit ResetProgressBar();
|
||||
emit SetProgressText(QString("Archivage terminé. %1 fichiers conservés").arg(IgnoredFiles));
|
||||
|
||||
emit DatabaseArchiveFinished(true,IgnoredFiles);
|
||||
mThreadTask = DATABASE_THREAD_NO_TASK;
|
||||
return RET_OK;
|
||||
}
|
||||
|
||||
void CDatabaseImporterThread::ImportLogs()
|
||||
{
|
||||
@@ -787,6 +892,7 @@ void CDatabaseImporterThread::ImportLogs()
|
||||
if(DataFilePath.isEmpty())
|
||||
{
|
||||
emit DatabaseImportFinished(false,0);
|
||||
mThreadTask = DATABASE_THREAD_NO_TASK;
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -909,6 +1015,7 @@ void CDatabaseImporterThread::ImportLogs()
|
||||
if(IsThreadKilled())
|
||||
{
|
||||
emit DatabaseImportFinished(false,0);
|
||||
mThreadTask = DATABASE_THREAD_NO_TASK;
|
||||
return;
|
||||
}
|
||||
}
|
||||
@@ -972,6 +1079,7 @@ void CDatabaseImporterThread::ImportLogs()
|
||||
if(IsThreadKilled())
|
||||
{
|
||||
emit DatabaseImportFinished(false,0);
|
||||
mThreadTask = DATABASE_THREAD_NO_TASK;
|
||||
return;
|
||||
}
|
||||
// emit SetProgressBarVal(i+1);
|
||||
@@ -981,13 +1089,15 @@ void CDatabaseImporterThread::ImportLogs()
|
||||
emit SetProgressText(QString().sprintf("Importation terminée avec succès\n%d passages ignorés\n%d fichiers copiés dans %d répertoires",NbDeletedFiles,NbCopiedFiles,NbCopiedDirs));
|
||||
|
||||
emit DatabaseImportFinished(true,NewFilesList);
|
||||
mThreadTask = DATABASE_THREAD_NO_TASK;
|
||||
return;
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
int CDatabaseImporterThread::CopyDir(QDir Dir, QDir DestDir, bool NotifyWhenCopied)
|
||||
|
||||
int CDatabaseImporterThread::CopyDir(QDir Dir, QDir DestDir, bool NotifyWhenCopied, bool Recursive)
|
||||
{
|
||||
|
||||
int CopiedFiles = 0;
|
||||
@@ -1008,13 +1118,26 @@ int CDatabaseImporterThread::CopyDir(QDir Dir, QDir DestDir, bool NotifyWhenCopi
|
||||
{
|
||||
ProgressValue++;
|
||||
emit SetProgressBarVal(ProgressValue);
|
||||
emit SetProgressText(QString().sprintf("Copie des fichiers dans la BD\n%s",f.toUtf8().data()));
|
||||
emit SetProgressText(QString().sprintf("Copie des fichiers\n%s",f.toUtf8().data()));
|
||||
}
|
||||
if(IsThreadKilled())
|
||||
{
|
||||
return CopiedFiles;
|
||||
}
|
||||
}
|
||||
if(Recursive)
|
||||
{
|
||||
foreach (QString f, Dir.entryList(QDir::AllDirs | QDir::NoDotAndDotDot))
|
||||
{
|
||||
CopyDir(Dir.absolutePath()+QDir::separator()+f,DestDir.absolutePath()+QDir::separator()+f,true,true);
|
||||
|
||||
if(IsThreadKilled())
|
||||
{
|
||||
return CopiedFiles;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
return CopiedFiles;
|
||||
}
|
||||
@@ -1092,6 +1215,14 @@ int CDatabaseImporterThread::ParseDir(QDir dir)
|
||||
return 1;
|
||||
}
|
||||
|
||||
bool CDatabaseImporterThread::SetThreadTask(int task)
|
||||
{
|
||||
mMutex.lockForWrite();
|
||||
mThreadTask = task;
|
||||
mMutex.unlock();
|
||||
return true;
|
||||
}
|
||||
|
||||
void CDatabaseImporterThread::SetImporParams(QStringList SelectedDirs, bool FilterDuplicates, bool OnlyErrorLogs)
|
||||
{
|
||||
mSelectedDirs = SelectedDirs;
|
||||
@@ -1099,6 +1230,11 @@ void CDatabaseImporterThread::SetImporParams(QStringList SelectedDirs, bool Filt
|
||||
mOnlyErrorLogs = OnlyErrorLogs;
|
||||
}
|
||||
|
||||
void CDatabaseImporterThread::SetDatabaseFilters(QDate FilterDate)
|
||||
{
|
||||
mDatabaseArchiveFilterDate = FilterDate;
|
||||
}
|
||||
|
||||
void CDatabaseImporterThread::KillThread()
|
||||
{
|
||||
mMutex.lockForWrite();
|
||||
@@ -1117,3 +1253,8 @@ bool CDatabaseImporterThread::IsThreadKilled()
|
||||
|
||||
return tmp;
|
||||
}
|
||||
|
||||
void CDatabaseImporterThread::New7zipStdOutput()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
@@ -43,6 +43,8 @@
|
||||
#include <QReadWriteLock>
|
||||
#include "ZTLogFilesMgr.h"
|
||||
#include <QSpinBox>
|
||||
#include <QDateTime>
|
||||
#include <QProcess>
|
||||
//#include "DatabaseArchiver.h"
|
||||
|
||||
class COutilZT;
|
||||
@@ -51,23 +53,41 @@ class CDatabaseImporterThread : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
|
||||
enum eDatabaseThreadTask
|
||||
{
|
||||
DATABASE_THREAD_NO_TASK,
|
||||
DATABASE_THREAD_IMPORT_LOGS_TASK,
|
||||
DATABASE_THREAD_ARCHIVE_DB_TASK
|
||||
};
|
||||
|
||||
CDatabaseImporterThread();
|
||||
|
||||
void SetDatabasePath(QString path){mDatabasePath = path;}
|
||||
void SetLogMgrHandle(CLogMgr *Handle){mLogMgrHandle = Handle;}
|
||||
void SetImporParams(QStringList SelectedDirs, bool FilterDuplicates, bool OnlyErrorLogs);
|
||||
void SetDatabaseFilters(QDate FilterDate);
|
||||
void KillThread();
|
||||
|
||||
bool SetThreadTask(int task);
|
||||
|
||||
public slots:
|
||||
void ImportLogs();
|
||||
|
||||
void ExecuteThread();
|
||||
void New7zipStdOutput();
|
||||
// void Process7zipFinished();
|
||||
|
||||
private:
|
||||
|
||||
int ParseDir(QDir dir);
|
||||
int CopyDir(QDir Dir, QDir DestDir,bool NotifyWhenCopied = false);
|
||||
int CopyDir(QDir Dir, QDir DestDir,bool NotifyWhenCopied = false, bool Recursive = false);
|
||||
bool ClearDir(QDir Dir);
|
||||
bool DeleteFile(QString FilePath);
|
||||
void ImportLogs();
|
||||
int ArchiveDB();
|
||||
|
||||
// bool mProcess7zipRunning
|
||||
|
||||
|
||||
bool mKillThread;
|
||||
QReadWriteLock mMutex;
|
||||
|
||||
@@ -81,6 +101,9 @@ private:
|
||||
|
||||
bool IsThreadKilled();
|
||||
int ProgressValue;
|
||||
int mThreadTask;
|
||||
QDate mDatabaseArchiveFilterDate;
|
||||
QProcess *m7zipProcess;
|
||||
|
||||
|
||||
signals:
|
||||
@@ -89,6 +112,8 @@ signals:
|
||||
void SetProgressBarVal(int);
|
||||
void ResetProgressBar();
|
||||
void SetProgressText(QString);
|
||||
void DatabaseArchiveFinished(bool, int);
|
||||
|
||||
|
||||
};
|
||||
|
||||
@@ -133,6 +158,7 @@ private:
|
||||
CDatabaseImporterThread *mDatabaseImporterWorkerThread;
|
||||
QThread *mDatabaseImporterThread;
|
||||
|
||||
|
||||
bool ImportData(bool OnlyError, bool FilterDuplicates);
|
||||
bool CleanDBDuplicates();
|
||||
bool CleanDBNormalPasses();
|
||||
@@ -153,6 +179,7 @@ private:
|
||||
public slots:
|
||||
void ButtonClicked(CTextButtonWidget *);
|
||||
void DatabaseImportFinished(bool,QStringList*);
|
||||
void DatabaseArchiveFinished(bool,int);
|
||||
void SetProgressText(QString);
|
||||
|
||||
};
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
#ifndef OUTILZTVERSION_H
|
||||
#define OUTILZTVERSION_H
|
||||
|
||||
#define SOFTWARE_VERSION "1.14"
|
||||
#define SOFTWARE_VERSION "1.15"
|
||||
|
||||
#endif // OUTILZTVERSION_H
|
||||
|
||||
Reference in New Issue
Block a user