File indexing completed on 2024-12-01 06:51:11

0001 /*
0002     This file is part of Killbots.
0003 
0004     SPDX-FileCopyrightText: 2007-2009 Parker Coates <coates@kde.org>
0005 
0006     SPDX-License-Identifier: GPL-2.0-or-later
0007 */
0008 
0009 #include "view.h"
0010 
0011 #include <QResizeEvent>
0012 
0013 Killbots::View::View(QGraphicsScene *scene, QWidget *parent)
0014     : QGraphicsView(scene, parent)
0015 {
0016     setMinimumSize(QSize(300, 200));
0017     setFrameShape(QFrame::NoFrame);
0018 
0019     // This makes the background of the widget transparent so that Oxygen's
0020     // (or any other style's) window gradient is visible in unpainted areas of
0021     // the scene.
0022     QPalette p = palette();
0023     QColor c = p.color(QPalette::Base);
0024     c.setAlpha(0);
0025     p.setColor(QPalette::Base, c);
0026     setPalette(p);
0027     setBackgroundRole(QPalette::Base);
0028 
0029     setCacheMode(QGraphicsView::CacheBackground);
0030     setViewportUpdateMode(QGraphicsView::SmartViewportUpdate);
0031 
0032     // Including QGraphicsView::DontAdjustForAntialiasing here sometimes caused
0033     // painting traces in certain situations like pushing junkheaps.
0034     setOptimizationFlags( QGraphicsView::DontSavePainterState);
0035 }
0036 
0037 Killbots::View::~View()
0038 {
0039 }
0040 
0041 void Killbots::View::resizeEvent(QResizeEvent *event)
0042 {
0043     QGraphicsView::resizeEvent(event);
0044     Q_EMIT sizeChanged(event->size());
0045 }
0046 
0047 #include "moc_view.cpp"