camerauis/cameraxui/cxui/inc/cxuiviewmanager.h
changeset 43 0e652f8f1fbd
parent 28 3075d9b614e6
child 45 24fd82631616
--- a/camerauis/cameraxui/cxui/inc/cxuiviewmanager.h	Thu May 13 21:30:19 2010 +0300
+++ b/camerauis/cameraxui/cxui/inc/cxuiviewmanager.h	Thu Jul 15 01:55:05 2010 +0300
@@ -24,22 +24,17 @@
 #include "cxeviewfindercontrol.h"
 #include "cxenamespace.h"
 #include "cxeerror.h"
-#include "cxuiapplicationframeworkmonitor.h"
-
+#include "cxuiapplicationstate.h"
 
 class QGraphicsSceneMouseEvent;
 class HbMainWindow;
 class CxuiApplication;
 class CxuiCaptureKeyHandler;
 class CxuiPrecaptureView;
-class CxuiStillPrecaptureView;
-class CxuiVideoPrecaptureView;
-class CxuiPostcaptureView;
 class CxeEngine;
 class CxuiDocumentLoader;
-class CxuiErrorManager; // class that handles all errors in ui.
-class CxuiStandby;
-class CxuiSceneModeView;
+class CxuiErrorManager;
+class CxuiView;
 
 class CxuiViewManager : public QObject
 {
@@ -49,83 +44,57 @@
     CxuiViewManager(CxuiApplication &application, HbMainWindow &mainWindow, CxeEngine &engine);
     ~CxuiViewManager();
 
-    void prepareWindow();
-
-    /**
-    * Get a pointer to the document loader instance.
-    */
-    CxuiDocumentLoader* documentLoader();
-
 public slots:
     void changeToPostcaptureView();
     void changeToPrecaptureView();
     void switchCamera();
-    void createPostcaptureView();
     void showScenesView();
 
 private slots:
     void toForeground();
-    void handleForegroundStateChanged(CxuiApplicationFrameworkMonitor::ForegroundState state);
-    void handleBatteryEmpty();
-    void aboutToLooseFocus();
-    void aboutToGainFocus();
+    void handleApplicationStateChanged(CxuiApplicationState::State newState,
+                                       CxuiApplicationState::State oldState);
+    void startStandbyTimer();
+    void stopStandbyTimer();
 
 signals:
-    void focusGained();
-    void focusLost();
-    void batteryEmpty();
-    void disableStandbyTimer();
-    void startStandbyTimer();
+    void normalStateEntered();
+    void normalStateExited();
+    void standbyExitRequested();
 
 protected:
     bool eventFilter(QObject *object, QEvent *event);
 
 private:
-    void createStillPrecaptureView();
-    void createVideoPrecaptureView();
+    CxuiView *currentView() const;
+    void initStartupView();
+    CxuiView *createView(const QString &viewName);
     CxuiPrecaptureView* getPrecaptureView(Cxe::CameraMode mode, Cxe::CameraIndex camera);
 
-    void createSceneModesView();
-
-    /*
-    * connects all necessary signals for precapture view
-    */
+    void connectSignals(QObject *view);
+    void disconnectSignals(QObject *view = NULL);
     void connectPreCaptureSignals();
+    void connectPostCaptureSignals();
+    void connectSceneModeSignals();
+    void connectCaptureKeySignals();
 
-    /*
-    * disconnects signals
-    */
-    void disconnectSignals();
-
-    /*
-    * connects all necessary signals for postcapture view
-    */
-    void connectPostCaptureSignals();
-
-
-    /*
-    * connects capture key handler signals to the current view.
-    */
-    void connectCaptureKeySignals();
+    void handleExitingNormalState();
+    void clearAllActivities();
 
 private:
 
     //data
     CxuiApplication &mApplication;
     HbMainWindow &mMainWindow;
-    CxuiStillPrecaptureView *mStillPrecaptureView;
-    CxuiVideoPrecaptureView *mVideoPrecaptureView;
-    CxuiPostcaptureView *mPostcaptureView;
+    QMap<QString, CxuiView*> mViews;
+    QMap<QString, QString> mDocmlFilesByView;
 
     CxeEngine &mEngine;
     CxuiCaptureKeyHandler *mKeyHandler;
-    CxuiApplicationFrameworkMonitor *mApplicationMonitor;
-
-private:
     CxuiDocumentLoader *mCameraDocumentLoader;
-    CxuiStandby *mStandbyHandler;
+    CxuiApplicationState *mApplicationState;
     CxuiErrorManager *mErrorManager;
-    CxuiSceneModeView *mSceneModeView;
+    QTimer mStandbyTimer;
 };
 
 #endif // CXUIVIEWMANAGER_H