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

DynamicSlider * slider
 

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: