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 }