RangeSlider.qml 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. // Copyright (C) 2017 The Qt Company Ltd.
  2. // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
  3. // Qt-Security score:significant reason:default
  4. import QtQuick
  5. import QtQuick.Templates as T
  6. import QtQuick.Controls.impl
  7. import QtQuick.Controls.Fusion
  8. import QtQuick.Controls.Fusion.impl
  9. T.RangeSlider {
  10. id: control
  11. implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
  12. Math.max(first.implicitHandleWidth,
  13. second.implicitHandleWidth) + leftPadding + rightPadding)
  14. implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
  15. Math.max(first.implicitHandleHeight,
  16. second.implicitHandleHeight) + topPadding + bottomPadding)
  17. first.handle: SliderHandle {
  18. x: control.leftPadding + Math.round(control.horizontal ? control.first.visualPosition * (control.availableWidth - width) : (control.availableWidth - width) / 2)
  19. y: control.topPadding + Math.round(control.horizontal ? (control.availableHeight - height) / 2 : control.first.visualPosition * (control.availableHeight - height))
  20. palette: control.palette
  21. pressed: control.first.pressed
  22. hovered: control.first.hovered
  23. vertical: control.vertical
  24. visualFocus: activeFocus
  25. }
  26. second.handle: SliderHandle {
  27. x: control.leftPadding + Math.round(control.horizontal ? control.second.visualPosition * (control.availableWidth - width) : (control.availableWidth - width) / 2)
  28. y: control.topPadding + Math.round(control.horizontal ? (control.availableHeight - height) / 2 : control.second.visualPosition * (control.availableHeight - height))
  29. palette: control.palette
  30. pressed: control.second.pressed
  31. hovered: control.second.hovered
  32. vertical: control.vertical
  33. visualFocus: activeFocus
  34. }
  35. background: SliderGroove {
  36. control: control
  37. offset: control.first.position
  38. progress: control.second.position
  39. visualProgress: control.second.visualPosition
  40. }
  41. }