lbajardsilogic@83
|
1 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
|
lbajardsilogic@83
|
2
|
lbajardsilogic@83
|
3 /* Sound Access
|
lbajardsilogic@83
|
4 EASAIER client application.
|
lbajardsilogic@83
|
5 Silogic 2007. Laure Bajard.
|
lbajardsilogic@83
|
6
|
lbajardsilogic@83
|
7 This program is free software; you can redistribute it and/or
|
lbajardsilogic@83
|
8 modify it under the terms of the GNU General Public License as
|
lbajardsilogic@83
|
9 published by the Free Software Foundation; either version 2 of the
|
lbajardsilogic@83
|
10 License, or (at your option) any later version. See the file
|
lbajardsilogic@83
|
11 COPYING included with this distribution for more information.
|
lbajardsilogic@83
|
12 */
|
lbajardsilogic@83
|
13
|
lbajardsilogic@232
|
14 #include <QVBoxLayout>
|
lbajardsilogic@232
|
15
|
lbajardsilogic@83
|
16 #include "Slider.h"
|
lbajardsilogic@83
|
17
|
lbajardsilogic@232
|
18 Slider::Slider(QWidget *parent) : QWidget(parent) ,
|
lbajardsilogic@206
|
19 m_showTooltip(true)
|
lbajardsilogic@206
|
20 {
|
lbajardsilogic@232
|
21 QHBoxLayout *mainlayout = new QHBoxLayout();
|
lbajardsilogic@232
|
22 mainlayout->setMargin(0);
|
lbajardsilogic@232
|
23
|
lbajardsilogic@232
|
24 m_slider = new QSlider(Qt::Horizontal);
|
lbajardsilogic@232
|
25
|
lbajardsilogic@232
|
26 m_label = new QLabel;
|
lbajardsilogic@232
|
27 connect(m_slider, SIGNAL(valueChanged(int)), m_label, SLOT(setNum(int)));
|
lbajardsilogic@232
|
28 m_label->setNum(value());
|
lbajardsilogic@232
|
29
|
lbajardsilogic@232
|
30 mainlayout->addWidget(m_slider);
|
lbajardsilogic@232
|
31 mainlayout->addWidget(m_label);
|
lbajardsilogic@232
|
32
|
lbajardsilogic@232
|
33 setLayout(mainlayout);
|
lbajardsilogic@232
|
34
|
lbajardsilogic@232
|
35 connect(m_slider, SIGNAL(valueChanged(int)),
|
lbajardsilogic@206
|
36 this, SLOT(updateToolTip()));
|
lbajardsilogic@232
|
37
|
lbajardsilogic@232
|
38 connect(m_slider, SIGNAL(valueChanged(int)),
|
lbajardsilogic@232
|
39 this, SIGNAL(valueChanged(int)));
|
lbajardsilogic@232
|
40
|
lbajardsilogic@206
|
41 }
|
lbajardsilogic@206
|
42
|
lbajardsilogic@232
|
43 Slider::Slider(Qt::Orientation orientation, QWidget * parent) : QWidget(parent) ,
|
lbajardsilogic@206
|
44 m_showTooltip(true)
|
lbajardsilogic@206
|
45 {
|
lbajardsilogic@232
|
46 QGridLayout *mainlayout = new QGridLayout();
|
lbajardsilogic@232
|
47 mainlayout->setMargin(0);
|
lbajardsilogic@232
|
48
|
lbajardsilogic@232
|
49 m_slider = new QSlider(orientation);
|
lbajardsilogic@232
|
50
|
lbajardsilogic@232
|
51 m_label = new QLabel;
|
lbajardsilogic@232
|
52 connect(m_slider, SIGNAL(valueChanged(int)), m_label, SLOT(setNum(int)));
|
lbajardsilogic@232
|
53 m_label->setNum(value());
|
lbajardsilogic@232
|
54
|
lbajardsilogic@232
|
55 if (orientation == Qt::Horizontal)
|
lbajardsilogic@232
|
56 {
|
lbajardsilogic@232
|
57 mainlayout->addWidget(m_slider, 0, 0);
|
lbajardsilogic@232
|
58 mainlayout->addWidget(m_label, 0, 1);
|
lbajardsilogic@232
|
59 } else {
|
lbajardsilogic@232
|
60 mainlayout->addWidget(m_slider, 0, 0);
|
lbajardsilogic@232
|
61 mainlayout->addWidget(m_label, 1, 0);
|
lbajardsilogic@232
|
62 }
|
lbajardsilogic@232
|
63
|
lbajardsilogic@232
|
64 setLayout(mainlayout);
|
lbajardsilogic@232
|
65
|
lbajardsilogic@232
|
66 connect(m_slider, SIGNAL(valueChanged(int)),
|
lbajardsilogic@206
|
67 this, SLOT(updateToolTip()));
|
lbajardsilogic@232
|
68
|
lbajardsilogic@232
|
69 connect(m_slider, SIGNAL(valueChanged(int)),
|
lbajardsilogic@232
|
70 this, SIGNAL(valueChanged(int)));
|
lbajardsilogic@232
|
71 }
|
lbajardsilogic@232
|
72
|
lbajardsilogic@232
|
73 void Slider::setOrientation(Qt::Orientation or)
|
lbajardsilogic@232
|
74 {
|
lbajardsilogic@232
|
75 QLayout * cur_layout = layout();
|
lbajardsilogic@232
|
76 delete cur_layout;
|
lbajardsilogic@232
|
77
|
lbajardsilogic@232
|
78 QGridLayout *mainlayout = new QGridLayout();
|
lbajardsilogic@232
|
79 mainlayout->setMargin(0);
|
lbajardsilogic@232
|
80
|
lbajardsilogic@232
|
81 m_slider->setOrientation(or);
|
lbajardsilogic@232
|
82
|
lbajardsilogic@232
|
83 if (or == Qt::Horizontal)
|
lbajardsilogic@232
|
84 {
|
lbajardsilogic@232
|
85 mainlayout->addWidget(m_slider, 0, 0);
|
lbajardsilogic@232
|
86 mainlayout->addWidget(m_label, 0, 1);
|
lbajardsilogic@232
|
87 } else {
|
lbajardsilogic@232
|
88 mainlayout->addWidget(m_slider, 0, 0);
|
lbajardsilogic@232
|
89 mainlayout->addWidget(m_label, 1, 0);
|
lbajardsilogic@232
|
90 }
|
lbajardsilogic@232
|
91
|
lbajardsilogic@232
|
92 this->setLayout(mainlayout);
|
lbajardsilogic@232
|
93
|
lbajardsilogic@206
|
94 }
|
lbajardsilogic@206
|
95
|
lbajardsilogic@83
|
96 Slider::~Slider()
|
lbajardsilogic@83
|
97 {
|
lbajardsilogic@83
|
98 }
|
lbajardsilogic@83
|
99
|
lbajardsilogic@83
|
100 void
|
lbajardsilogic@83
|
101 Slider::enterEvent(QEvent *e)
|
lbajardsilogic@83
|
102 {
|
lbajardsilogic@232
|
103 QWidget::enterEvent(e);
|
lbajardsilogic@83
|
104 QPalette palette;
|
lbajardsilogic@83
|
105 palette.setColor(QPalette::Button,palette.color(QPalette::Highlight));
|
lbajardsilogic@83
|
106 setPalette(palette);
|
lbajardsilogic@83
|
107 emit mouseEntered();
|
lbajardsilogic@83
|
108 }
|
lbajardsilogic@83
|
109
|
lbajardsilogic@83
|
110 void
|
lbajardsilogic@83
|
111 Slider::leaveEvent(QEvent *e)
|
lbajardsilogic@83
|
112 {
|
lbajardsilogic@232
|
113 QWidget::enterEvent(e);
|
lbajardsilogic@83
|
114 QPalette palette;
|
lbajardsilogic@83
|
115 setPalette(palette);
|
lbajardsilogic@83
|
116 emit mouseLeft();
|
lbajardsilogic@206
|
117 }
|
lbajardsilogic@206
|
118
|
lbajardsilogic@206
|
119 void Slider::setShowToolTip(bool show)
|
lbajardsilogic@206
|
120 {
|
lbajardsilogic@206
|
121 m_showTooltip = show;
|
lbajardsilogic@206
|
122 /*m_noMappedUpdate = true;
|
lbajardsilogic@206
|
123 updateMappedValue(value());
|
lbajardsilogic@206
|
124 m_noMappedUpdate = false;*/
|
lbajardsilogic@206
|
125 updateToolTip();
|
lbajardsilogic@206
|
126 }
|
lbajardsilogic@206
|
127
|
lbajardsilogic@206
|
128 void Slider::updateToolTip()
|
lbajardsilogic@206
|
129 {
|
lbajardsilogic@206
|
130 if (m_showTooltip) {
|
lbajardsilogic@206
|
131 QString name = objectName();
|
lbajardsilogic@206
|
132 QString unit = "";
|
lbajardsilogic@206
|
133 QString text;
|
lbajardsilogic@206
|
134 //if (m_rangeMapper) unit = m_rangeMapper->getUnit();
|
lbajardsilogic@206
|
135 if (name != "") {
|
lbajardsilogic@206
|
136 text = tr("%1: %2%3").arg(name).arg(value()).arg(unit);
|
lbajardsilogic@206
|
137 } else {
|
lbajardsilogic@206
|
138 text = tr("%2%3").arg(value()).arg(unit);
|
lbajardsilogic@206
|
139 }
|
lbajardsilogic@206
|
140 setToolTip(text);
|
lbajardsilogic@206
|
141 }
|
benoitrigolleau@277
|
142 }
|
benoitrigolleau@277
|
143
|
benoitrigolleau@277
|
144 void Slider::useLabel(bool val){
|
benoitrigolleau@277
|
145 if(val){
|
benoitrigolleau@277
|
146 connect(m_slider, SIGNAL(valueChanged(int)), m_label, SLOT(setNum(int)));
|
benoitrigolleau@277
|
147 m_label->setVisible(true);
|
benoitrigolleau@277
|
148 }else{
|
benoitrigolleau@277
|
149 disconnect(m_slider, SIGNAL(valueChanged(int)), m_label, SLOT(setNum(int)));
|
benoitrigolleau@277
|
150 m_label->setVisible(false);
|
benoitrigolleau@277
|
151 m_label->setText("");
|
benoitrigolleau@277
|
152 }
|
lbajardsilogic@83
|
153 } |