camerauis/cameraxui/cxui/src/cxuistillprecaptureview.cpp
changeset 58 ddba9caa7f32
parent 55 0da2a5b56583
equal deleted inserted replaced
55:0da2a5b56583 58:ddba9caa7f32
    31 #include <hbtoolbarextension.h>
    31 #include <hbtoolbarextension.h>
    32 #include <hbtoolbutton.h>
    32 #include <hbtoolbutton.h>
    33 #include <hbdeviceprofile.h> // HbDeviceProfile
    33 #include <hbdeviceprofile.h> // HbDeviceProfile
    34 #include <hbmenu.h>
    34 #include <hbmenu.h>
    35 #include <hbicon.h>
    35 #include <hbicon.h>
    36 #include <hbactivitymanager.h>
    36 #include <afactivitystorage.h>
       
    37 #include <hbextendedlocale.h>
    37 
    38 
    38 #include "cxuiselftimer.h"
    39 #include "cxuiselftimer.h"
    39 #include "cxeengine.h"
    40 #include "cxeengine.h"
    40 #include "cxeviewfindercontrol.h"
    41 #include "cxeviewfindercontrol.h"
    41 #include "cxecameradevicecontrol.h"
    42 #include "cxecameradevicecontrol.h"
    99  * @param documentLoader
   100  * @param documentLoader
   100  * @param keyHandler
   101  * @param keyHandler
   101  */
   102  */
   102 void CxuiStillPrecaptureView::construct(HbMainWindow *mainwindow, CxeEngine *engine,
   103 void CxuiStillPrecaptureView::construct(HbMainWindow *mainwindow, CxeEngine *engine,
   103                                         CxuiDocumentLoader *documentLoader,
   104                                         CxuiDocumentLoader *documentLoader,
   104                                         CxuiCaptureKeyHandler *keyHandler,
   105                                         CxuiCaptureKeyHandler *keyHandler)
   105                                         HbActivityManager *activityManager)
       
   106 {
   106 {
   107     CX_DEBUG_ENTER_FUNCTION();
   107     CX_DEBUG_ENTER_FUNCTION();
   108     OstTrace0( camerax_performance, CXUISTILLPRECAPTUREVIEW_CONSTRUCT, "msg: e_CX_STILLPRECAPVIEW_CONSTRUCT 1" );
   108     OstTrace0( camerax_performance, CXUISTILLPRECAPTUREVIEW_CONSTRUCT, "msg: e_CX_STILLPRECAPVIEW_CONSTRUCT 1" );
   109 
   109 
   110     // constuct base class
   110     // constuct base class
   111     CxuiPrecaptureView::construct(mainwindow, engine, documentLoader, keyHandler, activityManager);
   111     CxuiPrecaptureView::construct(mainwindow, engine, documentLoader, keyHandler);
   112 
   112 
   113     connect(&mEngine->autoFocusControl(), SIGNAL(stateChanged(CxeAutoFocusControl::State,CxeError::Id)),
   113     connect(&mEngine->autoFocusControl(), SIGNAL(stateChanged(CxeAutoFocusControl::State,CxeError::Id)),
   114             this, SLOT(handleAutoFocusStateChanged(CxeAutoFocusControl::State,CxeError::Id)));
   114             this, SLOT(handleAutoFocusStateChanged(CxeAutoFocusControl::State,CxeError::Id)));
   115     connect(&mEngine->stillCaptureControl(), SIGNAL(snapshotReady(CxeError::Id, const QImage&, int)),
   115     connect(&mEngine->stillCaptureControl(), SIGNAL(snapshotReady(CxeError::Id, const QImage&, int)),
   116             this, SLOT(handleSnapshot(CxeError::Id)));
   116             this, SLOT(handleSnapshot(CxeError::Id)));
   117     connect(&mEngine->stillCaptureControl(), SIGNAL(stateChanged(CxeStillCaptureControl::State, CxeError::Id)),
   117     connect(&mEngine->stillCaptureControl(), SIGNAL(stateChanged(CxeStillCaptureControl::State, CxeError::Id)),
   118             this, SLOT(handleStillCaptureStateChanged(CxeStillCaptureControl::State, CxeError::Id)));
   118             this, SLOT(handleStillCaptureStateChanged(CxeStillCaptureControl::State, CxeError::Id)));
   119     connect(&mEngine->viewfinderControl(), SIGNAL(stateChanged(CxeViewfinderControl::State, CxeError::Id)),
       
   120             this, SLOT(handleViewfinderStateChanged(CxeViewfinderControl::State, CxeError::Id)));
       
   121     connect(&mEngine->stillCaptureControl(), SIGNAL(availableImagesChanged()),
   119     connect(&mEngine->stillCaptureControl(), SIGNAL(availableImagesChanged()),
   122             this, SLOT(updateImagesLeftLabel()));
   120             this, SLOT(updateImagesLeftLabel()));
   123 
   121 
   124     mEngine->settings().listenForSetting(CxeSettingIds::IMAGE_SCENE_DATA, this, SLOT(handleSceneChanged(const QVariant&)));
   122     mEngine->settings().listenForSetting(CxeSettingIds::IMAGE_SCENE_DATA, this, SLOT(handleSceneChanged(const QVariant&)));
   125 
   123 
   317     connect(mSelfTimer, SIGNAL(timerFinished()), this, SLOT(focusAndCapture()));
   315     connect(mSelfTimer, SIGNAL(timerFinished()), this, SLOT(focusAndCapture()));
   318     mSelfTimer->loadSelftimerWidgets(mDocumentLoader);
   316     mSelfTimer->loadSelftimerWidgets(mDocumentLoader);
   319 
   317 
   320     if (CxuiServiceProvider::isCameraEmbedded()) {
   318     if (CxuiServiceProvider::isCameraEmbedded()) {
   321         CX_DEBUG(("EMBEDDED: camera in embedded mode"));
   319         CX_DEBUG(("EMBEDDED: camera in embedded mode"));
       
   320         setTitle(CxuiServiceProvider::instance()->windowTitle());
   322 
   321 
   323         if (!CxuiServiceProvider::instance()->allowQualityChange()) {
   322         if (!CxuiServiceProvider::instance()->allowQualityChange()) {
   324 
   323 
   325             CX_DEBUG(("EMBEDDED: don't allow quality change"));
   324             CX_DEBUG(("EMBEDDED: don't allow quality change"));
   326             HbAction* iq = qobject_cast<HbAction*>(mDocumentLoader->findObject(STILL_PRE_CAPTURE_IMAGE_QUALITY_ACTION));
   325             HbAction* iq = qobject_cast<HbAction*>(mDocumentLoader->findObject(STILL_PRE_CAPTURE_IMAGE_QUALITY_ACTION));
   388 void CxuiStillPrecaptureView::saveActivity()
   387 void CxuiStillPrecaptureView::saveActivity()
   389 {
   388 {
   390     CX_DEBUG_ENTER_FUNCTION();
   389     CX_DEBUG_ENTER_FUNCTION();
   391     QVariantMap data;
   390     QVariantMap data;
   392     QVariantHash params;
   391     QVariantHash params;
       
   392     AfActivityStorage activityStorage;
   393 
   393 
   394     HbIcon activityScreenshot("qtg_graf_taskswitcher_camera");
   394     HbIcon activityScreenshot("qtg_graf_taskswitcher_camera");
   395     QPixmap screenshot = activityScreenshot.pixmap();
   395     QPixmap screenshot = activityScreenshot.pixmap();
   396     params.insert("screenshot", screenshot);
   396     params.insert("screenshot", screenshot);
   397 
   397 
   398     mActivityManager->removeActivity(
   398     activityStorage.removeActivity(
   399             CxuiActivityIds::STILL_PRECAPTURE_ACTIVITY);
   399             CxuiActivityIds::STILL_PRECAPTURE_ACTIVITY);
   400     mActivityManager->addActivity(CxuiActivityIds::STILL_PRECAPTURE_ACTIVITY,
   400     activityStorage.saveActivity(CxuiActivityIds::STILL_PRECAPTURE_ACTIVITY,
   401                                   data, params);
   401                                   data, params);
   402     CX_DEBUG_EXIT_FUNCTION();
   402     CX_DEBUG_EXIT_FUNCTION();
   403 }
   403 }
   404 
   404 
   405 /*!
   405 /*!
   406  * Clear activity from activity manager.
   406  * Clear activity from activity storage.
   407  */
   407  */
   408 void CxuiStillPrecaptureView::clearActivity()
   408 void CxuiStillPrecaptureView::clearActivity()
   409 {
   409 {
   410     CX_DEBUG_ENTER_FUNCTION();
   410     CX_DEBUG_ENTER_FUNCTION();
   411     mActivityManager->removeActivity(CxuiActivityIds::STILL_PRECAPTURE_ACTIVITY);
   411     AfActivityStorage activityStorage;
       
   412     activityStorage.removeActivity(CxuiActivityIds::STILL_PRECAPTURE_ACTIVITY);
   412     CX_DEBUG_EXIT_FUNCTION();
   413     CX_DEBUG_EXIT_FUNCTION();
   413 }
   414 }
   414 
   415 
   415 /*!
   416 /*!
   416 * Initializing settings grid
   417 * Initializing settings grid
   817 }
   818 }
   818 
   819 
   819 /*!
   820 /*!
   820 * Handle change in viewfinder state.
   821 * Handle change in viewfinder state.
   821 */
   822 */
   822 void CxuiStillPrecaptureView::handleViewfinderStateChanged(
   823 void CxuiStillPrecaptureView::handleVfStateChanged(
   823     CxeViewfinderControl::State newState, CxeError::Id error)
   824     CxeViewfinderControl::State newState, CxeError::Id error)
   824 {
   825 {
   825     CX_DEBUG_ENTER_FUNCTION();
   826     CX_DEBUG_ENTER_FUNCTION();
   826     // Call base class to get standby timer and display always visible when needed.
   827     // Call base class to get standby timer and display always visible when needed.
   827     CxuiPrecaptureView::handleVfStateChanged(newState, error);
   828     CxuiPrecaptureView::handleVfStateChanged(newState, error);
  1013 */
  1014 */
  1014 void CxuiStillPrecaptureView::updateImagesLeftLabel()
  1015 void CxuiStillPrecaptureView::updateImagesLeftLabel()
  1015 {
  1016 {
  1016     CX_DEBUG_ENTER_FUNCTION();
  1017     CX_DEBUG_ENTER_FUNCTION();
  1017 
  1018 
       
  1019     QString imagesStr;
       
  1020     HbExtendedLocale locale = HbExtendedLocale::system();
       
  1021 
  1018     if (mImagesLeft && mImagesLeftContainer) {
  1022     if (mImagesLeft && mImagesLeftContainer) {
  1019         int images = mEngine->stillCaptureControl().imagesLeft();
  1023         int images = mEngine->stillCaptureControl().imagesLeft();
  1020 
  1024 
  1021         if (images > CXUI_IMAGES_LEFT_LIMIT) {
  1025         if (images > CXUI_IMAGES_LEFT_LIMIT) {
  1022             mImagesLeftContainer->hide();
  1026             mImagesLeftContainer->hide();
  1023         } else {
  1027         } else {
  1024             mImagesLeftContainer->show();
  1028             mImagesLeftContainer->show();
  1025         }
  1029         }
  1026 
  1030 
  1027         CX_DEBUG(("Images left %d", images));
  1031         CX_DEBUG(("Images left %d", images));
  1028         mImagesLeft->setPlainText(hbTrId("txt_cam_fullscreen_imagesleft").arg(images));
  1032         imagesStr = locale.toString(images);
       
  1033 
       
  1034         mImagesLeft->setPlainText(imagesStr);
  1029     }
  1035     }
  1030 
  1036 
  1031     CX_DEBUG_EXIT_FUNCTION();
  1037     CX_DEBUG_EXIT_FUNCTION();
  1032 }
  1038 }
  1033 
  1039