|
- #include "ConfigPage.h"
- #include "ui_ConfigPage.h"
- #include "LogsSorterConfigData.h"
- #include <QCheckBox>
- #include <QComboBox>
-
- #include "LogsSorter.h"
- #include "LogsSorterConfigData.h"
-
- CConfigPage::CConfigPage(QWidget *parent) :
- QDialog(parent),
- ui(new Ui::CConfigPage)
- {
- ui->setupUi(this);
-
- // FILTRE="ZT1" #test de commentaire
-
- // TYPE="DÉPLACER"
- // DESCRIPTION="Zone Test 1 Terminus Beaugrand"
- // PREFIXE="HBGR"
- // DESTINATION="D:\Main\Fichiers\JOB\LogsDump\ZT Beaugrand"
-
- setAutoFillBackground(true);
-
- ui->mConfigTable->setAutoFillBackground(true);
- ui->mConfigTable->setColumnCount(7);
- ui->mConfigTable->setHorizontalHeaderLabels(QStringList() << "Filtre" << "Type" << "Préfixe" << "Description" << "Destination" << "Séparer\nRépertoires" << "Actif");
- ui->mConfigTable->setSelectionBehavior(QAbstractItemView::SelectRows);
-
- ui->mConfigTable->horizontalHeaderItem(0)->setToolTip("Permet de déterminer le fichier LOG\nPar exemple 'BooleanData' identifie un fichier SEI\nUn fichier ne contenant aucun filtre dans son titre sera ignoré");
- ui->mConfigTable->horizontalHeaderItem(1)->setToolTip("Identifie le type de filtrage, attention à la syntaxe.\nL'option 'DÉPLACER' déplacera le fichier dans le répertoire de destination\nL'option 'EFFACER' détruit le fichier dans le répertoire source.\nNote:Le répertoire de destination est ignoré avec l'option 'EFFACER'");
- ui->mConfigTable->horizontalHeaderItem(2)->setToolTip("Préfixe ajouté lors du transfert du fichier afin d'identifier le lieu.\nCette chaîne de caractère sera retirée du nom lors de la copie vers le répertoire source.");
- ui->mConfigTable->horizontalHeaderItem(3)->setToolTip("Une simple description du filtre pour comprendre à quoi il sert.");
- ui->mConfigTable->horizontalHeaderItem(4)->setToolTip("Répertoire de destination lors du déplacement du fichier Log.\nCe paramètre est ignoré avec le type de filtre 'EFFACER'");
- ui->mConfigTable->horizontalHeaderItem(5)->setToolTip("Lorsque ce paramètre est coché, un sous-répertoire sera créé à chaque jour dans le répertoire de destination.\nUtile pour les source de logs très nombreux (comme la Zone Test)");
- ui->mConfigTable->horizontalHeaderItem(6)->setToolTip("Permet de désactiver un filtre sans avoir à l'effacer.\nUn filtre inactif est ignoré par le programme.");
-
- ui->mConfigTable->setRowCount(0);
- ui->mConfigTable->setSortingEnabled(true);
-
- connect(ui->mAddFilterBtn,&QPushButton::pressed,this,&CConfigPage::AddFilterBtnPressed);
- connect(ui->mDeleteFilterBtn,&QPushButton::pressed,this,&CConfigPage::DeleteFilterBtnPressed);
- connect(ui->mSaveBtn,&QPushButton::pressed,this,&CConfigPage::SaveConfigBtnPressed);
- connect(ui->mCancelBtn,&QPushButton::pressed,this,&CConfigPage::CancelBtnPressed);
- connect(ui->mCopyFilterBtn,&QPushButton::pressed,this,&CConfigPage::CopyFilterBtnPressed);
-
- }
-
- CConfigPage::~CConfigPage()
- {
- delete ui;
- }
-
- void CConfigPage::AddFilterBtnPressed()
- {
- ui->mConfigTable->setSortingEnabled(false);
- ui->mConfigTable->insertRow(0);
- QTableWidgetItem *NewItem;
-
- NewItem = new QTableWidgetItem("");
- ui->mConfigTable->setItem(0,0,NewItem);
- NewItem = new QTableWidgetItem("DÉPLACER");
- ui->mConfigTable->setItem(0,1,NewItem);
- NewItem = new QTableWidgetItem("");
- ui->mConfigTable->setItem(0,2,NewItem);
- NewItem = new QTableWidgetItem("");
- ui->mConfigTable->setItem(0,3,NewItem);
- NewItem = new QTableWidgetItem("");
- ui->mConfigTable->setItem(0,4,NewItem);
- ui->mConfigTable->setSortingEnabled(true);
-
- QCheckBox *CheckBx = new QCheckBox();
- ui->mConfigTable->setCellWidget(0,5,CheckBx);
-
- QComboBox *ComboBx = new QComboBox();
- ComboBx->insertItem(0,"ACTIF");
- ComboBx->insertItem(1,"INACTIF");
- ComboBx->setCurrentIndex(0);
- ui->mConfigTable->setCellWidget(0,6,ComboBx);
-
- }
-
- void CConfigPage::DeleteFilterBtnPressed()
- {
- ui->mConfigTable->removeRow(ui->mConfigTable->currentRow());
- }
-
- void CConfigPage::CancelBtnPressed()
- {
- InitializeConfigData(mProgramPtr->GetSorterConfigRequest());
- }
-
-
- void CConfigPage::SaveConfigBtnPressed()
- {
- CLogsSorterConfigData CurrentConfig;
-
- //TODO: Confirmer la validité des données avant tout
-
- CurrentConfig.mLogsSourceDirectory = ui->mSrcDirLineEdit->text();
-
- for(int i = 0; i < ui->mConfigTable->rowCount(); i++)
- {
- //"Filtre" << "Type" << "Préfixe" << "Description" << "Destination");
- CLogsFilterData FilterData;
-
- FilterData.mLogIdentificator = ui->mConfigTable->item(i,0)->text();
- FilterData.mLogPrefix = ui->mConfigTable->item(i,2)->text();
- FilterData.mFilterName = ui->mConfigTable->item(i,3)->text();
- FilterData.mLogDestination = ui->mConfigTable->item(i,4)->text();
-
- QCheckBox *ChkBx = (QCheckBox*) ui->mConfigTable->cellWidget(i,5);
- FilterData.mCreateDayDirectories = ChkBx->isChecked();
-
- QComboBox *ComboBx = (QComboBox*)ui->mConfigTable->cellWidget(i,6);
- if(ComboBx->currentIndex() == 0)
- {
- FilterData.mIsFilterActive = true;
- }
- else
- {
- FilterData.mIsFilterActive = false;
- }
-
- if(ui->mConfigTable->item(i,1)->text() == "DÉPLACER")
- {
- FilterData.mFilterOperation = CLogsFilterData::LOG_FILTER_MOVE_OPERATION_TYPE;
- }
- else if(ui->mConfigTable->item(i,1)->text() == "EFFACER")
- {
- FilterData.mFilterOperation = CLogsFilterData::LOG_FILTER_DELETE_OPERATION_TYPE;
- }
- else
- {
- //TODO: Ceci est une erreur... à gérer
- }
-
- CurrentConfig.mLogsFiltersList.append(FilterData);
- }
-
- mProgramPtr->SaveSorterConfigRequest(CurrentConfig);
-
-
- }
-
-
-
- void CConfigPage::InitializeConfigData(const CLogsSorterConfigData *DataStruct)
- {
- ui->mConfigTable->clearContents();
- ui->mConfigTable->setSortingEnabled(false);
- ui->mSrcDirLineEdit->setText(DataStruct->mLogsSourceDirectory);
-
- ui->mConfigTable->setRowCount(DataStruct->mLogsFiltersList.size());
- for(int i = 0; i < DataStruct->mLogsFiltersList.size(); i++)
- {
- QTableWidgetItem *NewItem;
-
-
- //"Filtre" << "Type" << "Préfixe" << "Description" << "Destination");
-
- NewItem = new QTableWidgetItem(DataStruct->mLogsFiltersList.at(i).mLogIdentificator);
- ui->mConfigTable->setItem(i,0,NewItem);
- if(DataStruct->mLogsFiltersList.at(i).mFilterOperation == CLogsFilterData::LOG_FILTER_MOVE_OPERATION_TYPE)
- {
- NewItem = new QTableWidgetItem("DÉPLACER");
- }
- if(DataStruct->mLogsFiltersList.at(i).mFilterOperation == CLogsFilterData::LOG_FILTER_DELETE_OPERATION_TYPE)
- {
- NewItem = new QTableWidgetItem("EFFACER");
- }
- ui->mConfigTable->setItem(i,1,NewItem);
- NewItem = new QTableWidgetItem(DataStruct->mLogsFiltersList.at(i).mLogPrefix);
- ui->mConfigTable->setItem(i,2,NewItem);
- NewItem = new QTableWidgetItem(DataStruct->mLogsFiltersList.at(i).mFilterName);
- ui->mConfigTable->setItem(i,3,NewItem);
- NewItem = new QTableWidgetItem(DataStruct->mLogsFiltersList.at(i).mLogDestination);
- ui->mConfigTable->setItem(i,4,NewItem);
-
- QCheckBox *CheckBx = new QCheckBox();
- CheckBx->setChecked(DataStruct->mLogsFiltersList.at(i).mCreateDayDirectories);
- ui->mConfigTable->setCellWidget(i,5,CheckBx);
-
- QComboBox *ComboBx = new QComboBox();
- ComboBx->insertItem(0,"ACTIF");
- ComboBx->insertItem(1,"INACTIF");
- if(DataStruct->mLogsFiltersList.at(i).mIsFilterActive == true)
- {
- ComboBx->setCurrentIndex(0);
- }
- else
- {
- ComboBx->setCurrentIndex(1);
- }
- ui->mConfigTable->setCellWidget(i,6,ComboBx);
- }
-
- ui->mConfigTable->resizeColumnsToContents();
- ui->mConfigTable->setSortingEnabled(true);
- }
-
- void CConfigPage::CopyFilterBtnPressed()
- {
- ui->mConfigTable->setSortingEnabled(false);
- ui->mConfigTable->insertRow(0);
- int row = ui->mConfigTable->currentRow();
-
- QTableWidgetItem *NewItem;
-
- NewItem = new QTableWidgetItem(*ui->mConfigTable->item(row,0));
- ui->mConfigTable->setItem(0,0,NewItem);
- NewItem = new QTableWidgetItem(*ui->mConfigTable->item(row,1));
- ui->mConfigTable->setItem(0,1,NewItem);
- NewItem = new QTableWidgetItem(*ui->mConfigTable->item(row,2));
- ui->mConfigTable->setItem(0,2,NewItem);
- NewItem = new QTableWidgetItem(*ui->mConfigTable->item(row,3));
- ui->mConfigTable->setItem(0,3,NewItem);
- NewItem = new QTableWidgetItem(*ui->mConfigTable->item(row,4));
- ui->mConfigTable->setItem(0,4,NewItem);
-
- QCheckBox *CheckBx = new QCheckBox();
- ui->mConfigTable->setCellWidget(0,5,CheckBx);
-
- QComboBox *ComboBx = (QComboBox*)ui->mConfigTable->cellWidget(row,6);
- int index = ComboBx->currentIndex();
- ComboBx = new QComboBox();
- ComboBx->insertItem(0,"ACTIF");
- ComboBx->insertItem(1,"INACTIF");
- ComboBx->setCurrentIndex(index);
- ui->mConfigTable->setCellWidget(0,6,ComboBx);
-
- ui->mConfigTable->setSortingEnabled(true);
-
- }
|