equal
deleted
inserted
replaced
89 void panGestureStarted (HbPanGesture *gesture); |
89 void panGestureStarted (HbPanGesture *gesture); |
90 void panGestureUpdated (HbPanGesture *gesture); |
90 void panGestureUpdated (HbPanGesture *gesture); |
91 void panGestureFinished (HbPanGesture *gesture); |
91 void panGestureFinished (HbPanGesture *gesture); |
92 void show(); |
92 void show(); |
93 void _q_aboutToChangeView(); |
93 void _q_aboutToChangeView(); |
|
94 void detachEditor(bool updateAtthachedEditorState); |
94 |
95 |
95 public: |
96 public: |
96 |
97 |
97 HbAbstractEdit *mEdit; |
98 HbAbstractEdit *mEdit; |
98 QGraphicsItem *mTopLevelAncestor; |
99 QGraphicsItem *mTopLevelAncestor; |
124 { |
125 { |
125 Q_Q(HbSelectionControl); |
126 Q_Q(HbSelectionControl); |
126 createPrimitives(); |
127 createPrimitives(); |
127 |
128 |
128 q->setVisible(false); |
129 q->setVisible(false); |
129 q->setFlag(QGraphicsItem::ItemIsFocusable,false); |
130 QGraphicsItem::GraphicsItemFlags itemFlags = q->flags(); |
130 q->setFlag(QGraphicsItem::ItemIsPanel,true); |
131 #if QT_VERSION >= 0x040600 |
|
132 itemFlags |= QGraphicsItem::ItemSendsGeometryChanges; |
|
133 #endif |
|
134 itemFlags &= ~QGraphicsItem::ItemIsFocusable; |
|
135 itemFlags |= QGraphicsItem::ItemIsPanel; |
|
136 q->setFlags(itemFlags); |
131 q->setFocusPolicy(Qt::NoFocus); |
137 q->setFocusPolicy(Qt::NoFocus); |
132 q->setActive(false); |
138 q->setActive(false); |
133 |
139 |
134 // Control will handle all events going to different handlers. |
140 // Control will handle all events going to different handlers. |
135 q->setHandlesChildEvents(true); |
141 q->setHandlesChildEvents(true); |
464 if (mEdit && q->isVisible()) { |
470 if (mEdit && q->isVisible()) { |
465 mEdit->deselect(); |
471 mEdit->deselect(); |
466 } |
472 } |
467 } |
473 } |
468 |
474 |
|
475 void HbSelectionControlPrivate::detachEditor(bool updateAtthachedEditorState) |
|
476 { |
|
477 Q_Q(HbSelectionControl); |
|
478 if (mEdit) { |
|
479 q->hideHandles(); |
|
480 reparentHandles(q); |
|
481 if (updateAtthachedEditorState) { |
|
482 mEdit->disconnect(q); |
|
483 mEdit->d_func()->selectionControl = 0; |
|
484 mEdit->deselect(); |
|
485 } |
|
486 mEdit = 0; |
|
487 mTopLevelAncestor = 0; |
|
488 } |
|
489 } |
469 |
490 |
470 HbSelectionControl::HbSelectionControl() : HbWidget(*new HbSelectionControlPrivate(),0) |
491 HbSelectionControl::HbSelectionControl() : HbWidget(*new HbSelectionControlPrivate(),0) |
471 |
492 |
472 { |
493 { |
473 Q_D(HbSelectionControl); |
494 Q_D(HbSelectionControl); |
508 } |
529 } |
509 |
530 |
510 void HbSelectionControl::detachEditor() |
531 void HbSelectionControl::detachEditor() |
511 { |
532 { |
512 Q_D(HbSelectionControl); |
533 Q_D(HbSelectionControl); |
513 if (d->mEdit) { |
534 d->detachEditor(true); |
514 hideHandles(); |
535 } |
515 d->reparentHandles(this); |
536 |
516 d->mEdit->disconnect(this); |
537 void HbSelectionControl::detachEditorFromDestructor() |
517 d->mEdit->d_func()->selectionControl = 0; |
538 { |
518 d->mEdit->deselect(); |
539 Q_D(HbSelectionControl); |
519 d->mEdit = 0; |
540 d->detachEditor(false); |
520 d->mTopLevelAncestor = 0; |
541 } |
521 } |
|
522 } |
|
523 |
|
524 |
542 |
525 void HbSelectionControl::hideHandles() |
543 void HbSelectionControl::hideHandles() |
526 { |
544 { |
527 Q_D(HbSelectionControl); |
545 Q_D(HbSelectionControl); |
528 if (isVisible() && d->mEdit) { |
546 if (isVisible() && d->mEdit) { |
595 if(HbTapGesture *tap = qobject_cast<HbTapGesture*>(event->gesture(Qt::TapGesture))) { |
613 if(HbTapGesture *tap = qobject_cast<HbTapGesture*>(event->gesture(Qt::TapGesture))) { |
596 QPointF pos = event->mapToGraphicsScene(tap->position()); |
614 QPointF pos = event->mapToGraphicsScene(tap->position()); |
597 switch(tap->state()) { |
615 switch(tap->state()) { |
598 case Qt::GestureStarted: |
616 case Qt::GestureStarted: |
599 if (d->mEdit) { |
617 if (d->mEdit) { |
600 HbWidgetFeedback::triggered(d->mEdit, Hb::InstantPressed); |
618 HbWidgetFeedback::triggered(this, Hb::InstantPressed); |
601 } |
619 } |
602 break; |
620 break; |
603 case Qt::GestureUpdated: |
621 case Qt::GestureUpdated: |
604 break; |
622 break; |
605 case Qt::GestureFinished: |
623 case Qt::GestureFinished: |
606 if (d->mEdit) { |
624 if (d->mEdit) { |
607 d->tapGestureFinished(pos); |
625 d->tapGestureFinished(pos); |
608 HbWidgetFeedback::triggered(d->mEdit, Hb::InstantReleased); |
626 HbWidgetFeedback::triggered(this, Hb::InstantReleased); |
609 } |
627 } |
610 break; |
628 break; |
611 case Qt::GestureCanceled: |
629 case Qt::GestureCanceled: |
612 break; |
630 break; |
613 default: |
631 default: |
628 } |
646 } |
629 break; |
647 break; |
630 case Qt::GestureFinished: |
648 case Qt::GestureFinished: |
631 if (d->mEdit) { |
649 if (d->mEdit) { |
632 d->panGestureFinished(pan); |
650 d->panGestureFinished(pan); |
633 HbWidgetFeedback::triggered(d->mEdit, Hb::InstantReleased); |
651 HbWidgetFeedback::triggered(this, Hb::InstantReleased); |
634 } |
652 } |
635 break; |
653 break; |
636 case Qt::GestureCanceled: |
654 case Qt::GestureCanceled: |
637 break; |
655 break; |
638 default: |
656 default: |