minor bug fixes

git-svn-id: http://svn.osgeo.org/qgis/trunk@247 c8812cc2-4d05-0410-92ff-de0c093fc19c
This commit is contained in:
gsherman 2003-08-26 05:24:04 +00:00
parent 7163fe27e7
commit e39c81b803
18 changed files with 70 additions and 24 deletions

18
INSTALL
View File

@ -1,3 +1,4 @@
/* INSTALL,v 1.13 2003/08/26 05:24:04 gsherman Exp */
QGis can be built with or without PostgreSQL/PostGIS support. QGis can be built with or without PostgreSQL/PostGIS support.
Requirements common to either build: Requirements common to either build:
1. Qt 3.0.x built with thread support 1. Qt 3.0.x built with thread support
@ -12,14 +13,19 @@ Additional requirements for building with PostgreSQL/PostGIS support:
2. PostGIS support in PostgreSQL (http://postgis.refractions.net) 2. PostGIS support in PostgreSQL (http://postgis.refractions.net)
To build QGIS without PostgreSQL/PostGIS support: To build QGIS without PostgreSQL/PostGIS support:
1. Make sure your QTDIR environment variable is set to your Qt directory 1. Make sure your QTDIR environment variable is set to your Qt directory
2. Change to the qgis directory 2. Change to the qgis/src directory
3. Type: make -f Makefile.nopg 3. qmake src.pro
4. make clean
5. make
To build QGIS with PostgreSQL/PostGIS support: To build QGIS with PostgreSQL/PostGIS support:
2. Set the PGSQL environment variable to point to your PostgreSQL installation 1. Make sure your QTDIR environment variable is set to your Qt directory
and make sure the libpq++ headers are available in $(PGSQL)/include 2. Set PGSQL environment variable to point to your PostgreSQL installation
3. Build QGIS by typing: make 3. Change to the qgis/src directory
4. qmake "DEFINES+=postgres" src.pro
5. make clean
6. make
The QGIS executable (qgis) will be built in the ./qgis/src directory The QGIS executable (qgis) will be built in the ./qgis/src directory

View File

@ -15,6 +15,7 @@
// includes // includes
#include <iostream> #include <iostream>
#include "../src/qgisapp.h" #include "../src/qgisapp.h"
#include "qgistestplugin.h" #include "qgistestplugin.h"
#include <qaction.h> #include <qaction.h>
// xpm for creating the toolbar icon // xpm for creating the toolbar icon
@ -28,6 +29,8 @@ QgisTestPlugin::QgisTestPlugin(QgisApp *qgis, QgisIface *_qI)
pName = "Test Plugin"; pName = "Test Plugin";
pVersion = "Version 0.0"; pVersion = "Version 0.0";
pDescription = "This test plugin does nothing but tell you its name, version, and description"; pDescription = "This test plugin does nothing but tell you its name, version, and description";
// instantiate a map layer
//QgsMapLayer *mlyr = new QgsMapLayer();
// see if we can popup a message box in qgis on load // see if we can popup a message box in qgis on load
QMessageBox::information(qgisMainWindow,"Message From Plugin", "This message is from within the test plugin"); QMessageBox::information(qgisMainWindow,"Message From Plugin", "This message is from within the test plugin");

View File

@ -88,12 +88,14 @@
</kdevclassview> </kdevclassview>
<kdevcvs> <kdevcvs>
<cvsoptions>-f</cvsoptions> <cvsoptions>-f</cvsoptions>
<commitoptions/> <commitoptions></commitoptions>
<updateoptions>-dP</updateoptions> <updateoptions>-dP</updateoptions>
<addoptions/> <addoptions></addoptions>
<removeoptions>-f</removeoptions> <removeoptions>-f</removeoptions>
<diffoptions>-u3 -p</diffoptions> <diffoptions>-u3 -p</diffoptions>
<logoptions/> <logoptions></logoptions>
<revertoptions>-C -d -P</revertoptions>
<rshoptions></rshoptions>
</kdevcvs> </kdevcvs>
<dist> <dist>
<custom>false</custom> <custom>false</custom>
@ -119,4 +121,16 @@
<appskde>false</appskde> <appskde>false</appskde>
<url/> <url/>
</dist> </dist>
<kdevcppsupport>
<codecompletion>
<includeGlobalFunctions>true</includeGlobalFunctions>
<includeTypes>true</includeTypes>
<includeEnums>true</includeEnums>
<includeTypedefs>false</includeTypedefs>
<automaticCodeCompletion>true</automaticCodeCompletion>
<automaticArgumentsHint>true</automaticArgumentsHint>
<codeCompletionDelay>250</codeCompletionDelay>
<argumentsHintDelay>400</argumentsHintDelay>
</codecompletion>
</kdevcppsupport>
</kdevelop> </kdevelop>

View File

@ -7,3 +7,5 @@ CONFIG += qt thread debug
TEMPLATE = subdirs TEMPLATE = subdirs
SUBDIRS += src \ SUBDIRS += src \
plugins plugins
SOURCES += qgsmaplayerinterface.cpp
HEADERS += qgsmaplayerinterface.h

View File

@ -9,6 +9,7 @@
* This API documentation provides information about all classes that make up QGis. * This API documentation provides information about all classes that make up QGis.
* *
*/ */
/* Id */
namespace QGis namespace QGis
{ {

View File

@ -16,6 +16,7 @@
* * * *
***************************************************************************/ ***************************************************************************/
/* $Id$ */ /* $Id$ */
#include <dlfcn.h> #include <dlfcn.h>
#include <qapplication.h> #include <qapplication.h>

View File

@ -15,6 +15,7 @@
* * * *
***************************************************************************/ ***************************************************************************/
/* $Id$ */ /* $Id$ */
#ifndef QGISAPP_H #ifndef QGISAPP_H
#define QGISAPP_H #define QGISAPP_H
class QCanvas; class QCanvas;

View File

@ -15,7 +15,7 @@
* (at your option) any later version. * * (at your option) any later version. *
* * * *
***************************************************************************/ ***************************************************************************/
/* $Id$ */ //* $Id$ */
#include <qapplication.h> #include <qapplication.h>
#include <qcursor.h> #include <qcursor.h>
#include <qfont.h> #include <qfont.h>

View File

@ -1,4 +1,4 @@
<!DOCTYPE UI><UI version="3.0" stdsetdef="1"> <!DOCTYPE UI><UI version="3.1" stdsetdef="1">
<class>QgsAttributeTableBase</class> <class>QgsAttributeTableBase</class>
<widget class="QDialog"> <widget class="QDialog">
<property name="name"> <property name="name">
@ -94,7 +94,7 @@
</customwidgets> </customwidgets>
<images> <images>
<image name="image0"> <image name="image0">
<data format="XPM.GZ" length="5230">789c9597db4e1d4b0e86eff31428be8b46b5fb54dd551acd051020211c4320c0682eecaa5e9ccf90005bf3ee53cbbfe9d9c9c548a38ea27c2977b5cbfe6dd7fae3c3c2e1cee6c2873fde3d3cf2e3595a48a77cbff0213f5d5dbdfcf35ffff8f3ddfba65998fff161a179ffb777ef771f17d2c2d6cdf53807c705a889cdac6ee72c47736eebd637b5f2b672d70ecd30e744ca7d9b9a4ad7579587363433e527e5d072abefbb03636978ceb4a31c5bc13a91716ad41f89e0aec2fe74abcc6d6ad5f9e4945357375ef75f997357751dd61d19c71afb61bdef421b951f274ebaffb6716cb3f2b2f230f18d3183dd95b1b441d7d59f2e94757ccf1b27eceff69563618d0f5dcfd9d7beeb7a5dd7f3fac6fb4ee32b87c619f1168d976f7d6ff6df26d6ef4b301e1bac7f54f63e747a5e87f5c173276aff605c22a8fefc540e5e3af5972f956359577bf2c6d978cb78d6697edc9eb2f8b143fed7945359d778b0e6c3e7be81bf7465dce23cf4ac3c16567f19fecefaae53bd081b7baccbb131b7d05f679ca03f27c6b9d1f388c6bbaffab7f80dca4d1fed7bfafdbeedb9533d490f1e2ae8d5693ccacb83d77cd027e3d4416faa97beefa3d7f8f086f168f9d9020f43a3f5c5aa877e28eb88f74fe319becfaa873e0c15de775f95639f3dec37c143d361bf2be3cef4b76bdcb7d84ff5d2cbd0227facf1ecd360fa67d54b9f078ffcd10f636e11ff53e3847853ad3c1b668837e9fe43358c2df45a81430b3db2e6676842d368fd48abdc068b87e0fd2e788bf792b21f861e7afd0e0e5ce37dcdd7d0872218e5d789f57b3218a71ae7bb501eca3af67b510e21c05fd27a1b6218ac3ef17d0ed68fe8cb1be3fc6e5159863ca0bfed824340fe687d62c4838c23f677f0370de380fcdd2be7e03dfab1d6cf300bcd80fa80bfb358dbf9547fa18abe413d68fe421d63ade7737aded094cf63fdcc38f4d0bfee17dac2d08380a3a0dff24cb90bdc23ffaa87e0636c912fed87612e38d4df1e982bc4dbdd29872001f14aca319413eb793e83cbfbe8af27606e4c0f5f8d3bcb7763ec6b8da73b57e69083d61f9d82b9b5fada31f635fcaf8d7b7b5ffb41f16e34ff34fe214dfc0c8e1ef1a22330bfcdc345e31e4c33e3c1e6e181b1609e3ac43f8759803e8cd9f2e7e0ff18ab80ef5d8239e2fc0ef129f90ff0bf0773347fee8d13ce279bc6b34af5c61abf58157bf4b765b05435f4abfec726968c2b67e536fa80fe388279067f680d2c750dff75fe9766da07e44bc02521ba4e1d584c1fb261dcc23fd97f63f8c3af136bfc687362c4e76962ed8fac7a2ecdb7853f7c63ec6bf467bd3fc421c680780c60b6f9275fc045aea84fadaf18a2e0fc04ff0237bd9e8fefc0d236e8ef3f8d83c57fdd38daf94edeb886be74fec618b3ed7f3731e66b0fe67a403e76c0454ef8de9231dbfe9f8dc5fc47be38a6887ad2f950964d2fdc1a27d3c7b6710693f6ef9864b4fdb4ffc6cc5540fea0972c339c87afc1c9f4443a5fe2c84d40bd2f82cb3ae6c7b1716dbc37b1e68bf5be118b7e3dead78125d87d0bfa99bd7d8fb78c1bdb4fcfcfd51bcb9d716bebda3fb8966cf7cf57709103f2e327c6fe5a2fdc4ab4fb01deef5283fa65d50ffb54c13fd67ec37d61e845fb070f8571df7c341eec7e7a691c6ae453fb771937d1fa999ebfa43358bf573d3327c6fdd0a9de59b87414e59f60911ef3ff07380d16bf0b63b6fbb8ce0f4e523a80ee8ff8a5f21fe83f384f2e8cf9d419db7d4bb4bff32cb1dd871ae38c79417962dd9f8f2786bfaa3fa992ddbf68d5d8d6797d62dc27b4bf4a9bdeee5be7c619efbb169c2b9bb7aa67e972857a67d59bf8943cf4a6f5237dae3b9c3f4f8cef5713637e6a3c6548e546a7eb87e0b28e7cf7c68ddd2fb15f28acf166bd2f484c19f921f8cbc57de84ff52c397b8f7e178d7bbb7f7e9f18f743d593ccd210d12f9e8c05fd8417c1e5e704e2afefa7aa5cf850ff4fc6a1473debfc4d7561c4ebd3c48897f69fd4e4d8eb7e4efb736a0b23fe9adfd465bb3f388d6ff22933fa1df6f7597ad483c62371f6e6ff8671b6f89e198fb8cfb0ea3f49619c6f6562cc27d5474a7906e6b589d1df549f29e78479450fe0b1c2fc67d5731a0ba33ffc97a167fd7d92ebb1b1f9a87acdcdd8a23ff2e3c4a81fed0fb91bbb88f8e9f772f9b9c6b8bfac187bd41febbcc8c35831f4bb6edc227eeec8b847bc58ef0f398d91a1179d6f391746bdebfd60ac4716b0180bd8a97e473f8ea2dfdb7d9c3f8e1cff8f8760057b27e57f92cb6e743377e24efff29cb97377e12edd55b190c99eddb5bb71b7eeceddbb07f7e89edc0ff7d33dbb17f7ea16dd925b761fdd8a63d8174f52b15e756bee93fbecd6dd17b7e136dd96db763b6ed77d2dd67bee9bdb77078ed49e8b27b7c5fabb3b7447eed855ae768d6bcbd339ef7a37b8e022392a2734fbd1dd119350a24c23cde8844ee98ccee9c2f9c2977445d77443b793fd8ceee89e1ee8919ee807fdb4e7995ee8b5d82fd252b15ffe8bfd097da4155aa535fa34597fa6f5f2f717da28f69bb445dbb433d99fd22e7da53dfa3659efd3017da7c3f2af233aa68aeadfec1b6aa9236fd63d0d14ca15c0719913737b965fedcbf0c83cc29a677cc2a77cc6e77cc1977cc5d7c5fee637fbdbb2db9d5adff343b17ee427fec1737ee69762fffa9bfd222ff17259fdc82bbcca6bfc893ff33a7fe10ddee42ddee69ddfec77f92beff137dee703fece877cc4c7aee58a6b6ee8b8fc10ed7eb13f635f9a4bc5e54719477152ba671977a505c84845c57222a7bfd89fcb999ccb855cca955cbfc5546ee456ee68b14cf67b799047799aec2fdc92fc28999cef567224cff222afb2c85b32e36d599265f9282bb23ad95fba6559934f2593f3e798b74acc8fd5f6b3accb17d9904dd9926db3a7520d1fdd37d9915df95a72599e1291566df7e49beccb817c974339829eb55e56dc7e51ec0d2dcbb1545297a791563af1c5eff2d3beb4faf8562f568f0744745b9e9d5f1f7992d5e412a186ffef7afff7dfdffd077c99ae99</data> <data format="XPM.GZ" length="4376">789c6dd6d96ee33a1206e0fb7e8aa0ebae31a863c9966de1602eb22fceeeec83b9282d5e63274e9ccd8379f75366fdc5e90c4edc82f1354b64b1484afee3d7c6ddf9c9c6af3f7ebc2e65392e37ca91bc6cfcaade66b3af7ffdfb9ffff9f1334d37d6ff1ad946faf31f3f7ef260a3dc387d9ad701f41b2e96bfb78c1494e6699934824b73b30157d1dde062ed66e2960c6ea5f9da85b77753bbff3e38578776eab99b49889fc2a5c517e3688b5fb8113f32b71a889f445b7c18bf95783c6d478776de33b75ad6cefb7017f31337f27f76e3fe1a46be741d2cde4ee26e85fea50dfbf8776e6ba7d07f966699996fa325cc6f085798af44db785bc1e2f144706ee65d7716b6051dc115c6ff88b6fbdfdd884fcded04fdddb8ad5d78ed76eaf1f260f6767a82919fecb9117f0e235f39705b3b5f47dbf80b18f3e7a11bebbdef46fd97d156cf81b993e07ecb4fbc7f19c15e0f76239f2b77dbf27f3677128c378cb6fe3a7066f909b911df82735b5f795dbbd3eca03ef406e7d85f4d37ee7f74a39ec7b0d7e32cdace6769ee26186f2bdafabf72e3bcd57086f83cdaeab7135c74f24e33781baee023733731cb2d8c7a501e1dfa933b18f3e5bedbe65b108cf3409b6e9ce7309faee6df29427f259cd97af1dc8df6133847fb66b4addf0decf5fc34e709f26dc0a8875cb871be5ab0afefb51bfbe11ef6f958be3adf6ea817b561afe7d86ded3c33e709e20f603fef13b360bd8b0aceec79472337c61f47db7e98c382e77d13ae1bc105bbf1be78593b6f793efc181deacd13388357b0d7bb6b8ef94ca36d3fe4b0a09eab68abffa11beb7305d7c87f6c2e52cb97f6a2edf96ff797799eb782dfe00af92edd689f4697a1bf3bb360ffd1399c61ffefc235f647662e52cca788b6f95eba319f146e23ff65b4cd2f81c5d6477a6e8b1789b6f63337c6efc3585f8ac678a84f89fa7178de4b4b12ab07557066966d7391e279b90ffbfa6cc2deffa31be76d65f6f1e4d38de74317f67a9c46db7a86f3205a6fb1f57a8db6f5da311729f29dc235de775f6eeccf27b38f4f68f7f1e5d48dfd3870231ee397a83725d1167f09d7387f43379e6fe1f952b44ac1f3ffcd6def2f9ac1b89f5b6e3c6fbea26dbc2337de572f6ebcef3273e5f56ebbf17b25ac47519582e7e902aef13ced98637c33dac6fb70e3fdb503b7f1febd75e379d688b6f509bf57caac14acef075ce3bcf6dcb6de7c6ef6fbe5dd8dfd3971e3fc5ec2a82f9fb931bf34daf23d81b15f38ec87b2aa6af477e3b6fce8c25ca7a8dfdc8de779789f57dabfcd8f5eccb17d106df7576ec43fc06dd4e3c48df31ad6a7aaebb4b0fd3f83bd7d37daea77ec463d13d8f3bb8f0eed127e3fd46d374517557017f6f509eb5beb5f99ad7db164d24bb8e0922bbdfeeebb0e3114ee1ff090473ce6094ff57ae4d96fd7583f737ee267bd6771b144ff25bff02b2fb5ed85dff89d3ff893bf78c59bbcc5dbbca3f1bbbca76359fffb1a77c0877ca4b13d3ee6133ee5333ee70bbee43e5ff135dff02ddff13ddbfa179ac5527b7ae006279c72935b9c719b3bfadde59c98d67f423a8f103fe2299554514d031a72974634a6094de991661adfa5393dd133dfd18243fd34af093f68f40bbdd292dee89d3ec2f5449ff4452bfd6cd296f6bf1dfb7fa41ddae516edd1be4652b80eb8afdf9b1a7da8bd1c697c0ff185c61fd3099dd259ecfb9c2ee832dc31d28cfa7445d7dffabfa15bedddfbbea37b7aa00625945253fb5f512bf4eff93fd2809b94a1ef3675a8ab356d522e2ca4d17d118d5ffcaf7f3ea54b29d67deb73bc12ad149fc94086ea918ebb92f1f7fc65a2ed53fa10bd536632d755e870264f3294e775feba0adff29785c6bfc8ab2ce54ddee5433ee54b57aca9df5a1fd994ad6ff9cf645bdb766457f6b4c77deecb811ccad17a85d7f5979e1c7fcb7f2c2772aaabf52a67728e1abdcb855c86e8be5cfd5ffde7bc23d79ae78abb227223b772a7b55985b5ed6b3663b9d7fc7bb1ff27be96076984b5d44bef3c4464a2b9f42495e6fafd8cfc6b69ebfebed5da7564bd962b5c7de9d14472490b2ea890a2c07e1ee879d9d3fd771dae6151d2bca8f453f350da24c540a387c58847f17ce94e2dc654d082b6712de2778f7ac5a498da19b6fef58e819ef7915676a4ffff77dffbeb18edffbf7ffef80b6440e337</data>
</image> </image>
</images> </images>
<connections> <connections>
@ -102,16 +102,18 @@
<sender>btnClose</sender> <sender>btnClose</sender>
<signal>clicked()</signal> <signal>clicked()</signal>
<receiver>QgsAttributeTableBase</receiver> <receiver>QgsAttributeTableBase</receiver>
<slot>reject()</slot> <slot>close()</slot>
</connection> </connection>
</connections> </connections>
<signals>
<signal>deleted()</signal>
</signals>
<functions> <functions>
<function access="protected" specifier="non <function access="protected" specifier="non
virtual">closeEvent(QCloseEvent* ev)</function> virtual">closeEvent(QCloseEvent* ev)</function>
</functions> </functions>
<signals>
<signal>deleted()</signal>
</signals>
<layoutdefaults spacing="6" margin="11"/> <layoutdefaults spacing="6" margin="11"/>
<includehints>
<includehint>qgsattributetable.h</includehint>
</includehints>
</UI> </UI>

View File

@ -5,7 +5,7 @@
copyright : (C) 2002 by Gary E.Sherman copyright : (C) 2002 by Gary E.Sherman
email : sherman at mrcc.com email : sherman at mrcc.com
***************************************************************************/ ***************************************************************************/
/* $Id$ */
/*************************************************************************** /***************************************************************************
* * * *
* This program is free software; you can redistribute it and/or modify * * This program is free software; you can redistribute it and/or modify *
@ -14,6 +14,7 @@
* (at your option) any later version. * * (at your option) any later version. *
* * * *
***************************************************************************/ ***************************************************************************/
/* $Id$ */
#include <iostream> #include <iostream>
#include <qapplication.h> #include <qapplication.h>
#include <qcursor.h> #include <qcursor.h>

View File

@ -14,6 +14,7 @@
* (at your option) any later version. * * (at your option) any later version. *
* * * *
***************************************************************************/ ***************************************************************************/
/* Id */
#include <libpq++.h> #include <libpq++.h>
#include <iostream> #include <iostream>
#include <qsettings.h> #include <qsettings.h>

View File

@ -15,6 +15,7 @@
* (at your option) any later version. * * (at your option) any later version. *
* * * *
***************************************************************************/ ***************************************************************************/
/* $Id$ */
#include <qframe.h> #include <qframe.h>
#include <qcolordialog.h> #include <qcolordialog.h>
#include <qpushbutton.h> #include <qpushbutton.h>
@ -43,6 +44,12 @@ QgsLayerProperties::QgsLayerProperties(QgsMapLayer * lyr):layer(lyr)
btnSetFillColor->setPaletteBackgroundColor(sym->fillColor()); btnSetFillColor->setPaletteBackgroundColor(sym->fillColor());
spinLineWidth->setValue(sym->lineWidth()); spinLineWidth->setValue(sym->lineWidth());
setCaption("Layer Properties - " + lyr->name()); setCaption("Layer Properties - " + lyr->name());
// if this is a line layer, hide the fill properties
if(lyr->featureType() == QGis::WKBMultiLineString || lyr->featureType() == QGis::WKBLineString){
lblFillColor->hide();
btnSetFillColor->hide();
}
} }
QgsLayerProperties::~QgsLayerProperties() QgsLayerProperties::~QgsLayerProperties()

View File

@ -15,7 +15,7 @@
* (at your option) any later version. * * (at your option) any later version. *
* * * *
***************************************************************************/ ***************************************************************************/
/* $Id$ */
#ifndef QGSLAYERPROPERTIES_H #ifndef QGSLAYERPROPERTIES_H
#define QGSLAYERPROPERTIES_H #define QGSLAYERPROPERTIES_H
class QgsMapLayer; class QgsMapLayer;

View File

@ -152,7 +152,7 @@
</widget> </widget>
<widget class="QLabel" row="1" column="0"> <widget class="QLabel" row="1" column="0">
<property name="name"> <property name="name">
<cstring>TextLabel1_2</cstring> <cstring>lblFillColor</cstring>
</property> </property>
<property name="font"> <property name="font">
<font> <font>

View File

@ -14,6 +14,7 @@
* (at your option) any later version. * * (at your option) any later version. *
* * * *
***************************************************************************/ ***************************************************************************/
/* Id */
#include <iostream> #include <iostream>
#include <cmath> #include <cmath>
#include <qstring.h> #include <qstring.h>

View File

@ -14,7 +14,7 @@
* (at your option) any later version. * * (at your option) any later version. *
* * * *
***************************************************************************/ ***************************************************************************/
/* Id */
#ifndef QGSMAPLAYER_H #ifndef QGSMAPLAYER_H
#define QGSMAPLAYER_H #define QGSMAPLAYER_H

View File

@ -16,6 +16,7 @@
* * * *
***************************************************************************/ ***************************************************************************/
/* $Id$ */ /* $Id$ */
#include <iostream> #include <iostream>
#include <strstream> #include <strstream>
#include <qapplication.h> #include <qapplication.h>
@ -146,12 +147,16 @@ void QgsShapeFileLayer::draw(QPainter * p, QgsRect * viewExtent, QgsCoordinateTr
//if feature is selected, change the color of the painter //if feature is selected, change the color of the painter
if((*selected)[fet->GetFID()]==true) if((*selected)[fet->GetFID()]==true)
{ {
p->setPen(selectionColor); // must change color of pen since it holds not only color
// but line width
pen.setColor(selectionColor);
p->setPen(pen);
brush->setColor(selectionColor); brush->setColor(selectionColor);
} }
else else
{ {
p->setPen(sym->color()); pen.setColor(sym->color());
p->setPen(pen);
brush->setColor(sym->fillColor()); brush->setColor(sym->fillColor());
} }

View File

@ -15,6 +15,7 @@
* * * *
***************************************************************************/ ***************************************************************************/
/* $Id$ */ /* $Id$ */
#ifndef QGSSHAPEFILELAYER_H #ifndef QGSSHAPEFILELAYER_H
#define QGSSHAPEFILELAYER_H #define QGSSHAPEFILELAYER_H
class QPainter; class QPainter;