File indexing completed on 2024-04-28 04:05:21

0001 /*
0002     SPDX-FileCopyrightText: 2015 Jakob Gruber <jakob.gruber@gmail.com>
0003 
0004     SPDX-License-Identifier: GPL-2.0-or-later
0005 */
0006 
0007 #include "view.h"
0008 
0009 View::View(QWidget *parent) :
0010     QGraphicsView(parent)
0011 {
0012     setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
0013     setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
0014     setFrameStyle(QFrame::NoFrame);
0015     setAlignment( Qt::AlignLeft | Qt::AlignTop );
0016 }
0017 
0018 void View::resizeEvent(QResizeEvent *event) {
0019     if (event) {
0020         QGraphicsView::resizeEvent(event);
0021     }
0022     m_scene->resize(event->size());
0023 }
0024 
0025 void View::keyPressEvent(QKeyEvent *event) {
0026     /* make sure all key presses go to the currently selected cell item.
0027        without this, clicking on other areas of the scene causes cell items
0028        to lose focus.
0029        this seems like a hackish solution, please replace if there is
0030        a better way. */
0031     m_scene->forwardKeyPressEvent(event);
0032 }
0033 
0034 QSharedPointer<Scene> View::createScene(QSharedPointer<Picmi> game) {
0035     m_scene = QSharedPointer<Scene>(new Scene(game));
0036     setScene(m_scene.data());
0037     m_scene->resize(size());
0038     return m_scene;
0039 }
0040 
0041 void View::setPaused(bool paused) {
0042     setEnabled(!paused);
0043     setFocus();
0044     m_scene->setPaused(paused);
0045 }