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 |