# HG changeset patch # User benoitrigolleau # Date 1194614494 0 # Node ID 2d883a374b79a55e81ef26931846cc657e9055f8 # Parent 3b2b790e47e5c82878b362ab0d29cc80eba5b41f Zoom with the mouse wheel, for the SDLWidget. diff -r 3b2b790e47e5 -r 2d883a374b79 data/model/SDLWidget.cpp --- a/data/model/SDLWidget.cpp Fri Nov 09 12:58:47 2007 +0000 +++ b/data/model/SDLWidget.cpp Fri Nov 09 13:21:34 2007 +0000 @@ -5,13 +5,17 @@ extern int Videow; extern int Videoh; +#define MIN_WIDTH 320 +#define MIN_HEIGHT 240 + SDLWidget::SDLWidget() :windowInitialized(false), screen(0) { setAttribute(Qt::WA_PaintOnScreen); setAttribute(Qt::WA_NoSystemBackground); - setMinimumSize(720,576); - resize(Videow, Videoh); + zoomFactor = 1; + setMinimumSize( MIN_WIDTH*zoomFactor,MIN_HEIGHT*zoomFactor ); + } SDLWidget::~SDLWidget() @@ -19,6 +23,39 @@ SDL_Quit(); } +void SDLWidget::setZoomFactor( float f ) +{ + int w, h; + + if( f == zoomFactor ) + return; + + zoomFactor = f; + + w = MIN_WIDTH*zoomFactor; + h = MIN_HEIGHT*zoomFactor; + setMinimumSize( w, h ); + emit(sizeChanged(w,h)); + + /*QWidget *p = dynamic_cast( parent() ); + if( p ){ + resize( p->width(), p->height() ); + }*/ +} + +void SDLWidget::wheelEvent( QWheelEvent *event ) +{ + float f; + + f = zoomFactor + 0.001*event->delta(); + if( f < 32.0/MIN_WIDTH ){ + f = 32.0/MIN_WIDTH; + } + + setZoomFactor( f ); +} + + void SDLWidget::showEvent(QShowEvent *e) { (void)e; @@ -40,4 +77,5 @@ //screen = SDL_SetVideoMode(width(), height(), 32, SDL_SWSURFACE); windowInitialized = true; } - } \ No newline at end of file + } + diff -r 3b2b790e47e5 -r 2d883a374b79 data/model/SDLWidget.h --- a/data/model/SDLWidget.h Fri Nov 09 12:58:47 2007 +0000 +++ b/data/model/SDLWidget.h Fri Nov 09 13:21:34 2007 +0000 @@ -20,12 +20,22 @@ SDLWidget(); virtual ~SDLWidget(); +signals: + void sizeChanged(int w, int h); + +public slots: + void setZoomFactor( float ); + void wheelEvent( QWheelEvent* ); + protected: bool windowInitialized; SDL_Surface *screen; virtual void showEvent(QShowEvent *e); + +private: + float zoomFactor; }; diff -r 3b2b790e47e5 -r 2d883a374b79 data/svdata.vcproj --- a/data/svdata.vcproj Fri Nov 09 12:58:47 2007 +0000 +++ b/data/svdata.vcproj Fri Nov 09 13:21:34 2007 +0000 @@ -930,7 +930,7 @@ diff -r 3b2b790e47e5 -r 2d883a374b79 sv/main/MainWindow.cpp --- a/sv/main/MainWindow.cpp Fri Nov 09 12:58:47 2007 +0000 +++ b/sv/main/MainWindow.cpp Fri Nov 09 13:21:34 2007 +0000 @@ -329,11 +329,12 @@ QWidget *ttaux = new QWidget; ttaux->setLayout(videoVLayout); - QPalette palette; - palette.setColor(QPalette::Background,palette.color(QPalette::Dark)); - ttaux->setPalette(palette); - - m_qtabwidget->addTab(ttaux, tr("Video")); + + QScrollArea *sa = new QScrollArea(); + sa->setWidgetResizable( true ); + sa->setWidget( ttaux ); + + m_qtabwidget->addTab(sa, tr("Video")); /****************************/