From 200faee2896a5ab23fcaf0687dfa165153f8ce99 Mon Sep 17 00:00:00 2001 From: gsherman Date: Sat, 20 Jul 2002 21:20:30 +0000 Subject: [PATCH] Auto repaint/polygons filled git-svn-id: http://svn.osgeo.org/qgis/trunk@34 c8812cc2-4d05-0410-92ff-de0c093fc19c --- ChangeLog | 2 ++ INSTALL | 4 ++-- Makefile | 19 ++++++++------- src/Makefile | 52 +++++++++++++++++++++++----------------- src/qgisapp.cpp | 2 +- src/qgisappbase.ui | 10 ++++---- src/qgisappbase.ui.h | 2 +- src/qgsdatabaselayer.cpp | 10 ++++++-- src/qgsmapcanvas.cpp | 10 +++++--- src/qgsmapcanvas.h | 4 +++- 10 files changed, 69 insertions(+), 46 deletions(-) diff --git a/ChangeLog b/ChangeLog index 81bca2a3f94..b787a13a2fb 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,5 @@ +July 20, 2002 + Repaint automatic for layers. July 18, 2002 Point, line and polygon PostGis layers can be drawn. Still issues with map exent and positioning of layers on the canvas. Drawing is manual and diff --git a/INSTALL b/INSTALL index fa1e8c83a54..f2989616aef 100644 --- a/INSTALL +++ b/INSTALL @@ -1,8 +1,8 @@ Requirements: 1. PostgresQL built with the --with-CXX configure options (C++ wrapper) 2. PostGIS support in PostgresQL -3. Qt 3.0.4 or higher built with thread support -4. Qt PostgresQL driver (can be built with Qt or separately -- see Qt SQL docs) +3. Qt 3.0.x built with thread support +4. Optional - Qt PostgresQL driver (can be built with Qt or separately -- see Qt SQL docs) To build Qgis: 1. Make sure your QTDIR environment variable is set to your Qt directory diff --git a/Makefile b/Makefile index d69fac269f9..378e8e0719a 100644 --- a/Makefile +++ b/Makefile @@ -1,14 +1,15 @@ ############################################################################# # Makefile for building: qgis -# Generated by qmake (1.02a) on: Fri Jul 5 16:45:36 2002 +# Generated by qmake (1.03a) on: Sat Jul 20 08:36:58 2002 # Project: qgis.pro # Template: subdirs -# Command: $(QMAKE) -nocache qgis.pro +# Command: $(QMAKE) qgis.pro ############################################################################# MAKEFILE = Makefile -QMAKE = qmake -SUBDIRS = src +QMAKE = qmake +SUBDIRS = src +DEL_FILE = rm -f SUBTARGETS = \ sub-src @@ -17,14 +18,14 @@ first: all all: Makefile $(SUBTARGETS) src/$(MAKEFILE): - cd src && $(QMAKE) -nocache -o $(MAKEFILE) + cd src && $(QMAKE) -o $(MAKEFILE) sub-src: src/$(MAKEFILE) FORCE cd src && $(MAKE) -f $(MAKEFILE) -Makefile: qgis.pro $(QTDIR)/mkspecs/default/qmake.conf - $(QMAKE) -nocache qgis.pro +Makefile: qgis.pro $(QTDIR)/mkspecs/default/qmake.conf + $(QMAKE) qgis.pro qmake: qmake_all - @$(QMAKE) -nocache qgis.pro + @$(QMAKE) qgis.pro qmake_all: src/$(MAKEFILE) for i in $(SUBDIRS); do ( if [ -d $$i ]; then cd $$i ; grep "^qmake_all:" $(MAKEFILE) 2>/dev/null >/dev/null && $(MAKE) -f $(MAKEFILE) qmake_all || true; fi; ) ; done @@ -34,7 +35,7 @@ clean: qmake_all FORCE uninstall install uiclean mocclean: qmake_all FORCE for i in $(SUBDIRS); do ( if [ -d $$i ]; then cd $$i ; $(MAKE) -f $(MAKEFILE) $@; fi; ) ; done distclean: qmake_all FORCE - for i in $(SUBDIRS); do ( if [ -d $$i ]; then cd $$i ; $(MAKE) -f $(MAKEFILE) $@ ; rm -f $(MAKEFILE) ; fi; ) ; done + for i in $(SUBDIRS); do ( if [ -d $$i ]; then cd $$i ; $(MAKE) -f $(MAKEFILE) $@ ; $(DEL_FILE) $(MAKEFILE) ; fi; ) ; done FORCE: diff --git a/src/Makefile b/src/Makefile index 7a4830b0cd3..ee95f031e29 100644 --- a/src/Makefile +++ b/src/Makefile @@ -1,6 +1,6 @@ ############################################################################# # Makefile for building: qgis -# Generated by qmake (1.02a) on: Sat Jul 13 08:56:49 2002 +# Generated by qmake (1.03a) on: Sat Jul 20 08:36:25 2002 # Project: src.pro # Template: app # Command: $(QMAKE) src.pro @@ -19,7 +19,7 @@ YACCFLAGS= -d INCPATH = -I$(PGSQL)/include -I$(QTDIR)/include -I$(QTDIR)/mkspecs/default LINK = g++ LFLAGS = -LIBS = $(SUBLIBS) -Wl,-rpath,$(QTDIR)/lib -L$(QTDIR)/lib -L/usr/X11R6/lib -L$(PGSQL)/lib -lpq++ -lqt-mt -lpthread -lXext -lX11 -lm +LIBS = $(SUBLIBS) -Wl,-rpath,$(QTDIR)/lib -L$(QTDIR)/lib -L/usr/X11R6/lib -L$(PGSQL)/lib -lpq++ -lqt-mt -lpthread -lXext -lX11 -lm AR = ar cqs RANLIB = MOC = $(QTDIR)/bin/moc @@ -31,6 +31,7 @@ COPY = cp -f COPY_FILE= $(COPY) -p COPY_DIR = $(COPY) -pR DEL_FILE = rm -f +SYMLINK = ln -sf DEL_DIR = rmdir MOVE = mv @@ -93,7 +94,7 @@ OBJMOC = moc_qgsmapcanvas.o \ moc_qgsdbsourceselectbase.o \ moc_qgisappbase.o \ moc_qgsnewconnectionbase.o -DIST = +DIST = src.pro QMAKE_TARGET = qgis DESTDIR = TARGET = qgis @@ -136,25 +137,25 @@ qmake: @$(QMAKE) src.pro dist: - @mkdir -p .tmp/qgis && $(COPY_FILE) --parents $(SOURCES) $(HEADERS) $(FORMS) $(DIST) .tmp/qgis/ && ( cd `dirname .tmp/qgis` && $(TAR) qgis.tar qgis && $(GZIP) qgis.tar ) && mv `dirname .tmp/qgis`/qgis.tar.gz . && rm -rf .tmp/qgis + @mkdir -p .tmp/qgis && $(COPY_FILE) --parents $(SOURCES) $(HEADERS) $(FORMS) $(DIST) .tmp/qgis/ && $(COPY_FILE) --parents qgsdbsourceselectbase.ui.h qgisappbase.ui.h .tmp/qgis/ && ( cd `dirname .tmp/qgis` && $(TAR) qgis.tar qgis && $(GZIP) qgis.tar ) && $(MOVE) `dirname .tmp/qgis`/qgis.tar.gz . && $(DEL_DIR) .tmp/qgis mocclean: - -rm -f $(OBJMOC) - -rm -f $(SRCMOC) + -$(DEL_FILE) $(OBJMOC) + -$(DEL_FILE) $(SRCMOC) uiclean: - -rm -f $(UICIMPLS) $(UICDECLS) + -$(DEL_FILE) $(UICIMPLS) $(UICDECLS) clean: mocclean uiclean - -rm -f $(OBJECTS) - -rm -f *~ core *.core + -$(DEL_FILE) $(OBJECTS) + -$(DEL_FILE) *~ core *.core ####### Sub-libraries distclean: clean - -rm -f $(TARGET) $(TARGET) - + -$(DEL_FILE) $(TARGET) $(TARGET) + FORCE: @@ -163,7 +164,8 @@ FORCE: main.o: main.cpp qgisapp.h \ qgisappbase.h -qgisapp.o: qgisapp.cpp qgsmapcanvas.h \ +qgisapp.o: qgisapp.cpp qgsrect.h \ + qgsmapcanvas.h \ qgsdbsourceselect.h \ qgsdatabaselayer.h \ qgisapp.h \ @@ -173,13 +175,16 @@ qgisapp.o: qgisapp.cpp qgsmapcanvas.h \ qgsdatasource.h \ qgisappbase.h -qgsdatabaselayer.o: qgsdatabaselayer.cpp qgsdatabaselayer.h \ +qgsdatabaselayer.o: qgsdatabaselayer.cpp qgsrect.h \ + qgsdatabaselayer.h \ qgsmaplayer.h \ qgsdatasource.h qgsdatasource.o: qgsdatasource.cpp qgsdatasource.h -qgsmapcanvas.o: qgsmapcanvas.cpp qgsmaplayer.h \ +qgsmapcanvas.o: qgsmapcanvas.cpp qgsrect.h \ + qgsmaplayer.h \ + qgsdatabaselayer.h \ qgsmapcanvas.h \ qgsdatasource.h @@ -189,7 +194,8 @@ qgsmaplayer.o: qgsmaplayer.cpp qgsrect.h \ qgsrasterlayer.o: qgsrasterlayer.cpp qgsrasterlayer.h \ qgsmaplayer.h \ - qgsdatasource.h + qgsdatasource.h \ + qgsrect.h qgsdbsourceselect.o: qgsdbsourceselect.cpp xpm/point_layer.xpm \ xpm/line_layer.xpm \ @@ -204,16 +210,16 @@ qgsnewconnection.o: qgsnewconnection.cpp qgsnewconnection.h \ qgsrect.o: qgsrect.cpp qgsrect.h -qgsdbsourceselectbase.h: qgsdbsourceselectbase.ui qgsdbsourceselectbase.ui.h +qgsdbsourceselectbase.h: qgsdbsourceselectbase.ui $(UIC) qgsdbsourceselectbase.ui -o qgsdbsourceselectbase.h -qgsdbsourceselectbase.cpp: qgsdbsourceselectbase.h qgsdbsourceselectbase.ui qgsdbsourceselectbase.ui.h +qgsdbsourceselectbase.cpp: qgsdbsourceselectbase.h qgsdbsourceselectbase.ui $(UIC) qgsdbsourceselectbase.ui -i qgsdbsourceselectbase.h -o qgsdbsourceselectbase.cpp -qgisappbase.h: qgisappbase.ui qgisappbase.ui.h +qgisappbase.h: qgisappbase.ui $(UIC) qgisappbase.ui -o qgisappbase.h -qgisappbase.cpp: qgisappbase.h qgisappbase.ui qgisappbase.ui.h +qgisappbase.cpp: qgisappbase.h qgisappbase.ui $(UIC) qgisappbase.ui -i qgisappbase.h -o qgisappbase.cpp qgsnewconnectionbase.h: qgsnewconnectionbase.ui @@ -222,13 +228,15 @@ qgsnewconnectionbase.h: qgsnewconnectionbase.ui qgsnewconnectionbase.cpp: qgsnewconnectionbase.h qgsnewconnectionbase.ui $(UIC) qgsnewconnectionbase.ui -i qgsnewconnectionbase.h -o qgsnewconnectionbase.cpp -qgsdbsourceselectbase.o: qgsdbsourceselectbase.cpp qgsdbsourceselectbase.h +qgsdbsourceselectbase.o: qgsdbsourceselectbase.cpp qgsdbsourceselectbase.ui.h \ + qgsdbsourceselectbase.h -qgisappbase.o: qgisappbase.cpp qgisappbase.h +qgisappbase.o: qgisappbase.cpp qgisappbase.ui.h \ + qgisappbase.h qgsnewconnectionbase.o: qgsnewconnectionbase.cpp qgsnewconnectionbase.h -moc_qgsmapcanvas.o: moc_qgsmapcanvas.cpp qgsmapcanvas.h +moc_qgsmapcanvas.o: moc_qgsmapcanvas.cpp qgsmapcanvas.h qgsrect.h moc_qgsdbsourceselectbase.o: moc_qgsdbsourceselectbase.cpp qgsdbsourceselectbase.h diff --git a/src/qgisapp.cpp b/src/qgisapp.cpp index ecd7ae6de79..18dac1174b4 100644 --- a/src/qgisapp.cpp +++ b/src/qgisapp.cpp @@ -54,7 +54,7 @@ QgisAppBase (parent, name, fl) // resize it to fit in the frame // QRect r = frmCanvas->rect(); // canvas->resize(r.width(), r.height()); - mapCanvas->setBackgroundColor (QColor (220, 235, 255)); + mapCanvas->setBackgroundColor (Qt::white); //QColor (220, 235, 255)); mapCanvas->setMinimumWidth (400); diff --git a/src/qgisappbase.ui b/src/qgisappbase.ui index f8378f2b70f..a8dace78baf 100644 --- a/src/qgisappbase.ui +++ b/src/qgisappbase.ui @@ -182,7 +182,7 @@ image5 - Draw + Refresh @@ -203,7 +203,7 @@ 789cd3d7528808f055d0d2e72a2e492cc94c5648ce482c52d04a29cdcdad8c8eb5ade6523232520022630543251d2e253d856405bffcbc54105b19c8563600020b03103711c44d0303b04aac005546593911b74ce2d09151c60089046512a100641a14109419789f522203f6082e19385ba9d69a0b008e2682ef - 789cc5d3c10ac2300c00d07bbf222cb722dd9c1741fc04c5a3201e4615f430059d0711ffdd2ada364d8a3010c30e813cb2a4b4a586e56206ba54e7aee9f616ecae3981de5cdaf6ba5a4f6faa18d5e0be1a86c54015062ccc8f87ed33479763e5625cbd4a5fa287411f598328a1d8c485388f0ce96f244347202818b60e336917d130c24d98826f9f3f9f8c61bb894622c9398be48f465e8c190191bb81463c23660ced85c4840ac629355177afd064cda7292686c67bfe74e614f91fe6df6998fc47efbdbfb94fd403df21d37e + 789c5d58c76e253b0eddf75718cd5d63a0573960300be79c730f6641aaaaeceb1caee3c3fcfb8887d7e32ed5e9067c4c8a922806c97ffd9a3bdbdb9efbf5d78fe7294f277ece5ff2d3dcafeee5f6f6e3dffff9d7df3f7e66d99cfe6b8bb9ece73f7efcdc9fcef9b99dfbbb5e89a34028c107be30e6f410c939e28bca077ce0b7917c3eb217cd273bd1f89b483e19cbe931b22fcab35e01b98be49f63ce5534df75a4bf13e9ef47f3df47f2f9b19cf7c6dc3f46f203e5be50807f46ebf988ece33cea4101be1bd9ab95f79d02e3db687c83f90605f84734fe4a79890ffe863ffa41017b9017b902fb5f57ded40a8cbf847ea3c0f8c81f12ed8f2fc05305f821ecb50af0f7687cb45f417c74ad021cfe193205c60fe08d02f2ab687e8ba75c0179745edc47e77dae5c2a05e4f06f3b28203f1b9f279d627d8302fc04f60a05e6cba3f9903f65a280bc88e63f8ef68ffc6251e07cb69557990272c46b5f28c04b8c6705ec1d45f67f63bd5e017b587fd52b205f86bc50802fc13e3ec4f710ede768bc1e5ac3f98a0272e42bccc39fb432f62f1d8ecf93acbe540aeca71ac7a7bf88f6b38af3a914e00bd1795bfeb102bc1ec7af473c0fa2801cf5a42e14e0c8a79e15d07f8af63fc57e7205e647fc75a502fa93b17d42bef954018efce97305e6bb1be73f81379502f3a11e0b3ee8b7e3fcf251fc13f2877305f4e16fa915904fc6e72d88df5e14e088c72e55809f8ef3cdbbc87f88076915903f47eb413c37f8a08ff386393b5f8ae21fe7eb6b05f859e4fff5e8fc517f3c3ed8bb8ee6bf1cdbf31cc90fc6f129e7517d97687d88676cd7e21df9d5d60ac879bc3e413ed5ac40fe21be5baf00477c369d02f6e08f365180c39f4da6803de46bdd2b30be8cea15f2455205e4cd787e427fe04e017be8ff955760beb5717d70a8576da180fc7cac4fa80f6da9803df4cfb256401ff953150ad8437cd59902e3d10f1a56603c8deb25e3fccb5481f1a8af4dae0047fcd5b902fa889f9215901f46f50ef51fe960f5351be73fbd41bf53408ef8403a227e5d3ae6d481d70accefc7fd5950bf9354010eff26b902f165f7af5a01fe0ade28a06ff70556408ef525a200c77e934e81f5219fc364cdecbe837c49d3ac48ac3e61fe345340be31e3d54c1ff5212dd2c2b87ff9e2a9f9e7d578d6dafadcd68c8bad8f71bfc271613e42bf4aab2ffbec8ce76962f106ffa5b502f612e379369363bf69ab80bd3de3999fed1fe799b202e32f8de7f9cc1f88af54f23eb17c368e820cb98df7f990dafe07e3456adc9b7f501021bf335e54a9c59fadaf2f5a5bbf473f4279b6fbd5a6727577827ae0d7bf7866f17c613c17f3aff3c6cbc4ec09d697e183bc335ea6a9c507fc9f150a70c473562ae0bf47e35562e3c5380a0afcb961bc98f957b0ffac5540fe64bcf299ad07fd2f6305e46cbc1a32cba77be3e100ad5ec2df9957403f315e0fb9d96f8d37696ef1837e93754d965b7f41bc7ddfff05f188eb83f977cd7893e7162f27332e85c5dbd28c0f85f50bf3d7c089d527c2f9e4a1da64f67e81fff3b42972ccc777c6dbbeb47a85fb6a1e1c965b3fba31ce5569f1b434e34d69f182fe90e761bfb6bf65e3925b3d64f4c7bc90597d149c6f5e2a20473fcbabaab3fd12fa475e378dddd719e78d7288f364f83fe7362bac1f9a3d5c58601fe79d7b05d687f3ccbbe01fcb278c2f1205ec1d1baf0bb32f383f94038bdf57e375929b7f4be36d65fef2b08ff0340e7f7ebf3718f5b12815b08ffc45bb307b2fc6dbb4b0f35e352e556debb3f951c02137fdbaee6cfd6ecf78d0b7f708fa47d128b01edc4782fbc5f6cfb67e5cf8b11ee427ae4b384f3f3fee4f6edf785316d6bf36c7fd8a500fcb523aebbf928efba3c77da2ec15b067fd35f721c2307e3ae37963f160fdba08729bdf78f9a52fcfe3fee4115f152b307ec5b8af4c9f37c7fd8ed371bf14e403aee7167f85f1b01ebbdfa0fea17c5b7f437dc3f6acdfa07fe17a64f98efb4edd7999ddff902f4daa00c77deefbbee366f71fdfb5767ec85f1c9fed17f9f5c7fb12ebfbbe4f09ead71ff735c407daa9d577eceffbbe4c62bc63b6f70ff215d709db8fddaff1e0823efc25499f0ae40ef541b23e11cb17d8935281f9917f782e59ffb4f751d36762e78ff54adb1782f513f243fabeb4f70323ff90bed67fec7d2a7debedbd617f0fe87befedbe8378efc2ebd4eefb0ef53fa47bd2597ea17e74c39077361ffc1d9ae58c3becfffbfebb3ffd8223c74e9c779debdde02edca59bb82b77ed6ec2ef4935fed40fdab7eeceddbb07f7e89edcb39bba17f7eadedcbbfb709f6ede2dfca9ef16838d3bb7e496dd8a5b756be1e775b7e136c30c6f6ecb6dbb1d1df1a51fb417c2acf7417bd7edb9fda0357107eed01db9e3f0d3963b71a73ae20ffb6afdc19db973f7db252e7599cb5de14a57b9da3561c4c4b5e4fe6f7f8188d82d93907713eaa8a7812ee892267445d77443b7e1b777740fff3db8797a743bf444cf34a5177aa5377aa70ffaa4795aa0455aa2655aa1555aa375f877e2de698336698bb6698776698fb07e3a08b60fe9888ee9844ee98ccee9b7e95342296594534125555453432d3b266696f0e8edc2c375e00bbee409e2e5ca4df89a6ff896eff89e1f82ee63f8cd133ff33468bff02bbff13b7ff027c33fbcc08b18b1c4cbbc32d35ee5355e0fda1bbcc95bbccd3bbccb7bbc0ffd033ee4a3a073cc277c0aed333ee7df413b0957b22ce4551172e78de7d9deb375b8e8b7e23047d016e27361f6e179eba50b8fd0412eb8904bde11ac5faee45a6ee456eed42b722f0fc2f2284ff21cd6b12d53799157b9943779970fe87fcabc2c048fadc8a22cc9b2acc8aafe3140d6c2ff75d9904dd9926dfc79c0eafb8eecca1e9dc8be1cc8a11cc9b19cc8a99cc979d0ff1d2ed9a96416635ff129799014219fabf08468a4f5ceebdf1b82efc3d7c9a6efbf62fe2b7e742e3ff80b7fe927fe2a685f43fbc6dffa3b7fef1f627dff68ebf34f41fbd95fe3e71bdef253cefdcb77067ec733effa57e9fd9b7f87ee47b0fde9e7fdbcbc7f5b1fe7a3aeca2ff8c5b08625bfec57fc34e8074f7dcb63fd30625e3efc1abf8571eb7e63ac0bfdfffef3c7ff00e7f464ef @@ -248,13 +248,13 @@ qgisappbase.ui.h - addLayer() fileExit() fileOpen() - init() - drawLayers() + addLayer() zoomIn() zoomOut() + init() + drawLayers() diff --git a/src/qgisappbase.ui.h b/src/qgisappbase.ui.h index f3f576fa544..6d4334418b1 100644 --- a/src/qgisappbase.ui.h +++ b/src/qgisappbase.ui.h @@ -52,4 +52,4 @@ void QgisAppBase::init() void QgisAppBase::drawLayers() { -} \ No newline at end of file +} diff --git a/src/qgsdatabaselayer.cpp b/src/qgsdatabaselayer.cpp index 03267026050..4e7e020209a 100644 --- a/src/qgsdatabaselayer.cpp +++ b/src/qgsdatabaselayer.cpp @@ -1,6 +1,7 @@ #include #include #include +#include #include "qgsrect.h" #include #include @@ -47,6 +48,7 @@ QgsDatabaseLayer::QgsDatabaseLayer(const char *conninfo, QString table) : //QMessageBox::warning(this,"Connection Problem",msg); valid = false; } + }else{ QString msg = "Unable to get geometry information for " + tableName; //QMessageBox::warning(this,"Connection Problem",msg); @@ -69,6 +71,8 @@ void QgsDatabaseLayer::draw(QPainter *p, QgsRect *viewExtent, int yTransform){ 3. transform 4. draw */ + cout << "Drawing layer using view extent " << viewExtent->stringRep() << + " with a y transform of " << yTransform << endl; PgCursor pgs(dataSource, "drawCursor"); QString sql = "select asbinary(" + geometryColumn + ",'" + endianString(); sql += "') as features from " + tableName; @@ -86,7 +90,7 @@ void QgsDatabaseLayer::draw(QPainter *p, QgsRect *viewExtent, int yTransform){ memset (feature, '\0', pgs.GetLength (idx, 0) + 1); memcpy (feature, pgs.GetValue (idx, 0), pgs.GetLength (idx, 0)); wkbType = (int)feature[1]; - cout << "Feature type: " << wkbType << endl; + //cout << "Feature type: " << wkbType << endl; // read each feature based on its type double *x; double *y; @@ -171,7 +175,9 @@ void QgsDatabaseLayer::draw(QPainter *p, QgsRect *viewExtent, int yTransform){ } break; case WKBMultiPolygon: - p->setPen(Qt::blue); + p->setPen(Qt::darkGreen); + QBrush brush(Qt::green); + p->setBrush(brush); // get the number of polygons ptr = feature + 5; numPolygons = (int *)ptr; diff --git a/src/qgsmapcanvas.cpp b/src/qgsmapcanvas.cpp index cf70cb06725..d873aae8050 100644 --- a/src/qgsmapcanvas.cpp +++ b/src/qgsmapcanvas.cpp @@ -34,6 +34,7 @@ void QgsMapCanvas::addLayer(QgsMapLayer *lyr){ if(layers.size() == 1){ fullExtent = lyr->extent(); } + render(); // set zpos to something... //lyr->zpos = 0; } @@ -61,12 +62,12 @@ void QgsMapCanvas::render(){ QRect v = paint->viewport (); int d = QMIN (v.width (), v.height ()); int dm = QMAX(v.width(), v.height()); - paint->setViewport (v.left () + (v.width () - d) / 2, - v.top () + (v.height () - d) / 2, d, d); + paint->setViewport (v.left () + (v.width () - d) / 2, + v.top () + (v.height () - d) / 2, d, d); // render all layers in the stack, starting at the base map::iterator mi = layers.begin(); - int yTransform = mapWindow->bottom() - abs(mapWindow->height() - currentExtent.height())/2; + int yTransform = currentExtent.yMax();//mapWindow->bottom() - abs(mapWindow->height() - currentExtent.height())/2; while(mi != layers.end()){ QgsMapLayer *ml = (*mi).second; // QgsDatabaseLayer *dbl = (QgsDatabaseLayer *)&ml; @@ -76,3 +77,6 @@ void QgsMapCanvas::render(){ } paint->end(); } +void QgsMapCanvas::paintEvent(QPaintEvent *pe){ + render(); +} diff --git a/src/qgsmapcanvas.h b/src/qgsmapcanvas.h index 59106d0f45b..61ce815eb44 100644 --- a/src/qgsmapcanvas.h +++ b/src/qgsmapcanvas.h @@ -19,8 +19,10 @@ #define QGSMAPCANVAS_H #include #include +#include #include "qgsrect.h" class QRect; + class QgsMapLayer; /*! \class QgsMapCanvas @@ -42,7 +44,7 @@ public: */ void render(); private: - + void paintEvent(QPaintEvent *pe); //! map containing the layers by name maplayers; //! Full extent of the map canvas