浏览代码

Bug #312: slider tick position can be set

Miklos Espak 12 年之前
父节点
当前提交
0290440ce6

+ 15 - 0
Libs/Widgets/ctkDoubleRangeSlider.cpp

@@ -499,6 +499,20 @@ void ctkDoubleRangeSlider::setTickInterval(double newTickInterval)
 }
 
 // --------------------------------------------------------------------------
+QSlider::TickPosition ctkDoubleRangeSlider::tickPosition()const
+{
+  Q_D(const ctkDoubleRangeSlider);
+  return d->Slider->tickPosition();
+}
+
+// --------------------------------------------------------------------------
+void ctkDoubleRangeSlider::setTickPosition(QSlider::TickPosition newTickPosition)
+{
+  Q_D(ctkDoubleRangeSlider);
+  d->Slider->setTickPosition(newTickPosition);
+}
+
+// --------------------------------------------------------------------------
 bool ctkDoubleRangeSlider::hasTracking()const
 {
   Q_D(const ctkDoubleRangeSlider);
@@ -635,6 +649,7 @@ void ctkDoubleRangeSlider::setSlider(ctkRangeSlider* slider)
   slider->setSingleStep(d->Slider->singleStep());
   slider->setTracking(d->Slider->hasTracking());
   slider->setTickInterval(d->Slider->tickInterval());
+  slider->setTickPosition(d->Slider->tickPosition());
   delete d->Slider;
   qobject_cast<QHBoxLayout*>(this->layout())->addWidget(slider);
   d->Slider = slider;

+ 9 - 1
Libs/Widgets/ctkDoubleRangeSlider.h

@@ -23,7 +23,7 @@
 
 // Qt includes
 #include <QWidget>
-#include <QAbstractSlider>
+#include <QSlider>
 
 // CTK includes
 #include <ctkPimpl.h>
@@ -50,6 +50,7 @@ class CTK_WIDGETS_EXPORT ctkDoubleRangeSlider : public QWidget
   Q_PROPERTY(bool tracking READ hasTracking WRITE setTracking)
   Q_PROPERTY(Qt::Orientation orientation READ orientation WRITE setOrientation)
   Q_PROPERTY(double tickInterval READ tickInterval WRITE setTickInterval)
+  Q_PROPERTY(QSlider::TickPosition tickPosition READ tickPosition WRITE setTickPosition)
   Q_PROPERTY(bool symmetricMoves READ symmetricMoves WRITE setSymmetricMoves)
 public:
   // Superclass typedef
@@ -82,6 +83,13 @@ public:
   double tickInterval()const;
   
   /// 
+  /// This property holds the tickmark position for this slider.
+  /// The valid values are described by the QSlider::TickPosition enum.
+  /// The default value is QSlider::NoTicks.
+  void setTickPosition(QSlider::TickPosition position);
+  QSlider::TickPosition tickPosition()const;
+  
+  /// 
   /// This property holds the sliders's minimum value.
   /// When setting this property, the maximum is adjusted if necessary to
   /// ensure that the range remains valid. Also the slider's current values

+ 14 - 0
Libs/Widgets/ctkDoubleSlider.cpp

@@ -328,6 +328,20 @@ void ctkDoubleSlider::setTickInterval(double newTickInterval)
 }
 
 // --------------------------------------------------------------------------
+QSlider::TickPosition ctkDoubleSlider::tickPosition()const
+{
+  Q_D(const ctkDoubleSlider);
+  return d->Slider->tickPosition();
+}
+
+// --------------------------------------------------------------------------
+void ctkDoubleSlider::setTickPosition(QSlider::TickPosition newTickPosition)
+{
+  Q_D(ctkDoubleSlider);
+  d->Slider->setTickPosition(newTickPosition);
+}
+
+// --------------------------------------------------------------------------
 bool ctkDoubleSlider::hasTracking()const
 {
   Q_D(const ctkDoubleSlider);

+ 8 - 0
Libs/Widgets/ctkDoubleSlider.h

@@ -50,6 +50,7 @@ class CTK_WIDGETS_EXPORT ctkDoubleSlider : public QWidget
   Q_PROPERTY(double minimum READ minimum WRITE setMinimum)
   Q_PROPERTY(double maximum READ maximum WRITE setMaximum)
   Q_PROPERTY(double tickInterval READ tickInterval WRITE setTickInterval)
+  Q_PROPERTY(QSlider::TickPosition tickPosition READ tickPosition WRITE setTickPosition)
   Q_PROPERTY(bool tracking READ hasTracking WRITE setTracking)
   Q_PROPERTY(Qt::Orientation orientation READ orientation WRITE setOrientation)
   Q_PROPERTY(QString handleToolTip READ handleToolTip WRITE setHandleToolTip)
@@ -120,6 +121,13 @@ public:
   double tickInterval()const;
 
   /// 
+  /// This property holds the tickmark position for this slider.
+  /// The valid values are described by the QSlider::TickPosition enum.
+  /// The default value is QSlider::NoTicks.
+  void setTickPosition(QSlider::TickPosition position);
+  QSlider::TickPosition tickPosition()const;
+  
+  /// 
   /// This property holds the current slider position.
   /// If tracking is enabled (the default), this is identical to value.
   double sliderPosition()const;

+ 14 - 0
Libs/Widgets/ctkSliderWidget.cpp

@@ -443,6 +443,20 @@ void ctkSliderWidget::setTickInterval(double ti)
   d->Slider->setTickInterval(ti);
 }
 
+// --------------------------------------------------------------------------
+QSlider::TickPosition ctkSliderWidget::tickPosition()const
+{
+  Q_D(const ctkSliderWidget);
+  return d->Slider->tickPosition();
+}
+
+// --------------------------------------------------------------------------
+void ctkSliderWidget::setTickPosition(QSlider::TickPosition newTickPosition)
+{
+  Q_D(ctkSliderWidget);
+  d->Slider->setTickPosition(newTickPosition);
+}
+
 // -------------------------------------------------------------------------
 void ctkSliderWidget::reset()
 {

+ 8 - 0
Libs/Widgets/ctkSliderWidget.h

@@ -51,6 +51,7 @@ class CTK_WIDGETS_EXPORT ctkSliderWidget : public QWidget
   Q_PROPERTY(QString prefix READ prefix WRITE setPrefix)
   Q_PROPERTY(QString suffix READ suffix WRITE setSuffix)
   Q_PROPERTY(double tickInterval READ tickInterval WRITE setTickInterval)
+  Q_PROPERTY(QSlider::TickPosition tickPosition READ tickPosition WRITE setTickPosition)
   Q_PROPERTY(bool autoSpinBoxWidth READ isAutoSpinBoxWidth WRITE setAutoSpinBoxWidth)
   Q_PROPERTY(Qt::Alignment spinBoxAlignment READ spinBoxAlignment WRITE setSpinBoxAlignment)
   Q_PROPERTY(bool tracking READ hasTracking WRITE setTracking)
@@ -142,6 +143,13 @@ public:
   void setTickInterval(double ti);
 
   /// 
+  /// This property holds the tickmark position for the slider.
+  /// The valid values are described by the QSlider::TickPosition enum.
+  /// The default value is QSlider::NoTicks.
+  void setTickPosition(QSlider::TickPosition position);
+  QSlider::TickPosition tickPosition()const;
+  
+  /// 
   /// This property holds the alignment of the spin box.
   /// Possible Values are Qt::AlignLeft, Qt::AlignRight, and Qt::AlignHCenter.
   /// By default, the alignment is Qt::AlignLeft