annotate 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
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@144 31 m_moyConfidence->setFixedHeight(30);
benoitrigolleau@108 32 m_moyConfidence->setMinimumWidth(100);
benoitrigolleau@108 33 m_moyConfidence->setMaximumWidth(100);
benoitrigolleau@108 34
benoitrigolleau@108 35 m_button->setMaximumHeight(16);
benoitrigolleau@108 36 m_button->setMaximumWidth(16);
benoitrigolleau@108 37 m_button->setMinimumHeight(16);
benoitrigolleau@108 38 m_button->setMinimumWidth(16);
benoitrigolleau@108 39 m_button->setEnabled(false);
benoitrigolleau@108 40
benoitrigolleau@108 41 m_vConfidenceLayout->setSpacing(0);
benoitrigolleau@108 42 m_vConfidenceLayout->addWidget(m_moyConfidence);
benoitrigolleau@108 43
benoitrigolleau@108 44 m_vlayout->setSpacing(0);
benoitrigolleau@108 45 m_vlayout->addLayout(m_vConfidenceLayout);
benoitrigolleau@108 46 m_vlayout->addStretch();
benoitrigolleau@108 47
benoitrigolleau@108 48 m_hlayout->addLayout(m_vlayout);
benoitrigolleau@108 49
benoitrigolleau@108 50 m_hlayout->addWidget(m_button);
benoitrigolleau@108 51
benoitrigolleau@108 52 this->setLayout(m_hlayout);
benoitrigolleau@108 53
benoitrigolleau@108 54 connect(m_button,SIGNAL(clicked()),this,SLOT(changeSate()));
benoitrigolleau@108 55
benoitrigolleau@108 56 updateSize();
benoitrigolleau@108 57 refreshButtonIcone();
benoitrigolleau@108 58
benoitrigolleau@108 59 }
benoitrigolleau@108 60
benoitrigolleau@108 61 void ConfidenceListWidget::addConfidence(int confidence, QString label){
benoitrigolleau@108 62 ConfidenceWidget *auxConfidence = new ConfidenceWidget();
benoitrigolleau@108 63 auxConfidence->setConfidence(confidence);
benoitrigolleau@108 64 auxConfidence->setMaximumHeight(30);
benoitrigolleau@108 65 auxConfidence->setMinimumHeight(30);
benoitrigolleau@108 66 auxConfidence->setMinimumWidth(100);
benoitrigolleau@108 67 auxConfidence->setMaximumWidth(100);
benoitrigolleau@108 68 auxConfidence->setToolTip(label);
benoitrigolleau@108 69 auxConfidence->setVisible(m_state);
benoitrigolleau@108 70
benoitrigolleau@108 71 confidenceSum +=confidence;
benoitrigolleau@108 72 m_vConfidenceLayout->addWidget(auxConfidence);
benoitrigolleau@108 73
benoitrigolleau@108 74 m_moyConfidence->setConfidence(confidenceSum/(m_vConfidenceLayout->count()-1));
benoitrigolleau@108 75 if((m_vConfidenceLayout->count()-1)>1){
benoitrigolleau@108 76 m_button->setEnabled(true);
benoitrigolleau@108 77 }else{
benoitrigolleau@108 78 m_button->setEnabled(false);
benoitrigolleau@108 79 }
benoitrigolleau@108 80
benoitrigolleau@108 81
benoitrigolleau@108 82 }
benoitrigolleau@108 83
benoitrigolleau@108 84 void ConfidenceListWidget::reset(){
benoitrigolleau@108 85
benoitrigolleau@108 86 }
benoitrigolleau@108 87
benoitrigolleau@108 88
benoitrigolleau@108 89 void ConfidenceListWidget::refreshButtonIcone(){
benoitrigolleau@108 90 if(m_state){
benoitrigolleau@108 91 //m_button->setIcon(QIcon(":icons/top.png"));
benoitrigolleau@108 92 m_button->setText("-");
benoitrigolleau@108 93 }else{
benoitrigolleau@108 94 //m_button->setIcon(QIcon(":icons/bottom.png"));
benoitrigolleau@108 95 m_button->setText("+");
benoitrigolleau@108 96 }
benoitrigolleau@108 97 }
benoitrigolleau@108 98
benoitrigolleau@108 99 void ConfidenceListWidget::updateSize(){
benoitrigolleau@108 100 int count = m_vConfidenceLayout->count();
benoitrigolleau@108 101 if(m_state){
benoitrigolleau@108 102 this->setMaximumHeight(count*30 + count);
benoitrigolleau@108 103 }else{
benoitrigolleau@108 104 this->setMaximumHeight(37);
benoitrigolleau@108 105 }
benoitrigolleau@108 106 }
benoitrigolleau@108 107
benoitrigolleau@108 108 void ConfidenceListWidget::changeSate(){
benoitrigolleau@108 109 m_state = !m_state;
benoitrigolleau@108 110 int count = m_vConfidenceLayout->count();
benoitrigolleau@108 111 for(int i=1; i<count;i++){
benoitrigolleau@108 112 m_vConfidenceLayout->itemAt(i)->widget()->setVisible(m_state);
benoitrigolleau@108 113 }
benoitrigolleau@108 114 updateSize();
benoitrigolleau@108 115 refreshButtonIcone();
benoitrigolleau@108 116 }
benoitrigolleau@108 117