[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: KDE/kdeedu/kstars/kstars/widgets
From: Jason Harris <kstars () 30doradus ! org>
Date: 2006-04-13 6:59:28
Message-ID: 1144911568.483841.1906.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 529329 by harris:
Some updates and streamlining of MapCanvas widget.
M +22 -34 mapcanvas.cpp
M +1 -1 mapcanvas.h
--- trunk/KDE/kdeedu/kstars/kstars/widgets/mapcanvas.cpp #529328:529329
@@ -28,32 +28,28 @@
#include "../kstarsdata.h"
MapCanvas::MapCanvas( QWidget *parent ) : QFrame(parent) {
- BGColor = "#33A";
- setBackgroundColor( QColor( BGColor ) );
- setBackgroundMode( Qt::NoBackground );
- Canvas = new QPixmap();
- bgImage = new QPixmap();
+ //FIXME: pass ld and kstars pointers as ctor arguments
LocationDialog *ld = (LocationDialog *)topLevelWidget();
KStars *ks = (KStars *)ld->parent();
+
+ setAutoFillBackground( false );
+
QString bgFile = ks->data()->stdDirs->findResource( "data", "kstars/geomap.png" );
- bgImage->load( bgFile, "PNG" );
+ bgImage = new QPixmap( bgFile );
}
MapCanvas::~MapCanvas(){
delete bgImage;
- delete Canvas;
}
void MapCanvas::setGeometry( int x, int y, int w, int h ) {
QWidget::setGeometry( x, y, w, h );
- Canvas->resize( w, h );
origin.setX( w/2 );
origin.setY( h/2 );
}
void MapCanvas::setGeometry( const QRect &r ) {
QWidget::setGeometry( r );
- Canvas->resize( r.width(), r.height() );
origin.setX( r.width()/2 );
origin.setY( r.height()/2 );
}
@@ -69,16 +65,14 @@
}
void MapCanvas::paintEvent( QPaintEvent * ) {
- QPainter pcanvas;
+ QPainter p;
LocationDialog *ld = (LocationDialog *)topLevelWidget();
KStars *ks = (KStars *)ld->parent();
//prepare the canvas
- pcanvas.begin( Canvas );
-// pcanvas.fillRect( 0, 0, width(), height(), QBrush( QColor( BGColor ) ) );
- pcanvas.drawPixmap( 0, 0, *bgImage );
-// pcanvas.setBrush( white );
- pcanvas.setPen( QPen( QColor( "SlateGrey" ) ) );
+ p.begin( this );
+ p.drawPixmap( 0, 0, bgImage->scaled( size() ) );
+ p.setPen( QPen( QColor( "SlateGrey" ) ) );
//Draw cities
QPoint o;
@@ -88,20 +82,20 @@
o.setY( height() - int( g->lat()->Degrees() + origin.y() ) );
if ( o.x() >= 0 && o.x() <= width() && o.y() >=0 && o.y() <=height() ) {
- pcanvas.drawPoint( o.x(), o.y() );
+ p.drawPoint( o.x(), o.y() );
}
}
//redraw the cities that appear in the filtered list, with a white pen
//If the list has not been filtered, skip the redraw.
if ( ld->filteredList().size() ) {
- pcanvas.setPen( Qt::white );
+ p.setPen( Qt::white );
foreach ( GeoLocation *g, ld->filteredList() ) {
o.setX( int( g->lng()->Degrees() + origin.x() ) );
o.setY( height() - int( g->lat()->Degrees() + origin.y() ) );
if ( o.x() >= 0 && o.x() <= width() && o.y() >=0 && o.y() <=height() ) {
- pcanvas.drawPoint( o.x(), o.y() );
+ p.drawPoint( o.x(), o.y() );
}
}
}
@@ -111,23 +105,17 @@
o.setX( int( g->lng()->Degrees() + origin.x() ) );
o.setY( height() - int( g->lat()->Degrees() + origin.y() ) );
- pcanvas.setPen( Qt::red );
- pcanvas.setBrush( Qt::red );
- pcanvas.drawEllipse( o.x()-3, o.y()-3, 6, 6 );
- //FIXME:
-// pcanvas.moveTo( o.x()-16, o.y() );
-// pcanvas.lineTo( o.x()-8, o.y() );
-// pcanvas.moveTo( o.x()+8, o.y() );
-// pcanvas.lineTo( o.x()+16, o.y() );
-// pcanvas.moveTo( o.x(), o.y()-16 );
-// pcanvas.lineTo( o.x(), o.y()-8 );
-// pcanvas.moveTo( o.x(), o.y()+8 );
-// pcanvas.lineTo( o.x(), o.y()+16 );
- pcanvas.setPen( Qt::white );
- pcanvas.setBrush( Qt::white );
+ p.setPen( Qt::red );
+ p.setBrush( Qt::red );
+ p.drawEllipse( o.x()-3, o.y()-3, 6, 6 );
+ p.drawLine( o.x()-16, o.y(), o.x()-8, o.y() );
+ p.drawLine( o.x()+8, o.y(), o.x()+16, o.y() );
+ p.drawLine( o.x(), o.y()-16, o.x(), o.y()-8 );
+ p.drawLine( o.x(), o.y()+8, o.x(), o.y()+16 );
+ p.setPen( Qt::white );
+ p.setBrush( Qt::white );
}
- pcanvas.end();
- bitBlt( this, 0, 0, Canvas );
+ p.end();
}
#include "mapcanvas.moc"
--- trunk/KDE/kdeedu/kstars/kstars/widgets/mapcanvas.h #529328:529329
@@ -85,7 +85,7 @@
virtual void mousePressEvent( QMouseEvent *e );
private:
- QPixmap *Canvas, *bgImage;
+ QPixmap *bgImage;
QString BGColor;
QPoint origin;
};
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic