homescreenapp/hsdomainmodel/src/hspage.cpp
changeset 101 ba1b7e218624
parent 95 32e56106abf2
equal deleted inserted replaced
98:e6f74eb7f69f 101:ba1b7e218624
    31 #include "hswallpaper.h"
    31 #include "hswallpaper.h"
    32 #include "hswidgetpositioningonwidgetadd.h"
    32 #include "hswidgetpositioningonwidgetadd.h"
    33 #include "hswidgetpositioningonorientationchange.h"
    33 #include "hswidgetpositioningonorientationchange.h"
    34 #include "hsconfiguration.h"
    34 #include "hsconfiguration.h"
    35 #include "hsgui.h"
    35 #include "hsgui.h"
    36 
    36 #include "hsdbupdatethread.h"
    37 
    37 
    38 /*!
    38 /*!
    39     \class HsPage
    39     \class HsPage
    40     \ingroup group_hsdomainmodel
    40     \ingroup group_hsdomainmodel
    41     \brief Represents a page in the framework.
    41     \brief Represents a page in the framework.
   264     HsPageNewWidgetLayout *newWidgetLayout = static_cast<HsPageNewWidgetLayout *>(visual()->layout());
   264     HsPageNewWidgetLayout *newWidgetLayout = static_cast<HsPageNewWidgetLayout *>(visual()->layout());
   265     if (!newWidgetLayout) {
   265     if (!newWidgetLayout) {
   266         newWidgetLayout = new HsPageNewWidgetLayout(mTouchPoint);
   266         newWidgetLayout = new HsPageNewWidgetLayout(mTouchPoint);
   267         visual()->setLayout(newWidgetLayout);
   267         visual()->setLayout(newWidgetLayout);
   268     }    
   268     }    
   269     updateZValues();
   269     updateZValues(HsScene::instance()->activeWidget());
   270     HsWidgetHost *widget = 0;
   270     HsWidgetHost *widget = 0;
   271     for (int i = 0; i < mNewWidgets.count(); ++i) {
   271     for (int i = 0; i < mNewWidgets.count(); ++i) {
   272         widget = mNewWidgets.at(i);
   272         widget = mNewWidgets.at(i);
   273         newWidgetLayout->addItem(widget);
   273         newWidgetLayout->addItem(widget);
   274         widget->setPage(this);
   274         widget->setPage(this);
   494 
   494 
   495 /*!
   495 /*!
   496     Update widgets z-values and persist those. Active widget has top most 
   496     Update widgets z-values and persist those. Active widget has top most 
   497     z-value.
   497     z-value.
   498 */
   498 */
   499 void HsPage::updateZValues()
   499 void HsPage::updateZValues(HsWidgetHost *activeWidget)
   500 {
   500 {
   501     int z = 0;
   501     int z = 0;
   502 
   502 
   503     QHash<int, qreal> widgetZValues;
   503     QHash<int, qreal> widgetZValues;
   504 
   504 
   508             map.insert(widget->visual()->zValue(), widget);
   508             map.insert(widget->visual()->zValue(), widget);
   509         }
   509         }
   510 
   510 
   511         QList<HsWidgetHost *> sortedWidgets = map.values();
   511         QList<HsWidgetHost *> sortedWidgets = map.values();
   512 
   512 
   513         HsWidgetHost *activeWidget = HsScene::instance()->activeWidget();
       
   514         if (sortedWidgets.contains(activeWidget)) {
   513         if (sortedWidgets.contains(activeWidget)) {
   515             sortedWidgets.removeOne(activeWidget);
   514             sortedWidgets.removeOne(activeWidget);
   516             sortedWidgets.append(activeWidget);
   515             sortedWidgets.append(activeWidget);
   517         }
   516         }
   518 
   517 
   528             widget->visual()->setZValue(z++);
   527             widget->visual()->setZValue(z++);
   529         }
   528         }
   530     }
   529     }
   531 
   530 
   532     if (!widgetZValues.isEmpty()) {
   531     if (!widgetZValues.isEmpty()) {
   533         HsDatabase::instance()->updateWidgetZValues(
   532         HsDbUpdateThread::instance()->slotUpdateWidgetZValues(
   534             widgetZValues, HsGui::instance()->orientation());
   533             widgetZValues, HsGui::instance()->orientation());
   535     }
   534     }
   536 }
   535 }
   537 /*!
   536 /*!
   538     Return this page's index.
   537     Return this page's index.