Mercurial > hg > easaier-soundaccess
diff 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 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/widgets/CriteriaDialog.cpp Fri Sep 14 16:44:36 2007 +0000 @@ -0,0 +1,78 @@ +#include <QWidget> +#include <QVBoxLayout> +#include <QFrame> +#include <QVector> +#include <QString> + +#include "CriteriaDialog.h" + + CriteriaDialog::CriteriaDialog(QWidget *parent) + : QDialog(parent) + { + this->setWindowFlags(Qt::ToolTip); + + m_labelTitle = new QLabel(tr("Select criterias:")); + + m_buttonBox = new QDialogButtonBox(Qt::Horizontal); + m_buttonOK = new QPushButton(tr("Ok")); + m_buttonCancel = new QPushButton(tr("Cancel")); + m_layoutForCheckBoxs = new QVBoxLayout(); + QFrame *auxFrame = new QFrame(); + QVBoxLayout *mainLayout = new QVBoxLayout; + QVBoxLayout *auxLayout = new QVBoxLayout; + QFrame *frameForCheckBoxs = new QFrame(); + + frameForCheckBoxs->setLayout(m_layoutForCheckBoxs); + + m_labelTitle->setAlignment(Qt::AlignCenter); + + // default button for enter key + m_buttonOK->setDefault(true); + + m_buttonBox->addButton(m_buttonOK, QDialogButtonBox::AcceptRole); + m_buttonBox->addButton(m_buttonCancel, QDialogButtonBox::RejectRole); + + connect(m_buttonOK, SIGNAL(clicked()), this, SLOT(accept())); + connect(m_buttonCancel, SIGNAL(clicked()), this, SLOT(reject())); + + auxLayout->addWidget(m_labelTitle); + auxLayout->addWidget(frameForCheckBoxs); + auxLayout->addWidget(m_buttonBox); + auxLayout->setSizeConstraint(QLayout::SetFixedSize); + + auxFrame->setLayout(auxLayout); + auxFrame->setFrameStyle(QFrame::Panel | QFrame::Plain); + + mainLayout->addWidget(auxFrame); + mainLayout->setMargin(0); + mainLayout->setSpacing(0); + mainLayout->setSizeConstraint(QLayout::SetFixedSize); + + setLayout(mainLayout); + + } + + void CriteriaDialog::setLocation(int x, int y){ + this->setGeometry(x,y,this->width(),this->height()); + } + + void CriteriaDialog::setOpacity(qreal value){ + this->setWindowOpacity(value); + } + + + void CriteriaDialog::addCriteria(QString name){ + QCheckBox *criteriaCheckBox = new QCheckBox(name); + m_layoutForCheckBoxs->addWidget(criteriaCheckBox); + } + + QVector<QString> CriteriaDialog::result(){ + QVector<QString> result; + for(int i=0;i<m_layoutForCheckBoxs->count();i++){ + QCheckBox *criteriaCheckBox = (QCheckBox*) m_layoutForCheckBoxs->itemAt(i)->widget(); + if(criteriaCheckBox->isChecked()){ + result.append(criteriaCheckBox->text()); + } + } + return result; + } \ No newline at end of file