dialogsetcombofilter.cpp 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224
  1. #include "dialogsetcombofilter.h"
  2. #include "ui_dialogsetcombofilter.h"
  3. DialogSetComboFilter::DialogSetComboFilter(QWidget *parent) :
  4. QDialog(parent),
  5. ui(new Ui::DialogSetComboFilter)
  6. {
  7. ui->setupUi(this);
  8. ui->buttonBox->button(QDialogButtonBox::Ok)->setEnabled(false);
  9. ui->speciEdit->setEnabled(false);
  10. ui->regEdit->setEnabled(false);
  11. ui->speciEdit->setValidator(new QRegExpValidator(NumberReg::getSubStringReg(), this));
  12. ui->regEdit->setValidator(new QRegExpValidator(QRegExp("\\w+"), this));
  13. ui->howmuchSB->setEnabled(false);
  14. ui->howmuch1SB->setEnabled(false);
  15. ui->whichSB->setEnabled(false);
  16. ui->regCB->setVisible(false);
  17. ui->regEdit->setVisible(false);
  18. ui->buttonBox->button(QDialogButtonBox::Ok)->setText("È·¶¨");
  19. ui->buttonBox->button(QDialogButtonBox::Cancel)->setText("È¡Ïû");
  20. }
  21. DialogSetComboFilter::~DialogSetComboFilter()
  22. {
  23. delete ui;
  24. }
  25. QStringList DialogSetComboFilter::getFilterByCombo()
  26. {
  27. QStringList list;
  28. list<<ui->regEdit->text();
  29. list<<ui->speciEdit->text();
  30. return list;
  31. }
  32. QRegExp DialogSetComboFilter::getFilterByCombo1()
  33. {
  34. return NumberReg::getLastABCD();
  35. }
  36. QRegExp DialogSetComboFilter::getFilterByCombo2()
  37. {
  38. //return QRegExp(ui->regEdit->text());
  39. //QString str="\\d*(\\d)\\1\\1\\1\\1d*";
  40. QString str="\\d*5\\d*5\\d*5\\d*";
  41. return QRegExp(str);
  42. }
  43. QStringList DialogSetComboFilter::getFiltersByCombo()
  44. {
  45. QStringList list;
  46. QString str;
  47. if(ui->speciCB->isChecked())
  48. list<<"\\d*"+ui->speciEdit->text()+"\\d*";
  49. if(ui->xxxCB->isChecked())
  50. {
  51. str = "\\d*(\\d)";
  52. for(int i=1;i<ui->howmuchSB->value();i++)
  53. {
  54. str += "\\1";
  55. }
  56. str += "\\d*";
  57. list << str;
  58. }
  59. if(ui->morexCB->isChecked())
  60. {
  61. str = "\\d*";
  62. for(int j=0;j<ui->howmuch1SB->value();j++)
  63. {
  64. str += QString::number(ui->whichSB->value())+"\\d*";
  65. }
  66. list << str;
  67. }
  68. if(ui->lastaaaCB->isChecked())
  69. list << NumberReg::getLastAAA().pattern();
  70. if(ui->lastaaaaCB->isChecked())
  71. list << NumberReg::getLastAAAA().pattern();
  72. if(ui->lastaabbCB->isChecked())
  73. list << NumberReg::getLastAABB().pattern();
  74. if(ui->lastababCB->isChecked())
  75. list << NumberReg::getLastABAB().pattern();
  76. if(ui->lastabcdCB->isChecked())
  77. list << NumberReg::getLastABCD().pattern();
  78. if(ui->aaaaaaCB->isChecked())
  79. list << NumberReg::getLastAAAAAA().pattern();
  80. if(ui->aaaaaCB->isChecked())
  81. list << NumberReg::getLastAAAAA().pattern();
  82. if(ui->abcdeCB->isChecked())
  83. list << NumberReg::getLastABCDE().pattern();
  84. if(ui->abcdefCB->isChecked())
  85. list << NumberReg::getLastABCDEF().pattern();
  86. if(ui->abcdefgCB->isChecked())
  87. list << NumberReg::getLastABCDEFG().pattern();
  88. if(ui->regCB->isChecked())
  89. list << ui->regEdit->text();
  90. return list;
  91. }
  92. void DialogSetComboFilter::on_speciEdit_textChanged(const QString &arg1)
  93. {
  94. set_state();
  95. ui->speciEdit->setFocus();
  96. }
  97. void DialogSetComboFilter::on_speciCB_clicked()
  98. {
  99. set_state();
  100. }
  101. void DialogSetComboFilter::on_xxxCB_clicked()
  102. {
  103. set_state();
  104. }
  105. void DialogSetComboFilter::on_morexCB_clicked()
  106. {
  107. set_state();
  108. }
  109. void DialogSetComboFilter::on_lastaaaaCB_clicked()
  110. {
  111. set_state();
  112. }
  113. void DialogSetComboFilter::on_lastababCB_clicked()
  114. {
  115. set_state();
  116. }
  117. void DialogSetComboFilter::on_lastaabbCB_clicked()
  118. {
  119. set_state();
  120. }
  121. void DialogSetComboFilter::on_lastabcdCB_clicked()
  122. {
  123. set_state();
  124. }
  125. void DialogSetComboFilter::on_regCB_clicked()
  126. {
  127. set_state();
  128. }
  129. void DialogSetComboFilter::set_state()
  130. {
  131. ui->buttonBox->button(QDialogButtonBox::Ok)->setEnabled(false);
  132. ui->speciEdit->setEnabled(false);
  133. ui->regEdit->setEnabled(false);
  134. if(ui->xxxCB->isChecked()||ui->morexCB->isChecked()||ui->lastaaaCB->isChecked()
  135. ||ui->lastaaaaCB->isChecked()||
  136. ui->lastaabbCB->isChecked()||ui->lastababCB->isChecked()||ui->lastabcdCB->isChecked()
  137. || ui->aaaaaaCB->isChecked()||ui->aaaaaCB->isChecked()||
  138. ui->abcdeCB->isChecked()||ui->abcdefCB->isChecked()||ui->abcdefgCB->isChecked())
  139. {
  140. ui->buttonBox->button(QDialogButtonBox::Ok)->setEnabled(true);
  141. ui->howmuchSB->setEnabled(ui->xxxCB->isChecked());
  142. ui->howmuch1SB->setEnabled(ui->morexCB->isChecked());
  143. ui->whichSB->setEnabled(ui->morexCB->isChecked());
  144. }
  145. else
  146. {
  147. ui->buttonBox->button(QDialogButtonBox::Ok)->setEnabled(false);
  148. ui->howmuchSB->setEnabled(ui->xxxCB->isChecked());
  149. ui->howmuch1SB->setEnabled(ui->morexCB->isChecked());
  150. ui->whichSB->setEnabled(ui->morexCB->isChecked());
  151. }
  152. if (ui->speciCB->isChecked()&& ui->regCB->isChecked())
  153. {
  154. ui->speciEdit->setEnabled(true);
  155. ui->regEdit->setEnabled(true);
  156. if(ui->speciEdit->hasAcceptableInput() and ui->regEdit->hasAcceptableInput() )
  157. ui->buttonBox->button(QDialogButtonBox::Ok)->setEnabled(true);
  158. else
  159. ui->buttonBox->button(QDialogButtonBox::Ok)->setEnabled(false);
  160. }
  161. else if(ui->speciCB->isChecked())
  162. {
  163. ui->speciEdit->setEnabled(true);
  164. if(ui->speciEdit->hasAcceptableInput())
  165. ui->buttonBox->button(QDialogButtonBox::Ok)->setEnabled(true);
  166. else
  167. ui->buttonBox->button(QDialogButtonBox::Ok)->setEnabled(false);
  168. }
  169. else if(ui->regCB->isChecked())
  170. {
  171. ui->regEdit->setEnabled(true);
  172. if( ui->regEdit->hasAcceptableInput() )
  173. ui->buttonBox->button(QDialogButtonBox::Ok)->setEnabled(true);
  174. else
  175. ui->buttonBox->button(QDialogButtonBox::Ok)->setEnabled(false);
  176. }
  177. }
  178. void DialogSetComboFilter::on_regEdit_textChanged(const QString &arg1)
  179. {
  180. set_state();
  181. ui->regEdit->setFocus();
  182. }
  183. void DialogSetComboFilter::on_aaaaaCB_clicked()
  184. {
  185. set_state();
  186. }
  187. void DialogSetComboFilter::on_aaaaaaCB_clicked()
  188. {
  189. set_state();
  190. }
  191. void DialogSetComboFilter::on_abcdeCB_clicked()
  192. {
  193. set_state();
  194. }
  195. void DialogSetComboFilter::on_abcdefCB_clicked()
  196. {
  197. set_state();
  198. }
  199. void DialogSetComboFilter::on_abcdefgCB_clicked()
  200. {
  201. set_state();
  202. }
  203. void DialogSetComboFilter::on_lastaaaCB_clicked()
  204. {
  205. set_state();
  206. }