AlbumShaper  1.0a3
Public Member Functions | Private Slots | Private Attributes | List of all members
SliderToolTip Class Reference

private class used by the DynamicSlider to show tooltips. do not use! More...

#include <dynamicSlider.h>

Inheritance diagram for SliderToolTip:
Inheritance graph
[legend]
Collaboration diagram for SliderToolTip:
Collaboration graph
[legend]

Public Member Functions

 SliderToolTip (QWidget *parent, DynamicSlider *slider)
 

Private Slots

void showTooltip ()
 
void update ()
 
void hideTooltip ()
 

Private Attributes

DynamicSliderslider
 

Detailed Description

private class used by the DynamicSlider to show tooltips. do not use!

Definition at line 73 of file dynamicSlider.h.

Constructor & Destructor Documentation

§ SliderToolTip()

SliderToolTip::SliderToolTip ( QWidget parent,
DynamicSlider slider 
)

Definition at line 127 of file dynamicSlider.cpp.

References hideTooltip(), showTooltip(), slider, and update().

128 : QLabel( parent, "toolTipTip",
129  Qt::WStyle_StaysOnTop | Qt::WStyle_Customize |
130  Qt::WStyle_NoBorder | Qt::WStyle_Tool | Qt::WX11BypassWM )
131 {
132  //store slider handle
133  this->slider = slider;
134 
135  //setup lable to use standard black writing on a light yellow background so it
136  //looks like a normal tooltip
137  setPaletteForegroundColor( QColor("Black") );
138  setPaletteBackgroundColor( QColor("LightYellow") );
139 
140  //use default system tooltip font
141  setFont( QToolTip::font() );
142 
143  //setup the otherparmslike a frame etc so it looks like a normal tooltip
144  setMargin(1);
145  //setAutoMask( FALSE ); FIXME probably needs to be replaced
146  setFrameStyle( Q3Frame::Plain | Q3Frame::Box );
147  setLineWidth( 1 );
148  setAlignment( Qt::AlignLeft | Qt::AlignTop );
149  setIndent(0);
150  polish();
151  adjustSize();
152 
153  //show the tooltip when the user presses the slider
154  connect( slider, SIGNAL( sliderPressed() ), this, SLOT( showTooltip() ) );
155 
156  //move tooltip to follow the slider handle
157  setMouseTracking(true);
158  connect( slider, SIGNAL( mouseHasMoved() ), this, SLOT( update() ) );
159 
160  //hide tooltip when users releases the slider
161  connect( slider, SIGNAL( sliderReleased() ), this, SLOT( hideTooltip() ) );
162 }
DynamicSlider * slider
Definition: dynamicSlider.h:81

Member Function Documentation

§ hideTooltip

void SliderToolTip::hideTooltip ( )
privateslot

Definition at line 171 of file dynamicSlider.cpp.

Referenced by SliderToolTip().

171 { hide(); }

§ showTooltip

void SliderToolTip::showTooltip ( )
privateslot

Definition at line 164 of file dynamicSlider.cpp.

References update().

Referenced by SliderToolTip().

165 {
166  //make sure label is up-to-date
167  update();
168  show();
169 }

§ update

void SliderToolTip::update ( )
privateslot

Definition at line 173 of file dynamicSlider.cpp.

References DynamicSlider::getMousePos(), height, slider, and width.

Referenced by showTooltip(), and SliderToolTip().

174 {
175  //margin well provide betweent the slider and the tooltip
176  const int TOOLTIP_MARGIN = 4;
177 
178  //fetch slider handle rect
179  QStyleOption o;
180  o.initFrom(slider);
181  QRect sliderRect = style()->subControlRect(QStyle::CC_Slider, qstyleoption_cast<QStyleOptionSlider*>(&o), QStyle::SC_SliderHandle, this);
182 
183  //determine location tooltip will be shown
184  QPoint tooltipTopLeft;
185  if( slider->orientation() == Qt::Horizontal )
186  {
187  tooltipTopLeft = QPoint( sliderRect.right() + TOOLTIP_MARGIN,
188  slider->getMousePos().y() >= sliderRect.top() ?
189  sliderRect.top() - TOOLTIP_MARGIN - height() :
190  sliderRect.bottom() + TOOLTIP_MARGIN );
191  }
192  else
193  {
194  tooltipTopLeft = QPoint( slider->getMousePos().x() >= sliderRect.right() ?
195  sliderRect.left() - TOOLTIP_MARGIN - width() :
196  sliderRect.right() + TOOLTIP_MARGIN,
197  (sliderRect.top() + sliderRect.bottom())/2 - height()/2 );
198  }
199 
200  //map tooltip position from slider widget to screen coordinates
201  tooltipTopLeft = slider->mapToGlobal( tooltipTopLeft );
202 
203  //position tooltip
204  move( tooltipTopLeft );
205  if( isShown() ) qApp->processEvents();
206 }
DynamicSlider * slider
Definition: dynamicSlider.h:81
int width
Definition: blur.cpp:79
QPoint getMousePos()
int height
Definition: blur.cpp:79

Member Data Documentation

§ slider

DynamicSlider* SliderToolTip::slider
private

Definition at line 81 of file dynamicSlider.h.

Referenced by SliderToolTip(), and update().


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