diff widgets/ConfidenceListWidget.cpp @ 108:c107866fd387

first draft to the list result
author benoitrigolleau
date Fri, 14 Sep 2007 16:44:36 +0000
parents
children f3dce7a985cf
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/widgets/ConfidenceListWidget.cpp	Fri Sep 14 16:44:36 2007 +0000
@@ -0,0 +1,116 @@
+/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*-  vi:set ts=8 sts=4 sw=4: */
+
+/*   
+	Sound Access
+		EASAIER client application.
+		Silogic 2007. Benoit Rigolleau.
+
+	This program is free software; you can redistribute it and/or
+	modify it under the terms of the GNU General Public License as
+	published by the Free Software Foundation; either version 2 of the
+	License, or (at your option) any later version.  See the file
+	COPYING included with this distribution for more information.
+*/
+
+#include "ConfidenceListWidget.h"
+#include "ConfidenceWidget.h"
+
+ConfidenceListWidget::ConfidenceListWidget(QWidget *parent):QWidget(parent){
+
+	m_vlayout = new QVBoxLayout;
+	m_vConfidenceLayout = new QVBoxLayout;
+	m_hlayout = new QHBoxLayout;
+	m_button = new QPushButton();
+	m_moyConfidence = new ConfidenceWidget();
+
+	m_state=0;
+	confidenceSum=0;
+
+	m_moyConfidence->setMaximumHeight(30);
+	m_moyConfidence->setMinimumHeight(30);
+	m_moyConfidence->setMinimumWidth(100);
+	m_moyConfidence->setMaximumWidth(100);
+
+	m_button->setMaximumHeight(16);
+	m_button->setMaximumWidth(16);
+	m_button->setMinimumHeight(16);
+	m_button->setMinimumWidth(16);
+	m_button->setEnabled(false);
+
+	m_vConfidenceLayout->setSpacing(0);
+	m_vConfidenceLayout->addWidget(m_moyConfidence);
+
+	m_vlayout->setSpacing(0);
+	m_vlayout->addLayout(m_vConfidenceLayout);
+	m_vlayout->addStretch();
+
+	m_hlayout->addLayout(m_vlayout);
+
+	m_hlayout->addWidget(m_button);
+
+	this->setLayout(m_hlayout);
+
+    connect(m_button,SIGNAL(clicked()),this,SLOT(changeSate()));
+
+	updateSize();
+	refreshButtonIcone();
+
+}
+
+void ConfidenceListWidget::addConfidence(int confidence, QString label){
+	ConfidenceWidget *auxConfidence = new ConfidenceWidget();
+	auxConfidence->setConfidence(confidence);
+	auxConfidence->setMaximumHeight(30);
+	auxConfidence->setMinimumHeight(30);
+	auxConfidence->setMinimumWidth(100);
+	auxConfidence->setMaximumWidth(100);
+	auxConfidence->setToolTip(label);
+	auxConfidence->setVisible(m_state);
+	
+	confidenceSum +=confidence;
+	m_vConfidenceLayout->addWidget(auxConfidence);
+	
+	m_moyConfidence->setConfidence(confidenceSum/(m_vConfidenceLayout->count()-1));
+	if((m_vConfidenceLayout->count()-1)>1){
+		m_button->setEnabled(true);
+	}else{
+		m_button->setEnabled(false);
+	}
+
+
+}
+
+void ConfidenceListWidget::reset(){
+	
+}
+
+
+void  ConfidenceListWidget::refreshButtonIcone(){
+	if(m_state){
+		//m_button->setIcon(QIcon(":icons/top.png"));
+		m_button->setText("-");
+	}else{
+		//m_button->setIcon(QIcon(":icons/bottom.png"));
+		m_button->setText("+");
+	}
+}
+
+void ConfidenceListWidget::updateSize(){
+	int count = m_vConfidenceLayout->count();
+	if(m_state){
+		this->setMaximumHeight(count*30 + count);
+	}else{
+		this->setMaximumHeight(37);
+	}
+}
+
+void ConfidenceListWidget::changeSate(){
+	m_state = !m_state;
+	int count = m_vConfidenceLayout->count();
+	for(int i=1; i<count;i++){
+		 m_vConfidenceLayout->itemAt(i)->widget()->setVisible(m_state);
+	}
+	updateSize();
+	refreshButtonIcone();
+}
+	
\ No newline at end of file