camerauis/cameraxui/cxui/inc/cxuiprecaptureview.h
changeset 41 67457b2ffb33
parent 40 2922f70fca82
child 52 7e18d488ac5f
--- a/camerauis/cameraxui/cxui/inc/cxuiprecaptureview.h	Thu Jul 15 01:49:11 2010 +0300
+++ b/camerauis/cameraxui/cxui/inc/cxuiprecaptureview.h	Thu Jul 15 01:52:14 2010 +0300
@@ -25,6 +25,7 @@
 #include <hbframedrawer.h>
 
 #include "cxezoomcontrol.h"
+#include "cxegeotaggingtrail.h"
 #include "cxeviewfindercontrol.h"
 #include "cxuidisplaypropertyhandler.h"
 #include "cxuiview.h"
@@ -47,6 +48,8 @@
 class HbToolBarExtension;
 class HbWidget;
 class CxuiZoomSlider;
+class CxuiFullScreenPopup;
+
 
 /**
  * Pre-capture view
@@ -62,68 +65,26 @@
 
 public:
 
-    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();
-
-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);
-
-protected slots:
-
-    // Key events
-    virtual void handleAutofocusKeyPressed();
+                           CxuiCaptureKeyHandler *keyHandler,
+                           HbActivityManager *activityManager);
 
-    // 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);
-
-    void disableControlsTimeout();
-
-    void toggleZoom();
-
-    // Settings related
-    void launchDiskFullNotification();
-    void showSettingsGrid();
-    void hideSettingsGrid();
-    void launchSliderSetting();
-    void prepareToShowDialog(HbAction *action);
-    void prepareToCloseDialog(HbAction *action);
-
-protected:
-    void toggleControls();
-    virtual void initializeSettingsGrid() = 0;
-    void showEvent(QShowEvent *event);
-    void hideEvent(QHideEvent *event);
-    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 updateSceneIcon(const QString& sceneId);
-
+    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();
@@ -136,7 +97,67 @@
     void stopStandbyTimer();
 
     // signal to report error to ErrorManager for further actions.
-    void reportError(CxeError::Id errorId);
+    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:
+    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
@@ -146,13 +167,11 @@
     CxuiSettingDialog *mSettingsDialog;
     CxuiSettingRadioButtonList *mSettingsDialogList;
     HbLabel *mQualityIcon;
+    HbLabel *mGeoTaggingIndicatorIcon;
     HbLabel *mFaceTrackingIcon;
+    CxuiFullScreenPopup *mStandbyPopup;
 
 private:
-    CxuiSettingDialog* createSettingsDialog();
-    CxuiSettingDialog* createSliderSettingsDialog();
-    QPointF getDialogPosition();
-private:
     HbLabel *mSettingsDialogHeading;
 
     CxuiSettingDialog *mSliderSettingsDialog;