diff -r 42ba2d16bf40 -r 01e205c615b9 camerauis/cameraxui/cxui/src/cxuiprecaptureview.cpp --- a/camerauis/cameraxui/cxui/src/cxuiprecaptureview.cpp Wed Aug 18 09:37:18 2010 +0300 +++ b/camerauis/cameraxui/cxui/src/cxuiprecaptureview.cpp Thu Sep 02 20:14:28 2010 +0300 @@ -32,6 +32,8 @@ #include #include #include +#include +#include #include "cxeengine.h" #include "cxeviewfindercontrol.h" @@ -166,6 +168,10 @@ OstTrace0(camerax_performance, CXUIPRECAPTUREVIEW_CONSTRUCT_2, "msg: e_CX_PRECAPVIEW_CONSTRUCT 0"); QCoreApplication::instance()->installEventFilter(this); + + HbEffect::add("toolbarextension", "camera_toolbarextension_appear", "toolbarextension_appear"); + HbEffect::add("toolbarextension", "camera_toolbarextension_disappear", "toolbarextension_disappear"); + CX_DEBUG_EXIT_FUNCTION(); } @@ -573,6 +579,12 @@ documentLoader->findWidget(SETTINGS_DIALOG_CONTENT_WIDGET)); CX_ASSERT_ALWAYS(mSettingsDialogList); + // The radio button size policy defaults to "Expanding" which makes it + // always full screen. Let's override the policy here to make the layout + // reasonable. + mSettingsDialogList->setSizePolicy(QSizePolicy(QSizePolicy::Ignored, + QSizePolicy::Maximum)); + QObject *object = documentLoader->findObject(SETTINGS_DIALOG_OK_ACTION); mSettingsDialogOkAction = qobject_cast(object); CX_DEBUG_ASSERT(mSettingsDialogOkAction); @@ -785,6 +797,7 @@ if(mSettingsGrid) { mSettingsGrid->setModal(true); mSettingsGrid->show(); + HbEffect::start(mSettingsGrid, "toolbarextension", "toolbarextension_appear"); } CX_DEBUG_EXIT_FUNCTION(); @@ -797,7 +810,8 @@ { CX_DEBUG_ENTER_FUNCTION(); if (mSettingsGrid) { - mSettingsGrid->hide(); + // Hiding of the settingsgrid will be done after effect has finished + HbEffect::start(mSettingsGrid, "toolbarextension", "toolbarextension_disappear", this, "toolbarExtensionDisappearEffectFinished"); } CX_DEBUG_EXIT_FUNCTION(); } @@ -807,21 +821,29 @@ */ QPointF CxuiPrecaptureView::getDialogPosition() { - HbStyle *style = new HbStyle(); - qreal bottomMargin; - qreal rightMargin; - bool ok = style->parameter("hb-param-margin-gene-bottom", bottomMargin); - CX_ASSERT_ALWAYS(ok); - ok = style->parameter("hb-param-margin-gene-right", rightMargin); - CX_ASSERT_ALWAYS(ok); + HbStyle *style = HbInstance::instance()->style(); + + if (style) { + qreal bottomMargin = 0.0f; + qreal rightMargin = 0.0f; + bool ok = style->parameter("hb-param-margin-gene-bottom", + bottomMargin); + CX_DEBUG_ASSERT(ok); + ok = style->parameter("hb-param-margin-gene-right", + rightMargin); + CX_DEBUG_ASSERT(ok); - // calculate dialog's bottom right position - QSize deviceRes = mEngine->viewfinderControl().deviceDisplayResolution(); - QPointF point(deviceRes.width() - rightMargin, deviceRes.height() - bottomMargin); + // calculate dialog's bottom right position + QSize deviceRes = + mEngine->viewfinderControl().deviceDisplayResolution(); + QPointF point(deviceRes.width() - rightMargin, + deviceRes.height() - bottomMargin); - delete style; - - return point; + style = NULL; // owned by HbInstance + return point; + } else { + return QPointF(); // (0, 0) + } } @@ -882,6 +904,17 @@ } +void CxuiPrecaptureView::toolbarExtensionDisappearEffectFinished(const HbEffect::EffectStatus &status) { + if (mSettingsGrid) { + mSettingsGrid->hide(); + } +} + +void CxuiPrecaptureView::toolbarExtensionAppearEffectFinished(const HbEffect::EffectStatus &status) { +} + + + /*! * Lauches "Geotagging first-time use" notification to the user */