MCPcopy Create free account
hub / github.com/KDE/labplot / triggerAction

Method triggerAction

src/frontend/widgets/qxtspanslider.cpp:197–276  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

195}
196
197void QxtSpanSliderPrivate::triggerAction(QAbstractSlider::SliderAction action, bool main) {
198 int value = 0;
199 bool update = true;
200 bool isUpperHandle = false;
201 const int min = qxt_p().minimum();
202 const int max = qxt_p().maximum();
203 const QxtSpanSlider::SpanHandle altControl = (mainControl == QxtSpanSlider::LowerHandle ? QxtSpanSlider::UpperHandle : QxtSpanSlider::LowerHandle);
204
205 blockTracking = true;
206
207 switch (action) {
208 case QAbstractSlider::SliderSingleStepAdd:
209 if ((main && mainControl == QxtSpanSlider::UpperHandle) || (!main && altControl == QxtSpanSlider::UpperHandle)) {
210 value = qBound(min, upper + qxt_p().singleStep(), max);
211 isUpperHandle = true;
212 } else {
213 value = qBound(min, lower + qxt_p().singleStep(), max);
214 }
215 break;
216 case QAbstractSlider::SliderSingleStepSub:
217 if ((main && mainControl == QxtSpanSlider::UpperHandle) || (!main && altControl == QxtSpanSlider::UpperHandle)) {
218 value = qBound(min, upper - qxt_p().singleStep(), max);
219 isUpperHandle = true;
220 } else {
221 value = qBound(min, lower - qxt_p().singleStep(), max);
222 }
223 break;
224 case QAbstractSlider::SliderToMinimum:
225 value = min;
226 if ((main && mainControl == QxtSpanSlider::UpperHandle) || (!main && altControl == QxtSpanSlider::UpperHandle))
227 isUpperHandle = true;
228 break;
229 case QAbstractSlider::SliderToMaximum:
230 value = max;
231 if ((main && mainControl == QxtSpanSlider::UpperHandle) || (!main && altControl == QxtSpanSlider::UpperHandle))
232 isUpperHandle = true;
233 break;
234 case QAbstractSlider::SliderMove:
235 // This is handled not here, but in QxtSpanSlider::mouseMoveEvent
236 // so update not needed
237 update = false;
238 break;
239 case QAbstractSlider::SliderNoAction:
240 update = false;
241 break;
242 case QAbstractSlider::SliderPageStepAdd:
243 case QAbstractSlider::SliderPageStepSub:
244 break;
245 }
246
247 if (update) {
248 if (isUpperHandle) {
249 if (movement == QxtSpanSlider::NoCrossing)
250 value = qMin(value, upper);
251 else if (movement == QxtSpanSlider::NoOverlapping)
252 value = qMin(value, upper - 1);
253
254 if (movement == QxtSpanSlider::FreeMovement && value < lower) {

Callers 3

setLowerPositionMethod · 0.45
setUpperPositionMethod · 0.45
keyPressEventMethod · 0.45

Calls 6

setLowerPositionMethod · 0.80
setUpperPositionMethod · 0.80
setLowerValueMethod · 0.80
setUpperValueMethod · 0.80
minimumMethod · 0.45
maximumMethod · 0.45

Tested by

no test coverage detected