diff -r 3075d9b614e6 -r 0e652f8f1fbd camerauis/cameraxui/cxui/inc/cxuiprecaptureview.h --- a/camerauis/cameraxui/cxui/inc/cxuiprecaptureview.h Thu May 13 21:30:19 2010 +0300 +++ b/camerauis/cameraxui/cxui/inc/cxuiprecaptureview.h Thu Jul 15 01:55:05 2010 +0300 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +* 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" @@ -25,8 +25,10 @@ #include #include "cxezoomcontrol.h" +#include "cxegeotaggingtrail.h" #include "cxeviewfindercontrol.h" #include "cxuidisplaypropertyhandler.h" +#include "cxuiview.h" class HbAction; @@ -46,11 +48,13 @@ class HbToolBarExtension; class HbWidget; class CxuiZoomSlider; +class CxuiFullScreenPopup; + /** * Pre-capture view */ -class CxuiPrecaptureView : public HbView +class CxuiPrecaptureView : public CxuiView { Q_OBJECT @@ -61,96 +65,26 @@ public: - /** - * Construct-method handles initialisation tasks for this class. - * @param mainwindow - * @param engine - * @param documentLoader - * @param keyHandler - */ - virtual void construct(HbMainWindow *mainWindow, CxeEngine *engine, + virtual void construct(HbMainWindow *mainWindow, + CxeEngine *engine, CxuiDocumentLoader *documentLoader, - CxuiCaptureKeyHandler *keyHandler); - - /** - * Loads widgets that are not part of the default section in layouts xml. - * Widgets are created at the time they are first loaded. - */ - virtual void loadWidgets() = 0; - void prepareWindow(); - virtual void updateOrientation(Qt::Orientation orient) = 0; - -public slots: - - void releaseCamera(); - void initCamera(); - void requestCameraSwitch(); - - // whenever a setting is changed on the engine side, an icon might need updating - // connects to the settingValueChanged signal of CxeSettings - virtual void handleSettingValueChanged(const QString& key, QVariant newValue); - -protected slots: - - // Key events - virtual void handleAutofocusKeyPressed(); - - // Camera / Engine - void handleEngineZoomStateChange(CxeZoomControl::State newState, CxeError::Id error); - void handleZoomLevelChange(int); - void handleVfStateChanged(CxeViewfinderControl::State newState, CxeError::Id error); - virtual void handleFocusGained(); - virtual void handleFocusLost() = 0; - // UI: Zoom slider change notification - void zoomTo(int value); + CxuiCaptureKeyHandler *keyHandler, + HbActivityManager *activityManager); - // Control visibility of all UI items at the same time: toolbar, zoom and titlepane items - virtual void hideControls(); - virtual void showControls(); - void toggleControls(); - - void disableControlsTimeout(); - - void toggleZoom(); - void hideToolbar(); - - void launchPhotosApp(); - void launchVideosApp(); - - // Settings related - void launchNotSupportedNotification(); - void launchDiskFullNotification(); - void showSettingsGrid(); - void hideSettingsGrid(); - void launchSliderSetting(); - void prepareToShowDialog(HbAction *action); - void prepareToCloseDialog(HbAction *action); - -protected: - - virtual void initializeSettingsGrid() = 0; - - void hideZoom(); - void showZoom(); - void hideIndicators(); - void showIndicators(); - void showEvent(QShowEvent *event); - void hideEvent(QHideEvent *event); - void mousePressEvent(QGraphicsSceneMouseEvent *event); - virtual void showToolbar(); - bool eventFilter(QObject *object, QEvent *event); - void launchSettingsDialog(QObject *action); - bool isPostcaptureOn() const; - void addIncreaseDecreaseButtons(CxuiZoomSlider *slider); - QString getSettingItemIcon(const QString &key, QVariant value); - void updateQualityIcon(); - void createWidgetBackgroundGraphic(HbWidget *widget, - const QString &graphicName, - HbFrameDrawer::FrameType frameType = - HbFrameDrawer::NinePieces); + virtual bool isStandbyModeSupported() const; + /** + * Loads widgets that are not part of the default section in layouts xml. + * Widgets are created at the time they are first loaded. + */ + virtual void loadWidgets() = 0; signals: + /*! + * Signal that view is ready to be used. + */ + void viewReady(); + // signals to switch to post/pre-capture view. void changeToPostcaptureView(); void changeToPrecaptureView(); @@ -163,32 +97,80 @@ void stopStandbyTimer(); // signal to report error to ErrorManager for further actions. - void reportError(CxeError::Id errorId); - void showScenesView(); + void errorEncountered(CxeError::Id id); + +public slots: + + void initCamera(); + void requestCameraSwitch(); + + // whenever a setting is changed on the engine side, an icon might need updating + // connects to the settingValueChanged signal of CxeSettings + virtual void handleSettingValueChanged(const QString& key, QVariant newValue); + + // From CxuiView + virtual void enterStandby(); + virtual void exitStandby(); + +protected slots: + + // Key events + virtual void handleAutofocusKeyPressed(); + + // Camera / Engine + void handleEngineZoomStateChange(CxeZoomControl::State newState, CxeError::Id error); + void handleZoomLevelChange(int); + void handleVfStateChanged(CxeViewfinderControl::State newState, CxeError::Id error); + // UI: Zoom slider change notification + void zoomTo(int value); + + void disableControlsTimeout(); + + void toggleZoom(); + + // Settings related + void showSettingsGrid(); + void hideSettingsGrid(); + void launchSliderSetting(); + void prepareToShowDialog(HbAction *action); + void prepareToCloseDialog(HbAction *action); + void updateLocationIndicator(CxeGeoTaggingTrail::State newState, CxeError::Id error); + +private slots: + void disableGeotaggingDisclaimer(); + void launchGeoTaggingSetting(); protected: - CxeEngine *mEngine; // not own - HbTransparentWindow *mViewfinder; // not own, owned by the graphics scene - HbMainWindow *mMainWindow; // not own - CxuiDocumentLoader *mDocumentLoader; // not own - CxuiDisplayPropertyHandler *mDisplayHandler; - bool mControlsVisible; - QTimer mHideControlsTimeout; - CxuiZoomSlider *mSlider; // zoom slider, not own, owned by the graphics scene - HbToolBar *mToolBar; // not own, owned by the graphics scene - HbToolBarExtension *mSettingsGrid; - bool mZoomVisible; - bool mWidgetsLoaded; - CxuiSettingDialog *mSettingsDialog; - CxuiSettingRadioButtonList *mSettingsDialogList; - CxuiCaptureKeyHandler *mKeyHandler; - HbLabel *mQualityIcon; - HbWidget *mIndicators; + void toggleControls(); + virtual void initializeSettingsGrid() = 0; + void showEvent(QShowEvent *event); + void hideEvent(QHideEvent *event); + bool eventFilter(QObject *object, QEvent *event); + void launchSettingsDialog(QObject *action); + virtual bool isPostcaptureOn() const = 0; + void addIncreaseDecreaseButtons(CxuiZoomSlider *slider); + QString getSettingItemIcon(const QString &key, QVariant value); + virtual void updateQualityIcon() = 0; + virtual void updateSceneIcon(const QString& sceneId) = 0; + void launchGeoTaggingDisclaimerDialog(); private: CxuiSettingDialog* createSettingsDialog(); CxuiSettingDialog* createSliderSettingsDialog(); QPointF getDialogPosition(); + +protected: + HbTransparentWindow *mViewfinder; // not own, owned by the graphics scene + CxuiDisplayPropertyHandler *mDisplayHandler; + HbToolBarExtension *mSettingsGrid; + bool mWidgetsLoaded; + CxuiSettingDialog *mSettingsDialog; + CxuiSettingRadioButtonList *mSettingsDialogList; + HbLabel *mQualityIcon; + HbLabel *mGeoTaggingIndicatorIcon; + HbLabel *mFaceTrackingIcon; + CxuiFullScreenPopup *mStandbyPopup; + private: HbLabel *mSettingsDialogHeading; @@ -197,7 +179,7 @@ CxuiSettingSlider *mSettingsSlider; CxuiSettingsInfo *mSettingsInfo; - + HbAction *mSettingsDialogOkAction; HbAction *mSliderSettingsDialogOkAction; };