| Home · All Classes · Main Classes · Deprecated |
Standard view is used to visualize sliders and seekbars. More...


Public Member Functions | |
| MSliderView (MSlider *controller) | |
| virtual | ~MSliderView () |
Protected Member Functions | |
| virtual void | applyStyle () |
| virtual void | mousePressEvent (QGraphicsSceneMouseEvent *event) |
| virtual void | mouseReleaseEvent (QGraphicsSceneMouseEvent *event) |
| virtual void | mouseMoveEvent (QGraphicsSceneMouseEvent *event) |
| virtual void | cancelEvent (MCancelEvent *event) |
| virtual void | setupModel () |
| virtual void | updateData (const QList< const char * > &modifications) |
| virtual void | timerEvent (QTimerEvent *event) |
| virtual void | hideEvent (QHideEvent *event) |
Protected Attributes | |
| MSliderViewPrivate *const | d_ptr |
Standard view is used to visualize sliders and seekbars.
Slider view class renders slider and seekbars.
Outlook of sliders and seekbars can be changed using the styling attributes defined in MSliderStyle and MWidgetStyle.
A slider (seekbar) can be in one of the following functional states:
Definition at line 58 of file views/msliderview.h.
| MSliderView::MSliderView | ( | MSlider * | controller | ) |
Constructs toolbar view.
| controller | Pointer to the controller. |
Definition at line 1494 of file msliderview.cpp.
:
MWidgetView(controller),
d_ptr(new MSliderViewPrivate)
{
Q_D(MSliderView);
d->q_ptr = this;
d->init(controller);
connect(controller, SIGNAL(visibleChanged()), this, SLOT(changeSliderHandleIndicatorVisibility()));
connect(controller, SIGNAL(displayExited()), this, SLOT(lowerSliderHandleIndicator()));
}

| MSliderView::~MSliderView | ( | ) | [virtual] |
| void MSliderView::applyStyle | ( | ) | [protected, virtual] |
Updates MSliderView class instance when current style is changed.
Called when MSliderStyle class instance is changed (usually) during initialization.
Reimplemented from MWidgetView.
Definition at line 1614 of file msliderview.cpp.
{
MWidgetView::applyStyle();
Q_D(MSliderView);
d->sliderGroove->setHandlePixmaps(style()->handlePixmap(),
style()->handlePressedPixmap(),
style()->handleVerticalPixmap(),
style()->handleVerticalPressedPixmap());
d->sliderGroove->setHandleIndicatorPixmaps(style()->handleLabelArrowLeftPixmap(),
style()->handleLabelArrowRightPixmap(),
style()->handleLabelArrowUpPixmap(),
style()->handleLabelArrowDownPixmap());
d->sliderGroove->setImages(style()->backgroundBaseImage(),
style()->backgroundElapsedImage(),
style()->backgroundReceivedImage(),
style()->backgroundVerticalBaseImage(),
style()->backgroundVerticalElapsedImage(),
style()->backgroundVerticalReceivedImage());
d->sliderGroove->setGrooveThickness(style()->grooveThickness());
d->sliderGroove->setGrooveLength(style()->groovePreferredLength(),
style()->grooveMinimumLength(),
style()->grooveMaximumLength());
d->updateOrientation();
//only to reposition slider handle
d->updateSliderGroove();
updateGeometry();
}

| void MSliderView::cancelEvent | ( | MCancelEvent * | event | ) | [protected, virtual] |
Cancel event handler.
Sets slider back to Released state.
Reimplemented from MWidgetView.
Definition at line 1665 of file msliderview.cpp.
{
Q_UNUSED(event);
Q_D(MSliderView);
d->controller->setState(MSliderModel::Released);
style()->cancelFeedback().play();
if (d->pressTimerId) {
killTimer(d->pressTimerId);
d->pressTimerId = 0;
}
if (d->positionAnimation)
d->positionAnimation->stop();
model()->setValue(d->valueWhenPressed);
d->sliderGroove->lowerHandleIndicator();
}

| void MSliderView::hideEvent | ( | QHideEvent * | event | ) | [protected, virtual] |
Timer event handler.
Called when timer event occures.
Definition at line 1751 of file msliderview.cpp.
{
Q_UNUSED(event);
lowerSliderHandleIndicator();
}
| void MSliderView::mouseMoveEvent | ( | QGraphicsSceneMouseEvent * | event | ) | [protected, virtual] |
Mouse move event handler.
If slider is in pressed State drags slider thumb. As slider handle is dragged MSlider::valueChanged(int) signal is emitted.
Reimplemented from MWidgetView.
Definition at line 1707 of file msliderview.cpp.
{
Q_D(MSliderView);
if (d->controller->isVisible() && d->controller->isOnDisplay()) {
if (d->controller->state() == MSliderModel::Pressed) {
d->playSliderMoveFeedback(d->updateValue(event));
if (model()->handleLabelVisible())
d->sliderGroove->raiseHandleIndicator();
} else
lowerSliderHandleIndicator();
} else {
if (d->controller->state() == MSliderModel::Pressed) {
d->controller->setState(MSliderModel::Released);
style()->cancelFeedback().play();
if (d->pressTimerId) {
killTimer(d->pressTimerId);
d->pressTimerId = 0;
}
if (d->positionAnimation)
d->positionAnimation->stop();
d->sliderGroove->lowerHandleIndicator();
}
}
}

