--- a/homescreenapp/hsdomainmodel/src/hspage.cpp Fri Aug 13 14:38:12 2010 +0300
+++ b/homescreenapp/hsdomainmodel/src/hspage.cpp Wed Aug 18 10:33:57 2010 +0300
@@ -15,6 +15,8 @@
*
*/
+#include <QHash>
+
#include <HbInstance>
#include "hsdomainmodeldatastructures.h"
@@ -498,6 +500,8 @@
{
int z = 0;
+ QHash<int, qreal> widgetZValues;
+
if (!mWidgets.isEmpty()) {
QMultiMap<qreal, HsWidgetHost *> map;
foreach (HsWidgetHost *widget, mWidgets) {
@@ -513,17 +517,22 @@
}
foreach (HsWidgetHost *widget, sortedWidgets) {
+ widgetZValues.insert(widget->databaseId(), z);
widget->visual()->setZValue(z++);
- widget->savePresentation();
}
}
if (!mNewWidgets.isEmpty()) {
foreach (HsWidgetHost *widget, mNewWidgets) {
+ widgetZValues.insert(widget->databaseId(), z);
widget->visual()->setZValue(z++);
- widget->savePresentation();
}
}
+
+ if (!widgetZValues.isEmpty()) {
+ HsDatabase::instance()->updateWidgetZValues(
+ widgetZValues, HsGui::instance()->orientation());
+ }
}
/*!
Return this page's index.
@@ -559,6 +568,7 @@
widget->visual()->disconnect(this);
widget->disconnect(this);
}
+
/*!
Disconnect and remove widget
*/
@@ -577,12 +587,11 @@
if (visual->scene()) {
visual->scene()->removeItem(visual);
}
+ disconnectWidget(widget);
+ widget->remove();
}
-
+}
- disconnectWidget(widget);
- widget->remove();
-}
/*!
Remove widget if it faulted
*/