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