Ajout de la navigation directe dans les répertoires.
This commit is contained in:
parent
b93d2034d9
commit
e7adb16f5f
BIN
Images/directory.png
Normal file
BIN
Images/directory.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 36 KiB |
3
SourcePath.txt
Normal file
3
SourcePath.txt
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
#S:\EEF\TCPE\72410\72410\BD ZT\Logs_Reseau\
|
||||||
|
D:\Main\Fichiers\JOB\OutilZT_Direct\trains\
|
||||||
|
#c:\
|
||||||
@ -35,12 +35,17 @@
|
|||||||
#include <QTextStream>
|
#include <QTextStream>
|
||||||
#include <QDebug>
|
#include <QDebug>
|
||||||
#include <QFileDialog>
|
#include <QFileDialog>
|
||||||
|
#include <QDir>
|
||||||
|
#include <QFileInfo>
|
||||||
|
#include "TrainLogFileMgr.h"
|
||||||
|
#include <QApplication>
|
||||||
|
#include <QFile>
|
||||||
|
|
||||||
|
|
||||||
CLogsListPage::~CLogsListPage()
|
CLogsListPage::~CLogsListPage()
|
||||||
{
|
{
|
||||||
// delete mListParsingTimer;
|
// delete mListParsingTimer;
|
||||||
|
delete mLogsTable;
|
||||||
}
|
}
|
||||||
|
|
||||||
CLogsListPage::CLogsListPage(QGraphicsWidget *Parent)
|
CLogsListPage::CLogsListPage(QGraphicsWidget *Parent)
|
||||||
@ -50,11 +55,28 @@ CLogsListPage::CLogsListPage(QGraphicsWidget *Parent)
|
|||||||
mProgramHandle = 0;
|
mProgramHandle = 0;
|
||||||
mStationFilter.clear();
|
mStationFilter.clear();
|
||||||
|
|
||||||
|
QFile PathSource("SourcePath.txt");
|
||||||
|
mNetworkBasePath = NETWORK_LOGS_BASE_PATH;
|
||||||
|
if(PathSource.open(QIODevice::ReadOnly|QIODevice::Text))
|
||||||
|
{
|
||||||
|
QString Path;
|
||||||
|
do
|
||||||
|
{
|
||||||
|
Path = QString(PathSource.readLine());
|
||||||
|
if(Path.contains('#') == false)
|
||||||
|
{
|
||||||
|
mNetworkBasePath = Path.chopped(1);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
while(!PathSource.atEnd());
|
||||||
|
}
|
||||||
|
|
||||||
mLogsTable = new QTableWidget(0,4);
|
mLogsTable = new QTableWidget(0,4);
|
||||||
QGraphicsProxyWidget *TableProxy = new QGraphicsProxyWidget(this);
|
mLogListTableProxy = new QGraphicsProxyWidget(this);
|
||||||
TableProxy->setWidget(mLogsTable);
|
mLogListTableProxy->setWidget(mLogsTable);
|
||||||
TableProxy->setPos(3,20);
|
mLogListTableProxy->setPos(3,20);
|
||||||
TableProxy->resize(380,350);
|
mLogListTableProxy->resize(380,350);
|
||||||
mLogsTable->resize(380,350);
|
mLogsTable->resize(380,350);
|
||||||
mLogsTable->setSelectionBehavior(QAbstractItemView::SelectRows);
|
mLogsTable->setSelectionBehavior(QAbstractItemView::SelectRows);
|
||||||
mLogsTable->setSelectionMode(QAbstractItemView::SingleSelection);
|
mLogsTable->setSelectionMode(QAbstractItemView::SingleSelection);
|
||||||
@ -65,6 +87,103 @@ CLogsListPage::CLogsListPage(QGraphicsWidget *Parent)
|
|||||||
connect(mLogsTable,SIGNAL(currentCellChanged(int,int,int,int)),this,SLOT(LogsTableCellSelected(int,int,int,int)));
|
connect(mLogsTable,SIGNAL(currentCellChanged(int,int,int,int)),this,SLOT(LogsTableCellSelected(int,int,int,int)));
|
||||||
connect(mLogsTable,SIGNAL(cellDoubleClicked(int,int)),SLOT(TableDoubleClicked(int,int)));
|
connect(mLogsTable,SIGNAL(cellDoubleClicked(int,int)),SLOT(TableDoubleClicked(int,int)));
|
||||||
|
|
||||||
|
mLogListTableProxy->hide();
|
||||||
|
|
||||||
|
mLogsTreeProxy = new QGraphicsProxyWidget(this);
|
||||||
|
mLogFilesTree = new QTreeWidget;
|
||||||
|
mLogsTreeProxy->setWidget(mLogFilesTree);
|
||||||
|
mLogFilesTree->setColumnCount(3);
|
||||||
|
mLogFilesTree->resize(590,350);
|
||||||
|
mLogFilesTree->setHeaderLabels(QStringList() << "Passage" << "Décl" << "Zone" << "Compo");
|
||||||
|
connect(mLogFilesTree,SIGNAL(itemExpanded(QTreeWidgetItem*)),this,SLOT(LogsTreeItemExpanded(QTreeWidgetItem*)));
|
||||||
|
connect(mLogFilesTree,SIGNAL(itemSelectionChanged()),this,SLOT(LogsTreeItemSelected()));
|
||||||
|
connect(mLogFilesTree,SIGNAL(itemDoubleClicked(QTreeWidgetItem*,int)),this,SLOT(LogsTreeItemDoubleClicked(QTreeWidgetItem*)));
|
||||||
|
connect(mLogFilesTree,SIGNAL(itemCollapsed(QTreeWidgetItem*)),this,SLOT(LogsTreeItemCollapsed(QTreeWidgetItem*)));
|
||||||
|
mLogFilesTree->setSortingEnabled(true);
|
||||||
|
|
||||||
|
// mLogsTreeProxy->hide();
|
||||||
|
|
||||||
|
QTreeWidgetItem* TopStationItem;
|
||||||
|
TopStationItem = new QTreeWidgetItem(static_cast<QTreeWidget *>(nullptr));
|
||||||
|
TopStationItem->setText(0,"Angrignon");
|
||||||
|
CTreeItemInfo *ItemInfo = new CTreeItemInfo;
|
||||||
|
ItemInfo->TreeItemType = TREE_ITEM_STATION_TYPE;
|
||||||
|
ItemInfo->TreeItemPath = QString(mNetworkBasePath) + "ANG";
|
||||||
|
TopStationItem->setData(0,Qt::UserRole,QVariant::fromValue((void*)ItemInfo));
|
||||||
|
TopStationItem->addChild(new QTreeWidgetItem(QStringList() << ""));
|
||||||
|
mLogFilesTree->insertTopLevelItem(0,TopStationItem);
|
||||||
|
|
||||||
|
TopStationItem = new QTreeWidgetItem(static_cast<QTreeWidget *>(nullptr));
|
||||||
|
TopStationItem->setText(0,"Berri-UQAM");
|
||||||
|
ItemInfo = new CTreeItemInfo;
|
||||||
|
ItemInfo->TreeItemType = TREE_ITEM_STATION_TYPE;
|
||||||
|
ItemInfo->TreeItemPath = QString(mNetworkBasePath) + "BUQ4";
|
||||||
|
TopStationItem->setData(0,Qt::UserRole,QVariant::fromValue((void*)ItemInfo));
|
||||||
|
TopStationItem->addChild(new QTreeWidgetItem(QStringList() << ""));
|
||||||
|
mLogFilesTree->insertTopLevelItem(1,TopStationItem);
|
||||||
|
|
||||||
|
TopStationItem = new QTreeWidgetItem(static_cast<QTreeWidget *>(nullptr));
|
||||||
|
TopStationItem->setText(0,"Côte-Vertu");
|
||||||
|
ItemInfo = new CTreeItemInfo;
|
||||||
|
ItemInfo->TreeItemType = TREE_ITEM_STATION_TYPE;
|
||||||
|
ItemInfo->TreeItemPath = QString(mNetworkBasePath) + "CVRT";
|
||||||
|
TopStationItem->setData(0,Qt::UserRole,QVariant::fromValue((void*)ItemInfo));
|
||||||
|
TopStationItem->addChild(new QTreeWidgetItem(QStringList() << ""));
|
||||||
|
mLogFilesTree->insertTopLevelItem(2,TopStationItem);
|
||||||
|
|
||||||
|
|
||||||
|
TopStationItem = new QTreeWidgetItem(static_cast<QTreeWidget *>(nullptr));
|
||||||
|
TopStationItem->setText(0,"H-Beaugrand");
|
||||||
|
ItemInfo = new CTreeItemInfo;
|
||||||
|
ItemInfo->TreeItemType = TREE_ITEM_STATION_TYPE;
|
||||||
|
ItemInfo->TreeItemPath = QString(mNetworkBasePath) + "HBGR";
|
||||||
|
TopStationItem->setData(0,Qt::UserRole,QVariant::fromValue((void*)ItemInfo));
|
||||||
|
TopStationItem->addChild(new QTreeWidgetItem(QStringList() << ""));
|
||||||
|
mLogFilesTree->insertTopLevelItem(3,TopStationItem);
|
||||||
|
|
||||||
|
|
||||||
|
TopStationItem = new QTreeWidgetItem(static_cast<QTreeWidget *>(nullptr));
|
||||||
|
TopStationItem->setText(0,"Longueuil");
|
||||||
|
ItemInfo = new CTreeItemInfo;
|
||||||
|
ItemInfo->TreeItemType = TREE_ITEM_STATION_TYPE;
|
||||||
|
ItemInfo->TreeItemPath = QString(mNetworkBasePath) + "LONG";
|
||||||
|
TopStationItem->setData(0,Qt::UserRole,QVariant::fromValue((void*)ItemInfo));
|
||||||
|
TopStationItem->addChild(new QTreeWidgetItem(QStringList() << ""));
|
||||||
|
mLogFilesTree->insertTopLevelItem(4,TopStationItem);
|
||||||
|
|
||||||
|
|
||||||
|
TopStationItem = new QTreeWidgetItem(static_cast<QTreeWidget *>(nullptr));
|
||||||
|
TopStationItem->setText(0,"Montmorency");
|
||||||
|
ItemInfo = new CTreeItemInfo;
|
||||||
|
ItemInfo->TreeItemType = TREE_ITEM_STATION_TYPE;
|
||||||
|
ItemInfo->TreeItemPath = QString(mNetworkBasePath) + "MMO";
|
||||||
|
TopStationItem->setData(0,Qt::UserRole,QVariant::fromValue((void*)ItemInfo));
|
||||||
|
TopStationItem->addChild(new QTreeWidgetItem(QStringList() << ""));
|
||||||
|
mLogFilesTree->insertTopLevelItem(5,TopStationItem);
|
||||||
|
|
||||||
|
|
||||||
|
TopStationItem = new QTreeWidgetItem(static_cast<QTreeWidget *>(nullptr));
|
||||||
|
TopStationItem->setText(0,"Snowdon");
|
||||||
|
ItemInfo = new CTreeItemInfo;
|
||||||
|
ItemInfo->TreeItemType = TREE_ITEM_STATION_TYPE;
|
||||||
|
ItemInfo->TreeItemPath = QString(mNetworkBasePath) + "SNW5";
|
||||||
|
TopStationItem->setData(0,Qt::UserRole,QVariant::fromValue((void*)ItemInfo));
|
||||||
|
TopStationItem->addChild(new QTreeWidgetItem(QStringList() << ""));
|
||||||
|
mLogFilesTree->insertTopLevelItem(6,TopStationItem);
|
||||||
|
|
||||||
|
|
||||||
|
TopStationItem = new QTreeWidgetItem(static_cast<QTreeWidget *>(nullptr));
|
||||||
|
TopStationItem->setText(0,"St-Michel");
|
||||||
|
ItemInfo = new CTreeItemInfo;
|
||||||
|
ItemInfo->TreeItemType = TREE_ITEM_STATION_TYPE;
|
||||||
|
ItemInfo->TreeItemPath = QString(mNetworkBasePath) + "SMIC";
|
||||||
|
TopStationItem->setData(0,Qt::UserRole,QVariant::fromValue((void*)ItemInfo));
|
||||||
|
TopStationItem->addChild(new QTreeWidgetItem(QStringList() << ""));
|
||||||
|
mLogFilesTree->insertTopLevelItem(7,TopStationItem);
|
||||||
|
|
||||||
|
mLogFilesTree->sortByColumn(0,Qt::AscendingOrder);
|
||||||
|
|
||||||
|
|
||||||
mSummaryText = new QGraphicsTextItem(this);
|
mSummaryText = new QGraphicsTextItem(this);
|
||||||
QFont textfont;
|
QFont textfont;
|
||||||
textfont.setPointSize(12);
|
textfont.setPointSize(12);
|
||||||
@ -149,6 +268,17 @@ CLogsListPage::CLogsListPage(QGraphicsWidget *Parent)
|
|||||||
mShowProblematicTrainsChkbx->setChecked(true);
|
mShowProblematicTrainsChkbx->setChecked(true);
|
||||||
connect(mShowProblematicTrainsChkbx,SIGNAL(stateChanged(int)),this,SLOT(CheckBoxClicked(int)));
|
connect(mShowProblematicTrainsChkbx,SIGNAL(stateChanged(int)),this,SLOT(CheckBoxClicked(int)));
|
||||||
|
|
||||||
|
WidgetProxy = new QGraphicsProxyWidget(this);
|
||||||
|
mLoadTreeLogDetails = new QCheckBox("Charger détails");
|
||||||
|
WidgetProxy->setWidget(mLoadTreeLogDetails);
|
||||||
|
WidgetProxy->setPos(190,390);
|
||||||
|
mLoadTreeLogDetails->setChecked(true);
|
||||||
|
connect(mLoadTreeLogDetails,SIGNAL(stateChanged(int)),this,SLOT(CheckBoxClicked(int)));
|
||||||
|
|
||||||
|
mTreeLoadingStatusLabel = new QGraphicsTextItem(this);
|
||||||
|
mTreeLoadingStatusLabel->setPlainText("");
|
||||||
|
mTreeLoadingStatusLabel->setPos(190,395);
|
||||||
|
mTreeLoadingStatusLabel->hide();
|
||||||
|
|
||||||
QGraphicsTextItem *Label = new QGraphicsTextItem(this);
|
QGraphicsTextItem *Label = new QGraphicsTextItem(this);
|
||||||
Label->setPlainText("Station:");
|
Label->setPlainText("Station:");
|
||||||
@ -174,23 +304,36 @@ CLogsListPage::CLogsListPage(QGraphicsWidget *Parent)
|
|||||||
|
|
||||||
mViewZTLogBtn = new CPushButton(this,"./Images/log.png",false,0);
|
mViewZTLogBtn = new CPushButton(this,"./Images/log.png",false,0);
|
||||||
mViewZTLogBtn->resize(50,50);
|
mViewZTLogBtn->resize(50,50);
|
||||||
mViewZTLogBtn->setPos(400,25);
|
mViewZTLogBtn->setPos(400,375);
|
||||||
connect(mViewZTLogBtn,SIGNAL(clicked(CPushButton*)),this,SLOT(ViewZTLogBtnClicked(CPushButton*)));
|
connect(mViewZTLogBtn,SIGNAL(clicked(CPushButton*)),this,SLOT(ViewZTLogBtnClicked(CPushButton*)));
|
||||||
|
|
||||||
mSaveCSVLogBtn = new CPushButton(this,"./Images/csv.png",false,0);
|
mSaveCSVLogBtn = new CPushButton(this,"./Images/csv.png",false,0);
|
||||||
mSaveCSVLogBtn->resize(50,50);
|
mSaveCSVLogBtn->resize(50,50);
|
||||||
mSaveCSVLogBtn->setPos(400,100);
|
mSaveCSVLogBtn->setPos(400,450);
|
||||||
connect(mSaveCSVLogBtn,SIGNAL(clicked(CPushButton*)),this,SLOT(SaveCSVLogBtnClicked(CPushButton*)));
|
connect(mSaveCSVLogBtn,SIGNAL(clicked(CPushButton*)),this,SLOT(SaveCSVLogBtnClicked(CPushButton*)));
|
||||||
|
|
||||||
mDeleteFileButton = new CPushButton(this,"./Images/file_delete.png",false,0);
|
mDeleteFileButton = new CPushButton(this,"./Images/file_delete.png",false,0);
|
||||||
mDeleteFileButton->resize(50,50);
|
mDeleteFileButton->resize(50,50);
|
||||||
mDeleteFileButton->setPos(400,175);
|
mDeleteFileButton->setPos(400,525);
|
||||||
connect(mDeleteFileButton,SIGNAL(clicked(CPushButton*)),this,SLOT(DeleteSelectedLog(CPushButton*)));
|
connect(mDeleteFileButton,SIGNAL(clicked(CPushButton*)),this,SLOT(DeleteSelectedLog(CPushButton*)));
|
||||||
|
|
||||||
|
mLogsTreeMode = new CPushButton(this,"./Images/directory.png",false,0);
|
||||||
|
mLogsTreeMode->resize(50,50);
|
||||||
|
mLogsTreeMode->setPos(475,375);
|
||||||
|
connect(mLogsTreeMode,SIGNAL(clicked(CPushButton*)),this,SLOT(TreeLogsViewModeSelected(CPushButton*)));
|
||||||
|
|
||||||
|
mLogsTableMode = new CPushButton(this,"./Images/database.png",false,0);
|
||||||
|
mLogsTableMode->resize(50,50);
|
||||||
|
mLogsTableMode->setPos(475,450);
|
||||||
|
connect(mLogsTableMode,SIGNAL(clicked(CPushButton*)),this,SLOT(TableLogsViewModeSelected(CPushButton*)));
|
||||||
|
|
||||||
mSaveCSVLogBtn->hide();
|
mSaveCSVLogBtn->hide();
|
||||||
mDeleteFileButton->hide();
|
mDeleteFileButton->hide();
|
||||||
|
|
||||||
|
// TreeLogsViewModeSelected(mLogsTreeMode);
|
||||||
|
TableLogsViewModeSelected(mLogsTableMode);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -241,9 +384,9 @@ void CLogsListPage::ButtonClicked(CTextButtonWidget *BtnPtr)
|
|||||||
|
|
||||||
void CLogsListPage::EnableEngineeringMode()
|
void CLogsListPage::EnableEngineeringMode()
|
||||||
{
|
{
|
||||||
mSaveCSVLogBtn->show();
|
mSaveCSVLogBtn->hide();
|
||||||
mDeleteFileButton->show();
|
mDeleteFileButton->hide();
|
||||||
mProtectLogChkBx->setEnabled(true);
|
mProtectLogChkBx->setEnabled(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned int CLogsListPage::RefreshList()
|
unsigned int CLogsListPage::RefreshList()
|
||||||
@ -482,18 +625,183 @@ void CLogsListPage::LogsTableCellClicked(int row, int column)
|
|||||||
// qDebug("Selection : %d",row);
|
// qDebug("Selection : %d",row);
|
||||||
QList<CLogElement*> *LogsList = mLogMgrHandle->GetLogsList();
|
QList<CLogElement*> *LogsList = mLogMgrHandle->GetLogsList();
|
||||||
|
|
||||||
float MeanSpeed = 0.0;
|
// float MeanSpeed = 0.0;
|
||||||
QString Summary;
|
// QString Summary;
|
||||||
|
|
||||||
if(mLogsTable->item(row,0) == 0)
|
if(mLogsTable->item(row,0) == 0)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
int ItemIndex = mLogsTable->item(row,0)->data(Qt::UserRole).toInt();
|
int ItemIndex = mLogsTable->item(row,0)->data(Qt::UserRole).toInt();
|
||||||
//if(LogsList->at(row)->mZTLogType == ZT1_LOG_TYPE)
|
|
||||||
if(LogsList->at(ItemIndex)->mZTLogType == ZT1_LOG_TYPE)
|
UpdateSummaryText(LogsList->at(ItemIndex));
|
||||||
|
// if(LogsList->at(ItemIndex)->mZTLogType == ZT1_LOG_TYPE)
|
||||||
|
// {
|
||||||
|
//// //CZT1LogElement *ZT1LogElement = (CZT1LogElement*) LogsList->at(row);
|
||||||
|
// CZT1LogElement *ZT1LogElement = (CZT1LogElement*) LogsList->at(ItemIndex);
|
||||||
|
|
||||||
|
// if(ZT1LogElement->mFileProtected == true)
|
||||||
|
// {
|
||||||
|
// mProtectLogChkBx->setCheckState(Qt::Checked);
|
||||||
|
// }
|
||||||
|
// else
|
||||||
|
// {
|
||||||
|
// mProtectLogChkBx->setCheckState(Qt::Unchecked);
|
||||||
|
// }
|
||||||
|
|
||||||
|
// QString Problem = "N/A";
|
||||||
|
// if(ZT1LogElement->mFlags.mIsProblematicPassage == 1)
|
||||||
|
// {
|
||||||
|
// Problem = "OUI";
|
||||||
|
// }
|
||||||
|
// else if(ZT1LogElement->mFlags.mIsProblematicPassage == 0)
|
||||||
|
// {
|
||||||
|
// Problem = "NON";
|
||||||
|
// }
|
||||||
|
// MeanSpeed = ZT1LogElement->mMeanSpeed;
|
||||||
|
|
||||||
|
// QString TrainType = CZTData::GetModbusTrainTypeString(ZT1LogElement->mFlags.mModbusTrainType);
|
||||||
|
// if(TrainType == "Inconnu")
|
||||||
|
// {
|
||||||
|
// TrainType = CZTData::GetTrainTypeString(ZT1LogElement->mTrainType);
|
||||||
|
// }
|
||||||
|
|
||||||
|
// QString TrainCompo = "Non Disponible";
|
||||||
|
// // if(!((ZT1LogElement->mFlags.mTrainCompo1 == 0) && (ZT1LogElement->mFlags.mTrainCompo2 == 0) && (ZT1LogElement->mFlags.mTrainCompo3 == 0)))
|
||||||
|
// {
|
||||||
|
// TrainCompo = QString("%1-%2-%3").arg(ZT1LogElement->mFlags.mTrainCompo1)\
|
||||||
|
// .arg(ZT1LogElement->mFlags.mTrainCompo2)
|
||||||
|
// .arg(ZT1LogElement->mFlags.mTrainCompo3);
|
||||||
|
// }
|
||||||
|
|
||||||
|
// QString Iti("Principal");
|
||||||
|
// if(ZT1LogElement->mFlags.mZT1ITI == ZT_SECONDARY_ITI)
|
||||||
|
// {
|
||||||
|
// Iti = "Secondaire (10/22)";
|
||||||
|
// }
|
||||||
|
|
||||||
|
// Summary = QString("Passage:\n\nDate: %1\nHeure: %2\nItinéraire: %7\nZone Test : ZT1\nTrain : %3\nCompo: %6\nNombre d'éléments: %4\nProblématique: %5\n\n\nDéclenchements: \n")\
|
||||||
|
// .arg(ZT1LogElement->mPassageDateTime.toString("yyyy/MM/dd"))\
|
||||||
|
// .arg(ZT1LogElement->mPassageDateTime.toString("hh:mm:ss"))\
|
||||||
|
// .arg(TrainType)\
|
||||||
|
// .arg(ZT1LogElement->mNbElements)\
|
||||||
|
// .arg(Problem)
|
||||||
|
// .arg(TrainCompo)
|
||||||
|
// .arg(Iti);
|
||||||
|
//// Summary.sprintf("Passage:\n\nDate: %s\nHeure: %s\nZone Test : ZT1\nTrain : %s\nNombre d'éléments: %d\nProblématique: %s\n\n\nDéclenchements: \n",
|
||||||
|
//// ZT1LogElement->mPassageDateTime.toString("yyyy/MM/dd").toAscii().data(),
|
||||||
|
//// ZT1LogElement->mPassageDateTime.toString("hh:mm:ss").toAscii().data(),
|
||||||
|
//// CZTData::GetTrainTypeString(ZT1LogElement->mTrainType),
|
||||||
|
//// ZT1LogElement->mNbElements,
|
||||||
|
//// Problem.toAscii().data());
|
||||||
|
|
||||||
|
// if(ZT1LogElement->mZTDetections.size() > 0)
|
||||||
|
// {
|
||||||
|
// for(int i = 0; i < ZT1LogElement->mZTDetections.size(); i++)
|
||||||
|
// {
|
||||||
|
// QString temp;
|
||||||
|
// if(ZT1LogElement->mZTDetections.at(i)->mDetectionID == DETECTION_FN_DETECTION)
|
||||||
|
// {
|
||||||
|
// temp.sprintf("%s au bogie %d\n",CZTData::GetErrorString(ZT1LogElement->mZTDetections.at(i)->mDetectionID),ZT1LogElement->mZTDetections.at(i)->mRank);
|
||||||
|
// }
|
||||||
|
// else
|
||||||
|
// {
|
||||||
|
// temp.sprintf("%s au rang %d\n",CZTData::GetErrorString(ZT1LogElement->mZTDetections.at(i)->mDetectionID),ZT1LogElement->mZTDetections.at(i)->mRank);
|
||||||
|
// }
|
||||||
|
// Summary += temp;
|
||||||
|
// if(i >= MAX_DETECTION_LIST_NBR - 1)
|
||||||
|
// {
|
||||||
|
// temp = " - Autres déclenchements non affichés -";
|
||||||
|
// Summary += temp;
|
||||||
|
// break;
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// else
|
||||||
|
// Summary += "Aucun déclenchement";
|
||||||
|
// }
|
||||||
|
// //else if(LogsList->at(row)->mZTLogType == ZT2_LOG_TYPE)
|
||||||
|
// else if(LogsList->at(ItemIndex)->mZTLogType == ZT2_LOG_TYPE)
|
||||||
|
// {
|
||||||
|
// //CZT2LogElement *ZT2LogElement = (CZT2LogElement*) LogsList->at(row);
|
||||||
|
// CZT2LogElement *ZT2LogElement = (CZT2LogElement*) LogsList->at(ItemIndex);
|
||||||
|
|
||||||
|
// if(ZT2LogElement->mFileProtected == true)
|
||||||
|
// {
|
||||||
|
// mProtectLogChkBx->setCheckState(Qt::Checked);
|
||||||
|
// }
|
||||||
|
// else
|
||||||
|
// {
|
||||||
|
// mProtectLogChkBx->setCheckState(Qt::Unchecked);
|
||||||
|
// }
|
||||||
|
|
||||||
|
// QString Problem = "N/A";
|
||||||
|
// if(ZT2LogElement->mFlags.mIsProblematicPassage == 1)
|
||||||
|
// {
|
||||||
|
// Problem = "OUI";
|
||||||
|
// }
|
||||||
|
// else if(ZT2LogElement->mFlags.mIsProblematicPassage == 0)
|
||||||
|
// {
|
||||||
|
// Problem = "NON";
|
||||||
|
// }
|
||||||
|
//// Summary.sprintf("Statistiques du passage:\n\nDate: %s\nHeure: %s\nZone Test: ZT2\nNombre d'éléments: %d\nProblématique: %s\n\n\n\nDéclenchements: \n",
|
||||||
|
//// ZT2LogElement->mPassageDateTime.toString("yyyy/MM/dd").toAscii().data(),
|
||||||
|
//// ZT2LogElement->mPassageDateTime.toString("hh:mm:ss").toAscii().data(),
|
||||||
|
//// ZT2LogElement->mNbElements,
|
||||||
|
//// Problem.toAscii().data());
|
||||||
|
|
||||||
|
// QString TrainType = CZTData::GetModbusTrainTypeString(ZT2LogElement->mFlags.mModbusTrainType);
|
||||||
|
|
||||||
|
// QString TrainCompo = "Non Disponible";
|
||||||
|
// if(ZT2LogElement->mFlags.mTrainCompo1 != 0)
|
||||||
|
// {
|
||||||
|
// TrainCompo = QString("%1-%2-%3").arg(ZT2LogElement->mFlags.mTrainCompo1)\
|
||||||
|
// .arg(ZT2LogElement->mFlags.mTrainCompo2)
|
||||||
|
// .arg(ZT2LogElement->mFlags.mTrainCompo3);
|
||||||
|
// }
|
||||||
|
|
||||||
|
// Summary = QString("Passage:\n\nDate: %1\nHeure: %2\nZone Test : ZT2\nTrain : %3\nCompo: %6\nNombre d'éléments: %4\nProblématique: %5\n\n\nDéclenchements: \n")\
|
||||||
|
// .arg(ZT2LogElement->mPassageDateTime.toString("yyyy/MM/dd"))\
|
||||||
|
// .arg(ZT2LogElement->mPassageDateTime.toString("hh:mm:ss"))\
|
||||||
|
// .arg(TrainType)\
|
||||||
|
// .arg(ZT2LogElement->mNbElements)\
|
||||||
|
// .arg(Problem)
|
||||||
|
// .arg(TrainCompo);
|
||||||
|
|
||||||
|
// if(ZT2LogElement->mZTDetections.size() > 0)
|
||||||
|
// {
|
||||||
|
// for(int i = 0; i < ZT2LogElement->mZTDetections.size(); i++)
|
||||||
|
// {
|
||||||
|
// QString temp;
|
||||||
|
// temp.sprintf("%s au rang %d\n",CZTData::GetErrorString(ZT2LogElement->mZTDetections.at(i)->mDetectionID),ZT2LogElement->mZTDetections.at(i)->mRank);
|
||||||
|
// Summary += temp;
|
||||||
|
// if(i >= MAX_DETECTION_LIST_NBR-1)
|
||||||
|
// {
|
||||||
|
// temp = "- Autres déclenchements non affichés -";
|
||||||
|
// Summary += temp;
|
||||||
|
// break;
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// else
|
||||||
|
// Summary += "Aucun déclenchement";
|
||||||
|
|
||||||
|
// }
|
||||||
|
// mSummaryText->setPlainText(Summary);
|
||||||
|
|
||||||
|
CLogElement* Element = mLogMgrHandle->LoadLogData(LogsList->at(ItemIndex));
|
||||||
|
mProgramHandle->LogViewRequest(Element,this);
|
||||||
|
mLogMgrHandle->FreeLogData(Element);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
int CLogsListPage::UpdateSummaryText(CLogElement *Element)
|
||||||
|
{
|
||||||
|
float MeanSpeed = 0.0;
|
||||||
|
QString Summary;
|
||||||
|
if(Element->mZTLogType == ZT1_LOG_TYPE)
|
||||||
{
|
{
|
||||||
// //CZT1LogElement *ZT1LogElement = (CZT1LogElement*) LogsList->at(row);
|
// //CZT1LogElement *ZT1LogElement = (CZT1LogElement*) LogsList->at(row);
|
||||||
CZT1LogElement *ZT1LogElement = (CZT1LogElement*) LogsList->at(ItemIndex);
|
CZT1LogElement *ZT1LogElement = (CZT1LogElement*) Element;
|
||||||
|
|
||||||
if(ZT1LogElement->mFileProtected == true)
|
if(ZT1LogElement->mFileProtected == true)
|
||||||
{
|
{
|
||||||
@ -513,7 +821,7 @@ void CLogsListPage::LogsTableCellClicked(int row, int column)
|
|||||||
{
|
{
|
||||||
Problem = "NON";
|
Problem = "NON";
|
||||||
}
|
}
|
||||||
MeanSpeed = ZT1LogElement->mMeanSpeed;
|
MeanSpeed = ZT1LogElement->mMeanSpeed;
|
||||||
|
|
||||||
QString TrainType = CZTData::GetModbusTrainTypeString(ZT1LogElement->mFlags.mModbusTrainType);
|
QString TrainType = CZTData::GetModbusTrainTypeString(ZT1LogElement->mFlags.mModbusTrainType);
|
||||||
if(TrainType == "Inconnu")
|
if(TrainType == "Inconnu")
|
||||||
@ -555,16 +863,16 @@ void CLogsListPage::LogsTableCellClicked(int row, int column)
|
|||||||
for(int i = 0; i < ZT1LogElement->mZTDetections.size(); i++)
|
for(int i = 0; i < ZT1LogElement->mZTDetections.size(); i++)
|
||||||
{
|
{
|
||||||
QString temp;
|
QString temp;
|
||||||
if(ZT1LogElement->mZTDetections.at(i)->mDetectionID == DETECTION_FN_DETECTION)
|
if(ZT1LogElement->mZTDetections.at(i)->mDetectionID == DETECTION_FN_DETECTION)
|
||||||
{
|
{
|
||||||
temp.sprintf("%s au bogie %d\n",CZTData::GetErrorString(ZT1LogElement->mZTDetections.at(i)->mDetectionID),ZT1LogElement->mZTDetections.at(i)->mRank);
|
temp.sprintf("%s au bogie %d\n",CZTData::GetErrorString(ZT1LogElement->mZTDetections.at(i)->mDetectionID),ZT1LogElement->mZTDetections.at(i)->mRank);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
temp.sprintf("%s au rang %d\n",CZTData::GetErrorString(ZT1LogElement->mZTDetections.at(i)->mDetectionID),ZT1LogElement->mZTDetections.at(i)->mRank);
|
temp.sprintf("%s au rang %d\n",CZTData::GetErrorString(ZT1LogElement->mZTDetections.at(i)->mDetectionID),ZT1LogElement->mZTDetections.at(i)->mRank);
|
||||||
}
|
}
|
||||||
Summary += temp;
|
Summary += temp;
|
||||||
if(i >= MAX_DETECTION_LIST_NBR - 1)
|
if(i >= MAX_DETECTION_LIST_NBR - 1)
|
||||||
{
|
{
|
||||||
temp = " - Autres déclenchements non affichés -";
|
temp = " - Autres déclenchements non affichés -";
|
||||||
Summary += temp;
|
Summary += temp;
|
||||||
@ -576,10 +884,10 @@ void CLogsListPage::LogsTableCellClicked(int row, int column)
|
|||||||
Summary += "Aucun déclenchement";
|
Summary += "Aucun déclenchement";
|
||||||
}
|
}
|
||||||
//else if(LogsList->at(row)->mZTLogType == ZT2_LOG_TYPE)
|
//else if(LogsList->at(row)->mZTLogType == ZT2_LOG_TYPE)
|
||||||
else if(LogsList->at(ItemIndex)->mZTLogType == ZT2_LOG_TYPE)
|
else if(Element->mZTLogType == ZT2_LOG_TYPE)
|
||||||
{
|
{
|
||||||
//CZT2LogElement *ZT2LogElement = (CZT2LogElement*) LogsList->at(row);
|
//CZT2LogElement *ZT2LogElement = (CZT2LogElement*) LogsList->at(row);
|
||||||
CZT2LogElement *ZT2LogElement = (CZT2LogElement*) LogsList->at(ItemIndex);
|
CZT2LogElement *ZT2LogElement = (CZT2LogElement*) Element;
|
||||||
|
|
||||||
if(ZT2LogElement->mFileProtected == true)
|
if(ZT2LogElement->mFileProtected == true)
|
||||||
{
|
{
|
||||||
@ -630,7 +938,7 @@ void CLogsListPage::LogsTableCellClicked(int row, int column)
|
|||||||
QString temp;
|
QString temp;
|
||||||
temp.sprintf("%s au rang %d\n",CZTData::GetErrorString(ZT2LogElement->mZTDetections.at(i)->mDetectionID),ZT2LogElement->mZTDetections.at(i)->mRank);
|
temp.sprintf("%s au rang %d\n",CZTData::GetErrorString(ZT2LogElement->mZTDetections.at(i)->mDetectionID),ZT2LogElement->mZTDetections.at(i)->mRank);
|
||||||
Summary += temp;
|
Summary += temp;
|
||||||
if(i >= MAX_DETECTION_LIST_NBR-1)
|
if(i >= MAX_DETECTION_LIST_NBR-1)
|
||||||
{
|
{
|
||||||
temp = "- Autres déclenchements non affichés -";
|
temp = "- Autres déclenchements non affichés -";
|
||||||
Summary += temp;
|
Summary += temp;
|
||||||
@ -643,11 +951,7 @@ void CLogsListPage::LogsTableCellClicked(int row, int column)
|
|||||||
|
|
||||||
}
|
}
|
||||||
mSummaryText->setPlainText(Summary);
|
mSummaryText->setPlainText(Summary);
|
||||||
|
return RET_OK;
|
||||||
CLogElement* Element = mLogMgrHandle->LoadLogData(LogsList->at(ItemIndex));
|
|
||||||
mProgramHandle->LogViewRequest(Element,this);
|
|
||||||
mLogMgrHandle->FreeLogData(Element);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void CLogsListPage::StationFilterSelected(int Index)
|
void CLogsListPage::StationFilterSelected(int Index)
|
||||||
@ -852,3 +1156,396 @@ void CLogsListPage::TableDoubleClicked(int row, int col)
|
|||||||
Q_UNUSED(row)
|
Q_UNUSED(row)
|
||||||
// ButtonClicked(mViewLogDataButton);
|
// ButtonClicked(mViewLogDataButton);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void CLogsListPage::LogsTreeItemExpanded(QTreeWidgetItem *item)
|
||||||
|
{
|
||||||
|
CTreeItemInfo *ItemInfo = (CTreeItemInfo*)item->data(0,Qt::UserRole).value<void*>();
|
||||||
|
if(ItemInfo)
|
||||||
|
{
|
||||||
|
|
||||||
|
switch(ItemInfo->TreeItemType)
|
||||||
|
{
|
||||||
|
case TREE_ITEM_STATION_TYPE:
|
||||||
|
{
|
||||||
|
qDebug("%s",qPrintable(ItemInfo->TreeItemPath));
|
||||||
|
|
||||||
|
//delete all tree
|
||||||
|
qDebug("Deleting tree");
|
||||||
|
while(item->childCount() > 0) //delete directories branch
|
||||||
|
{
|
||||||
|
QTreeWidgetItem *DirItem = item->takeChild(0);
|
||||||
|
|
||||||
|
while(DirItem->childCount() > 0) //delete logs list
|
||||||
|
{
|
||||||
|
QTreeWidgetItem *LogItem = DirItem->takeChild(0);
|
||||||
|
CTreeItemInfo *Info = (CTreeItemInfo*)LogItem->data(0,Qt::UserRole).value<void*>();
|
||||||
|
if(Info)
|
||||||
|
delete Info;
|
||||||
|
// DirItem->removeChild(LogItem);
|
||||||
|
}
|
||||||
|
|
||||||
|
CTreeItemInfo *Info = (CTreeItemInfo*)DirItem->data(0,Qt::UserRole).value<void*>();
|
||||||
|
if(Info)
|
||||||
|
delete Info;
|
||||||
|
|
||||||
|
// item->removeChild(DirItem);
|
||||||
|
}
|
||||||
|
|
||||||
|
qDebug("Tree deleted. Populating data");
|
||||||
|
CTreeItemInfo *Info = (CTreeItemInfo*)item->data(0,Qt::UserRole).value<void*>();
|
||||||
|
if(Info)
|
||||||
|
{
|
||||||
|
PopulateDirectoriesTreeBranch(item,Info->TreeItemPath);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
qDebug("Invalid path in station tree item...");
|
||||||
|
}
|
||||||
|
|
||||||
|
mLogFilesTree->resizeColumnToContents(0);
|
||||||
|
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case TREE_ITEM_DIR_TYPE:
|
||||||
|
{
|
||||||
|
|
||||||
|
qDebug("Deleting %d log items",item->childCount());
|
||||||
|
while(item->childCount() > 0) //delete log items
|
||||||
|
{
|
||||||
|
QTreeWidgetItem *LogItem = item->takeChild(0);
|
||||||
|
CTreeItemInfo *Info = (CTreeItemInfo*)LogItem->data(0,Qt::UserRole).value<void*>();
|
||||||
|
if(Info)
|
||||||
|
delete Info;
|
||||||
|
|
||||||
|
delete LogItem;
|
||||||
|
//item->removeChild(LogItem);
|
||||||
|
}
|
||||||
|
|
||||||
|
qDebug("Logs deleted. Populating data");
|
||||||
|
CTreeItemInfo *Info = (CTreeItemInfo*)item->data(0,Qt::UserRole).value<void*>();
|
||||||
|
if(Info)
|
||||||
|
{
|
||||||
|
PopulateLogFilesTreeBranch(item,Info->TreeItemPath);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
qDebug("Invalid path in station tree item...");
|
||||||
|
}
|
||||||
|
|
||||||
|
qDebug("Data populated...");
|
||||||
|
mLogFilesTree->resizeColumnToContents(0);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case TREE_ITEM_LOGFILE_TYPE:
|
||||||
|
{
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void CLogsListPage::LogsTreeItemCollapsed(QTreeWidgetItem *item)
|
||||||
|
{
|
||||||
|
|
||||||
|
if(item->parent())
|
||||||
|
{
|
||||||
|
mLogFilesTree->setCurrentItem(item->parent());
|
||||||
|
}
|
||||||
|
|
||||||
|
CTreeItemInfo *ItemInfo = (CTreeItemInfo*)item->data(0,Qt::UserRole).value<void*>();
|
||||||
|
if(ItemInfo)
|
||||||
|
{
|
||||||
|
|
||||||
|
switch(ItemInfo->TreeItemType)
|
||||||
|
{
|
||||||
|
case TREE_ITEM_STATION_TYPE:
|
||||||
|
{
|
||||||
|
qDebug("%s",qPrintable(ItemInfo->TreeItemPath));
|
||||||
|
|
||||||
|
//delete all tree
|
||||||
|
qDebug("Deleting %d tree items",item->childCount());
|
||||||
|
while(item->childCount() > 0) //delete directories branch
|
||||||
|
{
|
||||||
|
QTreeWidgetItem *DirItem = item->takeChild(0);
|
||||||
|
|
||||||
|
qDebug("Deleting %d logs items",DirItem->childCount());
|
||||||
|
while(DirItem->childCount() > 0) //delete logs list
|
||||||
|
{
|
||||||
|
// qDebug("Taking child");
|
||||||
|
QTreeWidgetItem *LogItem = DirItem->takeChild(0);
|
||||||
|
CTreeItemInfo *Info = (CTreeItemInfo*)LogItem->data(0,Qt::UserRole).value<void*>();
|
||||||
|
// qDebug("Deleting info");
|
||||||
|
if(Info)
|
||||||
|
{
|
||||||
|
// qDebug("delete..");
|
||||||
|
delete Info;
|
||||||
|
}
|
||||||
|
// qDebug("Tree item deleted");
|
||||||
|
}
|
||||||
|
CTreeItemInfo *Info = (CTreeItemInfo*)DirItem->data(0,Qt::UserRole).value<void*>();
|
||||||
|
if(Info)
|
||||||
|
delete Info;
|
||||||
|
|
||||||
|
// item->removeChild(DirItem);
|
||||||
|
}
|
||||||
|
|
||||||
|
qDebug("Tree deleted.");
|
||||||
|
item->addChild(new QTreeWidgetItem(QStringList() << "VIDE")); //add an empty item
|
||||||
|
|
||||||
|
mLogFilesTree->resizeColumnToContents(0);
|
||||||
|
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case TREE_ITEM_DIR_TYPE:
|
||||||
|
{
|
||||||
|
|
||||||
|
qDebug("Deleting %d log items",item->childCount());
|
||||||
|
while(item->childCount() > 0) //delete log items
|
||||||
|
{
|
||||||
|
// qDebug("Taking child");
|
||||||
|
QTreeWidgetItem *LogItem = item->takeChild(0);
|
||||||
|
CTreeItemInfo *Info = (CTreeItemInfo*)LogItem->data(0,Qt::UserRole).value<void*>();
|
||||||
|
// qDebug("Deleting info");
|
||||||
|
if(Info)
|
||||||
|
{
|
||||||
|
// qDebug("delete..");
|
||||||
|
delete Info;
|
||||||
|
}
|
||||||
|
// qDebug("Tree item deleted");
|
||||||
|
|
||||||
|
delete LogItem;
|
||||||
|
}
|
||||||
|
|
||||||
|
qDebug("Logs deleted.");
|
||||||
|
item->addChild(new QTreeWidgetItem(QStringList() << "VIDE")); //add an empty item
|
||||||
|
|
||||||
|
mLogFilesTree->resizeColumnToContents(1);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case TREE_ITEM_LOGFILE_TYPE:
|
||||||
|
{
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
int CLogsListPage::PopulateDirectoriesTreeBranch(QTreeWidgetItem *parent, QString Path)
|
||||||
|
{
|
||||||
|
QDir Directory(Path);
|
||||||
|
QFileInfoList DirList = Directory.entryInfoList(QDir::Dirs|QDir::NoDotAndDotDot);
|
||||||
|
if(DirList.isEmpty())
|
||||||
|
{
|
||||||
|
parent->addChild(new QTreeWidgetItem(QStringList() << "VIDE")); //add an empty item
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
for(int i = 0; i < DirList.size(); i++)
|
||||||
|
{
|
||||||
|
QTreeWidgetItem *NewDirItem = new QTreeWidgetItem(QStringList() << DirList.at(i).fileName());
|
||||||
|
CTreeItemInfo* ItemInfo = new CTreeItemInfo;
|
||||||
|
ItemInfo->TreeItemType = TREE_ITEM_DIR_TYPE;
|
||||||
|
ItemInfo->TreeItemPath = DirList.at(i).absoluteFilePath();
|
||||||
|
NewDirItem->setData(0,Qt::UserRole,QVariant::fromValue((void*)ItemInfo));
|
||||||
|
NewDirItem->addChild(new QTreeWidgetItem(QStringList() << "VIDE")); //add an empty item
|
||||||
|
parent->addChild(NewDirItem);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
int CLogsListPage::PopulateLogFilesTreeBranch(QTreeWidgetItem *parent, QString Path)
|
||||||
|
{
|
||||||
|
QDir Directory(Path);
|
||||||
|
QFileInfoList DirList = Directory.entryInfoList(QDir::Files|QDir::NoDotAndDotDot);
|
||||||
|
bool ShowZT1Items = (mShowZT1ItemsChkBx->checkState() == Qt::Checked);
|
||||||
|
bool ShowZT2Items = (mShowZT2ItemsChkBx->checkState() == Qt::Checked);
|
||||||
|
bool ShowNoDetections = (mShowNoDetectionsChkBx->checkState() == Qt::Checked);
|
||||||
|
bool LoadLogDetails = (mLoadTreeLogDetails->checkState() == Qt::Checked);
|
||||||
|
|
||||||
|
float LoadingPercent = 0.0;
|
||||||
|
int Size;
|
||||||
|
|
||||||
|
if(DirList.isEmpty())
|
||||||
|
{
|
||||||
|
parent->addChild(new QTreeWidgetItem(QStringList() << "VIDE")); //add an empty item
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Size = DirList.size();
|
||||||
|
for(int i = 0; i < Size; i++)
|
||||||
|
{
|
||||||
|
LoadingPercent = (float)(i+1)/(float)Size;
|
||||||
|
LoadingPercent *= 100;
|
||||||
|
mTreeLoadingStatusLabel->setPlainText(QString("Chargement:%1\%").arg(LoadingPercent));
|
||||||
|
|
||||||
|
// QApplication::processEvents();
|
||||||
|
CTreeItemInfo* ItemInfo = new CTreeItemInfo;
|
||||||
|
ItemInfo->TreeItemType = TREE_ITEM_LOGFILE_TYPE;
|
||||||
|
ItemInfo->TreeItemPath = DirList.at(i).filePath();
|
||||||
|
|
||||||
|
QStringList ItemData;
|
||||||
|
if(DirList.at(i).suffix() == "bin")
|
||||||
|
{
|
||||||
|
if(LoadLogDetails == true)
|
||||||
|
{
|
||||||
|
unsigned int ret;
|
||||||
|
CLogElement* Element = CTrainLogFileMgr::instance()->OpenTrainLog(ItemInfo->TreeItemPath,ret);
|
||||||
|
if(ret == RET_OK)
|
||||||
|
{
|
||||||
|
if(Element->mZTLogType == ZT1_LOG_TYPE && ShowZT1Items == true)
|
||||||
|
{
|
||||||
|
CZT1LogElement *ZT1Element = (CZT1LogElement*)Element;
|
||||||
|
if(!(ShowNoDetections == false && ZT1Element->mZTDetections.size() == 0))
|
||||||
|
{
|
||||||
|
ItemData.append(ZT1Element->mPassageDateTime.toString("yyyy/MM/dd - hh:mm:ss"));
|
||||||
|
ItemData.append(QString("%1").arg(ZT1Element->mZTDetections.size()));
|
||||||
|
ItemData.append("ZT1");
|
||||||
|
ItemData.append(QString("%1-%2-%3").arg(ZT1Element->mFlags.mTrainCompo1).arg(ZT1Element->mFlags.mTrainCompo2).arg(ZT1Element->mFlags.mTrainCompo3));
|
||||||
|
QTreeWidgetItem *NewDirItem = new QTreeWidgetItem(QStringList(ItemData));
|
||||||
|
NewDirItem->setData(0,Qt::UserRole,QVariant::fromValue((void*)ItemInfo));
|
||||||
|
parent->addChild(NewDirItem);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if(Element->mZTLogType == ZT2_LOG_TYPE && ShowZT2Items == true)
|
||||||
|
{
|
||||||
|
CZT2LogElement *ZT2Element = (CZT2LogElement*)Element;
|
||||||
|
if(!(ShowNoDetections == false && ZT2Element->mZTDetections.size() == 0))
|
||||||
|
{
|
||||||
|
ItemData.append(ZT2Element->mPassageDateTime.toString("yyyy/MM/dd - hh:mm:ss"));
|
||||||
|
ItemData.append(QString("%1").arg(ZT2Element->mZTDetections.size()));
|
||||||
|
ItemData.append("ZT2");
|
||||||
|
ItemData.append(QString("%1-%2-%3").arg(ZT2Element->mFlags.mTrainCompo1).arg(ZT2Element->mFlags.mTrainCompo2).arg(ZT2Element->mFlags.mTrainCompo3));
|
||||||
|
QTreeWidgetItem *NewDirItem = new QTreeWidgetItem(QStringList(ItemData));
|
||||||
|
NewDirItem->setData(0,Qt::UserRole,QVariant::fromValue((void*)ItemInfo));
|
||||||
|
parent->addChild(NewDirItem);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
delete Element;
|
||||||
|
}
|
||||||
|
|
||||||
|
else
|
||||||
|
{
|
||||||
|
ItemData.append(DirList.at(i).baseName());
|
||||||
|
QTreeWidgetItem *NewDirItem = new QTreeWidgetItem(QStringList(ItemData));
|
||||||
|
NewDirItem->setData(0,Qt::UserRole,QVariant::fromValue((void*)ItemInfo));
|
||||||
|
parent->addChild(NewDirItem);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
|
||||||
|
QTreeWidgetItem *NewDirItem = new QTreeWidgetItem(QStringList() << DirList.at(i).baseName());
|
||||||
|
NewDirItem->setData(0,Qt::UserRole,QVariant::fromValue((void*)ItemInfo));
|
||||||
|
parent->addChild(NewDirItem);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if(DirList.at(i).suffix() == "txt")
|
||||||
|
{
|
||||||
|
QTreeWidgetItem *NewDirItem = new QTreeWidgetItem(QStringList() << DirList.at(i).fileName());
|
||||||
|
NewDirItem->setData(0,Qt::UserRole,QVariant::fromValue((void*)ItemInfo));
|
||||||
|
parent->addChild(NewDirItem);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
delete ItemInfo;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(parent->childCount() == 0)
|
||||||
|
{
|
||||||
|
parent->addChild(new QTreeWidgetItem(QStringList() << "VIDE")); //add an empty item
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void CLogsListPage::LogsTreeItemSelected()
|
||||||
|
{
|
||||||
|
QTreeWidgetItem* Selection = mLogFilesTree->selectedItems().at(0);
|
||||||
|
if(Selection)
|
||||||
|
{
|
||||||
|
CTreeItemInfo *Info = (CTreeItemInfo*)Selection->data(0,Qt::UserRole).value<void*>();
|
||||||
|
if(Info)
|
||||||
|
{
|
||||||
|
if(Info->TreeItemType == TREE_ITEM_LOGFILE_TYPE)
|
||||||
|
{
|
||||||
|
QFileInfo FileInfo(Info->TreeItemPath);
|
||||||
|
if(FileInfo.suffix() == "bin")
|
||||||
|
{
|
||||||
|
unsigned int ret;
|
||||||
|
CLogElement* Element = CTrainLogFileMgr::instance()->OpenTrainLog(Info->TreeItemPath,ret,0,true);
|
||||||
|
if(ret == RET_OK)
|
||||||
|
{UpdateSummaryText(Element);
|
||||||
|
mProgramHandle->LogViewRequest(Element,this);
|
||||||
|
mLogMgrHandle->FreeLogData(Element);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void CLogsListPage::TableLogsViewModeSelected(CPushButton *Btb)
|
||||||
|
{
|
||||||
|
mLogListTableProxy->show();
|
||||||
|
mLogsTreeProxy->hide();
|
||||||
|
|
||||||
|
mShowFNChkBx->show();
|
||||||
|
mShowCountChkBx->show();
|
||||||
|
mShowPGChkBx->show();
|
||||||
|
mShowPPChkBx->show();
|
||||||
|
mShowMPM10ChkBx->show();
|
||||||
|
mShowMRChkBx->show();
|
||||||
|
mShowProblematicTrainsChkbx->show();
|
||||||
|
mStationsFilterComboBox->show();
|
||||||
|
mViewZTLogBtn->show();
|
||||||
|
mProtectLogChkBx->show();
|
||||||
|
mLoadTreeLogDetails->hide();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void CLogsListPage::TreeLogsViewModeSelected(CPushButton *Btn)
|
||||||
|
{
|
||||||
|
mLogListTableProxy->hide();
|
||||||
|
mLogsTreeProxy->show();
|
||||||
|
|
||||||
|
mShowFNChkBx->hide();
|
||||||
|
mShowCountChkBx->hide();
|
||||||
|
mShowPGChkBx->hide();
|
||||||
|
mShowPPChkBx->hide();
|
||||||
|
mShowMPM10ChkBx->hide();
|
||||||
|
mShowMRChkBx->hide();
|
||||||
|
mShowProblematicTrainsChkbx->hide();
|
||||||
|
mStationsFilterComboBox->hide();
|
||||||
|
mViewZTLogBtn->hide();
|
||||||
|
mProtectLogChkBx->hide();
|
||||||
|
mLoadTreeLogDetails->show();
|
||||||
|
}
|
||||||
|
|
||||||
|
void CLogsListPage::LogsTreeItemDoubleClicked(QTreeWidgetItem *item)
|
||||||
|
{
|
||||||
|
CTreeItemInfo *Info = (CTreeItemInfo*)item->data(0,Qt::UserRole).value<void*>();
|
||||||
|
if(Info)
|
||||||
|
{
|
||||||
|
if(Info->TreeItemType == TREE_ITEM_LOGFILE_TYPE)
|
||||||
|
{
|
||||||
|
QFileInfo FileInfo(Info->TreeItemPath);
|
||||||
|
if(FileInfo.suffix() == "txt")
|
||||||
|
{
|
||||||
|
QFile *LogFile = new QFile(FileInfo.filePath());
|
||||||
|
if(LogFile)
|
||||||
|
{
|
||||||
|
if(LogFile->open(QIODevice::ReadOnly | QIODevice::Text | QIODevice::Unbuffered) == true)
|
||||||
|
{
|
||||||
|
QString LogText(LogFile->readAll());
|
||||||
|
mProgramHandle->ShowZTLogRequest(LogText,0,-1);
|
||||||
|
LogFile->close();
|
||||||
|
}
|
||||||
|
delete LogFile;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
@ -39,11 +39,29 @@
|
|||||||
#include <QTableWidget>
|
#include <QTableWidget>
|
||||||
#include <QCheckBox>
|
#include <QCheckBox>
|
||||||
#include <QComboBox>
|
#include <QComboBox>
|
||||||
|
#include <QTreeWidget>
|
||||||
|
|
||||||
#define MAX_DETECTION_LIST_NBR 6
|
#define MAX_DETECTION_LIST_NBR 6
|
||||||
|
//#define NETWORK_LOGS_BASE_PATH "S:\\EEF\\TCPE\\72410\\72410\\BD ZT\\Logs_Reseau\\"
|
||||||
|
#define NETWORK_LOGS_BASE_PATH "D:\\Main\\Fichiers\\JOB\\OutilZT_Direct\\trains\\"
|
||||||
|
|
||||||
|
|
||||||
class COutilZT;
|
class COutilZT;
|
||||||
|
|
||||||
|
enum eTreeItemType
|
||||||
|
{
|
||||||
|
TREE_ITEM_STATION_TYPE,
|
||||||
|
TREE_ITEM_DIR_TYPE,
|
||||||
|
TREE_ITEM_LOGFILE_TYPE
|
||||||
|
};
|
||||||
|
|
||||||
|
class CTreeItemInfo
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
int TreeItemType;
|
||||||
|
QString TreeItemPath;
|
||||||
|
};
|
||||||
|
|
||||||
class CLogsListPage : public CGuiPage
|
class CLogsListPage : public CGuiPage
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
@ -65,25 +83,34 @@ public:
|
|||||||
private:
|
private:
|
||||||
|
|
||||||
QTableWidget *mLogsTable;
|
QTableWidget *mLogsTable;
|
||||||
|
QTreeWidget *mLogFilesTree;
|
||||||
QGraphicsTextItem *mSummaryText;
|
QGraphicsTextItem *mSummaryText;
|
||||||
CTextButtonWidget *mViewLogDataButton;
|
CTextButtonWidget *mViewLogDataButton;
|
||||||
CTextButtonWidget *mExportCSVLogButton;
|
CTextButtonWidget *mExportCSVLogButton;
|
||||||
|
QGraphicsProxyWidget *mLogListTableProxy, *mLogsTreeProxy;
|
||||||
|
|
||||||
QCheckBox *mShowZT1ItemsChkBx, *mShowZT2ItemsChkBx, *mShowNoDetectionsChkBx;
|
QCheckBox *mShowZT1ItemsChkBx, *mShowZT2ItemsChkBx, *mShowNoDetectionsChkBx;
|
||||||
QCheckBox *mShowFNChkBx, *mShowCountChkBx, *mShowPGChkBx, *mShowPPChkBx,*mShowMPM10ChkBx, *mShowMRChkBx, *mShowProblematicTrainsChkbx;//, *mShowAllChkBx;
|
QCheckBox *mShowFNChkBx, *mShowCountChkBx, *mShowPGChkBx, *mShowPPChkBx,*mShowMPM10ChkBx, *mShowMRChkBx, *mShowProblematicTrainsChkbx;//, *mShowAllChkBx;
|
||||||
|
QCheckBox *mLoadTreeLogDetails;
|
||||||
|
QGraphicsTextItem *mTreeLoadingStatusLabel;
|
||||||
|
|
||||||
QTimer *mListParsingTimer;
|
QTimer *mListParsingTimer;
|
||||||
QComboBox *mStationsFilterComboBox;
|
QComboBox *mStationsFilterComboBox;
|
||||||
|
|
||||||
QString mStationFilter;
|
QString mStationFilter;
|
||||||
|
|
||||||
CPushButton *mViewZTLogBtn, *mSaveCSVLogBtn,*mDeleteFileButton;
|
CPushButton *mViewZTLogBtn, *mSaveCSVLogBtn,*mDeleteFileButton, *mLogsTreeMode, *mLogsTableMode;
|
||||||
QCheckBox *mProtectLogChkBx;
|
QCheckBox *mProtectLogChkBx;
|
||||||
|
QString mNetworkBasePath;
|
||||||
|
|
||||||
//bool mShowZT1Items,mShowZT2Items,mShowNoDetections,mUSBDetected;
|
//bool mShowZT1Items,mShowZT2Items,mShowNoDetections,mUSBDetected;
|
||||||
|
|
||||||
void ClearTable();
|
void ClearTable();
|
||||||
|
|
||||||
|
int PopulateDirectoriesTreeBranch(QTreeWidgetItem *parent, QString Path);
|
||||||
|
int PopulateLogFilesTreeBranch(QTreeWidgetItem *parent, QString Path);
|
||||||
|
|
||||||
|
int UpdateSummaryText(CLogElement* Element);
|
||||||
|
|
||||||
|
|
||||||
public slots:
|
public slots:
|
||||||
@ -97,8 +124,17 @@ public slots:
|
|||||||
void SaveCSVLogBtnClicked(CPushButton *);
|
void SaveCSVLogBtnClicked(CPushButton *);
|
||||||
void DeleteSelectedLog(CPushButton*);
|
void DeleteSelectedLog(CPushButton*);
|
||||||
void ProtectLogCheckBoxClicked();
|
void ProtectLogCheckBoxClicked();
|
||||||
|
void TreeLogsViewModeSelected(CPushButton*);
|
||||||
|
void TableLogsViewModeSelected(CPushButton*);
|
||||||
|
|
||||||
|
void LogsTreeItemExpanded(QTreeWidgetItem *item);
|
||||||
|
void LogsTreeItemDoubleClicked(QTreeWidgetItem *item);
|
||||||
|
void LogsTreeItemCollapsed(QTreeWidgetItem *item);
|
||||||
|
void LogsTreeItemSelected();
|
||||||
// void ParsingTimerExipred();
|
// void ParsingTimerExipred();
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#endif // LOGSLISTPAGE_H
|
#endif // LOGSLISTPAGE_H
|
||||||
|
|||||||
@ -57,29 +57,29 @@ CMainPage::CMainPage(QGraphicsWidget *Parent)
|
|||||||
// mTimeDisplayText->setZValue(1);
|
// mTimeDisplayText->setZValue(1);
|
||||||
|
|
||||||
mDatabaseModePushButton = new CPushButton(this,"./Images/Save-icon.png");
|
mDatabaseModePushButton = new CPushButton(this,"./Images/Save-icon.png");
|
||||||
mDatabaseModePushButton->setPos(10,10);
|
mDatabaseModePushButton->setPos(5,5);
|
||||||
mDatabaseModePushButton->resize(50,50);
|
mDatabaseModePushButton->resize(35,35);
|
||||||
connect( mDatabaseModePushButton, SIGNAL( clicked(CPushButton*) ), this, SLOT(ButtonPressed(CPushButton*) ) );
|
connect( mDatabaseModePushButton, SIGNAL( clicked(CPushButton*) ), this, SLOT(ButtonPressed(CPushButton*) ) );
|
||||||
|
|
||||||
mNetworkModePushButton = new CPushButton(this,"./Images/ethernet.png");
|
mNetworkModePushButton = new CPushButton(this,"./Images/ethernet.png");
|
||||||
mNetworkModePushButton->setPos(10,150);
|
mNetworkModePushButton->setPos(5,150);
|
||||||
mNetworkModePushButton->resize(50,50);
|
mNetworkModePushButton->resize(35,35);
|
||||||
connect( mNetworkModePushButton, SIGNAL( clicked(CPushButton*) ), this, SLOT(ButtonPressed(CPushButton*) ) );
|
connect( mNetworkModePushButton, SIGNAL( clicked(CPushButton*) ), this, SLOT(ButtonPressed(CPushButton*) ) );
|
||||||
mNetworkModePushButton->hide();
|
mNetworkModePushButton->hide();
|
||||||
|
|
||||||
mZTLogsListPushButton = new CPushButton(this,"./Images/log.png");
|
mZTLogsListPushButton = new CPushButton(this,"./Images/log.png");
|
||||||
mZTLogsListPushButton->setPos(10,80);
|
mZTLogsListPushButton->setPos(5,80);
|
||||||
mZTLogsListPushButton->resize(50,50);
|
mZTLogsListPushButton->resize(35,35);
|
||||||
connect( mZTLogsListPushButton, SIGNAL( clicked(CPushButton*) ), this, SLOT(ButtonPressed(CPushButton*) ) );
|
connect( mZTLogsListPushButton, SIGNAL( clicked(CPushButton*) ), this, SLOT(ButtonPressed(CPushButton*) ) );
|
||||||
|
|
||||||
mToolsPushButton = new CPushButton(this,"./Images/tools.png");
|
mToolsPushButton = new CPushButton(this,"./Images/tools.png");
|
||||||
mToolsPushButton->setPos(10,375);
|
mToolsPushButton->setPos(5,375);
|
||||||
mToolsPushButton->resize(50,50);
|
mToolsPushButton->resize(35,35);
|
||||||
connect( mToolsPushButton, SIGNAL( clicked(CPushButton*) ), this, SLOT(ButtonPressed(CPushButton*) ) );
|
connect( mToolsPushButton, SIGNAL( clicked(CPushButton*) ), this, SLOT(ButtonPressed(CPushButton*) ) );
|
||||||
|
|
||||||
mDatabaseOptionsPushButton = new CPushButton(this,"./Images/database.png");
|
mDatabaseOptionsPushButton = new CPushButton(this,"./Images/database.png");
|
||||||
mDatabaseOptionsPushButton->setPos(10,300);
|
mDatabaseOptionsPushButton->setPos(5,300);
|
||||||
mDatabaseOptionsPushButton->resize(50,50);
|
mDatabaseOptionsPushButton->resize(35,35);
|
||||||
connect( mDatabaseOptionsPushButton, SIGNAL( clicked(CPushButton*) ), this, SLOT(ButtonPressed(CPushButton*) ) );
|
connect( mDatabaseOptionsPushButton, SIGNAL( clicked(CPushButton*) ), this, SLOT(ButtonPressed(CPushButton*) ) );
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -139,7 +139,7 @@ Panel::Panel()
|
|||||||
mDatabaseModeLogViewPage->DisableCloseButton();
|
mDatabaseModeLogViewPage->DisableCloseButton();
|
||||||
mDatabaseModeLogViewPage->show();
|
mDatabaseModeLogViewPage->show();
|
||||||
|
|
||||||
mDatabaseModeLogListPage->setPos(100,0);
|
mDatabaseModeLogListPage->setPos(45,0);
|
||||||
mDatabaseModeLogListPage->resize(400,SCREEN_RES_HEIGHT-100);
|
mDatabaseModeLogListPage->resize(400,SCREEN_RES_HEIGHT-100);
|
||||||
mDatabaseModeLogListPage->setZValue(1);
|
mDatabaseModeLogListPage->setZValue(1);
|
||||||
mDatabaseModeLogListPage->show();
|
mDatabaseModeLogListPage->show();
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
#ifndef OUTILZTVERSION_H
|
#ifndef OUTILZTVERSION_H
|
||||||
#define OUTILZTVERSION_H
|
#define OUTILZTVERSION_H
|
||||||
|
|
||||||
#define SOFTWARE_VERSION "1.17"
|
#define SOFTWARE_VERSION "1.18"
|
||||||
|
|
||||||
//Suivi des versions
|
//Suivi des versions
|
||||||
//
|
//
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user