/******************************************************************************* * * * Société de Transports de Montréal. * * 2012 * * * * Projet Zones Tests * * * * * * * *******************************************************************************/ /* Description: Description du fichier si nécessaire. */ /* ************************************************************************** */ /* Revision: ### 20131021 JFM Verision d'origine. ### YYYMMDD Description du besoin ou du bug Description du changement. */ /* ************************************************************************** */ #ifndef DATABASEMGRPAGE_H #define DATABASEMGRPAGE_H #include "GlobalDefine.h" #include #include "Guipage.h" #include #include "PushButton.h" #include "TextButtonWidget.h" #include "ZTData.h" #include #include "LogMgr.h" #include #include #include #include "ZTLogFilesMgr.h" class COutilZT; class CDatabaseImporterThread : public QObject { Q_OBJECT public: CDatabaseImporterThread(); void SetDatabasePath(QString path){mDatabasePath = path;} void SetLogMgrHandle(CLogMgr *Handle){mLogMgrHandle = Handle;} void SetImporParams(QStringList SelectedDirs, bool FilterDuplicates, bool OnlyErrorLogs); void KillThread(); public slots: void ImportLogs(); private: int ParseDir(QDir dir); int CopyDir(QDir Dir, QDir DestDir,bool NotifyWhenCopied = false); bool ClearDir(QDir Dir); bool DeleteFile(QString FilePath); bool mKillThread; QReadWriteLock mMutex; QString mDatabasePath; CLogMgr *mLogMgrHandle; QStringList mSelectedDirs; bool mFilterDuplicates; bool mOnlyErrorLogs; bool IsThreadKilled(); int ProgressValue; signals: void DatabaseImportFinished(bool,QStringList*); void SetProgressBarRange(int,int); void SetProgressBarVal(int); void ResetProgressBar(); void SetProgressText(QString); }; class CDatabaseMgrPage : public CGuiPage { Q_OBJECT public: CDatabaseMgrPage(QGraphicsWidget *Parent = 0,bool EngMode = false); ~CDatabaseMgrPage(); COutilZT *mProgramHandle; CLogMgr *mLogMgrHandle; CZTLogFilesMgr *mZTLogFilesManager; void UpdateDBStats(); void EnableEngineeringMode(); void EnableLogImport(); virtual void showEvent(QShowEvent *event); virtual void resizeEvent(QGraphicsSceneResizeEvent *event); virtual void mousePressEvent(QGraphicsSceneMouseEvent *event); virtual void mouseReleaseEvent(QGraphicsSceneMouseEvent *event); private: QGraphicsRectItem *mBackgroundRect; CTextButtonWidget *mCancelButton, *mImportDataButton, *mCancelImportButton; QCheckBox *mImportErrorDataOnlyChkBx, *mFilterDuplicateChkBx, *mDeleteSourceDataChkBx; QProgressBar *mProgressBar; QGraphicsTextItem *mProgressStatusText; CTextButtonWidget *mDeleteDBDuplicatesBtn, *mDeleteNonErrorLogs, *mDeleteZTLogFiles, *mRebuildDatabaseFile; QProgressBar *mDBMaintenanceProgressBar; QGraphicsTextItem *mDBMaintenanceProgressStatusText; QGraphicsTextItem *mDBFileCountText; CDatabaseImporterThread *mDatabaseImporterWorkerThread; QThread *mDatabaseImporterThread; bool ImportData(bool OnlyError, bool FilterDuplicates); bool CleanDBDuplicates(); bool CleanDBNormalPasses(); bool CleanSingleZTLogFiles(); bool DeleteFile(QString FilePath); // int ParseDir(QDir dir); // bool CopyDir(QDir Dir, QDir DestDir); // bool ClearDir(QDir Dir); // bool DeleteFile(QString FilePath); public slots: void ButtonClicked(CTextButtonWidget *); void DatabaseImportFinished(bool,QStringList*); void SetProgressText(QString); }; #endif // DATABASEMGRPAGE_H