annotate widgets/Slider.cpp @ 282:d9319859a4cf tip

(none)
author benoitrigolleau
date Fri, 31 Oct 2008 11:00:24 +0000
parents 960531792d88
children
rev   line source
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 }