benoitrigolleau@108: /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */ benoitrigolleau@108: benoitrigolleau@108: /* benoitrigolleau@108: Sound Access benoitrigolleau@108: EASAIER client application. benoitrigolleau@108: Silogic 2007. Benoit Rigolleau. benoitrigolleau@108: benoitrigolleau@108: This program is free software; you can redistribute it and/or benoitrigolleau@108: modify it under the terms of the GNU General Public License as benoitrigolleau@108: published by the Free Software Foundation; either version 2 of the benoitrigolleau@108: License, or (at your option) any later version. See the file benoitrigolleau@108: COPYING included with this distribution for more information. benoitrigolleau@108: */ benoitrigolleau@108: benoitrigolleau@108: #include "ConfidenceListWidget.h" benoitrigolleau@108: #include "ConfidenceWidget.h" benoitrigolleau@108: benoitrigolleau@108: ConfidenceListWidget::ConfidenceListWidget(QWidget *parent):QWidget(parent){ benoitrigolleau@108: benoitrigolleau@108: m_vlayout = new QVBoxLayout; benoitrigolleau@108: m_vConfidenceLayout = new QVBoxLayout; benoitrigolleau@108: m_hlayout = new QHBoxLayout; benoitrigolleau@108: m_button = new QPushButton(); benoitrigolleau@108: m_moyConfidence = new ConfidenceWidget(); benoitrigolleau@108: benoitrigolleau@108: m_state=0; benoitrigolleau@108: confidenceSum=0; benoitrigolleau@108: benoitrigolleau@108: m_moyConfidence->setMaximumHeight(30); benoitrigolleau@108: m_moyConfidence->setMinimumHeight(30); benoitrigolleau@108: m_moyConfidence->setMinimumWidth(100); benoitrigolleau@108: m_moyConfidence->setMaximumWidth(100); benoitrigolleau@108: benoitrigolleau@108: m_button->setMaximumHeight(16); benoitrigolleau@108: m_button->setMaximumWidth(16); benoitrigolleau@108: m_button->setMinimumHeight(16); benoitrigolleau@108: m_button->setMinimumWidth(16); benoitrigolleau@108: m_button->setEnabled(false); benoitrigolleau@108: benoitrigolleau@108: m_vConfidenceLayout->setSpacing(0); benoitrigolleau@108: m_vConfidenceLayout->addWidget(m_moyConfidence); benoitrigolleau@108: benoitrigolleau@108: m_vlayout->setSpacing(0); benoitrigolleau@108: m_vlayout->addLayout(m_vConfidenceLayout); benoitrigolleau@108: m_vlayout->addStretch(); benoitrigolleau@108: benoitrigolleau@108: m_hlayout->addLayout(m_vlayout); benoitrigolleau@108: benoitrigolleau@108: m_hlayout->addWidget(m_button); benoitrigolleau@108: benoitrigolleau@108: this->setLayout(m_hlayout); benoitrigolleau@108: benoitrigolleau@108: connect(m_button,SIGNAL(clicked()),this,SLOT(changeSate())); benoitrigolleau@108: benoitrigolleau@108: updateSize(); benoitrigolleau@108: refreshButtonIcone(); benoitrigolleau@108: benoitrigolleau@108: } benoitrigolleau@108: benoitrigolleau@108: void ConfidenceListWidget::addConfidence(int confidence, QString label){ benoitrigolleau@108: ConfidenceWidget *auxConfidence = new ConfidenceWidget(); benoitrigolleau@108: auxConfidence->setConfidence(confidence); benoitrigolleau@108: auxConfidence->setMaximumHeight(30); benoitrigolleau@108: auxConfidence->setMinimumHeight(30); benoitrigolleau@108: auxConfidence->setMinimumWidth(100); benoitrigolleau@108: auxConfidence->setMaximumWidth(100); benoitrigolleau@108: auxConfidence->setToolTip(label); benoitrigolleau@108: auxConfidence->setVisible(m_state); benoitrigolleau@108: benoitrigolleau@108: confidenceSum +=confidence; benoitrigolleau@108: m_vConfidenceLayout->addWidget(auxConfidence); benoitrigolleau@108: benoitrigolleau@108: m_moyConfidence->setConfidence(confidenceSum/(m_vConfidenceLayout->count()-1)); benoitrigolleau@108: if((m_vConfidenceLayout->count()-1)>1){ benoitrigolleau@108: m_button->setEnabled(true); benoitrigolleau@108: }else{ benoitrigolleau@108: m_button->setEnabled(false); benoitrigolleau@108: } benoitrigolleau@108: benoitrigolleau@108: benoitrigolleau@108: } benoitrigolleau@108: benoitrigolleau@108: void ConfidenceListWidget::reset(){ benoitrigolleau@108: benoitrigolleau@108: } benoitrigolleau@108: benoitrigolleau@108: benoitrigolleau@108: void ConfidenceListWidget::refreshButtonIcone(){ benoitrigolleau@108: if(m_state){ benoitrigolleau@108: //m_button->setIcon(QIcon(":icons/top.png")); benoitrigolleau@108: m_button->setText("-"); benoitrigolleau@108: }else{ benoitrigolleau@108: //m_button->setIcon(QIcon(":icons/bottom.png")); benoitrigolleau@108: m_button->setText("+"); benoitrigolleau@108: } benoitrigolleau@108: } benoitrigolleau@108: benoitrigolleau@108: void ConfidenceListWidget::updateSize(){ benoitrigolleau@108: int count = m_vConfidenceLayout->count(); benoitrigolleau@108: if(m_state){ benoitrigolleau@108: this->setMaximumHeight(count*30 + count); benoitrigolleau@108: }else{ benoitrigolleau@108: this->setMaximumHeight(37); benoitrigolleau@108: } benoitrigolleau@108: } benoitrigolleau@108: benoitrigolleau@108: void ConfidenceListWidget::changeSate(){ benoitrigolleau@108: m_state = !m_state; benoitrigolleau@108: int count = m_vConfidenceLayout->count(); benoitrigolleau@108: for(int i=1; iitemAt(i)->widget()->setVisible(m_state); benoitrigolleau@108: } benoitrigolleau@108: updateSize(); benoitrigolleau@108: refreshButtonIcone(); benoitrigolleau@108: } benoitrigolleau@108: