equal
deleted
inserted
replaced
13 * |
13 * |
14 * Description: |
14 * Description: |
15 * |
15 * |
16 */ |
16 */ |
17 |
17 |
|
18 #include <QHash> |
|
19 |
18 #include <HbInstance> |
20 #include <HbInstance> |
19 |
21 |
20 #include "hsdomainmodeldatastructures.h" |
22 #include "hsdomainmodeldatastructures.h" |
21 #include "hspage.h" |
23 #include "hspage.h" |
22 #include "hspagevisual.h" |
24 #include "hspagevisual.h" |
496 */ |
498 */ |
497 void HsPage::updateZValues() |
499 void HsPage::updateZValues() |
498 { |
500 { |
499 int z = 0; |
501 int z = 0; |
500 |
502 |
|
503 QHash<int, qreal> widgetZValues; |
|
504 |
501 if (!mWidgets.isEmpty()) { |
505 if (!mWidgets.isEmpty()) { |
502 QMultiMap<qreal, HsWidgetHost *> map; |
506 QMultiMap<qreal, HsWidgetHost *> map; |
503 foreach (HsWidgetHost *widget, mWidgets) { |
507 foreach (HsWidgetHost *widget, mWidgets) { |
504 map.insert(widget->visual()->zValue(), widget); |
508 map.insert(widget->visual()->zValue(), widget); |
505 } |
509 } |
511 sortedWidgets.removeOne(activeWidget); |
515 sortedWidgets.removeOne(activeWidget); |
512 sortedWidgets.append(activeWidget); |
516 sortedWidgets.append(activeWidget); |
513 } |
517 } |
514 |
518 |
515 foreach (HsWidgetHost *widget, sortedWidgets) { |
519 foreach (HsWidgetHost *widget, sortedWidgets) { |
|
520 widgetZValues.insert(widget->databaseId(), z); |
516 widget->visual()->setZValue(z++); |
521 widget->visual()->setZValue(z++); |
517 widget->savePresentation(); |
|
518 } |
522 } |
519 } |
523 } |
520 |
524 |
521 if (!mNewWidgets.isEmpty()) { |
525 if (!mNewWidgets.isEmpty()) { |
522 foreach (HsWidgetHost *widget, mNewWidgets) { |
526 foreach (HsWidgetHost *widget, mNewWidgets) { |
|
527 widgetZValues.insert(widget->databaseId(), z); |
523 widget->visual()->setZValue(z++); |
528 widget->visual()->setZValue(z++); |
524 widget->savePresentation(); |
529 } |
525 } |
530 } |
|
531 |
|
532 if (!widgetZValues.isEmpty()) { |
|
533 HsDatabase::instance()->updateWidgetZValues( |
|
534 widgetZValues, HsGui::instance()->orientation()); |
526 } |
535 } |
527 } |
536 } |
528 /*! |
537 /*! |
529 Return this page's index. |
538 Return this page's index. |
530 */ |
539 */ |
557 void HsPage::disconnectWidget(HsWidgetHost *widget) |
566 void HsPage::disconnectWidget(HsWidgetHost *widget) |
558 { |
567 { |
559 widget->visual()->disconnect(this); |
568 widget->visual()->disconnect(this); |
560 widget->disconnect(this); |
569 widget->disconnect(this); |
561 } |
570 } |
|
571 |
562 /*! |
572 /*! |
563 Disconnect and remove widget |
573 Disconnect and remove widget |
564 */ |
574 */ |
565 void HsPage::onWidgetFinished() |
575 void HsPage::onWidgetFinished() |
566 { |
576 { |
575 HsWidgetHostVisual *visual = widget->visual(); |
585 HsWidgetHostVisual *visual = widget->visual(); |
576 visual->setParentItem(0); |
586 visual->setParentItem(0); |
577 if (visual->scene()) { |
587 if (visual->scene()) { |
578 visual->scene()->removeItem(visual); |
588 visual->scene()->removeItem(visual); |
579 } |
589 } |
580 } |
590 disconnectWidget(widget); |
581 |
591 widget->remove(); |
582 |
592 } |
583 disconnectWidget(widget); |
593 } |
584 widget->remove(); |
594 |
585 } |
|
586 /*! |
595 /*! |
587 Remove widget if it faulted |
596 Remove widget if it faulted |
588 */ |
597 */ |
589 void HsPage::onWidgetFaulted() |
598 void HsPage::onWidgetFaulted() |
590 { |
599 { |