render bug when adding layers fixed

git-svn-id: http://svn.osgeo.org/qgis/trunk@105 c8812cc2-4d05-0410-92ff-de0c093fc19c
This commit is contained in:
gsherman 2002-08-18 16:08:58 +00:00
parent f054c97401
commit 643f16e1d3
12 changed files with 145 additions and 40 deletions

View File

@ -36,7 +36,7 @@ User Interface=*.kdevdlg,*.ui,*.rc,*.dlg
groups=Headers,Sources,User Interface,Others
[Makefile.am]
files=main.cpp,qgisapp.cpp,qgscoordinatetransform.cpp,qgsdatabaselayer.cpp,qgsdatasource.cpp,qgsdbsourceselect.cpp,qgsmapcanvas.cpp,qgsmaplayer.cpp,qgsnewconnection.cpp,qgspoint.cpp,qgsrasterlayer.cpp,qgsrect.cpp,qgisapp.h,qgscoordinatetransform.h,qgsdatabaselayer.h,qgsdatasource.h,qgsdbsourceselect.h,qgslinesymbol.h,qgsmapcanvas.h,qgsmaplayer.h,qgsmarkersymbol.h,qgsnewconnection.h,qgspoint.h,qgspolygonsymbol.h,qgsrasterlayer.h,qgsrect.h,qgsshapefilelayer.h,qgisappbase.ui,qgsdbsourceselectbase.ui,qgsnewconnectionbase.ui,qgscustomsymbol.cpp,qgscustomsymbol.h,qgslegend.h,qgslegend.cpp,qgslegenditem.cpp,qgslegenditem.h,qgssymbol.h,qgstable.h,qgsshapefilelayer.cpp,qgslegenditembase.h,qgsabout.ui,qgsabout.ui.h,qgsaboutqgis.cpp,qgsaboutqgis.h,QgsSymbol.cpp,qgsmarkersymbol.cpp,qgslinesymbol.cpp,qgspolygonsymbol.cpp,qgslayerproperties.cpp,qgslayerproperties.h
files=main.cpp,qgisapp.cpp,qgscoordinatetransform.cpp,qgsdatabaselayer.cpp,qgsdatasource.cpp,qgsdbsourceselect.cpp,qgsmapcanvas.cpp,qgsmaplayer.cpp,qgsnewconnection.cpp,qgspoint.cpp,qgsrasterlayer.cpp,qgsrect.cpp,qgisapp.h,qgscoordinatetransform.h,qgsdatabaselayer.h,qgsdatasource.h,qgsdbsourceselect.h,qgslinesymbol.h,qgsmapcanvas.h,qgsmaplayer.h,qgsmarkersymbol.h,qgsnewconnection.h,qgspoint.h,qgspolygonsymbol.h,qgsrasterlayer.h,qgsrect.h,qgsshapefilelayer.h,qgisappbase.ui,qgsdbsourceselectbase.ui,qgsnewconnectionbase.ui,qgscustomsymbol.cpp,qgscustomsymbol.h,qgslegend.h,qgslegend.cpp,qgslegenditem.cpp,qgslegenditem.h,qgssymbol.h,qgstable.h,qgsshapefilelayer.cpp,qgslegenditembase.h,qgsabout.ui,qgsabout.ui.h,QgsSymbol.cpp,qgsmarkersymbol.cpp,qgslinesymbol.cpp,qgspolygonsymbol.cpp,qgslayerproperties.cpp,qgslayerproperties.h
sharedlib_LDFLAGS=-version-info 0:0:0
sharedlib_rootname=src
sub_dirs=
@ -98,18 +98,6 @@ install=false
install_location=
type=HEADER
[qgsaboutqgis.cpp]
dist=true
install=false
install_location=
type=SOURCE
[qgsaboutqgis.h]
dist=true
install=false
install_location=
type=HEADER
[qgscoordinatetransform.cpp]
dist=true
install=false

View File

