/* * Initialize the GUI interface for the plugin */ void QgsGPSPlugin::initGui() { delete mQActionPointer; delete mCreateGPXAction; // add an action to the toolbar mQActionPointer = new QAction( QIcon(), tr( "&GPS Tools" ), this ); mQActionPointer->setObjectName( QStringLiteral( "mQActionPointer" ) ); mCreateGPXAction = new QAction( QIcon(), tr( "&Create new GPX layer" ), this ); mCreateGPXAction->setObjectName( QStringLiteral( "mCreateGPXAction" ) ); setCurrentTheme( QLatin1String( "" ) ); mQActionPointer->setWhatsThis( tr( "Creates a new GPX layer and displays it on the map canvas" ) ); mCreateGPXAction->setWhatsThis( tr( "Creates a new GPX layer and displays it on the map canvas" ) ); connect( mQActionPointer, SIGNAL( triggered() ), this, SLOT( run() ) ); connect( mCreateGPXAction, SIGNAL( triggered() ), this, SLOT( createGPX() ) ); mQGisInterface->layerToolBar()->insertAction( nullptr, mCreateGPXAction ); mQGisInterface->newLayerMenu()->addAction( mCreateGPXAction ); mQGisInterface->addPluginToVectorMenu( tr( "&GPS" ), mQActionPointer ); mQGisInterface->addVectorToolBarIcon( mQActionPointer ); // this is called when the icon theme is changed connect( mQGisInterface, SIGNAL( currentThemeChanged( QString ) ), this, SLOT( setCurrentTheme( QString ) ) ); }
void QgsInterpolationPlugin::initGui() { if ( mIface ) { mInterpolationAction = new QAction( QIcon(), tr( "&Interpolation" ), 0 ); setCurrentTheme( "" ); QObject::connect( mInterpolationAction, SIGNAL( triggered() ), this, SLOT( showInterpolationDialog() ) ); mIface->addToolBarIcon( mInterpolationAction ); mIface->addPluginToMenu( tr( "&Interpolation" ), mInterpolationAction ); // this is called when the icon theme is changed connect( mIface, SIGNAL( currentThemeChanged( QString ) ), this, SLOT( setCurrentTheme( QString ) ) ); } }
/* * Initialize the GUI interface for the plugin */ void QgsGeorefPlugin::initGui() { // Create the action for tool mActionRunGeoref = new QAction( QIcon(), tr( "&Georeferencer" ), this ); // Connect the action to the run connect( mActionRunGeoref, SIGNAL( triggered() ), this, SLOT( run() ) ); setCurrentTheme( "" ); // this is called when the icon theme is changed connect( mQGisIface, SIGNAL( currentThemeChanged( QString ) ), this, SLOT( setCurrentTheme( QString ) ) ); // Add to the toolbar & menu mQGisIface->addRasterToolBarIcon( mActionRunGeoref ); mQGisIface->addPluginToRasterMenu( tr( "&Georeferencer" ), mActionRunGeoref ); }
/* * Initialize the GUI interface for the plugin */ void QgsSpitPlugin::initGui() { // Create the action for tool spitAction = new QAction( QIcon(), tr( "&Import Shapefiles to PostgreSQL" ), this ); setCurrentTheme( "" ); spitAction->setWhatsThis( tr( "Import shapefiles into a PostGIS-enabled PostgreSQL database. " "The schema and field names can be customized on import" ) ); // Connect the action to the spit slot connect( spitAction, SIGNAL( triggered() ), this, SLOT( spit() ) ); // Add the icon to the toolbar and to the plugin menu qI->addToolBarIcon( spitAction ); qI->addPluginToDatabaseMenu( tr( "&Spit" ), spitAction ); // this is called when the icon theme is changed connect( qI, SIGNAL( currentThemeChanged( QString ) ), this, SLOT( setCurrentTheme( QString ) ) ); }
void WidgetThemeManager::loadThemeAndMakeCurrent(const std::string& filename) { osg::ref_ptr<WidgetTheme> theme = loadTheme(filename); if (theme.valid()) { cefix::WidgetFactory::instance()->setWidgetImplementationSet("themed"); setCurrentTheme(theme->getName()); } }
/* * Initialize the GUI interface for the plugin */ void QgsSpatialQueryPlugin::initGui() { // Create the action for tool mSpatialQueryAction = new QAction( QIcon(), tr( "&Spatial Query" ), this ); // Connect the action to the spatialQuery slot connect( mSpatialQueryAction, SIGNAL( activated() ), this, SLOT( run() ) ); setCurrentTheme( "" ); // this is called when the icon theme is changed connect( mIface, SIGNAL( currentThemeChanged( QString ) ), this, SLOT( setCurrentTheme( QString ) ) ); // Add the icon to the toolbar and to the plugin menu mIface->addToolBarIcon( mSpatialQueryAction ); mIface->addPluginToMenu( tr( "&Spatial Query" ), mSpatialQueryAction ); }
/* * Initialize the GUI interface for the plugin */ void QgsDelimitedTextPlugin::initGui() { // Create the action for tool myQActionPointer = new QAction( QIcon(), tr( "&Add Delimited Text Layer" ), this ); setCurrentTheme( "" ); myQActionPointer->setWhatsThis( tr( "Add a delimited text file as a map layer. " "The file must have a header row containing the field names. " "The file must either contain X and Y fields with coordinates in decimal units or a WKT field." ) ); // Connect the action to the run connect( myQActionPointer, SIGNAL( triggered() ), this, SLOT( run() ) ); // Add the icon to the toolbar qGisInterface->addToolBarIcon( myQActionPointer ); qGisInterface->insertAddLayerAction( myQActionPointer ); // this is called when the icon theme is changed connect( qGisInterface, SIGNAL( currentThemeChanged( QString ) ), this, SLOT( setCurrentTheme( QString ) ) ); }
/* * Initialize the GUI interface for the plugin */ void QgsScaleBarPlugin::initGui() { // Create the action for tool myQActionPointer = new QAction( QIcon(), tr( "&Scale Bar" ), this ); setCurrentTheme( "" ); myQActionPointer->setWhatsThis( tr( "Creates a scale bar that is displayed on the map canvas" ) ); // Connect the action to the run connect( myQActionPointer, SIGNAL( triggered() ), this, SLOT( run() ) ); //render the scale bar each time the map is rendered connect( qGisInterface->mapCanvas(), SIGNAL( renderComplete( QPainter * ) ), this, SLOT( renderScaleBar( QPainter * ) ) ); //this resets this plugin up if a project is loaded connect( qGisInterface->mainWindow(), SIGNAL( projectRead() ), this, SLOT( projectRead() ) ); // Add the icon to the toolbar qGisInterface->addToolBarIcon( myQActionPointer ); qGisInterface->addPluginToMenu( tr( "&Decorations" ), myQActionPointer ); // this is called when the icon theme is changed connect( qGisInterface, SIGNAL( currentThemeChanged( QString ) ), this, SLOT( setCurrentTheme( QString ) ) ); }
Emojis::Emojis(QObject *parent) : QObject(parent) { p = new EmojisPrivate; p->maxReplacementSize = 0; p->minReplacementSize = 0; p->autoEmojis = false; setCurrentTheme("twitter"); }
/* * Initialize the GUI interface for the plugin */ void QgsCopyrightLabelPlugin::initGui() { // Create the action for tool myQActionPointer = new QAction( QIcon(), tr( "&Copyright Label" ), this ); setCurrentTheme( "" ); myQActionPointer->setWhatsThis( tr( "Creates a copyright label that is displayed on the map canvas." ) ); // Connect the action to the run connect( myQActionPointer, SIGNAL( triggered() ), this, SLOT( run() ) ); // This calls the renderer everytime the cnavas has drawn itself connect( qGisInterface->mapCanvas(), SIGNAL( renderComplete( QPainter * ) ), this, SLOT( renderLabel( QPainter * ) ) ); //this resets this plugin up if a project is loaded connect( qGisInterface->mainWindow(), SIGNAL( projectRead() ), this, SLOT( projectRead() ) ); // this is called when the icon theme is changed connect( qGisInterface, SIGNAL( currentThemeChanged( QString ) ), this, SLOT( setCurrentTheme( QString ) ) ); // Add the icon to the toolbar qGisInterface->addToolBarIcon( myQActionPointer ); qGisInterface->addPluginToMenu( tr( "&Decorations" ), myQActionPointer ); //initialise default values in the gui projectRead(); }
/* * Initialize the GUI interface for the plugin - this is only called once when the plugin is * added to the plugin registry in the QGIS application. */ void dxf2shpConverter::initGui() { // Create the action for tool delete mQActionPointer; mQActionPointer = new QAction( QIcon(), "Dxf2Shp Converter", this ); mQActionPointer->setObjectName( "mQActionPointer" ); // Set the icon setCurrentTheme( "" ); // Set the what's this text mQActionPointer->setWhatsThis( tr( "Converts DXF files in Shapefile format" ) ); // Connect the action to the run connect( mQActionPointer, SIGNAL( triggered() ), this, SLOT( run() ) ); // Add the icon to the toolbar mQGisIface->addVectorToolBarIcon( mQActionPointer ); mQGisIface->addPluginToVectorMenu( tr( "&Dxf2Shp" ), mQActionPointer ); // this is called when the icon theme is changed connect( mQGisIface, SIGNAL( currentThemeChanged( QString ) ), this, SLOT( setCurrentTheme( QString ) ) ); }
/* * Initialize the GUI interface for the plugin */ void QgsCompassPlugin::initGui() { // Create the action for tool mActionRunCompass = new QAction( QIcon(), tr( "Show compass" ), this ); mActionRunCompass->setObjectName( "mActionRunCompass" ); connect( mActionRunCompass, SIGNAL( triggered() ), this, SLOT( run() ) ); mActionAboutCompass = new QAction( QIcon(), tr( "&About" ), this ); mActionAboutCompass->setObjectName( "mActionAboutCompass" ); connect( mActionAboutCompass, SIGNAL( triggered() ), this, SLOT( about() ) ); setCurrentTheme( "" ); // this is called when the icon theme is changed connect( mQGisIface, SIGNAL( currentThemeChanged( QString ) ), this, SLOT( setCurrentTheme( QString ) ) ); // Add the icon to the toolbar mQGisIface->pluginToolBar()->addAction( mActionRunCompass ); //mQGisIface->pluginToolBar()->addAction( mActionAboutCompass ); mQGisIface->addPluginToMenu( sName, mActionRunCompass ); mQGisIface->addPluginToMenu( sName, mActionAboutCompass ); // this is called when the icon theme is changed }
void ThemeManager::loadThemes() { Themes.clear(); QStringList themePaths = defaultThemePaths(); foreach (const QString &path, themePaths) { if (!isValidThemePath(path)) continue; QString name = QDir(path).dirName(); if (Themes.contains(name)) continue; Theme theme(path + '/', name); Themes.insert(name, theme); } setCurrentTheme(CurrentThemeName); emit themeListUpdated(); }
/* * Initialize the GUI interface for the plugin - this is only called once when the plugin is * added to the plugin registry in the QGIS application. */ void CoordinateCapture::initGui() { mCrs.createFromSrsId( GEOCRS_ID ); // initialize the CRS object connect( mQGisIface->mapCanvas()->mapRenderer(), SIGNAL( destinationSrsChanged() ), this, SLOT( setSourceCrs() ) ); connect( mQGisIface, SIGNAL( currentThemeChanged( QString ) ), this, SLOT( setCurrentTheme( QString ) ) ); setSourceCrs(); //set up the source CRS mTransform.setDestCRS( mCrs ); // set the CRS in the transform mUserCrsDisplayPrecision = ( mCrs.mapUnits() == QGis::Degrees ) ? 5 : 3; // precision depends on CRS units //create the dock widget mpDockWidget = new QDockWidget( tr( "Coordinate Capture" ), mQGisIface->mainWindow() ); mpDockWidget->setObjectName( "CoordinateCapture" ); mpDockWidget->setAllowedAreas( Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea ); mQGisIface->addDockWidget( Qt::LeftDockWidgetArea, mpDockWidget ); // Create the action for tool mQActionPointer = new QAction( QIcon(), tr( "Coordinate Capture" ), this ); mQActionPointer->setCheckable( true ); mQActionPointer->setChecked( mpDockWidget->isVisible() ); // Set the what's this text mQActionPointer->setWhatsThis( tr( "Click on the map to view coordinates and capture to clipboard." ) ); // Connect the action to the run connect( mQActionPointer, SIGNAL( triggered() ), this, SLOT( showOrHide() ) ); mQGisIface->addPluginToVectorMenu( tr( "&Coordinate Capture" ), mQActionPointer ); mQGisIface->addVectorToolBarIcon( mQActionPointer ); // create our map tool mpMapTool = new CoordinateCaptureMapTool( mQGisIface->mapCanvas() ); connect( mpMapTool, SIGNAL( mouseMoved( QgsPoint ) ), this, SLOT( mouseMoved( QgsPoint ) ) ); connect( mpMapTool, SIGNAL( mouseClicked( QgsPoint ) ), this, SLOT( mouseClicked( QgsPoint ) ) ); // create a little widget with x and y display to put into our dock widget QWidget * mypWidget = new QWidget(); QGridLayout *mypLayout = new QGridLayout( mypWidget ); mypLayout->setColumnMinimumWidth( 0, 36 ); mypWidget->setLayout( mypLayout ); mypUserCrsToolButton = new QToolButton( mypWidget ); mypUserCrsToolButton->setToolTip( tr( "Click to select the CRS to use for coordinate display" ) ); connect( mypUserCrsToolButton, SIGNAL( clicked() ), this, SLOT( setCRS() ) ); mypCRSLabel = new QLabel( mypWidget ); mypCRSLabel->setGeometry( mypUserCrsToolButton->geometry() ); mpUserCrsEdit = new QLineEdit( mypWidget ); mpUserCrsEdit->setReadOnly( true ); mpUserCrsEdit->setToolTip( tr( "Coordinate in your selected CRS (lat,lon or east,north)" ) ); mpCanvasEdit = new QLineEdit( mypWidget ); mpCanvasEdit->setReadOnly( true ); mpCanvasEdit->setToolTip( tr( "Coordinate in map canvas coordinate reference system (lat,lon or east,north)" ) ); QPushButton * mypCopyButton = new QPushButton( mypWidget ); mypCopyButton->setText( tr( "Copy to clipboard" ) ); connect( mypCopyButton, SIGNAL( clicked() ), this, SLOT( copy() ) ); mpTrackMouseButton = new QToolButton( mypWidget ); mpTrackMouseButton->setCheckable( true ); mpTrackMouseButton->setToolTip( tr( "Click to enable mouse tracking. Click the canvas to stop" ) ); mpTrackMouseButton->setChecked( false ); // Create the action for tool mpCaptureButton = new QPushButton( mypWidget ); mpCaptureButton->setText( tr( "Start capture" ) ); mpCaptureButton->setToolTip( tr( "Click to enable coordinate capture" ) ); mpCaptureButton->setIcon( QIcon( ":/coordinate_capture/coordinate_capture.png" ) ); mpCaptureButton->setWhatsThis( tr( "Click on the map to view coordinates and capture to clipboard." ) ); connect( mpCaptureButton, SIGNAL( clicked() ), this, SLOT( run() ) ); // Set the icons setCurrentTheme( "" ); mypLayout->addWidget( mypUserCrsToolButton, 0, 0 ); mypLayout->addWidget( mpUserCrsEdit, 0, 1 ); mypLayout->addWidget( mypCRSLabel, 1, 0 ); mypLayout->addWidget( mpCanvasEdit, 1, 1 ); mypLayout->addWidget( mpTrackMouseButton, 2, 0 ); mypLayout->addWidget( mypCopyButton, 2, 1 ); mypLayout->addWidget( mpCaptureButton, 3, 1 ); // now add our custom widget to the dock - ownership of the widget is passed to the dock mpDockWidget->setWidget( mypWidget ); connect( mpDockWidget, SIGNAL( visibilityChanged( bool ) ), mQActionPointer, SLOT( setChecked( bool ) ) ); }
/* * Initialize the GUI interface for the plugin */ void QgsGrassPlugin::initGui() { toolBarPointer = 0; mTools = 0; mNewMapset = 0; mRegion = 0; QSettings settings; QgsGrass::init(); mCanvas = qGisInterface->mapCanvas(); QWidget* qgis = qGisInterface->mainWindow(); connect( mCanvas->mapRenderer(), SIGNAL( destinationSrsChanged() ), this, SLOT( setTransform() ) ); // Connect project connect( qgis, SIGNAL( projectRead() ), this, SLOT( projectRead() ) ); connect( qgis, SIGNAL( newProject() ), this, SLOT( newProject() ) ); // Create region rubber band mRegionBand = new QgsRubberBand( mCanvas, QGis::Polygon ); mRegionBand->setZValue( 20 ); // Create the action for tool (the icons are set later by calling setCurrentTheme) mOpenMapsetAction = new QAction( QIcon(), tr( "Open mapset" ), this ); mNewMapsetAction = new QAction( QIcon(), tr( "New mapset" ), this ); mCloseMapsetAction = new QAction( QIcon(), tr( "Close mapset" ), this ); mAddVectorAction = new QAction( QIcon(), tr( "Add GRASS vector layer" ), this ); mAddRasterAction = new QAction( QIcon(), tr( "Add GRASS raster layer" ), this ); mOpenToolsAction = new QAction( QIcon(), tr( "Open GRASS tools" ), this ); mRegionAction = new QAction( QIcon(), tr( "Display Current Grass Region" ), this ); mRegionAction->setCheckable( true ); mEditRegionAction = new QAction( QIcon(), tr( "Edit Current Grass Region" ), this ); mEditAction = new QAction( QIcon(), tr( "Edit Grass Vector layer" ), this ); mNewVectorAction = new QAction( QIcon(), tr( "Create new Grass Vector" ), this ); mAddVectorAction->setWhatsThis( tr( "Adds a GRASS vector layer to the map canvas" ) ); mAddRasterAction->setWhatsThis( tr( "Adds a GRASS raster layer to the map canvas" ) ); mOpenToolsAction->setWhatsThis( tr( "Open GRASS tools" ) ); mRegionAction->setWhatsThis( tr( "Displays the current GRASS region as a rectangle on the map canvas" ) ); mEditRegionAction->setWhatsThis( tr( "Edit the current GRASS region" ) ); mEditAction->setWhatsThis( tr( "Edit the currently selected GRASS vector layer." ) ); // Connect the action connect( mAddVectorAction, SIGNAL( triggered() ), this, SLOT( addVector() ) ); connect( mAddRasterAction, SIGNAL( triggered() ), this, SLOT( addRaster() ) ); connect( mOpenToolsAction, SIGNAL( triggered() ), this, SLOT( openTools() ) ); connect( mEditAction, SIGNAL( triggered() ), this, SLOT( edit() ) ); connect( mNewVectorAction, SIGNAL( triggered() ), this, SLOT( newVector() ) ); connect( mRegionAction, SIGNAL( toggled( bool ) ), this, SLOT( switchRegion( bool ) ) ); connect( mEditRegionAction, SIGNAL( triggered() ), this, SLOT( changeRegion() ) ); connect( mOpenMapsetAction, SIGNAL( triggered() ), this, SLOT( openMapset() ) ); connect( mNewMapsetAction, SIGNAL( triggered() ), this, SLOT( newMapset() ) ); connect( mCloseMapsetAction, SIGNAL( triggered() ), this, SLOT( closeMapset() ) ); // Add actions to a GRASS plugin menu qGisInterface->addPluginToMenu( tr( "&GRASS" ), mOpenMapsetAction ); qGisInterface->addPluginToMenu( tr( "&GRASS" ), mNewMapsetAction ); qGisInterface->addPluginToMenu( tr( "&GRASS" ), mCloseMapsetAction ); qGisInterface->addPluginToMenu( tr( "&GRASS" ), mAddVectorAction ); qGisInterface->addPluginToMenu( tr( "&GRASS" ), mAddRasterAction ); qGisInterface->addPluginToMenu( tr( "&GRASS" ), mNewVectorAction ); qGisInterface->addPluginToMenu( tr( "&GRASS" ), mEditAction ); qGisInterface->addPluginToMenu( tr( "&GRASS" ), mOpenToolsAction ); qGisInterface->addPluginToMenu( tr( "&GRASS" ), mRegionAction ); qGisInterface->addPluginToMenu( tr( "&GRASS" ), mEditRegionAction ); // Add the toolbar to the main window toolBarPointer = qGisInterface->addToolBar( tr( "GRASS" ) ); toolBarPointer->setObjectName( "GRASS" ); // Add to the toolbar toolBarPointer->addAction( mOpenMapsetAction ); toolBarPointer->addAction( mNewMapsetAction ); toolBarPointer->addAction( mCloseMapsetAction ); toolBarPointer->addSeparator(); toolBarPointer->addAction( mAddVectorAction ); toolBarPointer->addAction( mAddRasterAction ); toolBarPointer->addAction( mNewVectorAction ); toolBarPointer->addAction( mEditAction ); toolBarPointer->addAction( mOpenToolsAction ); toolBarPointer->addAction( mRegionAction ); toolBarPointer->addAction( mEditRegionAction ); // Set icons to current theme setCurrentTheme( "" ); // Connect theme change signal connect( qGisInterface, SIGNAL( currentThemeChanged( QString ) ), this, SLOT( setCurrentTheme( QString ) ) ); // Connect display region connect( mCanvas, SIGNAL( renderComplete( QPainter * ) ), this, SLOT( postRender( QPainter * ) ) ); setEditAction(); connect( qGisInterface, SIGNAL( currentLayerChanged( QgsMapLayer * ) ), this, SLOT( setEditAction() ) ); // Init Region symbology mRegionPen.setColor( QColor( settings.value( "/GRASS/region/color", "#ff0000" ).toString() ) ); mRegionPen.setWidth( settings.value( "/GRASS/region/width", 0 ).toInt() ); mRegionBand->setColor( mRegionPen.color() ); mRegionBand->setWidth( mRegionPen.width() ); mapsetChanged(); }
/* * Initialize the GUI interface for the plugin */ void QgsGrassPlugin::initGui() { mToolBarPointer = 0; mTools = 0; mNewMapset = 0; mCanvas = qGisInterface->mapCanvas(); // Create region rubber band mRegionBand = new QgsRubberBand( mCanvas, QGis::Polygon ); mRegionBand->setZValue( 20 ); // Create the action for tool (the icons are set later by calling setCurrentTheme) mOpenMapsetAction = new QAction( QIcon(), tr( "Open Mapset" ), this ); mOpenMapsetAction->setObjectName( "mOpenMapsetAction" ); mNewMapsetAction = new QAction( QIcon(), tr( "New Mapset" ), this ); mNewMapsetAction->setObjectName( "mNewMapsetAction" ); mCloseMapsetAction = new QAction( QIcon(), tr( "Close Mapset" ), this ); mCloseMapsetAction->setObjectName( "mCloseMapsetAction" ); mOpenToolsAction = new QAction( QIcon(), tr( "Open GRASS Tools" ), this ); mOpenToolsAction->setObjectName( "mAddPolygonActionmOpenToolsAction" ); mOpenToolsAction->setWhatsThis( tr( "Open GRASS tools" ) ); mRegionAction = new QAction( QIcon(), tr( "Display Current Grass Region" ), this ); mRegionAction->setObjectName( "mRegionAction" ); mRegionAction->setWhatsThis( tr( "Displays the current GRASS region as a rectangle on the map canvas" ) ); mRegionAction->setCheckable( true ); mOptionsAction = new QAction( QIcon(), tr( "GRASS Options" ), this ); mOptionsAction->setObjectName( "mOptionsAction" ); // Connect the actions connect( mOpenMapsetAction, SIGNAL( triggered() ), this, SLOT( openMapset() ) ); connect( mNewMapsetAction, SIGNAL( triggered() ), this, SLOT( newMapset() ) ); connect( mCloseMapsetAction, SIGNAL( triggered() ), SLOT( closeMapset() ) ); connect( mOpenToolsAction, SIGNAL( triggered() ), this, SLOT( openTools() ) ); connect( mRegionAction, SIGNAL( toggled( bool ) ), this, SLOT( switchRegion( bool ) ) ); connect( mOptionsAction, SIGNAL( triggered() ), QgsGrass::instance(), SLOT( openOptions() ) ); // Add actions to a GRASS plugin menu QString menu = tr( "&GRASS" ); qGisInterface->addPluginToMenu( menu, mOpenMapsetAction ); qGisInterface->addPluginToMenu( menu, mNewMapsetAction ); qGisInterface->addPluginToMenu( menu, mCloseMapsetAction ); qGisInterface->addPluginToMenu( menu, mOpenToolsAction ); qGisInterface->addPluginToMenu( menu, mRegionAction ); qGisInterface->addPluginToMenu( menu, mOptionsAction ); // Add the toolbar to the main window mToolBarPointer = qGisInterface->addToolBar( tr( "GRASS" ) ); mToolBarPointer->setObjectName( "GRASS" ); // Add to the toolbar #if 0 mToolBarPointer->addAction( mOpenMapsetAction ); mToolBarPointer->addAction( mNewMapsetAction ); mToolBarPointer->addAction( mCloseMapsetAction ); mToolBarPointer->addSeparator(); #endif mToolBarPointer->addAction( mOpenToolsAction ); mToolBarPointer->addAction( mRegionAction ); // Editing mAddPointAction = new QAction( QgsApplication::getThemeIcon( "/mActionCapturePoint.png" ), tr( "Add Point" ), this ); mAddPointAction->setObjectName( "mAddPointAction" ); mAddPointAction->setCheckable( true ); mAddLineAction = new QAction( QgsApplication::getThemeIcon( "/mActionCaptureLine.png" ), tr( "Add Line" ), this ); mAddLineAction->setObjectName( "mAddLineAction" ); mAddLineAction->setCheckable( true ); mAddBoundaryAction = new QAction( getThemeIcon( "mActionCaptureBoundary.png" ), tr( "Add Boundary" ), this ); mAddBoundaryAction->setObjectName( "mAddBoundaryAction" ); mAddBoundaryAction->setCheckable( true ); mAddCentroidAction = new QAction( getThemeIcon( "mActionCaptureCentroid.png" ), tr( "Add Centroid" ), this ); mAddCentroidAction->setObjectName( "mAddCentroidAction" ); mAddCentroidAction->setCheckable( true ); mAddAreaAction = new QAction( QgsApplication::getThemeIcon( "/mActionCapturePolygon.png" ), tr( "Add Area" ), this ); mAddAreaAction->setObjectName( "mAddAreaAction" ); mAddAreaAction->setCheckable( true ); connect( mAddPointAction, SIGNAL( triggered() ), SLOT( addFeature() ) ); connect( mAddLineAction, SIGNAL( triggered() ), SLOT( addFeature() ) ); connect( mAddBoundaryAction, SIGNAL( triggered() ), SLOT( addFeature() ) ); connect( mAddCentroidAction, SIGNAL( triggered() ), SLOT( addFeature() ) ); connect( mAddAreaAction, SIGNAL( triggered() ), SLOT( addFeature() ) ); mAddFeatureAction = qGisInterface->actionAddFeature(); mAddFeatureAction->actionGroup()->addAction( mAddPointAction ); mAddFeatureAction->actionGroup()->addAction( mAddLineAction ); mAddFeatureAction->actionGroup()->addAction( mAddBoundaryAction ); mAddFeatureAction->actionGroup()->addAction( mAddCentroidAction ); mAddFeatureAction->actionGroup()->addAction( mAddAreaAction ); qGisInterface->digitizeToolBar()->insertAction( mAddFeatureAction, mAddPointAction ); qGisInterface->digitizeToolBar()->insertAction( mAddFeatureAction, mAddLineAction ); qGisInterface->digitizeToolBar()->insertAction( mAddFeatureAction, mAddBoundaryAction ); qGisInterface->digitizeToolBar()->insertAction( mAddFeatureAction, mAddCentroidAction ); qGisInterface->digitizeToolBar()->insertAction( mAddFeatureAction, mAddAreaAction ); resetEditActions(); mAddPoint = new QgsGrassAddFeature( qGisInterface->mapCanvas(), QgsMapToolAdvancedDigitizing::CapturePoint ); mAddPoint->setAction( mAddPointAction ); mAddLine = new QgsGrassAddFeature( qGisInterface->mapCanvas(), QgsMapToolAdvancedDigitizing::CaptureLine ); mAddLine->setAction( mAddLineAction ); mAddBoundary = new QgsGrassAddFeature( qGisInterface->mapCanvas(), QgsMapToolAdvancedDigitizing::CaptureLine ); mAddBoundary->setAction( mAddBoundaryAction ); mAddCentroid = new QgsGrassAddFeature( qGisInterface->mapCanvas(), QgsMapToolAdvancedDigitizing::CapturePoint ); mAddCentroid->setAction( mAddCentroidAction ); mAddArea = new QgsGrassAddFeature( qGisInterface->mapCanvas(), QgsMapToolAdvancedDigitizing::CapturePolygon ); mAddArea->setAction( mAddAreaAction ); // Connect project QWidget* qgis = qGisInterface->mainWindow(); connect( qgis, SIGNAL( projectRead() ), this, SLOT( projectRead() ) ); connect( qgis, SIGNAL( newProject() ), this, SLOT( newProject() ) ); // Set icons to current theme setCurrentTheme( "" ); // Connect theme change signal connect( qGisInterface, SIGNAL( currentThemeChanged( QString ) ), this, SLOT( setCurrentTheme( QString ) ) ); connect( mCanvas, SIGNAL( destinationCrsChanged() ), this, SLOT( setTransform() ) ); // Connect display region connect( mCanvas, SIGNAL( renderComplete( QPainter * ) ), this, SLOT( postRender( QPainter * ) ) ); connect( QgsGrass::instance(), SIGNAL( gisbaseChanged() ), SLOT( onGisbaseChanged() ) ); connect( QgsGrass::instance(), SIGNAL( mapsetChanged() ), SLOT( mapsetChanged() ) ); connect( QgsGrass::instance(), SIGNAL( regionChanged() ), SLOT( displayRegion() ) ); connect( QgsGrass::instance(), SIGNAL( regionPenChanged() ), SLOT( displayRegion() ) ); connect( QgsGrass::instance(), SIGNAL( newLayer( QString, QString ) ), SLOT( onNewLayer( QString, QString ) ) ); // Connect start/stop editing connect( QgsMapLayerRegistry::instance(), SIGNAL( layerWasAdded( QgsMapLayer* ) ), this, SLOT( onLayerWasAdded( QgsMapLayer* ) ) ); connect( qGisInterface->layerTreeView(), SIGNAL( currentLayerChanged( QgsMapLayer* ) ), SLOT( onCurrentLayerChanged( QgsMapLayer* ) ) ); // open tools when plugin is loaded so that main app restores tools dock widget state mTools = new QgsGrassTools( qGisInterface, qGisInterface->mainWindow() ); qGisInterface->addDockWidget( Qt::RightDockWidgetArea, mTools ); onGisbaseChanged(); mapsetChanged(); }
/* * Initialize the GUI interface for the plugin */ void QgsGrassPlugin::initGui() { if ( !QgsGrass::init() ) { qGisInterface->messageBar()->pushMessage( tr( "GRASS error" ), QgsGrass::errorMessage(), QgsMessageBar::WARNING ); // TODO: add a widget with warning return; } mToolBarPointer = 0; mTools = 0; mNewMapset = 0; mCanvas = qGisInterface->mapCanvas(); QWidget* qgis = qGisInterface->mainWindow(); connect( mCanvas, SIGNAL( destinationCrsChanged() ), this, SLOT( setTransform() ) ); // Connect project connect( qgis, SIGNAL( projectRead() ), this, SLOT( projectRead() ) ); connect( qgis, SIGNAL( newProject() ), this, SLOT( newProject() ) ); // Create region rubber band mRegionBand = new QgsRubberBand( mCanvas, QGis::Polygon ); mRegionBand->setZValue( 20 ); // Create the action for tool (the icons are set later by calling setCurrentTheme) mOpenMapsetAction = new QAction( QIcon(), tr( "Open Mapset" ), this ); mOpenMapsetAction->setObjectName( "mOpenMapsetAction" ); mNewMapsetAction = new QAction( QIcon(), tr( "New Mapset" ), this ); mNewMapsetAction->setObjectName( "mNewMapsetAction" ); mCloseMapsetAction = new QAction( QIcon(), tr( "Close Mapset" ), this ); mCloseMapsetAction->setObjectName( "mCloseMapsetAction" ); mOpenToolsAction = new QAction( QIcon(), tr( "Open GRASS Tools" ), this ); mOpenToolsAction->setObjectName( "mOpenToolsAction" ); mOpenToolsAction->setWhatsThis( tr( "Open GRASS tools" ) ); mRegionAction = new QAction( QIcon(), tr( "Display Current Grass Region" ), this ); mRegionAction->setObjectName( "mRegionAction" ); mRegionAction->setWhatsThis( tr( "Displays the current GRASS region as a rectangle on the map canvas" ) ); mRegionAction->setCheckable( true ); mEditAction = new QAction( QIcon(), tr( "Edit Grass Vector layer" ), this ); mEditAction->setObjectName( "mEditAction" ); mEditAction->setWhatsThis( tr( "Edit the currently selected GRASS vector layer." ) ); mNewVectorAction = new QAction( QIcon(), tr( "Create New Grass Vector" ), this ); mNewVectorAction->setObjectName( "mNewVectorAction" ); // Connect the action connect( mOpenToolsAction, SIGNAL( triggered() ), this, SLOT( openTools() ) ); connect( mEditAction, SIGNAL( triggered() ), this, SLOT( edit() ) ); connect( mNewVectorAction, SIGNAL( triggered() ), this, SLOT( newVector() ) ); connect( mRegionAction, SIGNAL( toggled( bool ) ), this, SLOT( switchRegion( bool ) ) ); connect( mOpenMapsetAction, SIGNAL( triggered() ), this, SLOT( openMapset() ) ); connect( mNewMapsetAction, SIGNAL( triggered() ), this, SLOT( newMapset() ) ); connect( mCloseMapsetAction, SIGNAL( triggered() ), SLOT( closeMapset() ) ); // Add actions to a GRASS plugin menu qGisInterface->addPluginToMenu( tr( "&GRASS" ), mOpenMapsetAction ); qGisInterface->addPluginToMenu( tr( "&GRASS" ), mNewMapsetAction ); qGisInterface->addPluginToMenu( tr( "&GRASS" ), mCloseMapsetAction ); qGisInterface->addPluginToMenu( tr( "&GRASS" ), mNewVectorAction ); qGisInterface->addPluginToMenu( tr( "&GRASS" ), mEditAction ); qGisInterface->addPluginToMenu( tr( "&GRASS" ), mOpenToolsAction ); qGisInterface->addPluginToMenu( tr( "&GRASS" ), mRegionAction ); // Add the toolbar to the main window mToolBarPointer = qGisInterface->addToolBar( tr( "GRASS" ) ); mToolBarPointer->setObjectName( "GRASS" ); // Add to the toolbar mToolBarPointer->addAction( mOpenMapsetAction ); mToolBarPointer->addAction( mNewMapsetAction ); mToolBarPointer->addAction( mCloseMapsetAction ); mToolBarPointer->addSeparator(); mToolBarPointer->addAction( mNewVectorAction ); mToolBarPointer->addAction( mEditAction ); mToolBarPointer->addAction( mOpenToolsAction ); mToolBarPointer->addAction( mRegionAction ); // Set icons to current theme setCurrentTheme( "" ); // Connect theme change signal connect( qGisInterface, SIGNAL( currentThemeChanged( QString ) ), this, SLOT( setCurrentTheme( QString ) ) ); // Connect display region connect( mCanvas, SIGNAL( renderComplete( QPainter * ) ), this, SLOT( postRender( QPainter * ) ) ); setEditAction(); connect( qGisInterface, SIGNAL( currentLayerChanged( QgsMapLayer * ) ), this, SLOT( setEditAction() ) ); connect( QgsGrass::instance(), SIGNAL( mapsetChanged() ), SLOT( mapsetChanged() ) ); connect( QgsGrass::instance(), SIGNAL( regionChanged() ), SLOT( displayRegion() ) ); connect( QgsGrass::instance(), SIGNAL( regionPenChanged() ), SLOT( displayRegion() ) ); mapsetChanged(); // open tools when plugin is loaded so that main app restores tools dock widget state mTools = new QgsGrassTools( qGisInterface, qGisInterface->mainWindow() ); qGisInterface->addDockWidget( Qt::RightDockWidgetArea, mTools ); }