25'ten fazla konu seçemezsiniz Konular bir harf veya rakamla başlamalı, kısa çizgiler ('-') içerebilir ve en fazla 35 karakter uzunluğunda olabilir.
 
 
 
 

145 satır
4.7 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. connect(ui->mAddFilterBtn,&QPushButton::pressed,this,&CConfigPage::AddFilterBtnPressed);
  23. connect(ui->mDeleteFilterBtn,&QPushButton::pressed,this,&CConfigPage::DeleteFilterBtnPressed);
  24. connect(ui->mSaveBtn,&QPushButton::pressed,this,&CConfigPage::SaveConfigBtnPressed);
  25. connect(ui->mCancelBtn,&QPushButton::pressed,this,&CConfigPage::CancelBtnPressed);
  26. }
  27. CConfigPage::~CConfigPage()
  28. {
  29. delete ui;
  30. }
  31. void CConfigPage::AddFilterBtnPressed()
  32. {
  33. ui->mConfigTable->insertRow(0);
  34. QTableWidgetItem *NewItem;
  35. NewItem = new QTableWidgetItem("");
  36. ui->mConfigTable->setItem(0,0,NewItem);
  37. NewItem = new QTableWidgetItem("DÉPLACER");
  38. ui->mConfigTable->setItem(0,1,NewItem);
  39. NewItem = new QTableWidgetItem("");
  40. ui->mConfigTable->setItem(0,2,NewItem);
  41. NewItem = new QTableWidgetItem("");
  42. ui->mConfigTable->setItem(0,3,NewItem);
  43. NewItem = new QTableWidgetItem("");
  44. ui->mConfigTable->setItem(0,4,NewItem);
  45. }
  46. void CConfigPage::DeleteFilterBtnPressed()
  47. {
  48. ui->mConfigTable->removeRow(ui->mConfigTable->currentRow());
  49. }
  50. void CConfigPage::CancelBtnPressed()
  51. {
  52. InitializeConfigData(mProgramPtr->GetSorterConfigRequest());
  53. }
  54. void CConfigPage::SaveConfigBtnPressed()
  55. {
  56. CLogsSorterConfigData CurrentConfig;
  57. //TODO: Confirmer la validité des données avant tout
  58. CurrentConfig.mLogsSourceDirectory = ui->mSrcDirLineEdit->text();
  59. for(int i = 0; i < ui->mConfigTable->rowCount(); i++)
  60. {
  61. //"Filtre" << "Type" << "Préfixe" << "Description" << "Destination");
  62. CLogsFilterData FilterData;
  63. FilterData.mLogIdentificator = ui->mConfigTable->item(i,0)->text();
  64. FilterData.mLogPrefix = ui->mConfigTable->item(i,2)->text();
  65. FilterData.mFilterName = ui->mConfigTable->item(i,3)->text();
  66. FilterData.mLogDestination = ui->mConfigTable->item(i,4)->text();
  67. if(ui->mConfigTable->item(i,1)->text() == "DÉPLACER")
  68. {
  69. FilterData.mFilterOperation = CLogsFilterData::LOG_FILTER_MOVE_OPERATION_TYPE;
  70. }
  71. else if(ui->mConfigTable->item(i,1)->text() == "EFFACER")
  72. {
  73. FilterData.mFilterOperation = CLogsFilterData::LOG_FILTER_DELETE_OPERATION_TYPE;
  74. }
  75. else
  76. {
  77. //TODO: Ceci est une erreur... à gérer
  78. }
  79. CurrentConfig.mLogsFiltersList.append(FilterData);
  80. }
  81. mProgramPtr->SaveSorterConfigRequest(CurrentConfig);
  82. }
  83. void CConfigPage::InitializeConfigData(const CLogsSorterConfigData *DataStruct)
  84. {
  85. ui->mConfigTable->clearContents();
  86. ui->mSrcDirLineEdit->setText(DataStruct->mLogsSourceDirectory);
  87. ui->mConfigTable->setRowCount(DataStruct->mLogsFiltersList.size());
  88. for(int i = 0; i < DataStruct->mLogsFiltersList.size(); i++)
  89. {
  90. QTableWidgetItem *NewItem;
  91. //"Filtre" << "Type" << "Préfixe" << "Description" << "Destination");
  92. NewItem = new QTableWidgetItem(DataStruct->mLogsFiltersList.at(i).mLogIdentificator);
  93. ui->mConfigTable->setItem(i,0,NewItem);
  94. if(DataStruct->mLogsFiltersList.at(i).mFilterOperation == CLogsFilterData::LOG_FILTER_MOVE_OPERATION_TYPE)
  95. {
  96. NewItem = new QTableWidgetItem("DÉPLACER");
  97. }
  98. if(DataStruct->mLogsFiltersList.at(i).mFilterOperation == CLogsFilterData::LOG_FILTER_DELETE_OPERATION_TYPE)
  99. {
  100. NewItem = new QTableWidgetItem("EFFACER");
  101. }
  102. ui->mConfigTable->setItem(i,1,NewItem);
  103. NewItem = new QTableWidgetItem(DataStruct->mLogsFiltersList.at(i).mLogPrefix);
  104. ui->mConfigTable->setItem(i,2,NewItem);
  105. NewItem = new QTableWidgetItem(DataStruct->mLogsFiltersList.at(i).mFilterName);
  106. ui->mConfigTable->setItem(i,3,NewItem);
  107. NewItem = new QTableWidgetItem(DataStruct->mLogsFiltersList.at(i).mLogDestination);
  108. ui->mConfigTable->setItem(i,4,NewItem);
  109. }
  110. ui->mConfigTable->resizeColumnsToContents();
  111. }