camerauis/cameraxui/cxui/src/cxuivideoprecaptureview.cpp
branchRCL_3
changeset 54 bac7acad7cb3
parent 53 61bc0f252b2b
child 57 2c87b2808fd7
--- a/camerauis/cameraxui/cxui/src/cxuivideoprecaptureview.cpp	Tue Aug 31 15:03:46 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,999 +0,0 @@
-/*
-* Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:
-*
-*/
-
-
-
-#include <QApplication>
-#include <QGraphicsLayout>
-
-#include <hbmainwindow.h>
-#include <hbaction.h>
-#include <hbtoolbar.h>
-#include <hbtoolbarextension.h>
-#include <hbtransparentwindow.h>
-#include <hblabel.h>
-#include <hbslider.h>
-#include <hbmenu.h>
-#include <hbdialog.h>
-#include <hbnotificationdialog.h>
-#include <hbfeedbacksettings.h>
-#include <hbfeedbacknamespace.h>
-#include <hbactivitymanager.h>
-
-#include "cxuivideoprecaptureview.h"
-#include "cxeengine.h"
-#include "cxeviewfindercontrol.h"
-#include "cxevideocapturecontrol.h"
-#include "cxecameradevicecontrol.h"
-#include "cxenamespace.h"
-#include "cxesettings.h"
-#include "cxuienums.h"
-#include "cxutils.h"
-#include "cxuizoomslider.h"
-#include "cxuicapturekeyhandler.h"
-#include "cxuidocumentloader.h"
-#include "cxuiserviceprovider.h"
-
-#ifdef Q_OS_SYMBIAN
-#include "OstTraceDefinitions.h"
-
-#ifdef OST_TRACE_COMPILER_IN_USE
-#include "cxuivideoprecaptureviewTraces.h"
-#endif
-
-#include <e32keys.h>
-#endif  //Q_OS_SYMBIAN
-
-using namespace Cxe;
-using namespace CxUiLayout;
-using namespace CxUiInternal;
-
-namespace
-{
-    static const int CXUI_ELAPSED_TIME_TIMEOUT = 1000; // 1 second
-    static const int CXUI_RECORD_ANIMATION_DURATION = 3000; // milliseconds
-    static const int CXUI_PAUSE_TIMEOUT = 60*1000;   // 60 seconds
-
-    //!@todo Localization?
-    static const char* VIDEO_TIME_FORMAT = "%02d:%02d";
-    const int POSTCAPTURE_ON = -1;
-}
-
-
-CxuiVideoPrecaptureView::CxuiVideoPrecaptureView(QGraphicsItem *parent) :
-    CxuiPrecaptureView(parent),
-    mElapsedTimer(this),
-    mTimeElapsed(0),
-    mTimeRemaining(0),
-    mVideoTimeText(NULL),
-    mRecordingIcon(NULL),
-    mGoToStillAction(NULL),
-    mToolbarIdle(NULL),
-    mToolbarRec(NULL),
-    mToolbarPaused(NULL),
-    mVideoScenePopup(NULL),
-    mVideoCaptureControl(NULL),
-    mMenu(NULL),
-    mCapturePending(false)
-{
-    CX_DEBUG_IN_FUNCTION();
-}
-
-CxuiVideoPrecaptureView::~CxuiVideoPrecaptureView()
-{
-    CX_DEBUG_IN_FUNCTION();
-    mElapsedTimer.stop();
-    delete mMenu;
-    CX_DEBUG_EXIT_FUNCTION();
-}
-
-/*!
- * Construct-method handles initialisation tasks for this class.
- * @param mainwindow
- * @param engine
- * @param documentLoader
- * @param keyHandler
- */
-void CxuiVideoPrecaptureView::construct(HbMainWindow *mainwindow, CxeEngine *engine,
-                                        CxuiDocumentLoader *documentLoader,
-                                        CxuiCaptureKeyHandler *keyHandler,
-                                        HbActivityManager *activityManager)
-{
-    CX_DEBUG_ENTER_FUNCTION();
-
-    CxuiPrecaptureView::construct(mainwindow, engine, documentLoader, keyHandler, activityManager);
-    mCaptureKeyHandler = keyHandler;
-
-    mVideoCaptureControl = &(engine->videoCaptureControl());
-
-    connect(&mElapsedTimer, SIGNAL(timeout()), this, SLOT(updateTimeLabels()));
-    connect(mVideoCaptureControl, SIGNAL(stateChanged(CxeVideoCaptureControl::State, CxeError::Id)),
-            this, SLOT(handleVideoStateChanged(CxeVideoCaptureControl::State,CxeError::Id)));
-    connect(mVideoCaptureControl, SIGNAL(remainingTimeChanged()),
-            this, SLOT(updateTimeLabels()));
-
-    mEngine->settings().listenForSetting(CxeSettingIds::VIDEO_SCENE, this, SLOT(handleSceneChanged(const QVariant&)));
-
-    mPauseTimer.setSingleShot(true);
-    connect(&mPauseTimer, SIGNAL(timeout()), this, SLOT(stop()));
-    mPauseTimer.setInterval(CXUI_PAUSE_TIMEOUT);
-
-    HbAction *quitAction = new HbAction(Hb::QuitNaviAction, this);
-    setNavigationAction(quitAction);
-    connect(quitAction, SIGNAL(triggered()), this, SLOT(handleQuitClicked()));
-
-    loadDefaultWidgets();
-    loadWidgets();
-    hideControls();
-
-    CX_DEBUG_EXIT_FUNCTION();
-
-}
-
-/*!
- * Loads widgets that are needed right from the start.
- */
-void CxuiVideoPrecaptureView::loadDefaultWidgets()
-{
-    CX_DEBUG_ENTER_FUNCTION();
-    CX_ASSERT_ALWAYS(mDocumentLoader);
-
-    // get pointers to ui components from the layout data
-    QGraphicsWidget *widget = NULL;
-    widget = mDocumentLoader->findWidget(VIDEO_PRE_CAPTURE_VIEWFINDER);
-    mViewfinder = qobject_cast<HbTransparentWindow *> (widget);
-    CX_ASSERT_ALWAYS(mViewfinder);
-
-    reloadIndicatorWidgets();
-
-    CX_DEBUG_EXIT_FUNCTION();
-}
-
-/*!
- * Loads default indicators from docml and modifies the visibility
- * according to current settings.
- */
-void CxuiVideoPrecaptureView::reloadIndicatorWidgets()
-{
-    CX_DEBUG_ENTER_FUNCTION();
-    CX_ASSERT_ALWAYS(mDocumentLoader);
-
-    bool ok = false;
-    mDocumentLoader->load(VIDEO_1ST_XML, VIDEO_PRE_CAPTURE_INDICATORS_SECTION, &ok);
-    CX_ASSERT_ALWAYS(ok);
-
-    QGraphicsWidget *widget = NULL;
-    widget = mDocumentLoader->findWidget(VIDEO_PRE_CAPTURE_QUALITY_ICON);
-    mQualityIcon = qobject_cast<HbLabel *> (widget);
-    CX_ASSERT_ALWAYS(mQualityIcon);
-
-    widget = mDocumentLoader->findWidget(VIDEO_PRE_CAPTURE_VIDEOAUDIOMUTE_INDICATOR_ICON);
-    HbLabel *videoaudiomuteIndicatorIcon = qobject_cast<HbLabel *>(widget);
-    CX_ASSERT_ALWAYS(videoaudiomuteIndicatorIcon);
-
-    widget = mDocumentLoader->findWidget(VIDEO_PRE_CAPTURE_STABILITY_INDICATOR_ICON);
-    HbLabel *videoStabilityIndicatorIcon = qobject_cast<HbLabel *>(widget);
-    CX_ASSERT_ALWAYS(videoStabilityIndicatorIcon);
-
-    widget = mDocumentLoader->findWidget(VIDEO_PRE_CAPTURE_INDICATOR_CONTAINER_TOP);
-    mIndicators = qobject_cast<HbWidget *>(widget);
-    CX_ASSERT_ALWAYS(mIndicators);
-
-    QGraphicsLayout *layout = mIndicators->layout();
-    QGraphicsLayoutItem *graphicsLayoutItem = NULL;
-    QGraphicsItem *graphicsItem = NULL;
-    QString key = "";
-    int currentSettingValue = -1;
-    bool isSettingOff = false;
-    // Go through the items in the layout to check whether they should be
-    // shown or not in the indicator pane. Start from the last towards
-    // the first, so that removing items from between works correctly.
-    for (int i = layout->count() - 1; i >= 0; i--) {
-        graphicsLayoutItem = layout->itemAt(i);
-        isSettingOff = false;
-        if (graphicsLayoutItem) {
-            graphicsItem = graphicsLayoutItem->graphicsItem();
-            currentSettingValue = -1;
-            if (graphicsItem == videoaudiomuteIndicatorIcon) {
-                key = CxeSettingIds::VIDEO_MUTE_SETTING;
-                currentSettingValue = mEngine->settings().get(key, currentSettingValue);
-                // video mute implementation does not use
-                // enum for on/off values but instead
-                // 0 for off and 1 for on.
-                if (currentSettingValue == 0) {
-                    isSettingOff = true;
-                }
-            } else if (graphicsItem == videoStabilityIndicatorIcon) {
-                // remove video stability indicator.
-                isSettingOff = true;
-            }
-            if (isSettingOff) {
-                layout->removeAt(i);
-            }
-        }
-    }
-
-    // Create background graphics for indicator container
-    createWidgetBackgroundGraphic(mIndicators, TRANSPARENT_BACKGROUND_GRAPHIC);
-
-    mIndicators->setVisible(true);
-
-    CX_DEBUG_EXIT_FUNCTION();
-}
-
-/*!
- * Loads widgets that are not part of the default section in layouts xml.
- * Widgets are created at the time they are first loaded.
- */
-void CxuiVideoPrecaptureView::loadWidgets()
-{
-    CX_DEBUG_ENTER_FUNCTION();
-    CX_ASSERT_ALWAYS(mDocumentLoader);
-
-    if (mWidgetsLoaded) {
-        CX_DEBUG(("Widgets already loaded"));
-        CX_DEBUG_EXIT_FUNCTION();
-        return;
-    }
-
-    // get pointers to ui components from the layout data
-    QGraphicsWidget *widget = NULL;
-
-    // load the "secondary" widgets
-    bool ok = false;
-
-    // load widgets section (creates the widgets)
-    mDocumentLoader->load(VIDEO_1ST_XML, VIDEO_PRE_CAPTURE_WIDGETS_SECTION, &ok);
-    CX_ASSERT_ALWAYS(ok);
-    if (CxuiServiceProvider::isCameraEmbedded()) {
-        mDocumentLoader->load(VIDEO_1ST_XML, VIDEO_PRE_CAPTURE_EMBEDDED_SECTION, &ok);
-    } else {
-        mDocumentLoader->load(VIDEO_1ST_XML, VIDEO_PRE_CAPTURE_STANDALONE_SECTION, &ok);
-    }
-    CX_ASSERT_ALWAYS(ok);
-    // get needed pointers to some of the widgets
-    widget = mDocumentLoader->findWidget(VIDEO_PRE_CAPTURE_ZOOM_SLIDER);
-    mSlider = qobject_cast<CxuiZoomSlider *> (widget);
-    CX_ASSERT_ALWAYS(mSlider);
-
-    //Let's add a plus and minus buttons to the slider
-    mSlider->addZoomButtons();
-    createWidgetBackgroundGraphic(mSlider, TRANSPARENT_BACKGROUND_GRAPHIC);
-
-    widget = mDocumentLoader->findWidget(VIDEO_PRE_CAPTURE_TOOLBAR);
-    mToolbarIdle = qobject_cast<HbToolBar *> (widget);
-    widget = mDocumentLoader->findWidget(VIDEO_PRE_CAPTURE_TOOLBAR_REC);
-    mToolbarRec = qobject_cast<HbToolBar *> (widget);
-    widget = mDocumentLoader->findWidget(VIDEO_PRE_CAPTURE_TOOLBAR_PAUSED);
-    mToolbarPaused = qobject_cast<HbToolBar *> (widget);
-
-    mToolbar = mToolbarIdle;
-
-    CX_ASSERT_ALWAYS(mToolbarIdle);
-    CX_ASSERT_ALWAYS(mToolbarRec);
-    CX_ASSERT_ALWAYS(mToolbarPaused);
-
-    hideControls();
-
-    if (CxuiServiceProvider::isCameraEmbedded()) {
-        CX_DEBUG(("EMBEDDED: camera in embedded mode"));
-
-        if (!CxuiServiceProvider::instance()->allowQualityChange()) {
-
-            CX_DEBUG(("EMBEDDED: don't allow quality change"));
-            HbAction* vq = qobject_cast<HbAction*> (mDocumentLoader->findObject(VIDEO_PRE_CAPTURE_VIDEO_QUALITY_ACTION));
-            if (vq) {
-                CX_DEBUG(("EMBEDDED: setting image quality setting to disabled"));
-                vq->setEnabled(false);
-            }
-        }
-        if (!CxuiServiceProvider::instance()->allowModeSwitching()) {
-            CX_DEBUG(("EMBEDDED: don't allow mode switching"));
-
-            HbAction *still = qobject_cast<HbAction*> (mDocumentLoader->findObject(VIDEO_PRE_CAPTURE_GOTO_STILL_ACTION));
-            if (still) {
-                CX_DEBUG(("EMBEDDED: setting mode switch to disabled"));
-                still->setEnabled(false);
-            }
-        }
-        if (!CxuiServiceProvider::instance()->allowCameraSwitching()) {
-            CX_DEBUG(("EMBEDDED: don't allow camera switching"));
-
-        }
-
-    }
-
-
-    // Create background graphic for indicator container
-    HbWidget *indicatorContainer;
-    widget = mDocumentLoader->findWidget(VIDEO_PRE_CAPTURE_INDICATOR_CONTAINER_BOTTOM);
-    indicatorContainer = qobject_cast<HbWidget *>(widget);
-    CX_ASSERT_ALWAYS(indicatorContainer);
-    createWidgetBackgroundGraphic(indicatorContainer, TRANSPARENT_BACKGROUND_GRAPHIC);
-
-    widget = mDocumentLoader->findWidget(VIDEO_PRE_CAPTURE_VIDEO_TIME_LABEL);
-    mVideoTimeText = qobject_cast<HbLabel *> (widget);
-    CX_ASSERT_ALWAYS(mVideoTimeText);
-
-    widget = mDocumentLoader->findWidget(VIDEO_PRE_CAPTURE_RECORDING_ICON);
-    mRecordingIcon = qobject_cast<HbLabel *> (widget);
-    CX_ASSERT_ALWAYS(mRecordingIcon);
-
-    mWidgetsLoaded = true;
-
-    // Initializing recording indicator animation
-    mRecordingAnimation = new QPropertyAnimation(mRecordingIcon, "opacity");
-    mRecordingAnimation->setStartValue(0.2);
-    mRecordingAnimation->setKeyValueAt(0.5, 1.0);
-    mRecordingAnimation->setEndValue(0.2);
-    mRecordingAnimation->setDuration(CXUI_RECORD_ANIMATION_DURATION);
-    mRecordingAnimation->setLoopCount(-1);
-    mRecordingAnimation->setEasingCurve(QEasingCurve::OutInQuad);
-
-
-    // Update toolbar scene mode icon.
-    try {
-        updateSceneIcon(mEngine->settings().get<QString>(CxeSettingIds::VIDEO_SCENE));
-    } catch (CxeException &e) {
-        // ignore error
-    }
-
-    // Initialize the video time counters.
-    updateTimeLabels();
-
-    // View is ready. Needed for startup performance automated testing.
-    emit viewReady();
-
-    CX_DEBUG_EXIT_FUNCTION();
-}
-
-/*!
- * Restore view state from activity.
- */
-void CxuiVideoPrecaptureView::restoreActivity(const QString &activityId, const QVariant &data)
-{
-    Q_UNUSED(activityId);
-    Q_UNUSED(data);
-
-    CX_DEBUG_ENTER_FUNCTION();
-    // no need to restore any state
-    CX_DEBUG_EXIT_FUNCTION();
-}
-
-/*!
- * Save view state to activity.
- */
-void CxuiVideoPrecaptureView::saveActivity()
-{
-    CX_DEBUG_ENTER_FUNCTION();
-    QVariantMap data;
-    QVariantHash params;
-
-    HbIcon activityScreenshot("qtg_graf_taskswitcher_camcorder");
-    QPixmap screenshot = activityScreenshot.pixmap();
-    params.insert("screenshot", screenshot);
-
-    mActivityManager->removeActivity(
-            CxuiActivityIds::VIDEO_PRECAPTURE_ACTIVITY);
-    mActivityManager->addActivity(CxuiActivityIds::VIDEO_PRECAPTURE_ACTIVITY,
-                                  data, params);
-    CX_DEBUG_EXIT_FUNCTION();
-}
-
-/*!
- * Clear activity from activity manager.
- */
-void CxuiVideoPrecaptureView::clearActivity()
-{
-    CX_DEBUG_ENTER_FUNCTION();
-    mActivityManager->removeActivity(CxuiActivityIds::VIDEO_PRECAPTURE_ACTIVITY);
-    CX_DEBUG_EXIT_FUNCTION();
-}
-
-/*!
-* Initialize settings grid.
-*/
-void CxuiVideoPrecaptureView::initializeSettingsGrid()
-{
-    if(!mSettingsGrid) {
-        HbAction* action(NULL);
-
-        mSettingsGrid = new HbToolBarExtension;
-
-        action = mSettingsGrid->addAction(HbIcon("qtg_mono_exposure"), hbTrId("txt_cam_button_exposure_compensation"), this, SLOT(launchSliderSetting()));
-        action->setProperty(PROPERTY_KEY_SETTING_ID, CxeSettingIds::EV_COMPENSATION_VALUE);
-        action->setProperty(PROPERTY_KEY_SETTING_GRID, PROPERTY_KEY_TRUE);
-
-        action = mSettingsGrid->addAction(HbIcon("qtg_small_rgb"), hbTrId("txt_cam_button_color_tone"), this, SLOT(launchSetting()));
-        action->setProperty(PROPERTY_KEY_SETTING_ID, CxeSettingIds::COLOR_TONE);
-        action->setProperty(PROPERTY_KEY_SETTING_GRID, PROPERTY_KEY_TRUE);
-
-        action = mSettingsGrid->addAction(HbIcon("qtg_mono_white_balance"), hbTrId("txt_cam_button_white_balance"), this, SLOT(launchSetting()));
-        action->setProperty(PROPERTY_KEY_SETTING_ID, CxeSettingIds::WHITE_BALANCE);
-        action->setProperty(PROPERTY_KEY_SETTING_GRID, PROPERTY_KEY_TRUE);
-
-        connect(mCaptureKeyHandler, SIGNAL(autofocusKeyPressed()), mSettingsGrid, SLOT(close()));
-    }
-}
-
-
-/**
-* Get if postcapture view should be shown or not.
-* Postcapture view may be shown for a predefined time or
-* until user dismisses it, or it may be completely disabled.
-*/
-bool CxuiVideoPrecaptureView::isPostcaptureOn() const
-{
-    CX_DEBUG_ENTER_FUNCTION();
-    if (CxuiServiceProvider::isCameraEmbedded()) {
-        // always show post capture in embedded mode
-        CX_DEBUG_EXIT_FUNCTION();
-        return true;
-    }
-
-    // Read the value from settings. Ignoring reading error.
-    // On error (missing settings) default to "postcapture on".
-    int showPostcapture(POSTCAPTURE_ON);
-    if(mEngine) {
-        showPostcapture = mEngine->settings().get<int>(CxeSettingIds::VIDEO_SHOWCAPTURED, POSTCAPTURE_ON);
-    }
-
-    CX_DEBUG_EXIT_FUNCTION();
-    return showPostcapture != 0; // 0 == no postcapture
-}
-
-/*!
-* Update the scene mode icon.
-* @param sceneId The new scene id.
-*/
-void CxuiVideoPrecaptureView::updateSceneIcon(const QString& sceneId)
-{
-    CX_DEBUG_ENTER_FUNCTION();
-
-    if (mEngine->mode() == Cxe::VideoMode) {
-        CX_DEBUG(("CxuiPrecaptureView - scene: %s", sceneId.toAscii().constData()));
-
-        // No need to update icon, if widgets are not even loaded yet.
-        // We'll update the icon once the widgets are loaded.
-        if (mWidgetsLoaded) {
-            QString iconObjectName = VIDEO_PRE_CAPTURE_SCENE_MODE_ACTION;
-            QString icon = getSettingItemIcon(CxeSettingIds::VIDEO_SCENE, sceneId);
-
-            CX_DEBUG(("CxuiVideoPrecaptureView - icon: %s", icon.toAscii().constData()));
-
-            if (mDocumentLoader) {
-                QObject *obj = mDocumentLoader->findObject(iconObjectName);
-                CX_ASSERT_ALWAYS(obj);
-                qobject_cast<HbAction *>(obj)->setIcon(HbIcon(icon));
-            }
-        } else {
-            CX_DEBUG(("CxuiVideoPrecaptureView - widgets not loaded yet, ignored!"));
-        }
-    }
-    CX_DEBUG_EXIT_FUNCTION();
-}
-
-/*!
-    Update the quality indicator
-*/
-void CxuiVideoPrecaptureView::updateQualityIcon()
-{
-    CX_DEBUG_ENTER_FUNCTION();
-
-    if (mQualityIcon && mEngine) {
-        QString icon = "";
-
-        int currentValue = mEngine->settings().get<int>(CxeSettingIds::VIDEO_QUALITY, -1);
-        icon = getSettingItemIcon(CxeSettingIds::VIDEO_QUALITY, currentValue);
-
-        mQualityIcon->setIcon(HbIcon(icon));
-    }
-
-    CX_DEBUG_EXIT_FUNCTION();
-}
-
-void CxuiVideoPrecaptureView::record()
-{
-    CX_DEBUG_ENTER_FUNCTION();
-
-    int time(0);
-    mVideoCaptureControl->remainingTime(time);
-
-    if (time) {
-        if (!mMenu){ // Only take out menu, if we have not already done it
-            mMenu = takeMenu();
-        }
-        mVideoCaptureControl->record();
-    } else {
-        emit errorEncountered(CxeError::DiskFull);
-    }
-
-    CX_DEBUG_EXIT_FUNCTION();
-}
-
-void CxuiVideoPrecaptureView::pause()
-{
-    CX_DEBUG_ENTER_FUNCTION();
-
-    CxeVideoCaptureControl::State state = mVideoCaptureControl->state();
-    if (state == CxeVideoCaptureControl::Recording) {
-        mVideoCaptureControl->pause();
-    } else if (state == CxeVideoCaptureControl::Paused) {
-        mVideoCaptureControl->record();
-    }
-
-    CX_DEBUG_EXIT_FUNCTION();
-}
-
-void CxuiVideoPrecaptureView::stop()
-{
-    CX_DEBUG_ENTER_FUNCTION();
-
-    CxeVideoCaptureControl::State state = mVideoCaptureControl->state();
-    if (state == CxeVideoCaptureControl::Recording ||
-        state == CxeVideoCaptureControl::Paused) {
-        mVideoCaptureControl->stop();
-        // Continue in handleVideoStateChanged().
-    }
-
-    CX_DEBUG_EXIT_FUNCTION();
-}
-
-
-/*!
-* Allow showing UI controls?
-*/
-bool CxuiVideoPrecaptureView::allowShowControls() const
-{
-    bool show(false);
-    if (mEngine) {
-        CxeVideoCaptureControl::State state(mEngine->videoCaptureControl().state());
-
-        show = (mEngine->isEngineReady()
-             || state == CxeVideoCaptureControl::Recording
-             || state == CxeVideoCaptureControl::Paused);
-    }
-    return show;
-}
-
-/*!
- * Play feedback when touching view outside of any widget?
- * If video is paused feedback is off.  Otherwise on.
- */
-bool CxuiVideoPrecaptureView::isFeedbackEnabled() const
-{
-    CxeVideoCaptureControl::State state(mEngine->videoCaptureControl().state());
-    if (state == CxeVideoCaptureControl::Paused) {
-        return false;
-    } else {
-        return true;
-    }
-}
-
-// CxuiPrecaptureView::showToolbar()
-// Shows toolbar. Calls the base class implementation if not recording
-// since toolbar is not shown during recording
-void CxuiVideoPrecaptureView::showToolbar()
-{
-    CxeVideoCaptureControl::State state = mVideoCaptureControl->state();
-    if (state == CxeVideoCaptureControl::Recording) {
-        if (mToolbar != mToolbarRec) {
-            mToolbar->hide();
-            mToolbar = mToolbarRec;
-        }
-    } else if (state ==CxeVideoCaptureControl::Ready) {
-        if (mToolbar != mToolbarIdle) {
-            mToolbar->hide();
-            mToolbar = mToolbarIdle;
-        }
-    } else if (state == CxeVideoCaptureControl::Paused) {
-        if (mToolbar != mToolbarPaused) {
-            mToolbar->hide();
-            mToolbar = mToolbarPaused;
-        }
-    }
-
-    CxuiPrecaptureView::showToolbar();
-}
-
-void CxuiVideoPrecaptureView::disableFeedback()
-{
-    CX_DEBUG_ENTER_FUNCTION();
-
-    HbFeedbackSettings settings;
-    settings.disableFeedback();
-
-
-    CX_DEBUG_EXIT_FUNCTION();
-}
-
-void CxuiVideoPrecaptureView::enableFeedback()
-{
-    CX_DEBUG_ENTER_FUNCTION();
-
-    HbFeedbackSettings settings;
-    settings.enableFeedback();
-
-
-    CX_DEBUG_EXIT_FUNCTION();
-}
-
-
-void CxuiVideoPrecaptureView::goToStill()
-{
-    CX_DEBUG_ENTER_FUNCTION();
-    OstTrace0( camerax_performance, CXUIVIDEOPRECAPTUREVIEW_GOTOSTILL, "msg: e_CX_GO_TO_STILL_MODE 1" );
-
-    hideControls();
-    mEngine->initMode(ImageMode);
-    emit changeToPrecaptureView();
-
-    CX_DEBUG_EXIT_FUNCTION();
-}
-
-/*!
-* Update the remaining and elapsed time labels.
-*/
-void CxuiVideoPrecaptureView::updateTimeLabels()
-{
-    CX_DEBUG_IN_FUNCTION();
-
-    if (!mVideoTimeText) {
-        // Section not loaded yet. Skip update until created.
-        CX_DEBUG(("CxuiVideoPrecaptureView: video time labels not loaded yet!"));
-        CX_DEBUG_EXIT_FUNCTION();
-        return;
-    }
-
-    CxeVideoCaptureControl::State state = mVideoCaptureControl->state();
-    switch (state) {
-        case CxeVideoCaptureControl::Ready:
-            getRemainingTime();
-            // Not recording => elapsed time is zero
-            mTimeElapsed = 0;
-            break;
-
-        case CxeVideoCaptureControl::Recording:
-        case CxeVideoCaptureControl::Paused:
-            getRemainingTime();
-            getElapsedTime();
-            break;
-
-        case CxeVideoCaptureControl::Idle:
-        case CxeVideoCaptureControl::Initialized:
-        case CxeVideoCaptureControl::Preparing:
-        default:
-            // Minimize processing during initialization phase.
-            // Calculating remaining time involves checking disk space, avoiding that.
-            // which
-            mTimeRemaining = 0;
-            mTimeElapsed = 0;
-            break;
-    }
-
-    setVideoTime(mVideoTimeText, mTimeElapsed, mTimeRemaining);
-
-    CX_DEBUG_EXIT_FUNCTION();
-}
-
-/*!
-  Overridded version of hideControls() that doesn't hide the controls when video recording
-  is paused.
- */
-void CxuiVideoPrecaptureView::hideControls()
-{
-    if (mVideoCaptureControl && mVideoCaptureControl->state() == CxeVideoCaptureControl::Paused) {
-        // never hide controls in paused state
-        return;
-    }
-
-    CxuiPrecaptureView::hideControls();
-
-}
-
-/*!
-* Helper method for formatting video time to requested label.
-* @param label Text label to show the time.
-* @param elapsedTime Elapsed time in seconds to be formatted to the label text.
-* @param remainingTime Remaining time in seconds to be formatted to the label text.
-*/
-void CxuiVideoPrecaptureView::setVideoTime(HbLabel* label,
-                                           int elapsedTime,
-                                           int remainingTime)
-{
-    // Convert time (seconds) into mm:ss
-    // HbExtendedLocale wraps minutes at 60 so we can't use that.
-    // We need to show times over 1 hour, e.g. "90:00".
-    QString elapsed, remaining;
-    elapsed.sprintf(VIDEO_TIME_FORMAT, elapsedTime/60, elapsedTime%60);
-    remaining.sprintf(VIDEO_TIME_FORMAT, remainingTime/60, remainingTime%60);
-
-    label->setPlainText(hbTrId("txt_cam_info_redorcding_time").arg(elapsed).arg(remaining));
-}
-
-bool CxuiVideoPrecaptureView::getElapsedTime()
-{
-    CX_DEBUG_ENTER_FUNCTION();
-
-    bool status = mVideoCaptureControl->elapsedTime(mTimeElapsed);
-    CX_DEBUG(("Elapsed time: %d", mTimeElapsed));
-    CX_DEBUG(("status: %d", status));
-
-    CX_DEBUG_EXIT_FUNCTION();
-    return status;
-}
-
-void CxuiVideoPrecaptureView::getRemainingTime()
-{
-    CX_DEBUG_ENTER_FUNCTION();
-
-    mVideoCaptureControl->remainingTime(mTimeRemaining);
-    CX_DEBUG(("getRemainingTime time: %d", mTimeRemaining));
-
-    CX_DEBUG_EXIT_FUNCTION();
-}
-
-void CxuiVideoPrecaptureView::showEvent(QShowEvent *event)
-{
-    CxuiPrecaptureView::showEvent(event);
-
-    updateQualityIcon();
-
-    if (event->type() == QEvent::Show) {
-        event->accept();
-    }
-}
-
-/*!
-* Slot to handle video capture control state change.
-* Update visible items and stop / start timers.
-*/
-void CxuiVideoPrecaptureView::handleVideoStateChanged(CxeVideoCaptureControl::State newState,
-        CxeError::Id error)
-{
-    CX_DEBUG_ENTER_FUNCTION();
-    Q_UNUSED(error);
-
-    updateTimeLabels();
-
-    mPauseTimer.stop();
-
-    switch (newState) {
-    case CxeVideoCaptureControl::Ready:
-        if (mDocumentLoader){
-            mDocumentLoader->load(VIDEO_1ST_XML, VIDEO_PRE_CAPTURE_IDLE);
-        }
-        if (mCapturePending) {
-            mCapturePending = false;
-            record();
-        }
-        break;
-    case CxeVideoCaptureControl::Recording:
-        hideControls();
-        emit stopStandbyTimer();
-        if (mDocumentLoader){
-            mDocumentLoader->load(VIDEO_1ST_XML, VIDEO_PRE_CAPTURE_RECORDING);
-        }
-
-        mElapsedTimer.start(CXUI_ELAPSED_TIME_TIMEOUT);
-        disableFeedback();
-
-        // commented out the activation of the recording animation because
-        // it is causing issues when using SW rendering
-        //if (mRecordingAnimation && mRecordingIcon) {
-        //  mRecordingAnimation->start();
-        //}
-
-        break;
-    case CxeVideoCaptureControl::Paused:
-        mElapsedTimer.stop();
-        if (mDocumentLoader){
-            mDocumentLoader->load(VIDEO_1ST_XML, VIDEO_PRE_CAPTURE_PAUSED);
-        }
-        showControls();
-        enableFeedback();
-        mPauseTimer.start();
-        break;
-    case CxeVideoCaptureControl::Stopping:
-        if (mDocumentLoader){
-            mDocumentLoader->load(VIDEO_1ST_XML, VIDEO_PRE_CAPTURE_PAUSED);
-        }
-
-        // commented out the stopping of the recording animation since the activation
-        // is commented out also couple lines earlier
-        //if (mRecordingAnimation && mRecordingIcon) {
-        //    mRecordingAnimation->stop();
-        //}
-
-        enableFeedback();
-        emit startStandbyTimer();
-        mElapsedTimer.stop();
-        hideControls();
-
-        if (mMenu) {
-            setMenu(mMenu);
-            mMenu = NULL;
-        }
-
-        if (isPostcaptureOn()) {
-            emit changeToPostcaptureView();
-        } else {
-            // post capture off, we need prepare new video
-            // do the prepare when the previous video is ready
-            connect(mVideoCaptureControl, SIGNAL(videoComposed(CxeError::Id, const QString&)),
-                    this, SLOT(prepareNewVideo(CxeError::Id)));
-        }
-        break;
-    case CxeVideoCaptureControl::PlayingStartSound:
-        // don't change anything
-        break;
-    default:
-        // don't change anything
-        break;
-    }
-
-    CX_DEBUG_EXIT_FUNCTION();
-}
-
-void CxuiVideoPrecaptureView::handleCaptureKeyPressed()
-{
-    CX_DEBUG_ENTER_FUNCTION();
-    CxeVideoCaptureControl::State state = mVideoCaptureControl->state();
-
-    switch (state) {
-        case CxeVideoCaptureControl::Ready:
-            record();
-            break;
-        case CxeVideoCaptureControl::Recording:
-        case CxeVideoCaptureControl::Paused:
-            stop();
-            break;
-        case CxeVideoCaptureControl::Idle:
-        case CxeVideoCaptureControl::Initialized:
-        case CxeVideoCaptureControl::Preparing:
-            mCapturePending = true;
-            break;
-
-    }
-    CX_DEBUG_EXIT_FUNCTION();
-}
-
-void CxuiVideoPrecaptureView::prepareNewVideo(CxeError::Id error)
-{
-    if (!error) {
-        mEngine->initMode(Cxe::VideoMode);
-        disconnect(mVideoCaptureControl, SIGNAL(videoComposed(CxeError::Id, const QString&)),
-                   this, SLOT(prepareNewVideo(CxeError::Id)));
-    } else {
-        emit errorEncountered(error);
-    }
-
-}
-
-void CxuiVideoPrecaptureView::handleQuitClicked()
-{
-    CX_DEBUG_ENTER_FUNCTION();
-
-    CxeVideoCaptureControl::State state = mVideoCaptureControl->state();
-    if (state == CxeVideoCaptureControl::Recording ||
-        state == CxeVideoCaptureControl::Paused) {
-        // Disable going to post-capture when video capture control goes to stopping state.
-        disconnect(mVideoCaptureControl, SIGNAL(stateChanged(CxeVideoCaptureControl::State, CxeError::Id)),
-                   this, SLOT(handleVideoStateChanged(CxeVideoCaptureControl::State,CxeError::Id)));
-        mVideoCaptureControl->stop();
-        mElapsedTimer.stop();
-    }
-
-    QCoreApplication::exit();
-
-    CX_DEBUG_EXIT_FUNCTION();
-}
-
-void CxuiVideoPrecaptureView::launchVideoScenePopup()
-{
-    CX_DEBUG_ENTER_FUNCTION();
-    hideControls();
-    emit showScenesView();
-    CX_DEBUG_EXIT_FUNCTION();
-}
-
-
-/*!
-* Launches show-postcapture setting pop-up
-*/
-void CxuiVideoPrecaptureView::launchSetting()
-{
-    CX_DEBUG_ENTER_FUNCTION();
-
-    QObject *action = sender();
-
-    if (action) {
-        QString settingsKey = action->property(PROPERTY_KEY_SETTING_ID).toString();
-        CX_DEBUG(("settingsKey=%s", settingsKey.toAscii().constData()));
-        launchSettingsDialog(action);
-    }
-
-    CX_DEBUG_EXIT_FUNCTION();
-}
-
-/*!
-* Handle change in setting value. Update UI to reflect new value.
-*/
-void CxuiVideoPrecaptureView::handleSettingValueChanged(const QString& key, QVariant newValue)
-{
-    CX_DEBUG_ENTER_FUNCTION();
-
-    Q_UNUSED(newValue);
-    // Ignored if not in video mode.
-    if (mEngine->mode() == Cxe::VideoMode) {
-        if (key == CxeSettingIds::VIDEO_QUALITY) {
-            // update the quality indicator on screen
-            updateQualityIcon();
-
-            // update video remaining time counter when video quality is changed
-            updateTimeLabels();
-        } else if (key == CxeSettingIds::GEOTAGGING) {
-            reloadIndicatorWidgets();
-        } else if (key == CxeSettingIds::VIDEO_MUTE_SETTING) {
-            reloadIndicatorWidgets();
-        }
-    }
-
-    CX_DEBUG_EXIT_FUNCTION();
-}
-
-/*!
-* Handle scene mode change.
-* @param scene The new active scene mode.
-*/
-void CxuiVideoPrecaptureView::handleSceneChanged(const QVariant &scene)
-{
-    CX_DEBUG_ENTER_FUNCTION();
-    // Ignore if not in video mode.
-    if (mEngine->mode() == Cxe::VideoMode) {
-        // Update toolbar scene mode icon.
-        updateSceneIcon(scene.toString());
-    }
-
-    CX_DEBUG_EXIT_FUNCTION();
-}
-
-/*!
- * Overridden eventFilter() to restart the pause timer.
- */
-bool CxuiVideoPrecaptureView::eventFilter(QObject *object, QEvent *event)
-{
-
-    if (mVideoCaptureControl && mVideoCaptureControl->state() == CxeVideoCaptureControl::Paused) {
-        // restart the timer if the screen is touched and we are in paused state
-        switch (event->type())
-        {
-        case QEvent::GraphicsSceneMouseRelease:
-            mPauseTimer.start();
-            break;
-        case QEvent::GraphicsSceneMousePress:
-            mPauseTimer.stop();
-            break;
-        default:
-            break;
-        }
-    }
-    return CxuiPrecaptureView::eventFilter(object, event);
-}
-
-//end of file
-