Mercurial > hg > easaier-soundaccess
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