From: Heli Hyvättinen Date: Tue, 19 Jul 2011 13:17:16 +0000 (+0300) Subject: Got rid of MainWindow X-Git-Tag: v0.3.0_fremantle~27 X-Git-Url: http://git.maemo.org/git/?p=ghostsoverboard;a=commitdiff_plain;h=c69cb5acd614e52f179a7b9754a92f2ea5056fca Got rid of MainWindow All remaining functionality moved to SeaView, which is now directly created in main.cpp --- diff --git a/ghostsoverboard.pro b/ghostsoverboard.pro index 30a176f..f04a9d7 100644 --- a/ghostsoverboard.pro +++ b/ghostsoverboard.pro @@ -12,7 +12,6 @@ TEMPLATE = app SOURCES += main.cpp\ - mainwindow.cpp \ orientationcontrolledgraphicspixmapobject.cpp \ seascene.cpp \ ship.cpp \ @@ -22,7 +21,7 @@ SOURCES += main.cpp\ level.cpp \ seaview.cpp -HEADERS += mainwindow.h \ +HEADERS += \ orientationcontrolledgraphicspixmapobject.h \ seascene.h \ ship.h \ diff --git a/main.cpp b/main.cpp index 5274d07..168bc1d 100644 --- a/main.cpp +++ b/main.cpp @@ -21,14 +21,14 @@ **************************************************************************/ #include -#include "mainwindow.h" +#include "seaview.h" int main(int argc, char *argv[]) { QApplication a(argc, argv); a.setApplicationName("Ghosts Overboard"); a.setApplicationVersion("0.2.1"); - MainWindow w; + SeaView w; #if defined(Q_WS_S60) w.showMaximized(); #else diff --git a/mainwindow.cpp b/mainwindow.cpp deleted file mode 100644 index 0b199b6..0000000 --- a/mainwindow.cpp +++ /dev/null @@ -1,92 +0,0 @@ -/************************************************************************** - 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 -#include -#include -#include -#include -#include -#include -#include -#include -#include - - - -MainWindow::MainWindow(QWidget *parent) - : QMainWindow(parent) -{ - setWindowIcon(QIcon(":/pix/laiva_3aave.png")); - setWindowTitle("Ghosts Overboard"); - - pScene_ = new SeaScene (); - connect(pScene_,SIGNAL(allGhostsPicked()),pScene_,SLOT(nextLevel())); - - pView_ = new SeaView (); - - - pView_->setScene(pScene_); - setCentralWidget(pView_); - - connect(pView_,SIGNAL(screenTapped()),pScene_,SLOT(handleScreenTapped())); - connect(pView_,SIGNAL(goingBackgroung()),pScene_,SLOT(forcePause())); - connect(pView_,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())); - - -} - -MainWindow::~MainWindow() -{ - -} - -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 - - //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,480); - - pScene_->setSceneRect(rectangle); - pView_->setSceneRect(rectangle); - -// qDebug() << "Initialized boundaries" << rectangle.right() << rectangle.bottom() << pView_->width() << pView_->height(); - - pScene_->restartLevel(); -} - diff --git a/mainwindow.h b/mainwindow.h deleted file mode 100644 index 99b7154..0000000 --- a/mainwindow.h +++ /dev/null @@ -1,60 +0,0 @@ -/************************************************************************** - 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 . - -**************************************************************************/ - -#ifndef MAINWINDOW_H -#define MAINWINDOW_H - -#include -#include -#include "orientationcontrolledgraphicspixmapobject.h" -#include "seascene.h" -#include "seaview.h" -#include "level.h" - -class MainWindow : public QMainWindow -{ - Q_OBJECT - -public: - MainWindow(QWidget *parent = 0); - ~MainWindow(); - - - -public slots: - void initializeBoundaries(); - - - - -private: - -SeaScene * pScene_; -SeaView * pView_; - - - - - -}; - -#endif // MAINWINDOW_H diff --git a/seascene.cpp b/seascene.cpp index db31d78..0cd941d 100644 --- a/seascene.cpp +++ b/seascene.cpp @@ -69,6 +69,8 @@ SeaScene::SeaScene(QObject *parent) : currentLevel_ = 0; + connect(this,SIGNAL(allGhostsPicked()),this,SLOT(nextLevel())); + pVibrateAction_ = new QAction(tr("Vibration effects"),this); pVibrateAction_->setCheckable(true); diff --git a/seaview.cpp b/seaview.cpp index 1ea801b..a0496f3 100644 --- a/seaview.cpp +++ b/seaview.cpp @@ -23,11 +23,33 @@ #include "seaview.h" #include +#include SeaView::SeaView(QWidget *parent) : QGraphicsView(parent) { + setWindowIcon(QIcon(":/pix/laiva_3aave.png")); + 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) @@ -70,3 +92,25 @@ bool SeaView::event(QEvent *event) return QGraphicsView::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 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,480); + + pScene_->setSceneRect(rectangle); + setSceneRect(rectangle); + +// qDebug() << "Initialized boundaries" << rectangle.right() << rectangle.bottom() << pView_->width() << pView_->height(); + + pScene_->restartLevel(); +} diff --git a/seaview.h b/seaview.h index 332cc90..a36992c 100644 --- a/seaview.h +++ b/seaview.h @@ -24,6 +24,7 @@ #define SEAVIEW_H #include +#include "seascene.h" class SeaView : public QGraphicsView { @@ -45,6 +46,12 @@ signals: public slots: + void initializeBoundaries(); + +protected: + + SeaScene * pScene_; + }; #endif // SEAVIEW_H