Home · All Classes · Main Classes · Deprecated
Public Member Functions | Protected Member Functions | Protected Attributes

MSliderView Class Reference

Standard view is used to visualize sliders and seekbars. More...

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

List of all members.

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

Detailed Description

Standard view is used to visualize sliders and seekbars.

Overview

Slider view class renders slider and seekbars.

Outlook of sliders and seekbars can be changed using the styling attributes defined in MSliderStyle and MWidgetStyle.

Interactions

A slider (seekbar) can be in one of the following functional states:

Open issues

See also:
MSliderStyle MWidgetView

Definition at line 58 of file views/msliderview.h.


Constructor & Destructor Documentation

MSliderView::MSliderView ( MSlider controller  ) 

Constructs toolbar view.

Parameters:
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()));
}

Here is the call graph for this function:

MSliderView::~MSliderView (  )  [virtual]

Destructs the view.

Definition at line 1506 of file msliderview.cpp.

{
    delete d_ptr;
}


Member Function Documentation

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();
}

Here is the call graph for this function:

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();
}

Here is the call graph for this function:

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();
        }
    }
}

Here is the call graph for this function:

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);
        }
    }
}

Here is the call graph for this function:

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();
}

Here is the call graph for this function:

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();
}

Here is the call graph for this function:

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();
    }
}

Here is the call graph for this function:

void MSliderView::updateData ( const QList< const char * > &  modifications  )  [protected, virtual]

Updates MSliderView class instance when some component of underlying model is modified.

Parameters:
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();
        }
    }
}

Here is the call graph for this function:


Member Data Documentation

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