rock_widget_collection  0.1
Signals | Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
Slider Class Reference

#include <Slider.h>

Inherits QObject, and QGraphicsPixmapItem.

Inherited by BoundarySlider, and IndexSlider.

Signals

void sliderMoved (Slider *slider, int idx)
 
void sliderClicked (Slider *slider)
 
void sliderReleased (Slider *slider, int idx)
 

Public Member Functions

 Slider ()
 
 Slider (QGraphicsItem *parent, unsigned initIdx)
 
unsigned getInitIdx ()
 
unsigned getLastIndex ()
 
void setLastIndex (unsigned index)
 
QPointF boundarySnapPos (QPointF eventPos, qreal clickPosOffsetX, qreal leftBoundary, qreal rightBoundary)
 
qreal getClickPosOffsetX (QGraphicsSceneMouseEvent *event)
 
virtual int height () const
 
virtual int width () const
 

Protected Member Functions

void mousePressEvent (QGraphicsSceneMouseEvent *event)
 
void mouseMoveEvent (QGraphicsSceneMouseEvent *event)
 
void mouseReleaseEvent (QGraphicsSceneMouseEvent *event)
 

Protected Attributes

unsigned initIdx
 
unsigned lastIndex
 

Detailed Description

Definition at line 7 of file Slider.h.

Constructor & Destructor Documentation

◆ Slider() [1/2]

Slider::Slider ( )

Definition at line 5 of file Slider.cc.

5  {
6 
7 }

◆ Slider() [2/2]

Slider::Slider ( QGraphicsItem *  parent,
unsigned  initIdx 
)

Definition at line 9 of file Slider.cc.

9  {
10  setParentItem(parent);
11  this->initIdx = initIdx;
12 }
unsigned initIdx
Definition: Slider.h:34

Member Function Documentation

◆ boundarySnapPos()

QPointF Slider::boundarySnapPos ( QPointF  eventPos,
qreal  clickPosOffsetX,
qreal  leftBoundary,
qreal  rightBoundary 
)

Definition at line 18 of file Slider.cc.

18  {
19 
20  QPointF newPos;
21 
22  // Restricting the sliding area. The left and right boundaries of the slider bar
23  // cannot be surpassed.
24  if(mapToParent(eventPos).x() - clickPosOffsetX < leftBoundary) {
25  // Stepped over left boundary.
26  newPos = QPointF(leftBoundary, pos().y());
27  } else if (mapToParent(eventPos).x() - clickPosOffsetX > rightBoundary) {
28  // Stepped over right boundary.
29  newPos = QPointF(rightBoundary, pos().y());
30  } else {
31  // Slider position is within boundaries.
32  newPos = QPointF(mapToParent(eventPos).x() - clickPosOffsetX /*- getPointingOffset()*/,
33  pos().y() );
34  }
35  return newPos;
36 }

◆ getClickPosOffsetX()

qreal Slider::getClickPosOffsetX ( QGraphicsSceneMouseEvent *  event)

Definition at line 38 of file Slider.cc.

38  {
39  // Offset of clicked x coordinate of time marker item w.r.t. item origin.x
40  return mapToParent(event->buttonDownPos((Qt::LeftButton))).x() - pos().x();
41 }

◆ getInitIdx()

unsigned Slider::getInitIdx ( )

Definition at line 14 of file Slider.cc.

14  {
15  return initIdx;
16 }
unsigned initIdx
Definition: Slider.h:34

◆ getLastIndex()

unsigned Slider::getLastIndex ( )

Definition at line 51 of file Slider.cc.

51  {
52  return lastIndex;
53 }
unsigned lastIndex
Definition: Slider.h:35

◆ height()

int Slider::height ( ) const
virtual

Definition at line 43 of file Slider.cc.

43  {
44  return pixmap().height();
45 }

◆ mouseMoveEvent()

void Slider::mouseMoveEvent ( QGraphicsSceneMouseEvent *  event)
protected

Definition at line 66 of file Slider.cc.

66  {
67  /* Sliding bounds in parent's coords */
68  qreal leftBoundary = parentItem()->boundingRect().left();
69  qreal rightBoundary = parentItem()->boundingRect().right();
70 
71  QPointF newPos = boundarySnapPos(event->pos(), getClickPosOffsetX(event), leftBoundary, rightBoundary);
72  setPos(newPos);
73 
74  unsigned index = ((SlideBarItem*)parentItem())->markerIndex(this);
75 
76  setLastIndex(index);
77 
78 // std::cout << "Logical marker position: " << index << std::endl;
79 // std::cout << "Computed real position for that index: " << ((SlideBarItem*)parentItem())->markerPositionForIndex(index) << std::endl;
80  update();
81 }
qreal getClickPosOffsetX(QGraphicsSceneMouseEvent *event)
Definition: Slider.cc:38
QPointF boundarySnapPos(QPointF eventPos, qreal clickPosOffsetX, qreal leftBoundary, qreal rightBoundary)
Definition: Slider.cc:18
void setLastIndex(unsigned index)
Definition: Slider.cc:55

◆ mousePressEvent()

void Slider::mousePressEvent ( QGraphicsSceneMouseEvent *  event)
protected

Definition at line 61 of file Slider.cc.

62 {
63  sliderClicked(this);
64 }
void sliderClicked(Slider *slider)

◆ mouseReleaseEvent()

void Slider::mouseReleaseEvent ( QGraphicsSceneMouseEvent *  event)
protected

Definition at line 83 of file Slider.cc.

83  {
84  emit sliderReleased(this, getLastIndex());
85 }
unsigned getLastIndex()
Definition: Slider.cc:51
void sliderReleased(Slider *slider, int idx)

◆ setLastIndex()

void Slider::setLastIndex ( unsigned  index)

Definition at line 55 of file Slider.cc.

55  {
56  if(index != lastIndex)
57  emit sliderMoved(this, index);
58  this->lastIndex = index;
59 }
void sliderMoved(Slider *slider, int idx)
unsigned lastIndex
Definition: Slider.h:35

◆ sliderClicked

void Slider::sliderClicked ( Slider slider)
signal

◆ sliderMoved

void Slider::sliderMoved ( Slider slider,
int  idx 
)
signal

◆ sliderReleased

void Slider::sliderReleased ( Slider slider,
int  idx 
)
signal

◆ width()

int Slider::width ( ) const
virtual

Definition at line 47 of file Slider.cc.

47  {
48  return pixmap().width();
49 }

Member Data Documentation

◆ initIdx

unsigned Slider::initIdx
protected

Definition at line 34 of file Slider.h.

◆ lastIndex

unsigned Slider::lastIndex
protected

Definition at line 35 of file Slider.h.


The documentation for this class was generated from the following files: