X-Git-Url: http://git.maemo.org/git/?a=blobdiff_plain;f=mainwindow.cpp;h=4484a874d433b2e5c7963729d81b50485a14428d;hb=5256583a62f6d7a752334f5987e7ee9f570b6c81;hp=87292ec73981a2955298906b53ab10039de74e6e;hpb=91e484cc41924f563c0482f0910a6441b4bf2cd7;p=ghostsoverboard diff --git a/mainwindow.cpp b/mainwindow.cpp index 87292ec..4484a87 100644 --- a/mainwindow.cpp +++ b/mainwindow.cpp @@ -1,5 +1,26 @@ +/************************************************************************** + Ghosts Overboard - a game for Maemo 5 + + Copyright (C) 2011 Heli Hyvättinen + + This file is part of Ghosts Overboard + + Ghosts Overboard is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +**************************************************************************/ + #include "mainwindow.h" -#include "timercontrolledtursas.h" #include #include #include @@ -16,7 +37,7 @@ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) { - setWindowIcon(QIcon(":/pix/laiva_10aave.png")); + setWindowIcon(QIcon(":/pix/laiva_3aave.png")); setWindowTitle("Ghosts Overboard"); pScene_ = new SeaScene (); @@ -27,11 +48,11 @@ MainWindow::MainWindow(QWidget *parent) pView_->setScene(pScene_); setCentralWidget(pView_); - QAction * pPauseAction = new QAction(tr("Pause"),this); - pPauseAction->setCheckable(true); - addAction(pPauseAction); - connect(pPauseAction,SIGNAL(triggered(bool)),pScene_,SLOT(pause(bool))); - menuBar()->addAction(pPauseAction); + pPauseAction_ = new QAction(tr("Pause"),this); + pPauseAction_->setCheckable(true); + addAction(pPauseAction_); + connect(pPauseAction_,SIGNAL(triggered(bool)),pScene_,SLOT(pause(bool))); + menuBar()->addAction(pPauseAction_); QAction * pRestartLevelAction = new QAction(tr("Restart level"),this); addAction(pRestartLevelAction); @@ -44,6 +65,11 @@ MainWindow::MainWindow(QWidget *parent) connect(pAboutAction,SIGNAL(triggered()),this,SLOT(about())); menuBar()->addAction(pAboutAction); + QAction * pRestartGameAction = new QAction(tr("Restart game"),this); + addAction(pRestartGameAction); + connect(pRestartGameAction,SIGNAL(triggered()),this,SLOT(restartGame())); + menuBar()->addAction(pRestartGameAction); + //the boundaries of the scene are set to match the size of the view window, which is not //available in the constructor --> timer needed @@ -60,15 +86,18 @@ void MainWindow::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 - QPoint topleft (0,0); - QSize windowsize = pView_->size(); - QRectF rectangle (topleft,windowsize); + //this occasionally gives a tiny scene, so using a fixed size fit for N900/Maemo5 until a fix is found + +// QPoint topleft (0,0); +// QSize windowsize = pView_->size(); +// QRectF rectangle (topleft,windowsize); + QRectF rectangle(0,0,800,424); pScene_->setSceneRect(rectangle); pView_->setSceneRect(rectangle); - qDebug() << "Initialized boundaries" << rectangle.right() << rectangle.bottom() << pView_->width() << pView_->height(); + // qDebug() << "Initialized boundaries" << rectangle.right() << rectangle.bottom() << pView_->width() << pView_->height(); restartLevel(); } @@ -76,7 +105,7 @@ void MainWindow::initializeBoundaries() void MainWindow::restartLevel() { - pScene_->setupMap(5,10,0); + pScene_->setupMap(5,10,5,100); } void MainWindow::about() @@ -143,3 +172,44 @@ void MainWindow::nextLevel() restartLevel(); } + +bool MainWindow::event(QEvent *event) +{ + + switch (event->type()) + { + //pause if app goes to background + case QEvent::WindowDeactivate: + + if (pScene_) + pScene_->pause(true); + break; + + //un-pause if app gomes back to foreground unless it was paused before going to background + case QEvent::WindowActivate: + + + if (pPauseAction_ && !pPauseAction_->isChecked()) + { + if (pScene_) + pScene_->pause(false); + } + break; + + //Just to keep the compiler from complaining... + default: + break; + + } + + + + //pass the event to the ancestor for handling + return QMainWindow::event(event); + + } + +void MainWindow::restartGame() +{ + +}