annotate 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
rev   line source
benoitrigolleau@108 1 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
benoitrigolleau@108 2
benoitrigolleau@108 3 /*
benoitrigolleau@108 4 Sound Access
benoitrigolleau@108 5 EASAIER client application.
benoitrigolleau@108 6 Silogic 2007. Benoit Rigolleau.
benoitrigolleau@108 7
benoitrigolleau@108 8 This program is free software; you can redistribute it and/or
benoitrigolleau@108 9 modify it under the terms of the GNU General Public License as
benoitrigolleau@108 10 published by the Free Software Foundation; either version 2 of the
benoitrigolleau@108 11 License, or (at your option) any later version. See the file
benoitrigolleau@108 12 COPYING included with this distribution for more information.
benoitrigolleau@108 13 */
benoitrigolleau@108 14
benoitrigolleau@108 15 #include "ConfidenceListWidget.h"
benoitrigolleau@108 16 #include "ConfidenceWidget.h"
benoitrigolleau@108 17
benoitrigolleau@108 18 ConfidenceListWidget::ConfidenceListWidget(QWidget *parent):QWidget(parent){
benoitrigolleau@108 19
benoitrigolleau@108 20 m_vlayout = new QVBoxLayout;
benoitrigolleau@108 21 m_vConfidenceLayout = new QVBoxLayout;
benoitrigolleau@108 22 m_hlayout = new QHBoxLayout;
benoitrigolleau@108 23 m_button = new QPushButton();
benoitrigolleau@108 24 m_moyConfidence = new ConfidenceWidget();
benoitrigolleau@108 25
benoitrigolleau@108 26 m_state=0;
benoitrigolleau@108 27 confidenceSum=0;
benoitrigolleau@108 28
benoitrigolleau@108 29 m_moyConfidence->setMaximumHeight(30);
benoitrigolleau@108 30 m_moyConfidence->setMinimumHeight(30);
benoitrigolleau@108 31 m_moyConfidence->setMinimumWidth(100);
benoitrigolleau@108 32 m_moyConfidence->setMaximumWidth(100);
benoitrigolleau@108 33
benoitrigolleau@108 34 m_button->setMaximumHeight(16);
benoitrigolleau@108 35 m_button->setMaximumWidth(16);
benoitrigolleau@108 36 m_button->setMinimumHeight(16);
benoitrigolleau@108 37 m_button->setMinimumWidth(16);
benoitrigolleau@108 38 m_button->setEnabled(false);
benoitrigolleau@108 39
benoitrigolleau@108 40 m_vConfidenceLayout->setSpacing(0);
benoitrigolleau@108 41 m_vConfidenceLayout->addWidget(m_moyConfidence);
benoitrigolleau@108 42
benoitrigolleau@108 43 m_vlayout->setSpacing(0);
benoitrigolleau@108 44 m_vlayout->addLayout(m_vConfidenceLayout);
benoitrigolleau@108 45 m_vlayout->addStretch();
benoitrigolleau@108 46
benoitrigolleau@108 47 m_hlayout->addLayout(m_vlayout);
benoitrigolleau@108 48
benoitrigolleau@108 49 m_hlayout->addWidget(m_button);
benoitrigolleau@108 50
benoitrigolleau@108 51 this->setLayout(m_hlayout);
benoitrigolleau@108 52
benoitrigolleau@108 53 connect(m_button,SIGNAL(clicked()),this,SLOT(changeSate()));
benoitrigolleau@108 54
benoitrigolleau@108 55 updateSize();
benoitrigolleau@108 56 refreshButtonIcone();
benoitrigolleau@108 57
benoitrigolleau@108 58 }
benoitrigolleau@108 59
benoitrigolleau@108 60 void ConfidenceListWidget::addConfidence(int confidence, QString label){
benoitrigolleau@108 61 ConfidenceWidget *auxConfidence = new ConfidenceWidget();
benoitrigolleau@108 62 auxConfidence->setConfidence(confidence);
benoitrigolleau@108 63 auxConfidence->setMaximumHeight(30);
benoitrigolleau@108 64 auxConfidence->setMinimumHeight(30);
benoitrigolleau@108 65 auxConfidence->setMinimumWidth(100);
benoitrigolleau@108 66 auxConfidence->setMaximumWidth(100);
benoitrigolleau@108 67 auxConfidence->setToolTip(label);
benoitrigolleau@108 68 auxConfidence->setVisible(m_state);
benoitrigolleau@108 69
benoitrigolleau@108 70 confidenceSum +=confidence;
benoitrigolleau@108 71 m_vConfidenceLayout->addWidget(auxConfidence);
benoitrigolleau@108 72
benoitrigolleau@108 73 m_moyConfidence->setConfidence(confidenceSum/(m_vConfidenceLayout->count()-1));
benoitrigolleau@108 74 if((m_vConfidenceLayout->count()-1)>1){
benoitrigolleau@108 75 m_button->setEnabled(true);
benoitrigolleau@108 76 }else{
benoitrigolleau@108 77 m_button->setEnabled(false);
benoitrigolleau@108 78 }
benoitrigolleau@108 79
benoitrigolleau@108 80
benoitrigolleau@108 81 }
benoitrigolleau@108 82
benoitrigolleau@108 83 void ConfidenceListWidget::reset(){
benoitrigolleau@108 84
benoitrigolleau@108 85 }
benoitrigolleau@108 86
benoitrigolleau@108 87
benoitrigolleau@108 88 void ConfidenceListWidget::refreshButtonIcone(){
benoitrigolleau@108 89 if(m_state){
benoitrigolleau@108 90 //m_button->setIcon(QIcon(":icons/top.png"));
benoitrigolleau@108 91 m_button->setText("-");
benoitrigolleau@108 92 }else{
benoitrigolleau@108 93 //m_button->setIcon(QIcon(":icons/bottom.png"));
benoitrigolleau@108 94 m_button->setText("+");
benoitrigolleau@108 95 }
benoitrigolleau@108 96 }
benoitrigolleau@108 97
benoitrigolleau@108 98 void ConfidenceListWidget::updateSize(){
benoitrigolleau@108 99 int count = m_vConfidenceLayout->count();
benoitrigolleau@108 100 if(m_state){
benoitrigolleau@108 101 this->setMaximumHeight(count*30 + count);
benoitrigolleau@108 102 }else{
benoitrigolleau@108 103 this->setMaximumHeight(37);
benoitrigolleau@108 104 }
benoitrigolleau@108 105 }
benoitrigolleau@108 106
benoitrigolleau@108 107 void ConfidenceListWidget::changeSate(){
benoitrigolleau@108 108 m_state = !m_state;
benoitrigolleau@108 109 int count = m_vConfidenceLayout->count();
benoitrigolleau@108 110 for(int i=1; i<count;i++){
benoitrigolleau@108 111 m_vConfidenceLayout->itemAt(i)->widget()->setVisible(m_state);
benoitrigolleau@108 112 }
benoitrigolleau@108 113 updateSize();
benoitrigolleau@108 114 refreshButtonIcone();
benoitrigolleau@108 115 }
benoitrigolleau@108 116