| void MSliderView::mousePressEvent | ( | QGraphicsSceneMouseEvent * | event | ) | [protected, virtual] |
Mouse press event handler.
Accepted when clicking onto slider groove. Ignored clicking outside of slider groove. Timer event will be generated which set slider state to Pressed
Reimplemented from MWidgetView.
Definition at line 1648 of file msliderview.cpp.
{
Q_D(MSliderView);
if (d->controller->isVisible() && d->controller->isOnDisplay()) {
if (d->isCollision(event)) {
d->valueWhenPressed = model()->value();
d->controller->setState(MSliderModel::Pressed);
d->valueWhenFeedback = d->valueWhenPressed;
d->feedbackTimer.start();
style()->pressFeedback().play();
d->updateValue(event);
d->pressTimerId = startTimer(100);
}
}
}

| void MSliderView::mouseReleaseEvent | ( | QGraphicsSceneMouseEvent * | event | ) | [protected, virtual] |
Mouse press event handler.
Releases slider handle. Slider falls back into Released state and MSlider::sliderReleased() signal is emitted.
Reimplemented from MWidgetView.
Definition at line 1686 of file msliderview.cpp.
{
Q_D(MSliderView);
d->controller->setState(MSliderModel::Released);
if (d->controller->isVisible() && d->controller->isOnDisplay()) {
style()->releaseFeedback().play();
if (d->isCollision(event))
d->updateValue(event);
}
if (d->pressTimerId) {
killTimer(d->pressTimerId);
d->pressTimerId = 0;
}
d->sliderGroove->lowerHandleIndicator();
}

| void MSliderView::setupModel | ( | ) | [protected, virtual] |
Updates MSliderView class instance when current model is changed.
Called when MSliderModel (MSeekBarModel) class instance is changed (usually) during initialization.
Reimplemented from MWidgetView.
Definition at line 1580 of file msliderview.cpp.
{
MWidgetView::setupModel();
Q_D(MSliderView);
setPosition(model()->value());
d->minIndicator->setText(model()->minLabelText());
d->maxIndicator->setText(model()->maxLabelText());
d->sliderGroove->setIndicatorText(model()->handleLabelText());
d->minIndicator->setImage(model()->minLabelIcon());
d->maxIndicator->setImage(model()->maxLabelIcon());
d->sliderGroove->setIndicatorImage(model()->handleLabelIcon());
if (model()->minLabelVisible())
d->insertMinIndicatorToLayout();
else
d->removeMinIndicatorFromLayout();
if (model()->maxLabelVisible())
d->insertMaxIndicatorToLayout();
else
d->removeMaxIndicatorFromLayout();
d->sliderGroove->lowerHandleIndicator();
d->updateOrientation();
d->updateSliderGroove();
d->updateSeekBar();
updateGeometry();
}

| void MSliderView::timerEvent | ( | QTimerEvent * | event | ) | [protected, virtual] |
Timer event handler.
Called when timer event occures.
Reimplemented from QObject.
Definition at line 1738 of file msliderview.cpp.
{
Q_D(MSliderView);
if (event->timerId() == d->pressTimerId) {
killTimer(d->pressTimerId);
d->pressTimerId = 0;
if (model()->handleLabelVisible())
d->sliderGroove->raiseHandleIndicator();
}
}

| void MSliderView::updateData | ( | const QList< const char * > & | modifications | ) | [protected, virtual] |
Updates MSliderView class instance when some component of underlying model is modified.
| modifications | List containing the names of modified model components. |
Called when some field of underlying MSliderModel (MSeekBarModel) class instance is modified and view shuold reflect that modification.
Reimplemented from MWidgetView.
Definition at line 1519 of file msliderview.cpp.
{
MWidgetView::updateData(modifications);
Q_D(MSliderView);
const char *member;
foreach(member, modifications) {
if (member == MSliderModel::Orientation) {
d->updateOrientation();
updateGeometry();
}
if (member == MSliderModel::State)
d->updateSliderGroove();
else if (member == MSliderModel::Minimum)
d->updateSliderGroove();
else if (member == MSliderModel::Maximum)
d->updateSliderGroove();
else if (member == MSliderModel::Value) {
if (!(d->controller->isVisible() && d->controller->isOnDisplay())) {
setPosition(model()->value());
continue;
}
if (!d->positionAnimation) {
d->positionAnimation = d->createPositionAnimation();
}
d->positionAnimation->setEndValue(model()->value());
d->positionAnimation->start();
}
else if (member == MSliderModel::Steps)
d->updateSliderGroove();
else if (member == MSeekBarModel::LoadedContentMin)
d->updateSeekBar();
else if (member == MSeekBarModel::LoadedContentMax)
d->updateSeekBar();
else if (member == MSliderModel::MinLabelText)
d->minIndicator->setText(model()->minLabelText());
else if (member == MSliderModel::MaxLabelText)
d->maxIndicator->setText(model()->maxLabelText());
else if (member == MSliderModel::HandleLabelText)
d->sliderGroove->setIndicatorText(model()->handleLabelText());
else if (member == MSliderModel::MinLabelIcon)
d->minIndicator->setImage(model()->minLabelIcon());
else if (member == MSliderModel::MaxLabelIcon)
d->maxIndicator->setImage(model()->maxLabelIcon());
else if (member == MSliderModel::HandleLabelIcon)
d->sliderGroove->setIndicatorImage(model()->handleLabelIcon());
else if (member == MSliderModel::MinLabelVisible) {
if (model()->minLabelVisible())
d->insertMinIndicatorToLayout();
else
d->removeMinIndicatorFromLayout();
} else if (member == MSliderModel::MaxLabelVisible) {
if (model()->maxLabelVisible())
d->insertMaxIndicatorToLayout();
else
d->removeMaxIndicatorFromLayout();
}
}
}

MSliderViewPrivate* const MSliderView::d_ptr [protected] |
Reimplemented from MWidgetView.
Definition at line 156 of file views/msliderview.h.
| Copyright © 2010 Nokia Corporation | Generated on Thu Nov 4 2010 18:14:26 (PDT) Doxygen 1.7.1 |
MeeGo Touch |