1 /**************************************************************************
2 Ghosts Overboard - a game for Maemo 5
4 Copyright (C) 2011 Heli Hyvättinen
6 This file is part of Ghosts Overboard
8 Ghosts Overboard is free software: you can redistribute it and/or modify
9 it under the terms of the GNU General Public License as published by
10 the Free Software Foundation, either version 2 of the License, or
11 (at your option) any later version.
13 This program is distributed in the hope that it will be useful,
14 but WITHOUT ANY WARRANTY; without even the implied warranty of
15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 GNU General Public License for more details.
18 You should have received a copy of the GNU General Public License
19 along with this program. If not, see <http://www.gnu.org/licenses/>.
21 **************************************************************************/
28 SeaView::SeaView(QWidget *parent) :
33 setWindowTitle("Ghosts Overboard");
35 pScene_ = new SeaScene ();
41 connect(this,SIGNAL(screenTapped()),pScene_,SLOT(handleScreenTapped()));
42 connect(this,SIGNAL(goingBackgroung()),pScene_,SLOT(forcePause()));
43 connect(this,SIGNAL(goingForeground()),pScene_,SLOT(softContinue()));
45 connect(pScene_,SIGNAL(minimizeRequested()),this,SLOT(showMinimized()));
51 //the boundaries of the scene are set to match the size of the view window, which is not
52 //available in the constructor --> timer needed
53 QTimer::singleShot(100,this,SLOT(initializeBoundaries()));
57 void SeaView::mousePressEvent(QMouseEvent *event)
60 QGraphicsView::mousePressEvent(event);
66 bool SeaView::event(QEvent *event)
71 switch (event->type())
73 //pause if app goes to background
74 case QEvent::WindowDeactivate:
76 emit goingBackgroung();
79 //un-pause if app gomes back to foreground unless it was paused before going to background
80 case QEvent::WindowActivate:
82 emit goingForeground();
85 //Just to keep the compiler from complaining...
93 //pass the event to the ancestor for handling
94 return QGraphicsView::event(event);
99 void SeaView::initializeBoundaries()
101 //the boundaries of the scene are set to match the size of the view window, and
102 //the view is set to show exactly the whole scene area
104 //this occasionally gives a tiny scene, so using a fixed size fit for N900/Maemo5 until a fix is found
106 // QPoint topleft (0,0);
107 // QSize windowsize = pView_->size();
108 // QRectF rectangle (topleft,windowsize);
110 QRectF rectangle(0,0,800,480);
112 pScene_->setSceneRect(rectangle);
113 setSceneRect(rectangle);
115 // qDebug() << "Initialized boundaries" << rectangle.right() << rectangle.bottom() << pView_->width() << pView_->height();
117 pScene_->restartLevel();