AlbumShaper 1.0a3
SliderToolTip Class Reference

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

#include <dynamicSlider.h>

Inheritance diagram for SliderToolTip:
Collaboration diagram for SliderToolTip:

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.

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

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

Member Function Documentation

◆ hideTooltip

void SliderToolTip::hideTooltip ( )
privateslot

Definition at line 171 of file dynamicSlider.cpp.

171{ hide(); }

Referenced by SliderToolTip().

◆ showTooltip

void SliderToolTip::showTooltip ( )
privateslot

Definition at line 164 of file dynamicSlider.cpp.

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

References update().

Referenced by SliderToolTip().

◆ update

void SliderToolTip::update ( )
privateslot

Definition at line 173 of file dynamicSlider.cpp.

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}
int width
Definition blur.cpp:79
int height
Definition blur.cpp:79

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

Referenced by showTooltip(), and SliderToolTip().

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: