[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: make_it_cool: kdeedu/kig/kig
From: Dominique Devriese <devriese () kde ! org>
Date: 2003-02-16 18:21:14
[Download RAW message or body]
CVS commit by domi:
fix the resizeEvent to not do a recenter of the screen.
M +0 -1 kig.cpp 1.23.2.1
M +30 -7 kig_view.cpp 1.36.2.3
M +1 -0 kig_view.h 1.27.2.3
--- kdeedu/kig/kig/kig.cpp #1.23:1.23.2.1
@@ -78,5 +78,4 @@ Kig::Kig()
return;
}
- resize (640,480);
// we have drag'n'drop
--- kdeedu/kig/kig/kig_view.cpp #1.36.2.2:1.36.2.3
@@ -161,10 +161,29 @@ void KigWidget::updateEntireWidget()
}
-void KigWidget::resizeEvent(QResizeEvent*)
+void KigWidget::resizeEvent( QResizeEvent* e )
{
- recenterScreen();
- curPix.resize(size());
- stillPix.resize( size() );
+ QSize osize = e->oldSize();
+ QSize nsize = e->size();
+ Rect orect = msi.shownRect();
+
+ curPix.resize( nsize );
+ stillPix.resize( nsize );
msi.setViewRect( rect() );
+
+ Rect nrect( 0, 0,
+ orect.width() * nsize.width() / osize.width(),
+ orect.height() * nsize.height() / osize.height() );
+ nrect = matchScreenShape( nrect );
+ nrect.setTopLeft( orect.topLeft() );
+ msi.setShownRect( nrect );
+
+ // horrible hack... We need to somehow differentiate between the
+ // resizeEvents we get on startup, and the ones generated by the
+ // user. The first require recentering the screen, the latter
+ // don't..
+ if ( nsize.width() / osize.width() > 4 ) recenterScreen();
+
+ updateScrollBars();
+
redrawScreen();
}
@@ -185,5 +204,5 @@ void KigWidget::updateCurPix( const std:
void KigWidget::recenterScreen()
{
- msi.setShownRect( matchScreenShape(mdocument->suggestedRect()) );
+ msi.setShownRect( matchScreenShape( mdocument->suggestedRect() ) );
updateScrollBars();
}
@@ -315,7 +334,6 @@ KigView::KigView( KigDocument* doc,
setupActions();
+ resize( sizeHint() );
mrealwidget->recenterScreen();
- // don't draw anything here, since the window size will still be wrong..
- // mrealwidget->redrawScreen( false );
}
@@ -448,3 +466,8 @@ const KigDocument& KigWidget::document()
{
return *mdocument;
+}
+
+QSize KigWidget::sizeHint() const
+{
+ return QSize( 600, 400 );
}
--- kdeedu/kig/kig/kig_view.h #1.27.2.2:1.27.2.3
@@ -61,4 +61,5 @@ class KigWidget : public QWidget
void paintEvent (QPaintEvent* e);
void resizeEvent(QResizeEvent*);
+ QSize sizeHint() const;
// this is called to match a rect's dimensions to the dimensions of
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic