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