1 /************************************************************************
3 * Copyright 2010 Jakob Leben (jakob.leben@gmail.com)
5 * This file is part of SuperCollider Qt GUI.
7 * This program is free software: you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation, either version 3 of the License, or
10 * (at your option) any later version.
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
17 * You should have received a copy of the GNU General Public License
18 * along with this program. If not, see <http://www.gnu.org/licenses/>.
20 ************************************************************************/
23 #include "../QcWidgetFactory.h"
25 #include <QApplication>
27 static QcWidgetFactory
<QcSlider
> factory
;
30 : lastVal(0), bDoAction( false )
34 lastVal
= sliderPosition();
36 connect( this, SIGNAL(actionTriggered( int )),
37 this, SLOT(action( int )));
40 void QcSlider::increment( double factor
)
42 QSlider::setValue( QSlider::singleStep() * factor
+ QSlider::value() );
45 void QcSlider::decrement( double factor
)
47 QSlider::setValue( QSlider::singleStep() * (-factor
) + QSlider::value() );
50 void QcSlider::action( int act
)
52 if( sliderPosition() != lastVal
)
55 float step
= singleStep();
56 bool modified
= modifyStep( &step
);
59 if( act
== QAbstractSlider::SliderSingleStepAdd
||
60 act
== QAbstractSlider::SliderPageStepAdd
)
61 setSliderPosition( lastVal
+ step
);
63 setSliderPosition( lastVal
- step
);
66 lastVal
= sliderPosition();
71 void QcSlider::setStep( float fStep
)
73 int iStep
= fStep
* 10000;
74 setSingleStep( iStep
);