annotate widgets/ConfidenceListWidget.cpp @ 282:d9319859a4cf tip

(none)
author benoitrigolleau
date Fri, 31 Oct 2008 11:00:24 +0000
parents 735e67e91508
children
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@148 20 m_layout = new QGridLayout;
benoitrigolleau@108 21 m_button = new QPushButton();
benoitrigolleau@108 22 m_moyConfidence = new ConfidenceWidget();
benoitrigolleau@108 23
benoitrigolleau@108 24 m_state=0;
benoitrigolleau@108 25 confidenceSum=0;
benoitrigolleau@148 26 curRow = 0;
benoitrigolleau@108 27
benoitrigolleau@108 28 m_moyConfidence->setMaximumHeight(30);
benoitrigolleau@108 29 m_moyConfidence->setMinimumHeight(30);
benoitrigolleau@144 30 m_moyConfidence->setFixedHeight(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@148 40 m_layout->setSpacing(0);
benoitrigolleau@148 41 m_layout->setMargin(0);
benoitrigolleau@148 42 m_layout->addWidget(m_moyConfidence,curRow,0,1,1);
benoitrigolleau@148 43 m_layout->addWidget(m_button,curRow,1,1,1);
benoitrigolleau@148 44 curRow++;
benoitrigolleau@108 45
benoitrigolleau@108 46
benoitrigolleau@148 47 this->setLayout(m_layout);
benoitrigolleau@108 48
benoitrigolleau@108 49 connect(m_button,SIGNAL(clicked()),this,SLOT(changeSate()));
benoitrigolleau@108 50
benoitrigolleau@108 51 updateSize();
benoitrigolleau@108 52 refreshButtonIcone();
benoitrigolleau@108 53
benoitrigolleau@108 54 }
benoitrigolleau@108 55
benoitrigolleau@108 56 void ConfidenceListWidget::addConfidence(int confidence, QString label){
benoitrigolleau@108 57 ConfidenceWidget *auxConfidence = new ConfidenceWidget();
benoitrigolleau@108 58 auxConfidence->setConfidence(confidence);
benoitrigolleau@108 59 auxConfidence->setMaximumHeight(30);
benoitrigolleau@108 60 auxConfidence->setMinimumHeight(30);
benoitrigolleau@108 61 auxConfidence->setMinimumWidth(100);
benoitrigolleau@108 62 auxConfidence->setMaximumWidth(100);
benoitrigolleau@108 63 auxConfidence->setToolTip(label);
benoitrigolleau@108 64 auxConfidence->setVisible(m_state);
benoitrigolleau@108 65
benoitrigolleau@108 66 confidenceSum +=confidence;
benoitrigolleau@148 67 m_layout->addWidget(auxConfidence,curRow,0,1,2);
benoitrigolleau@148 68
benoitrigolleau@148 69 m_moyConfidence->setConfidence(confidenceSum/curRow);
benoitrigolleau@148 70 if(curRow>1){
benoitrigolleau@108 71 m_button->setEnabled(true);
benoitrigolleau@108 72 }else{
benoitrigolleau@108 73 m_button->setEnabled(false);
benoitrigolleau@108 74 }
benoitrigolleau@148 75 curRow++;
benoitrigolleau@108 76 }
benoitrigolleau@108 77
benoitrigolleau@108 78 void ConfidenceListWidget::reset(){
benoitrigolleau@108 79
benoitrigolleau@108 80 }
benoitrigolleau@108 81
benoitrigolleau@108 82
benoitrigolleau@108 83 void ConfidenceListWidget::refreshButtonIcone(){
benoitrigolleau@108 84 if(m_state){
benoitrigolleau@108 85 //m_button->setIcon(QIcon(":icons/top.png"));
benoitrigolleau@108 86 m_button->setText("-");
benoitrigolleau@108 87 }else{
benoitrigolleau@108 88 //m_button->setIcon(QIcon(":icons/bottom.png"));
benoitrigolleau@108 89 m_button->setText("+");
benoitrigolleau@108 90 }
benoitrigolleau@108 91 }
benoitrigolleau@108 92
benoitrigolleau@108 93 void ConfidenceListWidget::updateSize(){
benoitrigolleau@108 94 if(m_state){
benoitrigolleau@148 95 this->setMaximumHeight((curRow)*30);
benoitrigolleau@148 96 this->setMinimumHeight((curRow)*30);
benoitrigolleau@108 97 }else{
benoitrigolleau@148 98 this->setMaximumHeight(30);
benoitrigolleau@148 99 this->setMinimumHeight(30);
benoitrigolleau@108 100 }
benoitrigolleau@108 101 }
benoitrigolleau@108 102
benoitrigolleau@108 103 void ConfidenceListWidget::changeSate(){
benoitrigolleau@108 104 m_state = !m_state;
benoitrigolleau@148 105 for(int i=2; i<curRow+1;i++){
benoitrigolleau@148 106 m_layout->itemAt(i)->widget()->setVisible(m_state);
benoitrigolleau@108 107 }
benoitrigolleau@108 108 updateSize();
benoitrigolleau@108 109 refreshButtonIcone();
benoitrigolleau@108 110 }
benoitrigolleau@108 111