annotate widgets/CriteriaDialog.cpp @ 108:c107866fd387

first draft to the list result
author benoitrigolleau
date Fri, 14 Sep 2007 16:44:36 +0000
parents
children 1c638a8e9897
rev   line source
benoitrigolleau@108 1 #include <QWidget>
benoitrigolleau@108 2 #include <QVBoxLayout>
benoitrigolleau@108 3 #include <QFrame>
benoitrigolleau@108 4 #include <QVector>
benoitrigolleau@108 5 #include <QString>
benoitrigolleau@108 6
benoitrigolleau@108 7 #include "CriteriaDialog.h"
benoitrigolleau@108 8
benoitrigolleau@108 9 CriteriaDialog::CriteriaDialog(QWidget *parent)
benoitrigolleau@108 10 : QDialog(parent)
benoitrigolleau@108 11 {
benoitrigolleau@108 12 this->setWindowFlags(Qt::ToolTip);
benoitrigolleau@108 13
benoitrigolleau@108 14 m_labelTitle = new QLabel(tr("Select criterias:"));
benoitrigolleau@108 15
benoitrigolleau@108 16 m_buttonBox = new QDialogButtonBox(Qt::Horizontal);
benoitrigolleau@108 17 m_buttonOK = new QPushButton(tr("Ok"));
benoitrigolleau@108 18 m_buttonCancel = new QPushButton(tr("Cancel"));
benoitrigolleau@108 19 m_layoutForCheckBoxs = new QVBoxLayout();
benoitrigolleau@108 20 QFrame *auxFrame = new QFrame();
benoitrigolleau@108 21 QVBoxLayout *mainLayout = new QVBoxLayout;
benoitrigolleau@108 22 QVBoxLayout *auxLayout = new QVBoxLayout;
benoitrigolleau@108 23 QFrame *frameForCheckBoxs = new QFrame();
benoitrigolleau@108 24
benoitrigolleau@108 25 frameForCheckBoxs->setLayout(m_layoutForCheckBoxs);
benoitrigolleau@108 26
benoitrigolleau@108 27 m_labelTitle->setAlignment(Qt::AlignCenter);
benoitrigolleau@108 28
benoitrigolleau@108 29 // default button for enter key
benoitrigolleau@108 30 m_buttonOK->setDefault(true);
benoitrigolleau@108 31
benoitrigolleau@108 32 m_buttonBox->addButton(m_buttonOK, QDialogButtonBox::AcceptRole);
benoitrigolleau@108 33 m_buttonBox->addButton(m_buttonCancel, QDialogButtonBox::RejectRole);
benoitrigolleau@108 34
benoitrigolleau@108 35 connect(m_buttonOK, SIGNAL(clicked()), this, SLOT(accept()));
benoitrigolleau@108 36 connect(m_buttonCancel, SIGNAL(clicked()), this, SLOT(reject()));
benoitrigolleau@108 37
benoitrigolleau@108 38 auxLayout->addWidget(m_labelTitle);
benoitrigolleau@108 39 auxLayout->addWidget(frameForCheckBoxs);
benoitrigolleau@108 40 auxLayout->addWidget(m_buttonBox);
benoitrigolleau@108 41 auxLayout->setSizeConstraint(QLayout::SetFixedSize);
benoitrigolleau@108 42
benoitrigolleau@108 43 auxFrame->setLayout(auxLayout);
benoitrigolleau@108 44 auxFrame->setFrameStyle(QFrame::Panel | QFrame::Plain);
benoitrigolleau@108 45
benoitrigolleau@108 46 mainLayout->addWidget(auxFrame);
benoitrigolleau@108 47 mainLayout->setMargin(0);
benoitrigolleau@108 48 mainLayout->setSpacing(0);
benoitrigolleau@108 49 mainLayout->setSizeConstraint(QLayout::SetFixedSize);
benoitrigolleau@108 50
benoitrigolleau@108 51 setLayout(mainLayout);
benoitrigolleau@108 52
benoitrigolleau@108 53 }
benoitrigolleau@108 54
benoitrigolleau@108 55 void CriteriaDialog::setLocation(int x, int y){
benoitrigolleau@108 56 this->setGeometry(x,y,this->width(),this->height());
benoitrigolleau@108 57 }
benoitrigolleau@108 58
benoitrigolleau@108 59 void CriteriaDialog::setOpacity(qreal value){
benoitrigolleau@108 60 this->setWindowOpacity(value);
benoitrigolleau@108 61 }
benoitrigolleau@108 62
benoitrigolleau@108 63
benoitrigolleau@108 64 void CriteriaDialog::addCriteria(QString name){
benoitrigolleau@108 65 QCheckBox *criteriaCheckBox = new QCheckBox(name);
benoitrigolleau@108 66 m_layoutForCheckBoxs->addWidget(criteriaCheckBox);
benoitrigolleau@108 67 }
benoitrigolleau@108 68
benoitrigolleau@108 69 QVector<QString> CriteriaDialog::result(){
benoitrigolleau@108 70 QVector<QString> result;
benoitrigolleau@108 71 for(int i=0;i<m_layoutForCheckBoxs->count();i++){
benoitrigolleau@108 72 QCheckBox *criteriaCheckBox = (QCheckBox*) m_layoutForCheckBoxs->itemAt(i)->widget();
benoitrigolleau@108 73 if(criteriaCheckBox->isChecked()){
benoitrigolleau@108 74 result.append(criteriaCheckBox->text());
benoitrigolleau@108 75 }
benoitrigolleau@108 76 }
benoitrigolleau@108 77 return result;
benoitrigolleau@108 78 }