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 |