1
/**************************************************************************
2
* Copyright (C) 2005-2015 by Oleksandr Shneyder *
3
* o.shneyder@phoca-gmbh.de *
5
* This program is free software; you can redistribute it and/or modify *
6
* it under the terms of the GNU General Public License as published by *
7
* the Free Software Foundation; either version 2 of the License, or *
8
* (at your option) any later version. *
9
* This program is distributed in the hope that it will be useful, *
10
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
11
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
12
* GNU General Public License for more details. *
14
* You should have received a copy of the GNU General Public License *
15
* along with this program. If not, see <http://www.gnu.org/licenses/>. *
16
***************************************************************************/
19
#include "x2goclientconfig.h"
23
#include "x2gologdebug.h"
24
#include <QResizeEvent>
28
SVGFrame::SVGFrame ( QString fname,bool st,QWidget* parent,
29
Qt::WFlags f ) :QFrame ( parent,f )
35
if ( fname==QString::null )
41
renderer=new QSvgRenderer ( this );
42
renderer->load ( fname );
46
setAutoFillBackground ( true );
47
QPalette pal=palette();
48
QImage img ( renderer->defaultSize(),
49
QImage::Format_ARGB32_Premultiplied );
51
renderer->render ( &p );
52
pal.setBrush ( QPalette::Window,QBrush ( QPixmap::fromImage ( img ) ) );
57
QTimer *timer = new QTimer ( this );
58
connect ( timer, SIGNAL ( timeout() ), this, SLOT ( update() ) );
59
if ( renderer->animated() )
61
timer->start ( 1000/renderer->framesPerSecond() );
62
x2goDebug<<"Animated, fps:"<<renderer->framesPerSecond() <<endl;
68
SVGFrame::SVGFrame ( QWidget* parent,
69
Qt::WFlags f ) :QFrame ( parent,f )
75
void SVGFrame::paintEvent ( QPaintEvent* event )
77
if ( repaint && !drawImg && !empty )
80
p.setViewport ( 0, 0, width(), height() );
81
p.eraseRect ( 0, 0, width(), height() );
82
renderer->render ( &p );
84
QFrame::paintEvent ( event );
88
void SVGFrame::resizeEvent ( QResizeEvent* event )
90
QFrame::resizeEvent ( event );
91
emit resized ( event->size() );
92
if ( drawImg && event->size().width() >0 && event->size().height() >0 &&!empty )
94
QPalette pal=palette();
95
QImage img ( event->size(),QImage::Format_ARGB32_Premultiplied );
98
renderer->render ( &p );
99
pal.setBrush ( QPalette::Window,QBrush ( QPixmap::fromImage ( img ) ) );
105
QSize SVGFrame::sizeHint() const
108
return renderer->defaultSize();
109
return QFrame::sizeHint();
112
void SVGFrame::loadBg ( QString fl )
114
renderer->load ( fl );
120
void SVGFrame::mousePressEvent ( QMouseEvent * event )
122
/* if ( isVisible() )
128
wapiGetBorders ( parentWidget->winId(), vBorder, hBorder, barHeight );
129
x2goDebug<<"svg frame: "<<event->pos() <<
130
":"<<mapFromGlobal ( event->pos() ) <<":"<<barHeight<<":"<<vBorder<<":"
131
<<hBorder<<":"<<pos() <<endl;
132
QMouseEvent * nevent=new QMouseEvent(event->type(), QPoint(0,0),
133
event->button(), event-> buttons(), event->modifiers());
134
QFrame::mousePressEvent ( nevent );
137
QFrame::mousePressEvent ( event );