view widgets/ConfidenceListWidget.cpp @ 149:735e67e91508

(none)
author benoitrigolleau
date Wed, 14 Nov 2007 10:41:46 +0000
parents 9f16a77107bd
children
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_layout = new QGridLayout;
	m_button = new QPushButton();
	m_moyConfidence = new ConfidenceWidget();

	m_state=0;
	confidenceSum=0;
	curRow = 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_layout->setSpacing(0);
	m_layout->setMargin(0);
	m_layout->addWidget(m_moyConfidence,curRow,0,1,1);
	m_layout->addWidget(m_button,curRow,1,1,1);
	curRow++;


	this->setLayout(m_layout);

    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_layout->addWidget(auxConfidence,curRow,0,1,2);

	m_moyConfidence->setConfidence(confidenceSum/curRow);
	if(curRow>1){
		m_button->setEnabled(true);
	}else{
		m_button->setEnabled(false);
	}
	curRow++;
}

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(){
	if(m_state){
		this->setMaximumHeight((curRow)*30);
		this->setMinimumHeight((curRow)*30);
	}else{
		this->setMaximumHeight(30);
		this->setMinimumHeight(30);
	}
}

void ConfidenceListWidget::changeSate(){
	m_state = !m_state;
	for(int i=2; i<curRow+1;i++){
		 m_layout->itemAt(i)->widget()->setVisible(m_state);
	}
	updateSize();
	refreshButtonIcone();
}