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 |
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 |