#include "dialogsetcombofilter.h" #include "ui_dialogsetcombofilter.h" DialogSetComboFilter::DialogSetComboFilter(QWidget *parent) : QDialog(parent), ui(new Ui::DialogSetComboFilter) { ui->setupUi(this); ui->buttonBox->button(QDialogButtonBox::Ok)->setEnabled(false); ui->speciEdit->setEnabled(false); ui->regEdit->setEnabled(false); ui->speciEdit->setValidator(new QRegExpValidator(NumberReg::getSubStringReg(), this)); ui->regEdit->setValidator(new QRegExpValidator(QRegExp("\\w+"), this)); ui->howmuchSB->setEnabled(false); ui->howmuch1SB->setEnabled(false); ui->whichSB->setEnabled(false); ui->regCB->setVisible(false); ui->regEdit->setVisible(false); ui->buttonBox->button(QDialogButtonBox::Ok)->setText("È·¶¨"); ui->buttonBox->button(QDialogButtonBox::Cancel)->setText("È¡Ïû"); } DialogSetComboFilter::~DialogSetComboFilter() { delete ui; } QStringList DialogSetComboFilter::getFilterByCombo() { QStringList list; list<regEdit->text(); list<speciEdit->text(); return list; } QRegExp DialogSetComboFilter::getFilterByCombo1() { return NumberReg::getLastABCD(); } QRegExp DialogSetComboFilter::getFilterByCombo2() { //return QRegExp(ui->regEdit->text()); //QString str="\\d*(\\d)\\1\\1\\1\\1d*"; QString str="\\d*5\\d*5\\d*5\\d*"; return QRegExp(str); } QStringList DialogSetComboFilter::getFiltersByCombo() { QStringList list; QString str; if(ui->speciCB->isChecked()) list<<"\\d*"+ui->speciEdit->text()+"\\d*"; if(ui->xxxCB->isChecked()) { str = "\\d*(\\d)"; for(int i=1;ihowmuchSB->value();i++) { str += "\\1"; } str += "\\d*"; list << str; } if(ui->morexCB->isChecked()) { str = "\\d*"; for(int j=0;jhowmuch1SB->value();j++) { str += QString::number(ui->whichSB->value())+"\\d*"; } list << str; } if(ui->lastaaaCB->isChecked()) list << NumberReg::getLastAAA().pattern(); if(ui->lastaaaaCB->isChecked()) list << NumberReg::getLastAAAA().pattern(); if(ui->lastaabbCB->isChecked()) list << NumberReg::getLastAABB().pattern(); if(ui->lastababCB->isChecked()) list << NumberReg::getLastABAB().pattern(); if(ui->lastabcdCB->isChecked()) list << NumberReg::getLastABCD().pattern(); if(ui->aaaaaaCB->isChecked()) list << NumberReg::getLastAAAAAA().pattern(); if(ui->aaaaaCB->isChecked()) list << NumberReg::getLastAAAAA().pattern(); if(ui->abcdeCB->isChecked()) list << NumberReg::getLastABCDE().pattern(); if(ui->abcdefCB->isChecked()) list << NumberReg::getLastABCDEF().pattern(); if(ui->abcdefgCB->isChecked()) list << NumberReg::getLastABCDEFG().pattern(); if(ui->regCB->isChecked()) list << ui->regEdit->text(); return list; } void DialogSetComboFilter::on_speciEdit_textChanged(const QString &arg1) { set_state(); ui->speciEdit->setFocus(); } void DialogSetComboFilter::on_speciCB_clicked() { set_state(); } void DialogSetComboFilter::on_xxxCB_clicked() { set_state(); } void DialogSetComboFilter::on_morexCB_clicked() { set_state(); } void DialogSetComboFilter::on_lastaaaaCB_clicked() { set_state(); } void DialogSetComboFilter::on_lastababCB_clicked() { set_state(); } void DialogSetComboFilter::on_lastaabbCB_clicked() { set_state(); } void DialogSetComboFilter::on_lastabcdCB_clicked() { set_state(); } void DialogSetComboFilter::on_regCB_clicked() { set_state(); } void DialogSetComboFilter::set_state() { ui->buttonBox->button(QDialogButtonBox::Ok)->setEnabled(false); ui->speciEdit->setEnabled(false); ui->regEdit->setEnabled(false); if(ui->xxxCB->isChecked()||ui->morexCB->isChecked()||ui->lastaaaCB->isChecked() ||ui->lastaaaaCB->isChecked()|| ui->lastaabbCB->isChecked()||ui->lastababCB->isChecked()||ui->lastabcdCB->isChecked() || ui->aaaaaaCB->isChecked()||ui->aaaaaCB->isChecked()|| ui->abcdeCB->isChecked()||ui->abcdefCB->isChecked()||ui->abcdefgCB->isChecked()) { ui->buttonBox->button(QDialogButtonBox::Ok)->setEnabled(true); ui->howmuchSB->setEnabled(ui->xxxCB->isChecked()); ui->howmuch1SB->setEnabled(ui->morexCB->isChecked()); ui->whichSB->setEnabled(ui->morexCB->isChecked()); } else { ui->buttonBox->button(QDialogButtonBox::Ok)->setEnabled(false); ui->howmuchSB->setEnabled(ui->xxxCB->isChecked()); ui->howmuch1SB->setEnabled(ui->morexCB->isChecked()); ui->whichSB->setEnabled(ui->morexCB->isChecked()); } if (ui->speciCB->isChecked()&& ui->regCB->isChecked()) { ui->speciEdit->setEnabled(true); ui->regEdit->setEnabled(true); if(ui->speciEdit->hasAcceptableInput() and ui->regEdit->hasAcceptableInput() ) ui->buttonBox->button(QDialogButtonBox::Ok)->setEnabled(true); else ui->buttonBox->button(QDialogButtonBox::Ok)->setEnabled(false); } else if(ui->speciCB->isChecked()) { ui->speciEdit->setEnabled(true); if(ui->speciEdit->hasAcceptableInput()) ui->buttonBox->button(QDialogButtonBox::Ok)->setEnabled(true); else ui->buttonBox->button(QDialogButtonBox::Ok)->setEnabled(false); } else if(ui->regCB->isChecked()) { ui->regEdit->setEnabled(true); if( ui->regEdit->hasAcceptableInput() ) ui->buttonBox->button(QDialogButtonBox::Ok)->setEnabled(true); else ui->buttonBox->button(QDialogButtonBox::Ok)->setEnabled(false); } } void DialogSetComboFilter::on_regEdit_textChanged(const QString &arg1) { set_state(); ui->regEdit->setFocus(); } void DialogSetComboFilter::on_aaaaaCB_clicked() { set_state(); } void DialogSetComboFilter::on_aaaaaaCB_clicked() { set_state(); } void DialogSetComboFilter::on_abcdeCB_clicked() { set_state(); } void DialogSetComboFilter::on_abcdefCB_clicked() { set_state(); } void DialogSetComboFilter::on_abcdefgCB_clicked() { set_state(); } void DialogSetComboFilter::on_lastaaaCB_clicked() { set_state(); }