16
16
***************************************************************************/
18
#include "qgisinterface.h"
19
#include "qgsapplication.h"
18
20
#include "qgsproviderregistry.h"
19
21
#include "qgswfssourceselect.h"
20
22
#include "qgssinglesymbolrenderer.h"
21
23
#include "qgsvectorlayer.h"
22
24
#include "qgswfsplugin.h"
23
#include "qgswfsprovider.h"
25
#include "mIconAddWfsLayer.xpm"
28
#define QGISEXTERN extern "C" __declspec( dllexport )
30
#define QGISEXTERN extern "C"
33
static const QString name_ = QObject::tr("WFS plugin");
34
static const QString description_ = QObject::tr("Adds WFS layers to the QGIS canvas");
35
static const QString version_ = QObject::tr("Version 0.0001");
37
QgsWFSPlugin::QgsWFSPlugin(QgisApp* app, QgisIface* iface): QgisPlugin(name_, description_, version_, QgisPlugin::MAPLAYER), mApp(app), mIface(iface), mWfsDialogAction(0)
31
static const QString name_ = QObject::tr( "WFS plugin" );
32
static const QString description_ = QObject::tr( "Adds WFS layers to the QGIS canvas" );
33
static const QString version_ = QObject::tr( "Version 0.1" );
35
QgsWFSPlugin::QgsWFSPlugin( QgisInterface* iface )
36
: QgisPlugin( name_, description_, version_, QgisPlugin::MAPLAYER ),
37
mIface( iface ), mWfsDialogAction( 0 )
47
47
void QgsWFSPlugin::initGui()
51
mWfsDialogAction = new QAction(QIcon(mIconAddWfsLayer), tr("&Add WFS layer"), 0);
52
QObject::connect(mWfsDialogAction, SIGNAL(activated()), this, SLOT(showSourceDialog()));
53
mIface->addToolBarIcon(mWfsDialogAction);
54
mIface->addPluginMenu(tr("&Add WFS layer"), mWfsDialogAction);
51
mWfsDialogAction = new QAction( QIcon(), tr( "&Add WFS layer" ), 0 );
52
setCurrentTheme( "" );
53
QObject::connect( mWfsDialogAction, SIGNAL( triggered() ), this, SLOT( showSourceDialog() ) );
54
mIface->layerToolBar()->addAction( mWfsDialogAction );
55
mIface->addPluginToMenu( tr( "&Add WFS layer" ), mWfsDialogAction );
56
// this is called when the icon theme is changed
57
connect( mIface, SIGNAL( currentThemeChanged( QString ) ), this, SLOT( setCurrentTheme( QString ) ) );
58
61
void QgsWFSPlugin::unload()
60
mIface->removeToolBarIcon(mWfsDialogAction);
61
mIface->removePluginMenu(tr("&Add WFS layer"), mWfsDialogAction);
63
mIface->removeToolBarIcon( mWfsDialogAction );
64
mIface->removePluginMenu( tr( "&Add WFS layer" ), mWfsDialogAction );
62
65
delete mWfsDialogAction;
63
66
mWfsDialogAction = 0;
66
69
void QgsWFSPlugin::showSourceDialog()
68
QgsWFSSourceSelect serverDialog(0, mIface);
71
QgsWFSSourceSelect serverDialog( 0, mIface );
69
72
serverDialog.exec();
72
QGISEXTERN QgisPlugin * classFactory(QgisApp * theQGisAppPointer, QgisIface * theQgisInterfacePointer)
74
return new QgsWFSPlugin(theQGisAppPointer, theQgisInterfacePointer);
75
//! Set icons to the current theme
76
void QgsWFSPlugin::setCurrentTheme( QString theThemeName )
78
QString myCurThemePath = QgsApplication::activeThemePath() + "/plugins/wfs.png";
79
QString myDefThemePath = QgsApplication::defaultThemePath() + "/plugins/wfs.png";
80
QString myQrcPath = ":/wfs.png";
81
if ( QFile::exists( myCurThemePath ) )
83
mWfsDialogAction->setIcon( QIcon( myCurThemePath ) );
85
else if ( QFile::exists( myDefThemePath ) )
87
mWfsDialogAction->setIcon( QIcon( myDefThemePath ) );
89
else if ( QFile::exists( myQrcPath ) )
91
mWfsDialogAction->setIcon( QIcon( myQrcPath ) );
95
mWfsDialogAction->setIcon( QIcon() );
99
QGISEXTERN QgisPlugin * classFactory( QgisInterface * theQgisInterfacePointer )
101
return new QgsWFSPlugin( theQgisInterfacePointer );
77
104
QGISEXTERN QString name()