view widgets/ConfidenceListWidget.cpp @ 144:f3dce7a985cf

result display is better now.
author benoitrigolleau
date Tue, 13 Nov 2007 11:09:57 +0000
parents c107866fd387
children 9f16a77107bd
line wrap: on
line source
/* -*- 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->setFixedHeight(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();
}