Changed the section to user/hidden as required for Nokia Store
[ghostsoverboard] / seaview.cpp
index 1ea801b..9cd6256 100644 (file)
@@ -1,5 +1,5 @@
 /**************************************************************************
-        Ghosts Overboard - a game for Maemo 5
+        Ghosts Overboard - a game for 'Meego 1.2 Harmattan'
 
         Copyright (C) 2011  Heli Hyvättinen
 
 #include "seaview.h"
 
 #include <QEvent>
+#include <QTimer>
+#include <QDebug>
 
 SeaView::SeaView(QWidget *parent) :
-    QGraphicsView(parent)
+    QDeclarativeView(parent)
 {
 
+
+    setWindowTitle("Ghosts Overboard");
+
+    pScene_ = new SeaScene ();
+
+
+    setScene(pScene_);
+
+
+    connect(this,SIGNAL(screenTapped()),pScene_,SLOT(handleScreenTapped()));
+    connect(this,SIGNAL(goingBackgroung()),pScene_,SLOT(forcePause()));
+    connect(this,SIGNAL(goingForeground()),pScene_,SLOT(softContinue()));
+
+    showFullScreen();
+
+
+
+    //the boundaries of the scene are set to match the size of the view window, which is not
+    //available in the constructor --> timer needed
+    QTimer::singleShot(100,this,SLOT(initializeBoundaries()));
+
 }
 
 void  SeaView::mousePressEvent(QMouseEvent *event)
 {
 
-    QGraphicsView::mousePressEvent(event);
+    QDeclarativeView::mousePressEvent(event);
     emit screenTapped();
 
 
@@ -67,6 +90,36 @@ bool SeaView::event(QEvent *event)
 
 
     //pass the event to the ancestor for handling
-    return QGraphicsView::event(event);
+    return QDeclarativeView::event(event);
 
  }
+
+
+void SeaView::initializeBoundaries()
+{
+        //the boundaries of the scene are set to match the size of the view window, and
+        //the view is set to show exactly the whole scene area
+
+    //this occasionally gives a tiny scene, so using a fixed size fit until a fix is found
+
+//    QPoint topleft (0,0);
+//    QSize windowsize = size();
+//    QRectF rectangle (topleft,windowsize);
+
+  //    This is for fremantle
+//    QRectF rectangle(0,0,800,480);
+
+    //This is for Harmattan
+    //The automatic code above gives 854 width and 480 height, but that gives both scrollbars
+    //Found by forking: 843 width and 476 height are the largest that don't bring up the scrollbars (when there is the frame)
+    //With the move from QGraphicsView to QDeclarative view the gray frame is gone and full screen can be used
+
+    QRectF rectangle(0,0,854,480);
+
+    pScene_->setSceneRect(rectangle);
+    setSceneRect(rectangle);
+
+//    qDebug() << "Initialized boundaries" << rectangle.right() << rectangle.bottom() << width() << height();
+
+    pScene_->restartLevel();
+}