view widgets/CriteriaDialog.cpp @ 112:1c638a8e9897

bye bye from silo114
author benoitrigolleau
date Wed, 19 Sep 2007 15:54:32 +0000
parents c107866fd387
children
line wrap: on
line source
#include <QWidget>
#include <QVBoxLayout>
#include <QFrame>
#include <QVector>
#include <QString>
#include <iostream>

#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);
	this->adjustSize();

 }

 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;
 }