| 195 | } |
| 196 | |
| 197 | void 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) { |
no test coverage detected