ganeswidgets/src/hgindexfeedback.cpp
changeset 1 e48454f237ca
parent 0 89c329efa980
child 6 1cdcc61142d2
equal deleted inserted replaced
0:89c329efa980 1:e48454f237ca
    57 /*!
    57 /*!
    58     Constructs a new HgIndexFeedback with a parent.
    58     Constructs a new HgIndexFeedback with a parent.
    59 */
    59 */
    60 HgIndexFeedback::HgIndexFeedback(QGraphicsItem *parent)
    60 HgIndexFeedback::HgIndexFeedback(QGraphicsItem *parent)
    61     : HbWidget( *new HgIndexFeedbackPrivate, parent, 0)
    61     : HbWidget( *new HgIndexFeedbackPrivate, parent, 0)
    62     
    62 
    63 {
    63 {
    64     Q_D( HgIndexFeedback );
    64     Q_D( HgIndexFeedback );
    65     d->q_ptr = this;
    65     d->q_ptr = this;
    66 
    66 
    67     HbStyleLoader::registerFilePath(":/hgindexfeedback.css");
    67     HbStyleLoader::registerFilePath(":/hgindexfeedback.css");
    68     
    68 
    69     d->init();
    69     d->init();
    70 }
    70 }
    71 
    71 
    72 /*!
    72 /*!
    73     Destructs the index feedback.
    73     Destructs the index feedback.
   132     if (!d->mWidget) {
   132     if (!d->mWidget) {
   133         return;
   133         return;
   134     }
   134     }
   135 
   135 
   136     d->connectModelToIndexFeedback(d->mWidget->selectionModel());
   136     d->connectModelToIndexFeedback(d->mWidget->selectionModel());
   137     
   137 
   138     d->connectScrollBarToIndexFeedback(d->mWidget->scrollBar());
   138     d->connectScrollBarToIndexFeedback(d->mWidget->scrollBar());
   139 
   139 
   140     connect(d->mWidget, SIGNAL(destroyed(QObject*)),
   140     connect(d->mWidget, SIGNAL(destroyed(QObject*)),
   141         this, SLOT(_q_itemViewDestroyed()));
   141         this, SLOT(_q_itemViewDestroyed()));
   142 
   142 
   176 
   176 
   177     switch (primitive) {
   177     switch (primitive) {
   178         case HbStyle::P_IndexFeedback_popup_text:
   178         case HbStyle::P_IndexFeedback_popup_text:
   179             retVal = d->mTextItem;
   179             retVal = d->mTextItem;
   180             break;
   180             break;
   181             
   181 
   182         case HbStyle::P_IndexFeedback_popup_background:
   182         case HbStyle::P_IndexFeedback_popup_background:
   183             retVal = d->mPopupItem;
   183             retVal = d->mPopupItem;
   184             break;
   184             break;
   185 
   185 
   186         default:
   186         default:
   201     Q_D( HgIndexFeedback );
   201     Q_D( HgIndexFeedback );
   202 
   202 
   203     if (ev->type() == QEvent::GraphicsSceneResize) {
   203     if (ev->type() == QEvent::GraphicsSceneResize) {
   204         d->calculatePopupRects();
   204         d->calculatePopupRects();
   205     }
   205     }
   206     
   206 
   207     return QGraphicsItem::sceneEventFilter(watched, ev);
   207     return QGraphicsItem::sceneEventFilter(watched, ev);
   208 }
   208 }
   209 
   209 
   210 /*
   210 /*
   211     Rather than adding signals to HbScrollBar specifically to implement 
   211     Rather than adding signals to HbScrollBar specifically to implement
   212     index feedback, an event filter is used.
   212     index feedback, an event filter is used.
   213 
   213 
   214     Specifically, if a scrollbar which is interactive is pressed or released
   214     Specifically, if a scrollbar which is interactive is pressed or released
   215     this function will call the appropriate function in HgIndexFeedbackPrivate.
   215     this function will call the appropriate function in HgIndexFeedbackPrivate.
   216 */
   216 */
   233             case QEvent::MouseButtonRelease:
   233             case QEvent::MouseButtonRelease:
   234                 if (scrollBar->isInteractive()) {
   234                 if (scrollBar->isInteractive()) {
   235                     d->scrollBarReleased();
   235                     d->scrollBarReleased();
   236                 }
   236                 }
   237                 break;
   237                 break;
   238         
   238 
   239             case QEvent::GraphicsSceneResize:
   239             case QEvent::GraphicsSceneResize:
   240             case QEvent::Resize:
   240             case QEvent::Resize:
   241                     d->_q_hideIndexFeedbackNow();
   241                     d->_q_hideIndexFeedbackNow();
   242                     d->calculatePopupRects();
   242                     d->calculatePopupRects();
   243                     d->updatePrimitives();
   243                     d->updatePrimitives();
   274 
   274 
   275     switch (d->mIndexFeedbackPolicy) {
   275     switch (d->mIndexFeedbackPolicy) {
   276         case HgWidget::IndexFeedbackSingleCharacter:
   276         case HgWidget::IndexFeedbackSingleCharacter:
   277             {
   277             {
   278                 fontSpec = HbFontSpec(HbFontSpec::Primary);
   278                 fontSpec = HbFontSpec(HbFontSpec::Primary);
   279                 fontSpec.setTextPaneHeight(d->textHeight());
   279                 fontSpec.setTextHeight(d->textHeight());
   280             }
   280             }
   281             break;
   281             break;
   282             
   282 
   283         case HgWidget::IndexFeedbackThreeCharacter:
   283         case HgWidget::IndexFeedbackThreeCharacter:
   284             {
   284             {
   285                 fontSpec = HbFontSpec(HbFontSpec::Primary);
   285                 fontSpec = HbFontSpec(HbFontSpec::Primary);
   286                 fontSpec.setTextPaneHeight(d->textHeight());
   286                 fontSpec.setTextHeight(d->textHeight());
   287             }
   287             }
   288             break;
   288             break;
   289 
   289 
   290         case HgWidget::IndexFeedbackString:
   290         case HgWidget::IndexFeedbackString:
   291             {
   291             {
   292                 fontSpec = HbFontSpec(HbFontSpec::Primary);
   292                 fontSpec = HbFontSpec(HbFontSpec::Primary);
   293                 qreal textPaneHeight = 0;
   293                 qreal textPaneHeight = 0;
   294                 style()->parameter(QLatin1String("hb-param-text-height-primary"), textPaneHeight);
   294                 style()->parameter(QLatin1String("hb-param-text-height-primary"), textPaneHeight);
   295                 fontSpec.setTextPaneHeight( textPaneHeight );
   295                 fontSpec.setTextHeight( textPaneHeight );
   296             }
   296             }
   297             break;
   297             break;
   298 
   298 
   299         case HgWidget::IndexFeedbackNone:
   299         case HgWidget::IndexFeedbackNone:
   300             // leave the HbStyleOption uninitialized
   300             // leave the HbStyleOption uninitialized