@ -26,6 +26,7 @@
#include <qfiledialog.h>
#include <qfileinfo.h>
#include <qpixmap.h>
#include <qbitmap.h>
#include <qsplitter.h>
#include <qpopupmenu.h>
#include <qrect.h>
@ -51,6 +52,8 @@
#include "qgis.h"
#include "qgisapp.h"
#include "xpm/qgis.xpm"
#include "xpm/cursorzoomin.xpm"
#include "xpm/cursorzoomin_mask.xpm"
#include <ogrsf_frmts.h>
QgisApp::QgisApp(QWidget * parent, const char *name, WFlags fl):QgisAppBase(parent, name, fl)
{
@ -58,6 +61,11 @@ QgisApp::QgisApp(QWidget * parent, const char *name, WFlags fl):QgisAppBase(pare
QPixmap icon;
icon = QPixmap(qgis_xpm);
setIcon(icon);
QBitmap zoomincur;
// zoomincur = QBitmap(cursorzoomin);
QBitmap zoomincurmask;
// zoomincurmask = QBitmap(cursorzoomin_mask);
QGridLayout *FrameLayout = new QGridLayout(frameMain, 1, 2, 4, 6, "mainFrameLayout");
QSplitter *split = new QSplitter(frameMain);
legendView = new QListView(split);
@ -118,7 +126,7 @@ void QgisApp::about()
void QgisApp::addLayer()
{
qApp->processEvents();
mapCanvas->freeze();
QStringList files = QFileDialog::getOpenFileNames("Shapefiles (*.shp);;All files (*.*)", 0, this, "open files dialog",
"Select one or more layers to add");
@ -150,8 +158,10 @@ void QgisApp::addLayer()
// update legend
/*! \todo Need legend scrollview and legenditem classes */
// draw the map
mapCanvas->freeze(false);
mapLegend->update();
qApp->processEvents();
mapCanvas->freeze(false);
mapCanvas->render2();
statusBar()->message(mapCanvas->extent().stringRep());
@ -166,10 +176,10 @@ void QgisApp::addDatabaseLayer()
QgsDbSourceSelect *dbs = new QgsDbSourceSelect();
mapCanvas->freeze();
if (dbs->exec()) {
// repaint the canvas if it was covered by the dialog
qApp->processEvents();
mapCanvas->freeze();
// add files to the map canvas
QStringList tables = dbs->selectedTables();
QString connInfo = dbs->connInfo();
@ -192,13 +202,16 @@ void QgisApp::addDatabaseLayer()
// update legend
/*! \todo Need legend scrollview and legenditem classes */
mapLegend->update();
mapCanvas->freeze(false);
// draw the map
mapCanvas->render2();
//mapCanvas->render2();
statusBar()->message(mapCanvas->extent().stringRep());
}
qApp->processEvents();
mapCanvas->freeze(false);
mapCanvas->render2();
}

View File

@ -35,7 +35,8 @@ class QgsMapCanvas;
*/
class QgisApp : public QgisAppBase {
Q_OBJECT
public:
public:
//! Constructor
QgisApp(QWidget *parent=0, const char * name=0, WFlags fl = WType_TopLevel );
~QgisApp();
@ -65,27 +66,33 @@ public:
//! About QGis
void about();
public slots:
//! Slot to show the map coordinate position of the mouse cursor
void showMouseCoordinate(QgsPoint &);
//! Show layer properties for the selected layer
void layerProperties(QListViewItem *);
//! Show layer properties for selected layer (called by right-click menu)
void layerProperties();
//! Show the right-click menu for the legend
void rightClickLegendMenu(QListViewItem *, const QPoint &, int );
//! Remove a layer from the map and legend
void removeLayer();
private:
//! Popup menu
QPopupMenu *popMenu;
//! Legend list view control
QListView *legendView;
//! Map canvas
QgsMapCanvas *mapCanvas;
//! Table of contents (legend) for the map
QgsLegend *mapLegend;
QScrollView *mL;
//! scale factor
double scaleFactor;
//! Current map window extent in real-world coordinates
QRect *mapWindow;
//! Current map tool
int mapTool;
QListView *lv;
QCursor *cursorZoomIn;
};
#endif

View File

@ -80,6 +80,17 @@
</property>
<action name="actionFileOpen"/>
</toolbar>
<toolbar dock="2">
<property name="name">
<cstring>Toolbar_2</cstring>
</property>
<property name="label">
<string>Toolbar_2</string>
</property>
<action name="actionAddNonDbLayer"/>
<action name="actionAddLayer"/>
<action name="drawAction"/>
</toolbar>
<toolbar dock="2">
<property name="name">
<cstring>mapNavigationToolbar</cstring>
@ -91,17 +102,17 @@
<action name="actionZoomOut"/>
<action name="actionPan"/>
<action name="actionZoomFullExtent"/>
<separator/>
<action name="actionIdentify"/>
</toolbar>
<toolbar dock="2">
<property name="name">
<cstring>Toolbar_2</cstring>
<cstring>toolbarDataTools</cstring>
</property>
<property name="label">
<string>Toolbar_2</string>
<string>Toolbar_3</string>
</property>
<action name="actionAddNonDbLayer"/>
<action name="actionAddLayer"/>
<action name="drawAction"/>
<action name="actionOpenTable"/>
</toolbar>
</toolbars>
<actions>
@ -221,6 +232,23 @@
<string>Zoom &amp;out</string>
</property>
</action>
<action>
<property name="name">
<cstring>actionIdentify</cstring>
</property>
<property name="toggleAction">
<bool>true</bool>
</property>
<property name="iconSet">
<iconset>image7</iconset>
</property>
<property name="text">
<string>Identify</string>
</property>
<property name="toolTip">
<string>Identify a feature on the active layer</string>
</property>
</action>
</actiongroup>
<action>
<property name="name">
@ -235,7 +263,7 @@
<cstring>actionTestButton</cstring>
</property>
<property name="iconSet">
<iconset>image7</iconset>
<iconset>image8</iconset>
</property>
<property name="text">
<string>Test button</string>
@ -246,7 +274,7 @@
<cstring>actionAddNonDbLayer</cstring>
</property>
<property name="iconSet">
<iconset>image8</iconset>
<iconset>image9</iconset>
</property>
<property name="text">
<string>Add a vector layer</string>
@ -255,6 +283,20 @@
<string>Add a vector layer (e.g. Shapefile)</string>
</property>
</action>
<action>
<property name="name">
<cstring>actionOpenTable</cstring>
</property>
<property name="iconSet">
<iconset>image10</iconset>
</property>
<property name="text">
<string>Attribute table</string>
</property>
<property name="toolTip">
<string>Open the attribute table for the selected layer</string>
</property>
</action>
</actions>
<images>
<image name="image0">
@ -267,7 +309,7 @@
<data format="XPM.GZ" length="3390">789c759649531c490c85effc8a0e74734cc85595595b4cccc1066f98d52bf6c41cb23668f6a5b10d13f3df27f55e81a11bfae1083ea4cc94944ab59f3f9bec6e6f4c9e3d5fba9c85d9b49db4fbe162f2acbb3a3ebefefb9fbffe5d5aceb249fc49bd9b64cb7f2c2defcc26ed64f3f4a437d03a8224f818cb17706a02ef809d095c824b9371507065827d1b1c4cb00bb831810fc09d09e7af1ac7c32a9eaf3fc169e6931cfe87e0cc04fbaf918bd17f00fbd48ff1d7b79c7ad8b7c959cdf8f466e486f1c9393837c1be0b2eeef6afc82e4d5af823dfb434c1fe96ecb2d13e05d726d8bf92b396f94b060e26d87bb273633d184fe3fa6440fe01dc9a606fc86e48195f4bf629391c833b13ec7b645fa4b83f3d03f7be66fc81e70f26d8af8daddc4901fbd12d67e807edc8ae19eb2be43ce17e82fbccf0813d90f334657f7c067b13f83b38378107729170bda0be5965c27e3b643fd6575e816b13ecebe4a2cd18cf7b7030c1fe8e5c0c19ee43f7c9f10291bf6c815b13ecdfc8e5e0b87f49ae52c7fe9981bb2a73bcdf0d706f02339ec184f53fc89573ec97cb911bcffe3d1879f0a8bf7e24872467bf7d3076499e64bc7fe4e7d2ca3b9ed792eb3e67fdf19e5d2c98637e811c8a9cf95d8c5ce5ec97376017f3657e87e4c615bc2ff49ff38d1f79059c9bc0e8075714dd98af0797550c0076bc6f5799c0e82717eaccb31e29b8318191bf6b4dd80ffdedba581fda0b639f98c017e4d28ffbe33d631cb07f4fc965e2585f47ae0bd64bf0ded19ee41cec4c60bc1f9f9bc0a8572c4631ded716b94e3df3bf223745c9f8d06fbe34c17e422e3bc6af2fc9d19ff317f3ce5726bc47bc8f58fe66cc1ff3ccb726f06b7067823fea9b2726ecbf42ae72cffbfd04c600841def33cf9baea41dfd9f9726ec87f996f726f8e3bcc2b5b1c3c09b23bb8af5c17c297cb4f37cac8fcd37facb1ab83281d12f4530818fc86d31faa35e456702e33d15bd098cfa158309e765e4180fee47101fc637eb8bf784f4f87d83fe2e6b13d6e3fecbae6d2ace63ccd32a3581f1de309ef8de8ec86d57737ff41bae8ff1e3fba0aa4d60ccdbaa3381319feac604c679f83a65ff246067c2796be42e04e41fd05f2137c11ffd1d0613fc316f9ba44f1b7edfbd00677dd2b0fee4dc04c67b6b2a13fc67e43e6b78ff980f4dddfb86f303fdd4f47dde327ff43f9e2fe3c5bc6e9bbe6e397ff17edbbe6f5bee87f7dff921363018f3303ef7a4e3fb42fedd30b88ee761dec62fcb5bc63c1df031de993d948a066db4d54e7b1d1edae6fd754ff775aa077aa8477aac277aaa677afe947ff4bed04b9de995fe88bfffd45f7aad435c71f384ff7ef47ea12f75257add45127fbfd1d545ffb8e3545fe96b7da36f1772bae1fa07feefe2ee6bfa7e3ec7db5316fcd7754337754bb71ff3ff1d4f8cef5c77f4837ed44ffa59bfe857ddbd1fff23fedff4bb269a6aa64ebde65a68a9d5786a2d3a5f4f1d44244823ad74d26b2977bb47ef3dd997e97c3db1e2400ee568cefb584ee454cee47cbe9e71c5855ccaec81f795fc909ff24baee586673ca88f9d71dffb85bc9415599557f23aae786367ccddef9db7bc9577b216e33893f7b22e1bd17b53b664fbb1fee4ee71ff9df8ef837c944ff259bed85fb47ecaff2ea6afb22bdfe4fb427dea27fc1349e3fed9a2ffe28ae8edc44b2e8594f3fe5cf17b0de277b1f255ace6bd9deec71f5456838460bea189ff01684317ba5895f2717fdb35f461101ff6c27e984a15fd0f1ec6b9581fd90e87328deb8ec2f1624ecbfffdb9f43f0b1c269c</data>
</image>
<image name="image3">
<data format="XPM.GZ" length="3550">789c8d96db521c390c86ef798a297497da52667abadbeddada8b104242c2100810205b7ba1b6bb399f860142b6f6dd57fe6526a9307b981f427d23d9966559cecb178383adc9e0c5cba5db99cc4ec2201ccb74f022de5d5c3cfefec76f7f2e2d17c5407f46d578502cffb2b4bc3d1b84c1e6d5659780260a34c427b13c80db24d84fc02129315f261ec524d8d364548c9360ff04f62ac17cb789c7a324f01d38b9c35fcec1b5ca81cfc04ed580afc05e85f9e89b71537a9bef1a2ce3be44fc2ce05665f1067050215e41bce3a8b2fddf1837ded7f06fc19daa07c7c4e55085f56825735d225eda058f942d5ec9ec3213b8283560f83f1afb46309eb19f729c04fbe99c4bf091b1f782f9f83d181ff0f59c2bf867bbafc538dbbd88ad6ff15449188ffc6ab42eefe735b84902bf32f69d58fe7ab04fc2f8a339db7977604982ddc60795d5cb57e3d605abaf0a1c55761e164f6c2580c5f2df27c1fe21713594716bf13799ebd6f6b70e2ec4b596cf637029c1ec8cf8aa4665fe35d827c14e73b67afb0c6e93c0bd713b0a96ff1d704882fd63e668cce61f55b6bf7789eba196a7c55f808b24d84bf0b8f205ea99a6c66d65eb09f25d3749b03f18b73158bd7ab0a8bfeddfe66f5de1ac9e70ffea9004decf1c8df98bb1e61ffb6567acd7c7f283faadfbba77d62f38b11baaec3ee2beb95112e6f773c6fe04f74da3299cc587f9d375b7f804fd06e568f5db1987265afde0bc5da5c27d15dc1757abac7f5c80d3c7f2730f6e347e5b6f15ec9d383bff4363df78cbc75be3b60f960f9b4f54960f8bbf754d1e7f903964fbd058cbddea03fdc245d739bb3f164feffac6fa15eaa519051fadffa05ef5707501706d1c479de513fdb57141b2ff61e6182dfe11b891c6ee2b6f8245ed16ef46e63ecf67f62e09f1617d5f3485f56342bff7b596af9d47ccac1b026f83bd5e5fdbcf41e6a6b3f850efbe8d7587f367c4e7a31482f579621c7df6473f55abb3fe486b606d089dd51fce47aa183abb9f782f440b5e8c517fd274a3ceee2bea597c70d64f08ef91b4b1cfe3f7c0c1fbdceff78dbba18d67d4a3f46dd9da796e19ebfc966fd4473bd2f8ccbe61dc156667bc6f6dd16a89c09f8dc353ff43bd68379068f91b83459f5b3b9f2de3aeec2c3ed47babf5152c5f6799abccebc69debec3cf19eb551cad2e2dd31eeeaded65bcbec32a3df8571e733a3dfeaec7db4fed41aebfcb6bf37e0ba8bbdf533f4f3a0a7d5db79a33f85d0f5bddd4ff4b3d025c1be6d1c7dee2f66efa3443b1fcc1f35badef27b9f79dcdbfd467eb5da626ff584f745abc3e57a9919f7458e0ffd2f467d4e6c7ee43b6a34deee27ea5d4ff7e9bee13dd7ff0c14797dd44f57693cb6bfbdcca5c5c3e8df5d8acfce03efa966a3b1f518fda7c727f1f6ec494c2cdc72e0c8ddf76f7fd4777feef9888ff9844ff98ccff9822ff9ea9ffdf99a6f78cab73ce33bbee707fdf72b3ff2b7c5fefc8a57d4fe9a57f5f70daff15b7ec7ebfacd0abf5fe87fc41fe0bd8a111b3ce14dfec85bbccd9f9efbf30eefea5c33de83f767dee7033ee42f3cd411232e9ef91ff1984bae54c97b4bbd6b76dcb0e70d62a205fea724d46ac41b1428724d1df57444c74a4c273ffbd3299dd1395de81e0fe812de57744d3734a55bdea567f1d39de661aa71e81ee99e1ee82b3dd2377aa563a7b4b2283ff49a56e90dadd15b7a47ebf45ee7fe401b74ce239a2cf4dfa48fbca2316dd1367da27b3ea41df55ea15d9ad0dea2f3a5cfb44f0774485fa8550d694445f2e6551a53b9b07e76a8a29a1c35e485854468222d8d7584e3f6b97f9204aaf45276d2cb91ae59cab18e3be1553995b345fe3f4b479ceb880bb9e40bb99ae773625978fafba3d4ff5caee546a6fc28b74ffef3f99ef9a7efb006cb547fff239ebcc65d1e71cff1fff8cfd77830ff7f8fe7c9a26711ff7bbf3f6bf9af5f97fe06b3c5625f</data>
<data format="XPM.GZ" length="812">789cad92cd4ac5301046f77d8ad0ec8adc3f3717c447505c0ae2229966daa45c05bd2e447c77e7cb24f516eaceaf0de4e46432a5edb6338f0f77a6db36ef67778e6468746fa6eb3f4ea7cfa7e7dbafa63d1c8cdcfb6bb36faf9a7663c8dcbfbe04cca3cced4e72dc0143456620291e6501382a5241566456b4406c554c409a37f78acc94d10351a9d629623b7052ac270f15f5a936ab591a8bac1be7fc7f19e901533a5d182211ce7b4b39bf86fa102c442f611a6643c261b41001623e4d044b51b032024435a88080cf15d5a022af234451a27d68643461148890d7194b1f5ac4a729d63ec33044ef13f3944716f509629ae40c48ef5514934592459ebc57a106474db844a7228a59e4d20ccbac7d9fbfff8385f9be697e00d9acca1e</data>
</image>
<image name="image4">
<data format="XPM.GZ" length="4446">789c85965b4f1e3f0ec6effb29507d57adfc9ff3245aed452950a09c0f8576b5174e3253a01c0abcb485d57ef7f53c0eb450d87d5d09fd9a38719ed8cefcf566ee706b7deecd5fafae67323b8e73f148aee6dea49bb3b3db7ffeeb1fff7ef5ba6ae6f45fe9fbb9eaf5df5ebdde9ecdc5b98d8bf36102d1f97354e0072e26ae3bb51e7c008eb5afddc4e4276e0a5f0ae6d341e6ca5816c1a51a36934b70a5568377c0f564e0f4c00d7817dc4e86f51db8932a603e7dccdc049bbf07ee27c3f8fa035bbc2bc6de8b9d671fec2703b3b1efc4f6fb0916b58071db2f4c86f16570943294e0137052333d97c0435bb476feafc63e08f6a399b19e07e38cf3e96c358c1f1afb68f305e769abc9301f7ab7f564985f666edb0ef3114fdb486b7ac91ab86d5d6b7af4c6a18aa6df5b70a766fa9c1a4b21380f41afd6071f23f6bf0587c930ffdb03639caec151d7373ddf677611f3f91c3cb66367f91226ee8aaeeaec3ca37128a2e9770c56b5a2cddf00d7adaf4cafc2580de7e10f999bcc0358a9b378a047871fd69b07f72a08f6a30eec824401ff00fbc9b01e81c36418bf310ebde949166f9c0cf3059c2603dbf906b511f32dbe211609e767d3639c0ce37bc6b14db83f463ef6455ff5960fa8dfbe9c0cf3978ca34b763f88b7af547f3bff6ae61871df8cfaebebc9307e65acfbd979510f282fd3f3ec81b11e9f666e7bd3f308dc8664f942ad712c93dd9faddff7a343bc7267ec2a67f9d8809d7701eb0bf4e9bd2b9de5c345e6c6d97e168fd7f3587ed97e12ab64eb231f5ce9b543219e5de3a801621cf9a9bb0fdef2e98b71ac23f4e726b337fdc9b856b6fd37c14de72aab17e8e9da380eb61efaa1eb5231d8fd5c662e337f063b4d2fabf7efc65192d5e302d877a9b178a0970b6eb47879d5d857def47b078edd68f3a53376aa38f6db30d6f687f8197abae4cbaccf8e712a92ed87fc57751a6ff791390ea61fef661e13ea25207f7dd1f50dcec7e837ba7af4a6cfb671aa4d1f81debe8ad1cecb35b8d6766af98d7ee8d180e0bf609cfa01f113f2dff7c965fe04761abfd5ef56e6c6f6e39dcc5d5e1ff5e5bd3670ebdfa8672fa94a56afe8dfdabd6bb1fcb778a35462f562f1c6d49a5e04fda54a71b0fa81fed2e87ea647056e53cae3c83fe9743ef24bd0cfa5ef5c7ebfe68dd360f309fd565c1a07cb77e829a28cf30aea55a2ae67f7bb9c390df63ea2df8b66a7ad27887feab6d67f04fd3954ba9ec5837843ddb7168fcc8c351ecb4fdc4f68fa2e8faf1aeb7dda79d18f423bd483e98b7842a70159fea33eb53b8db63f211f830cfd607aa29f84a0f761fa439fa0a7b371417f0dc3d0e4f3e3fec3e8aaac1ff23116831bad1e51afb11c2a9b4f7799ebec3f666e06dc3fa1bfc4fade9f173387d1e2c57ba8ddb24a561fc6dde0cc9ff1bda4ddb8b17e41e8975a0c2e9fef3c73182d1fb7324763311637daf70a9f18a73ebf07fbc6f7fb09fa490cbec8f3a1df545dd6cfe5da58e7db7dac64f639de7b961c1ffa511ceec7a97a60f807d45f1c631f4c4f7c4fa54ae3873e01f7939a3844d38b8c8734da7dce8cc762b4fa5fc85c66463da6761847d317f99e7a2d589c27d87a92dadcff0be3b11a2dffaf33d7a3e981f368758c161fe33d4a49e75b7da0de35fb877cdf97c61a0fe20d38df50a498f311effd50ea7ccb77d4a766cf9879cd58d7b7f9a83f7dfceb7c1e7cff69b6d7b9df207f351bfa117af266663fdaf706f454759d8d0bfaeb90f4beec3d46ffd168f27c41fee9eea5dd17233f74f730dafb87f752577359aff9ccd1c619ef85d2309a3fbe4747fc26de9edd1b130b078e9c7efddf9ff6cb87071ef90b1ff1319ff0573ee5b3ffe7c3e77cc1dff892aff89a677cc3dff907fffc5f3e7ccb77fc96e7f91d2ff0222ff17b5ee6155e7d3ec6ecf381d7d4639d377893b7789b777897f7789f3fbee4c3077ca8517d528fcf5c70c915d7dc70cb1df71c5ef071ec898948b8a0c0db1429d140237da1233a7ede874ee82b9dd2199dd3057d538f4bbaa26b9ad10d7da71f2ff8fca45bbaa3b7344fef6881166989ded332add02a7da0b5177cd6698336698bb6698776698ff6e9231dd0217da2cf54bca41b9554514d0db5d4514f4e1f51167d99443fa55ff29124838cf2458ee4584ee4ab9cca999ccb857cd3cfef3fbceef3402ee54aae652637f25d7ec84fb9953b792bf3f24e169e7afdca37599425792fcbb222abf241d6645d366453b664fba9d7e3bc961dd9953dd9978f534c722087f2493e3ff57ae2131f5921a57e2ffce19535a8a579b0fad7e8f35ed9a7e17569a5935e9c7afd16c7735ef73eeae1351a17f8b1cf735e0f3e5d3e43f7d4e791d7639f29aa18f415ffd3e7de2b04fdfbbbcf14551724c4e77ce03559fccde705dd1e79c5fb3cca3e8fefe5599fdfeef43f7f7ff55f91655a15</data>
@ -279,10 +321,16 @@
<data format="XPM.GZ" length="4446">789c85975973163d0e85eff9152974474de9ebb7f7aea9b920242c217b8004a6e642b6bb591308094b3235ff7dd4e73821eb4c44917ab065cbc792dcfcf568e9607b63e9d15f0f4e4eedf4635c8a1fecfbd2a3f4e3f0f0ec9ffffac7bf1f3c2ceb25ffb318baa5f2e1df1e3cdc395d8a4b9b5f8fc619cce72f49811f703173d5ba75e07d70ac86aa9f598699eb625818e6cb7ee6926cabe0851b36b36370e9568177c1d56ce074c935780fdccc86f57b706b65c07c7993b90e9cff0adccd86f18d4b66bc2fc8c3603ccf6bf0301b58c9436bdcef37d8dc02c6b95f980de3cfc1d1166101fe044e6ed4f329786c8a86e7ff4c1e82613f3925fb7930ae389fcf76c3f80179889c6f384f53ce86f9d0bba966c3fc45e6a669311ff134b535d4cbd6c14dd337d4a323873252bfc7e0d68dfa7c215b61388f40af6608438cd8ff0c1c66c3fc6f978c713901475f9f7a3ecbdc47ccd723f0d44c2df325ccdc166dd9f23c13391491fa7d04bb5a91f337c1553394d4ab20bbe13cfa32739d79043bb58c077ab4f8c17acbe0ce05c17ed282fb60d1c0bfc0c36c584fc061368cff20878e7a0ae38db361be81d36c609e6f749b309ff18db14838bf528f69368cbf22c726e1fe14f9d8155dd9311f50bfdd6236cc7f4a8e7de2fd20deae74fd79feb5cc31e2be15f5d755b361fc3bd9f7e379510f282fea7978c9584fbf646e3aeaf901dc84c47c91861c1789f7c7f5bb6eea11af9d93fbb2673ed6e07ee803d637e8d30dfda2673e7ccd5cf7dc8ff10c7e1ee617f7b35826ae8f7ce817837728c4b3478e1e20c6919fbefb38309fde936315a1bfd69907ea2fe4ca99fb6f81ebb62f592fd0b36fe234723df4c3be4dc5c8fb39cebcc8fc0edc7b7ab1de7f92a325d6e30a786853cd78a0571ffa89f1ea1a792807eaf7041cdb89f36593eced0ef12af4ebd3b0c87aec925391b83ef2ddd5a807ea9f398ed44bf7324f09f51190af43d17635cea3e82fbe7a1ca8c70e3955d4c3a0ef50c6c8f36905aebc7d329fd1ff06341cf8af905337227e41be0f5dea33bf05f71e3feb753b73cdfd7437739bd7473d0d83376cf66bd4ef60a94cac4ff46befd69531df196fb4d2581f8c37a6867a09f4b632c511f717f09e58358c03cf877e62b5ef4f7d4a709312e72bf2cf5af7477e19fab9756d9fdfaf65721a395fd06fad4fd3c87c87be66ce38bfa15e2dfa7abcefe799d3c8f711fdde3c3bb99ee13c73b765ff31f4e750fa7a8c07f186aa6b188f9d923d1ee627ee2bd45d9bc7d7c87ebf3c2ffa5168c66aa4de8827b41e10f31ff5e9dd69e2fe82fc0c367623f5453f09c1ef87f7017d829f8ee386fe1ac6b1cee7473e84a92fb37ec8cf588cfdc47a44bdc6c55872be9c67aeb2ff94b91e910f82fe12ab0b7f5dcd1c26c68bf7d0bb6599582fe476ece9aff85ef26e5cb35f08faa517479fcf7794394ccccfedcc916c64eb277eafe82772eaf27bf09a7cb19fa19fc43014793ef49bab8dfddc4ec83e9ff7f122f390e3bd60cbf1a11fc5f1625cca4b867f403dc62976817a22ff53e9f1439f80fb49751c23f512f29826dee729792a26d6cb4ae64566d4676ac669a2bec8f7d47901b3deb89ea526f7ff823c9513f3ff247335510f9cc7ab63627c8af728259fcffa40fd7bf68ff9be8fc91e0ffb2bee732c52ccf988f77e5cf87ce63bead3b367cabc4ef6f5391ff5e78f7f95cf83ef3fcff62af71fe4af674337414fddca3c4cfcde809eae6ecf7143bf1d93df17df63f4238f26cf37f41fdf7dc1fb52e487ef1e26be7f782f7db53eebb59c39725cf17e388d13fdf13d3ae167e69dd30b5351d3a051d39f7fbb6d7f7c74d449dfeb07fda89ff4b37ed1c3ffe7a347fa55bfe9b17ed7133dd51ffa537fe9efffe5a3677aae8f75599fe88aaeea537da6cff585aedd1d63f679a9ebeeb1a19bbaa5dbbaa3bbbaa7aff4b5beb9cf47f7f5c0a37aeb1eefb4d085965a69ad8db6da69b8c7a7d74154444c0b09ba2351928c32c97bf9201feff6914ff259bec8a11cc957f9e61ec7f25d4ee4547ec84ff9758fcf6f399373792ccbf2445664559eca33792e2f644d5ecafa3d3e1bb2295bb22d3bb22b7bf24a5ecb1bd99703792befa4b84f3759482995d4d2482b9df4fea8aaf9cb64fe297d9f8f251b6db2f7f6c13eda27fb6c5fecd08eecab7df3cfef5b5e177960c7f6dd4eecd47ed84ffb65bfedccceedb12ddb135bb9e9f527df6cd59eda337b6e2f6ccd5edaba6dd8a66dd9b6eddcf4ba9ad71ec7aeedd92b7b6d6fe6986cdf0eecadbdbbe975bd16b267e4dffe7fa9857f3fdcf2ca1a54565f5a75317a9f57f6a975c31a6badb3debde2953deff0baf0b9f418aefadced75e113142788febbbeaed235af6b3edc23f82b7ed3e78f5708fefbaa4ff608f1b64ff69a2d5ef1b953b79b37709147d9275eb7db3ed7f2e03f7f7ff05ff0ee59a6</data>
</image>
<image name="image7">
<data format="XPM.GZ" length="1226">789cc5d3c10ac2300c00d07bbf222cb722dd9c1741fc04c5a3201e4615f430059d0711ffdd2ada364d8a3010c30e813cb2a4b4a586e56206ba54e7aee9f616ecae3981de5cdaf6ba5a4f6faa18d5e0be1a86c54015062ccc8f87ed33479763e5625cbd4a5fa287411f598328a1d8c485388f0ce96f244347202818b60e336917d130c24d98826f9f3f9f8c61bb894622c9398be48f465e8c190191bb81463c23660ced85c4840ac629355177afd064cda7292686c67bfe74e614f91fe6df6998fc47efbdbfb94fd403df21d37e</data>
<data format="XPM.GZ" length="691">789cbdd23d0bc2301006e03dbfe2e86d45ac169cc49fa0380ae290bc2a3a5441eb20e27fb7f93849e2074ebe74c8dd4302c9b52a69319f5259a973abdb3d083b7da2727d699aeb7235b9a9a2aea9fb46342c7aaae81368763c6cecda746b1eb8d892a5842be14b8452fb72dbc59df336b1b0cbab306b173111e93b8bc5f78d89c84bd8f05924601101d9f3452cfd55b2fb20131302c4622916cedf2d1c054edefad906733a1f66c4fd64a6e948fbbffd0799dcc7ea01166daa17</data>
</image>
<image name="image8">
<data format="XPM.GZ" length="721">789cb591b10ac2301086f73ec5d1db8ab4da45417c04c5511087e49aa04315b40e22bebb392f6952eae0e24f87fbffef7239d2aa80dd760d4595dd3ad59d08e8a8ae5034f7b67dec0fab6796d735b86f0eb37c92e525106c2e67c335ba1aa74ed6b2d562172e604b62c9db46acb5d26cd872ab50c59699d8f2ab7e22385424a8126915092aed14404230245a4b4720d837fb634842d0a7711eca6e1e241b84dd066bf9619e8c457137226a825c9d1297984f6e1861781d0cb9317226108c93fc2cffa27cc9503d19ebc7fff35ff25a666fc73ea80e</data>
<data format="XPM.GZ" length="1226">789cc5d3c10ac2300c00d07bbf222cb722dd9c1741fc04c5a3201e4615f430059d0711ffdd2ada364d8a3010c30e813cb2a4b4a586e56206ba54e7aee9f616ecae3981de5cdaf6ba5a4f6faa18d5e0be1a86c54015062ccc8f87ed33479763e5625cbd4a5fa287411f598328a1d8c485388f0ce96f244347202818b60e336917d130c24d98826f9f3f9f8c61bb894622c9398be48f465e8c190191bb81463c23660ced85c4840ac629355177afd064cda7292686c67bfe74e614f91fe6df6998fc47efbdbfb94fd403df21d37e</data>
</image>
<image name="image9">
<data format="XPM.GZ" length="706">789cad90b10ac2301086f73cc5d16c456cec2082f8088aa3200e77178b0e55d03a88f8eee692d6a6da41a15f33e4bf2f5c73c952d8ac979066ea5a617564e0035e20b5b7b2bc6f778b874af21cdc9ac22419a9640c0cabf3692f7bedf6da3866462237917d248968e4936825b2298a605162e1f16d7bf9dd688d43195d837f98d0cd31d4ddea563da6253614131b621b60b6849121a984ba88d6902f0a41bc0df9e3a11bc5937e8bda50f3835604d3b96e67528ce99bf4e30d9e73f50264179ca2</data>
</image>
<image name="image10">
<data format="XPM.GZ" length="706">789cd3d7528808f055d0d2e72a2e492cc94c5648ce482c52d04a29cdcdad8c8eb5ade6523232520022330543251d2e253d856405bffcbc54103b05c856360003105719c6b5007393405c530b1004711341dc64631004719341dc3430001b8b15806594b100a84c221424c11889cac984649231005c26050292e18c513db4d28305406430b500019e14526bcd0500394cc509</data>
</image>
</images>
<connections>
@ -369,6 +417,7 @@
<slot>about()</slot>
<slot>testButton()</slot>
<slot>addLayer()</slot>
<slot>identify()</slot>
</slots>
<layoutdefaults spacing="6" margin="11"/>
</UI>

View File

@ -78,4 +78,9 @@ void QgisAppBase::testButton()
void QgisAppBase::addLayer()
{
}
void QgisAppBase::identify()
{
}

View File

@ -25,8 +25,15 @@ class QPoint;
*/
class QgsCoordinateTransform{
public:
/* Constructor
* @param mupp Map units per pixel
* @param ymax Maximum y value of the map canvas
* @param ymin Minimum y value of the map canvas
* @param xmin Minimum x value of the map canvas
*/
QgsCoordinateTransform(double mupp=0, double ymax = 0, double ymin=0,
double xmin = 0);
//! destructor
~QgsCoordinateTransform();
/*! Transform the point from map (world) coordinates to device coordinates
* @param p Point to transform
@ -50,6 +57,7 @@ class QgsCoordinateTransform{
* @return QgsPoint in map coorndiates
*/
QgsPoint toMapCoordinates(QPoint p);
QgsPoint toMapPoint(int x, int y);
/*! Set map units per pixel
* @param mupp Map units per pixel

View File

@ -60,8 +60,11 @@ Q_OBJECT
NDR=1,
XDR=0
};
// Returns the endian type for the client
int endian();
//! Returns the endian type for the client
int endian();
/*! Endian type as string
* @return XDR or NDR
*/
QString endianString();
};

View File

@ -28,10 +28,15 @@ class QgsSymbol;
*/
class QgsLayerProperties : public QgsLayerPropertiesBase {
public:
public:
/*! Constructor
* @param ml Map layer for which properties will be displayed
*/
QgsLayerProperties(QgsMapLayer *ml);
~QgsLayerProperties();
//! Function to display the color selector and choose the fill color
void selectFillColor();
//! Function to display the color selector and choose the outline color
void selectOutlineColor();
private:
QgsMapLayer *layer;

View File

@ -51,7 +51,8 @@ void QgsLegend::update()
for (int idx = 0; idx < map->layerCount(); idx++) {
QgsMapLayer *lyr = map->getZpos(idx);
QgsLegendItem *lvi = new QgsLegendItem(lyr, listView); // lyr->name(), QCheckListItem::CheckBox );
if(lyr)
QgsLegendItem *lvi = new QgsLegendItem(lyr, listView); // lyr->name(), QCheckListItem::CheckBox );
//lvi->setOn(lyr->visible());
// QgsLegendItem *li = new QgsLegendItem(lyr, legendContainer);
//addChild(li,0,idx*60);

View File

@ -24,13 +24,23 @@ class QListView;
class QPainter;
/**
* \class QgsLegend
* \brief Map legend
*
* The map legend is a worker class that controls the display of legend items.
*@author Gary E.Sherman
*/
class QgsLegend : public QWidget{
Q_OBJECT
public:
public:
/*! Constructor.
* @param lv ListView control containing legend items
* @param parent Parent widget
* @param name Name of the widget
*/
QgsLegend(QListView *lv, QWidget *parent=0, const char *name=0);
//! Destructor
~QgsLegend();
//! Set the pointer to the map canvas
void setMapCanvas(QgsMapCanvas *canvas);

View File

@ -23,19 +23,33 @@ class QgsMapLayer;
class QgsSymbol;
/**
* \class QgsLegendItem
* \brief An item in a QgsLegend
*@author Gary E.Sherman
*/
class QgsLegendItem : public QCheckListItem{
//Q_OBJECT
public:
public:
/*! Constructor
* @param lyr Map layer this legend item represents
* @param parent The parent listview
*/
QgsLegendItem(QgsMapLayer *lyr=0, QListView * parent=0);
//! Destructor
~QgsLegendItem();
/** Write property of QString layerName. */
virtual void setLayerName( const QString& _newVal);
/** Write property of QString displayName. */
virtual void setDisplayName( const QString& _newVal);
void stateChange(bool);
/*! Responds to changes in the layer state (eg. visible vs non visible)
*@param v True if layer is visible
*/
void stateChange(bool v);
/*! Gets the layer associated with this legend item
* @return Pointer to the layer
*/
virtual QgsMapLayer * layer();
private: // Private attributes
/** */

View File

@ -156,12 +156,14 @@ if(!frozen){
std::cout << "MAP LAYER COUNT: " << layers.size() << std::endl;
while (mi != layers.end()) {
QgsMapLayer *ml = (*mi).second;
if(ml){
// QgsDatabaseLayer *dbl = (QgsDatabaseLayer *)&ml;
std::cout << "Rendering " << ml->name() << std::endl;
if (ml->visible())
ml->draw(paint, &currentExtent, coordXForm);
mi++;
// mi.draw(p, &fullExtent);
}
}
paint->end();