benoitrigolleau@108: #include benoitrigolleau@108: #include benoitrigolleau@108: #include benoitrigolleau@108: #include benoitrigolleau@108: #include benoitrigolleau@112: #include benoitrigolleau@108: benoitrigolleau@108: #include "CriteriaDialog.h" benoitrigolleau@108: benoitrigolleau@108: CriteriaDialog::CriteriaDialog(QWidget *parent) benoitrigolleau@108: : QDialog(parent) benoitrigolleau@108: { benoitrigolleau@108: this->setWindowFlags(Qt::ToolTip); benoitrigolleau@108: benoitrigolleau@108: m_labelTitle = new QLabel(tr("Select criterias:")); benoitrigolleau@108: benoitrigolleau@108: m_buttonBox = new QDialogButtonBox(Qt::Horizontal); benoitrigolleau@108: m_buttonOK = new QPushButton(tr("Ok")); benoitrigolleau@108: m_buttonCancel = new QPushButton(tr("Cancel")); benoitrigolleau@108: m_layoutForCheckBoxs = new QVBoxLayout(); benoitrigolleau@108: QFrame *auxFrame = new QFrame(); benoitrigolleau@108: QVBoxLayout *mainLayout = new QVBoxLayout; benoitrigolleau@108: QVBoxLayout *auxLayout = new QVBoxLayout; benoitrigolleau@108: QFrame *frameForCheckBoxs = new QFrame(); benoitrigolleau@108: benoitrigolleau@108: frameForCheckBoxs->setLayout(m_layoutForCheckBoxs); benoitrigolleau@108: benoitrigolleau@108: m_labelTitle->setAlignment(Qt::AlignCenter); benoitrigolleau@108: benoitrigolleau@108: // default button for enter key benoitrigolleau@108: m_buttonOK->setDefault(true); benoitrigolleau@108: benoitrigolleau@108: m_buttonBox->addButton(m_buttonOK, QDialogButtonBox::AcceptRole); benoitrigolleau@108: m_buttonBox->addButton(m_buttonCancel, QDialogButtonBox::RejectRole); benoitrigolleau@108: benoitrigolleau@108: connect(m_buttonOK, SIGNAL(clicked()), this, SLOT(accept())); benoitrigolleau@108: connect(m_buttonCancel, SIGNAL(clicked()), this, SLOT(reject())); benoitrigolleau@108: benoitrigolleau@108: auxLayout->addWidget(m_labelTitle); benoitrigolleau@108: auxLayout->addWidget(frameForCheckBoxs); benoitrigolleau@108: auxLayout->addWidget(m_buttonBox); benoitrigolleau@108: auxLayout->setSizeConstraint(QLayout::SetFixedSize); benoitrigolleau@108: benoitrigolleau@108: auxFrame->setLayout(auxLayout); benoitrigolleau@108: auxFrame->setFrameStyle(QFrame::Panel | QFrame::Plain); benoitrigolleau@108: benoitrigolleau@108: mainLayout->addWidget(auxFrame); benoitrigolleau@108: mainLayout->setMargin(0); benoitrigolleau@108: mainLayout->setSpacing(0); benoitrigolleau@108: mainLayout->setSizeConstraint(QLayout::SetFixedSize); benoitrigolleau@108: benoitrigolleau@108: setLayout(mainLayout); benoitrigolleau@108: benoitrigolleau@112: benoitrigolleau@108: } benoitrigolleau@108: benoitrigolleau@108: void CriteriaDialog::setLocation(int x, int y){ benoitrigolleau@108: this->setGeometry(x,y,this->width(),this->height()); benoitrigolleau@108: } benoitrigolleau@108: benoitrigolleau@108: void CriteriaDialog::setOpacity(qreal value){ benoitrigolleau@108: this->setWindowOpacity(value); benoitrigolleau@108: } benoitrigolleau@108: benoitrigolleau@108: benoitrigolleau@108: void CriteriaDialog::addCriteria(QString name){ benoitrigolleau@108: QCheckBox *criteriaCheckBox = new QCheckBox(name); benoitrigolleau@108: m_layoutForCheckBoxs->addWidget(criteriaCheckBox); benoitrigolleau@112: this->adjustSize(); benoitrigolleau@112: benoitrigolleau@108: } benoitrigolleau@108: benoitrigolleau@108: QVector CriteriaDialog::result(){ benoitrigolleau@108: QVector result; benoitrigolleau@108: for(int i=0;icount();i++){ benoitrigolleau@108: QCheckBox *criteriaCheckBox = (QCheckBox*) m_layoutForCheckBoxs->itemAt(i)->widget(); benoitrigolleau@108: if(criteriaCheckBox->isChecked()){ benoitrigolleau@108: result.append(criteriaCheckBox->text()); benoitrigolleau@108: } benoitrigolleau@108: } benoitrigolleau@108: return result; benoitrigolleau@108: }