camerauis/cameraxui/cxui/src/cxuiscenemodeview.cpp
changeset 39 c5025ea871a1
parent 28 3075d9b614e6
child 40 2922f70fca82
--- a/camerauis/cameraxui/cxui/src/cxuiscenemodeview.cpp	Thu Jul 15 01:44:30 2010 +0300
+++ b/camerauis/cameraxui/cxui/src/cxuiscenemodeview.cpp	Thu Jul 15 01:46:05 2010 +0300
@@ -49,13 +49,9 @@
 * Constructor
 */
 CxuiSceneModeView::CxuiSceneModeView(QGraphicsItem *parent) :
-    HbView(parent),
-    mMainWindow(NULL),
+    CxuiView(parent),
     mSettingsInfo(NULL),
-    mEngine(NULL),
-    mDocumentLoader(NULL),
-    mCaptureKeyHandler(NULL),
-	mScenesBackground(NULL)
+    mScenesBackground(NULL)
 {
     CX_DEBUG_IN_FUNCTION();
 }
@@ -83,17 +79,15 @@
                                CxuiCaptureKeyHandler *keyHandler)
 {
     CX_DEBUG_ENTER_FUNCTION();
+    CxuiView::construct(mainwindow, engine, documentLoader, keyHandler);
 
-    mMainWindow = mainwindow;
-    mDocumentLoader = documentLoader;
-    mCaptureKeyHandler = keyHandler;
-    mEngine = engine;
     mSettingsInfo = new CxuiSettingsInfo(mEngine);
     setContentFullScreen(true);
     loadDefaultWidgets();
 
-    mCameraReleaseTimer.setInterval(CXUI_SCENES_CAMERA_TIMEOUT);    
-    connect(&mCameraReleaseTimer, SIGNAL(timeout()), this, SLOT(releaseCameraHw()), Qt::UniqueConnection);
+    mCameraReleaseTimer.setInterval(CXUI_SCENES_CAMERA_TIMEOUT);
+    mCameraReleaseTimer.setSingleShot(true);
+    connect(&mCameraReleaseTimer, SIGNAL(timeout()), this, SLOT(releaseCamera()), Qt::UniqueConnection);
 
     CX_DEBUG_EXIT_FUNCTION();
 }
@@ -130,6 +124,10 @@
 
     createWidgetBackgroundGraphic(mScenesContainer, TRANSPARENT_BACKGROUND_GRAPHIC);
 
+    //!@todo: View flags property is missing from HbView,
+    //        so can't properly hide title bar / status bar there.
+    hideControls();
+
     connectSignals();
 
     CX_DEBUG_EXIT_FUNCTION();
@@ -145,31 +143,6 @@
 }
 
 /*!
-* Function can be used to create a graphics item and setting it as a background
-* item for HbWidget. graphicName refers to system wide graphic name. Given graphic
-* can consist of one, three or nine pieces. Nine piece graphics are used by default.
-* See HbFrameDrawer documentation for graphic naming.
-*/
-void CxuiSceneModeView::createWidgetBackgroundGraphic(HbWidget *widget,
-                                                       const QString &graphicName,
-                                                       HbFrameDrawer::FrameType frameType)
-{
-    if (widget) {
-        HbFrameDrawer *drawer = new HbFrameDrawer(graphicName, frameType);
-
-        if (drawer) {
-            HbFrameItem *backgroundItem = new HbFrameItem(drawer, widget);
-            if (backgroundItem) {
-                // set item to fill the whole widget
-                backgroundItem->setGeometry(QRectF(QPointF(0, 0), widget->size()));
-                backgroundItem->setZValue(0);
-                widget->setBackgroundItem(backgroundItem);
-            }
-        }
-    }
-}
-
-/*!
 * This public method assumes that the view is already properly constructed
 */
 void CxuiSceneModeView::loadBackgroundImages()
@@ -302,6 +275,15 @@
 }
 
 /*!
+* Allow showing UI controls?
+* Title bar and other UI chrome is never shown in scene mode view.
+*/
+bool CxuiSceneModeView::allowShowControls() const
+{
+    return false;
+}
+
+/*!
 * Slot to handle capture key full press.
 */
 void CxuiSceneModeView::handleCaptureKeyPressed()
@@ -335,16 +317,5 @@
     CX_DEBUG_EXIT_FUNCTION();
 }
 
-/*!
-* Slot to handle camera hw release timeout
-*/
-void CxuiSceneModeView::releaseCameraHw()
-{
-    CX_DEBUG_ENTER_FUNCTION();
-    mCameraReleaseTimer.stop();
-    mEngine->cameraDeviceControl().release();
-    CX_DEBUG_EXIT_FUNCTION();
-}
-
 // end of file