00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #include <QtGui>
00025
00026 #include "slidersgroup.h"
00027
00028 SlidersGroup::SlidersGroup(Qt::Orientation orientation, const QString &title,
00029 QWidget *parent)
00030 : QGroupBox(title, parent)
00031 {
00032 slider = new QSlider(orientation);
00033 slider->setFocusPolicy(Qt::StrongFocus);
00034 slider->setTickPosition(QSlider::TicksBothSides);
00035 slider->setTickInterval(10);
00036 slider->setSingleStep(1);
00037
00038 scrollBar = new QScrollBar(orientation);
00039 scrollBar->setFocusPolicy(Qt::StrongFocus);
00040
00041 dial = new QDial;
00042 dial->setFocusPolicy(Qt::StrongFocus);
00043
00044 connect(slider, SIGNAL(valueChanged(int)), scrollBar, SLOT(setValue(int)));
00045 connect(scrollBar, SIGNAL(valueChanged(int)), dial, SLOT(setValue(int)));
00046 connect(dial, SIGNAL(valueChanged(int)), slider, SLOT(setValue(int)));
00047 connect(dial, SIGNAL(valueChanged(int)), this, SIGNAL(valueChanged(int)));
00048
00049 QBoxLayout::Direction direction;
00050
00051 if (orientation == Qt::Horizontal)
00052 direction = QBoxLayout::TopToBottom;
00053 else
00054 direction = QBoxLayout::LeftToRight;
00055
00056 QBoxLayout *slidersLayout = new QBoxLayout(direction);
00057 slidersLayout->addWidget(slider);
00058 slidersLayout->addWidget(scrollBar);
00059 slidersLayout->addWidget(dial);
00060 setLayout(slidersLayout);
00061 }
00062
00063 void SlidersGroup::setValue(int value)
00064 {
00065 slider->setValue(value);
00066 }
00067
00068 void SlidersGroup::setMinimum(int value)
00069 {
00070 slider->setMinimum(value);
00071 scrollBar->setMinimum(value);
00072 dial->setMinimum(value);
00073 }
00074
00075 void SlidersGroup::setMaximum(int value)
00076 {
00077 slider->setMaximum(value);
00078 scrollBar->setMaximum(value);
00079 dial->setMaximum(value);
00080 }
00081
00082 void SlidersGroup::invertAppearance(bool invert)
00083 {
00084 slider->setInvertedAppearance(invert);
00085 scrollBar->setInvertedAppearance(invert);
00086 dial->setInvertedAppearance(invert);
00087 }
00088
00089 void SlidersGroup::invertKeyBindings(bool invert)
00090 {
00091 slider->setInvertedControls(invert);
00092 scrollBar->setInvertedControls(invert);
00093 dial->setInvertedControls(invert);
00094 }