You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

174 regels
5.8 KiB

  1. #include "ConfigPage.h"
  2. #include "ui_ConfigPage.h"
  3. #include "LogsSorterConfigData.h"
  4. #include "LogsSorter.h"
  5. #include "LogsSorterConfigData.h"
  6. CConfigPage::CConfigPage(QWidget *parent) :
  7. QDialog(parent),
  8. ui(new Ui::CConfigPage)
  9. {
  10. ui->setupUi(this);
  11. // FILTRE="ZT1" #test de commentaire
  12. // TYPE="DÉPLACER"
  13. // DESCRIPTION="Zone Test 1 Terminus Beaugrand"
  14. // PREFIXE="HBGR"
  15. // DESTINATION="D:\Main\Fichiers\JOB\LogsDump\ZT Beaugrand"
  16. setAutoFillBackground(true);
  17. ui->mConfigTable->setAutoFillBackground(true);
  18. ui->mConfigTable->setColumnCount(5);
  19. ui->mConfigTable->setHorizontalHeaderLabels(QStringList() << "Filtre" << "Type" << "Préfixe" << "Description" << "Destination");
  20. ui->mConfigTable->setSelectionBehavior(QAbstractItemView::SelectRows);
  21. ui->mConfigTable->setRowCount(0);
  22. ui->mConfigTable->setSortingEnabled(true);
  23. connect(ui->mAddFilterBtn,&QPushButton::pressed,this,&CConfigPage::AddFilterBtnPressed);
  24. connect(ui->mDeleteFilterBtn,&QPushButton::pressed,this,&CConfigPage::DeleteFilterBtnPressed);
  25. connect(ui->mSaveBtn,&QPushButton::pressed,this,&CConfigPage::SaveConfigBtnPressed);
  26. connect(ui->mCancelBtn,&QPushButton::pressed,this,&CConfigPage::CancelBtnPressed);
  27. connect(ui->mCopyFilterBtn,&QPushButton::pressed,this,&CConfigPage::CopyFilterBtnPressed);
  28. }
  29. CConfigPage::~CConfigPage()
  30. {
  31. delete ui;
  32. }
  33. void CConfigPage::AddFilterBtnPressed()
  34. {
  35. ui->mConfigTable->setSortingEnabled(false);
  36. ui->mConfigTable->insertRow(0);
  37. QTableWidgetItem *NewItem;
  38. NewItem = new QTableWidgetItem("");
  39. ui->mConfigTable->setItem(0,0,NewItem);
  40. NewItem = new QTableWidgetItem("DÉPLACER");
  41. ui->mConfigTable->setItem(0,1,NewItem);
  42. NewItem = new QTableWidgetItem("");
  43. ui->mConfigTable->setItem(0,2,NewItem);
  44. NewItem = new QTableWidgetItem("");
  45. ui->mConfigTable->setItem(0,3,NewItem);
  46. NewItem = new QTableWidgetItem("");
  47. ui->mConfigTable->setItem(0,4,NewItem);
  48. ui->mConfigTable->setSortingEnabled(true);
  49. }
  50. void CConfigPage::DeleteFilterBtnPressed()
  51. {
  52. ui->mConfigTable->removeRow(ui->mConfigTable->currentRow());
  53. }
  54. void CConfigPage::CancelBtnPressed()
  55. {
  56. InitializeConfigData(mProgramPtr->GetSorterConfigRequest());
  57. }
  58. void CConfigPage::SaveConfigBtnPressed()
  59. {
  60. CLogsSorterConfigData CurrentConfig;
  61. //TODO: Confirmer la validité des données avant tout
  62. CurrentConfig.mLogsSourceDirectory = ui->mSrcDirLineEdit->text();
  63. for(int i = 0; i < ui->mConfigTable->rowCount(); i++)
  64. {
  65. //"Filtre" << "Type" << "Préfixe" << "Description" << "Destination");
  66. CLogsFilterData FilterData;
  67. FilterData.mLogIdentificator = ui->mConfigTable->item(i,0)->text();
  68. FilterData.mLogPrefix = ui->mConfigTable->item(i,2)->text();
  69. FilterData.mFilterName = ui->mConfigTable->item(i,3)->text();
  70. FilterData.mLogDestination = ui->mConfigTable->item(i,4)->text();
  71. if(ui->mConfigTable->item(i,1)->text() == "DÉPLACER")
  72. {
  73. FilterData.mFilterOperation = CLogsFilterData::LOG_FILTER_MOVE_OPERATION_TYPE;
  74. }
  75. else if(ui->mConfigTable->item(i,1)->text() == "EFFACER")
  76. {
  77. FilterData.mFilterOperation = CLogsFilterData::LOG_FILTER_DELETE_OPERATION_TYPE;
  78. }
  79. else
  80. {
  81. //TODO: Ceci est une erreur... à gérer
  82. }
  83. CurrentConfig.mLogsFiltersList.append(FilterData);
  84. }
  85. mProgramPtr->SaveSorterConfigRequest(CurrentConfig);
  86. }
  87. void CConfigPage::InitializeConfigData(const CLogsSorterConfigData *DataStruct)
  88. {
  89. ui->mConfigTable->clearContents();
  90. ui->mConfigTable->setSortingEnabled(false);
  91. ui->mSrcDirLineEdit->setText(DataStruct->mLogsSourceDirectory);
  92. ui->mConfigTable->setRowCount(DataStruct->mLogsFiltersList.size());
  93. for(int i = 0; i < DataStruct->mLogsFiltersList.size(); i++)
  94. {
  95. QTableWidgetItem *NewItem;
  96. //"Filtre" << "Type" << "Préfixe" << "Description" << "Destination");
  97. NewItem = new QTableWidgetItem(DataStruct->mLogsFiltersList.at(i).mLogIdentificator);
  98. ui->mConfigTable->setItem(i,0,NewItem);
  99. if(DataStruct->mLogsFiltersList.at(i).mFilterOperation == CLogsFilterData::LOG_FILTER_MOVE_OPERATION_TYPE)
  100. {
  101. NewItem = new QTableWidgetItem("DÉPLACER");
  102. }
  103. if(DataStruct->mLogsFiltersList.at(i).mFilterOperation == CLogsFilterData::LOG_FILTER_DELETE_OPERATION_TYPE)
  104. {
  105. NewItem = new QTableWidgetItem("EFFACER");
  106. }
  107. ui->mConfigTable->setItem(i,1,NewItem);
  108. NewItem = new QTableWidgetItem(DataStruct->mLogsFiltersList.at(i).mLogPrefix);
  109. ui->mConfigTable->setItem(i,2,NewItem);
  110. NewItem = new QTableWidgetItem(DataStruct->mLogsFiltersList.at(i).mFilterName);
  111. ui->mConfigTable->setItem(i,3,NewItem);
  112. NewItem = new QTableWidgetItem(DataStruct->mLogsFiltersList.at(i).mLogDestination);
  113. ui->mConfigTable->setItem(i,4,NewItem);
  114. }
  115. ui->mConfigTable->resizeColumnsToContents();
  116. ui->mConfigTable->setSortingEnabled(true);
  117. }
  118. void CConfigPage::CopyFilterBtnPressed()
  119. {
  120. ui->mConfigTable->setSortingEnabled(false);
  121. ui->mConfigTable->insertRow(0);
  122. int row = ui->mConfigTable->currentRow();
  123. QTableWidgetItem *NewItem;
  124. NewItem = new QTableWidgetItem(*ui->mConfigTable->item(row,0));
  125. ui->mConfigTable->setItem(0,0,NewItem);
  126. NewItem = new QTableWidgetItem(*ui->mConfigTable->item(row,1));
  127. ui->mConfigTable->setItem(0,1,NewItem);
  128. NewItem = new QTableWidgetItem(*ui->mConfigTable->item(row,2));
  129. ui->mConfigTable->setItem(0,2,NewItem);
  130. NewItem = new QTableWidgetItem(*ui->mConfigTable->item(row,3));
  131. ui->mConfigTable->setItem(0,3,NewItem);
  132. NewItem = new QTableWidgetItem(*ui->mConfigTable->item(row,4));
  133. ui->mConfigTable->setItem(0,4,NewItem);
  134. ui->mConfigTable->setSortingEnabled(true);
  135. }