/* * 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 RoadGraphPlugin::initGui() { // create shorttest path dock mQShortestPathDock = new RgShortestPathWidget( mQGisIface->mainWindow(), this ); mQGisIface->addDockWidget( Qt::LeftDockWidgetArea, mQShortestPathDock ); // Create the action for tool mQSettingsAction = new QAction( QIcon( ":/roadgraph/road.png" ), tr( "Settings" ), this ); mQSettingsAction->setObjectName( "mQSettingsAction" ); // Set the what's this text mQSettingsAction->setWhatsThis( tr( "Road graph plugin settings" ) ); setGuiElementsToDefault(); // Connect the action to slots connect( mQSettingsAction, SIGNAL( triggered() ), this, SLOT( property() ) ); mQGisIface->addPluginToVectorMenu( tr( "Road graph" ), mQSettingsAction ); connect( mQGisIface, SIGNAL( projectRead() ), this, SLOT( projectRead() ) ); connect( mQGisIface, SIGNAL( newProjectCreated() ), this, SLOT( newProject() ) ); connect( mQGisIface, SIGNAL( projectRead() ), mQShortestPathDock, SLOT( clear() ) ); connect( mQGisIface, SIGNAL( newProjectCreated() ), mQShortestPathDock, SLOT( clear() ) ); // load settings projectRead(); } // RoadGraphPlugin::initGui()
rulesDialog::rulesDialog( const QMap<QString, TopologyRule>& testMap, QgisInterface *theQgisIface, QWidget *parent ) : QDialog( parent ), Ui::rulesDialog() { setupUi( this ); mQgisIface = theQgisIface; //setHorizontalHeaderItems(); mRulesTable->hideColumn( 4 ); mRulesTable->hideColumn( 5 ); mTestConfMap = testMap; mRulesTable->setSelectionBehavior( QAbstractItemView::SelectRows ); mRuleBox->addItems( mTestConfMap.keys() ); mAddTestButton->setIcon( QIcon( QgsApplication::iconPath( "symbologyAdd.svg" ) ) ); mDeleteTestButton->setIcon( QIcon( QgsApplication::iconPath( "symbologyRemove.svg" ) ) ); connect( mAddTestButton, SIGNAL( clicked() ), this, SLOT( addRule() ) ); connect( mAddTestButton, SIGNAL( clicked() ), mRulesTable, SLOT( resizeColumnsToContents() ) ); // attempt to add new test when Ok clicked //connect( buttonBox, SIGNAL( accepted() ), this, SLOT( addTest() ) ); connect( mDeleteTestButton, SIGNAL( clicked() ), this, SLOT( deleteTest() ) ); connect( mLayer1Box, SIGNAL( currentIndexChanged( const QString& ) ), this, SLOT( updateRuleItems( const QString& ) ) ); connect( mRuleBox, SIGNAL( currentIndexChanged( const QString& ) ), this, SLOT( showControls( const QString& ) ) ); mRuleBox->setCurrentIndex( 0 ); //this resets this plugin up if a project is loaded connect( mQgisIface, SIGNAL( projectRead() ), this, SLOT( projectRead() ) ); //reset plugin if new project is activated projectRead(); }
QgisAppInterface::QgisAppInterface( QgisApp * _qgis ) : qgis( _qgis ) , mTimer( nullptr ) , legendIface( _qgis->layerTreeView() ) , pluginManagerIface( _qgis->pluginManager() ) { // connect signals connect( qgis->layerTreeView(), SIGNAL( currentLayerChanged( QgsMapLayer * ) ), this, SIGNAL( currentLayerChanged( QgsMapLayer * ) ) ); connect( qgis, SIGNAL( currentThemeChanged( QString ) ), this, SIGNAL( currentThemeChanged( QString ) ) ); connect( qgis, SIGNAL( composerAdded( QgsComposerView* ) ), this, SIGNAL( composerAdded( QgsComposerView* ) ) ); connect( qgis, SIGNAL( composerWillBeRemoved( QgsComposerView* ) ), this, SIGNAL( composerWillBeRemoved( QgsComposerView* ) ) ); connect( qgis, SIGNAL( composerRemoved( QgsComposerView* ) ), this, SIGNAL( composerRemoved( QgsComposerView* ) ) ); connect( qgis, SIGNAL( initializationCompleted() ), this, SIGNAL( initializationCompleted() ) ); connect( qgis, SIGNAL( newProject() ), this, SIGNAL( newProjectCreated() ) ); connect( qgis, SIGNAL( projectRead() ), this, SIGNAL( projectRead() ) ); connect( qgis, SIGNAL( layerSavedAs( QgsMapLayer*, QString ) ), this, SIGNAL( layerSavedAs( QgsMapLayer*, QString ) ) ); }
// Unload the plugin by cleaning up the GUI void RoadGraphPlugin::unload() { // remove the GUI mQGisIface->removePluginVectorMenu( tr( "Road graph" ), mQSettingsAction ); // disconnect disconnect( mQGisIface->mainWindow(), SIGNAL( projectRead() ), this, SLOT( projectRead() ) ); disconnect( mQGisIface->mainWindow(), SIGNAL( newProject() ), this, SLOT( newProject() ) ); delete mQSettingsAction; delete mQShortestPathDock; } // RoadGraphPlugin::unload()
/* * 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 ) ) ); }
// Unload the plugin by cleaning up the GUI void RoadGraphPlugin::unload() { // remove the GUI mQGisIface->removePluginMenu( tr( "Road graph" ), mQSettingsAction ); mQGisIface->removePluginMenu( tr( "Road graph" ), mQShowDirectionAction ); mQGisIface->removePluginMenu( tr( "Road graph" ), mInfoAction ); mQGisIface->removeToolBarIcon( mQShowDirectionAction ); // disconnect disconnect( mQGisIface->mapCanvas(), SIGNAL( renderComplete( QPainter* ) ), this, SLOT( render( QPainter* ) ) ); disconnect( mQGisIface->mainWindow(), SIGNAL( projectRead() ), this, SLOT( projectRead() ) ); disconnect( mQGisIface->mainWindow(), SIGNAL( newProject() ), this, SLOT( newProject() ) ); delete mQSettingsAction; delete mQShowDirectionAction; delete mQShortestPathDock; } // RoadGraphPlugin::unload()
QgsDecorationNorthArrow::QgsDecorationNorthArrow( QObject *parent ) : QgsDecorationItem( parent ) { mPlacement = BottomLeft; mMarginUnit = QgsUnitTypes::RenderMillimeters; setName( "North Arrow" ); projectRead(); }
QgsDecorationCopyright::QgsDecorationCopyright( QObject *parent ) : QgsDecorationItem( parent ) { mPlacement = BottomRight; mMarginUnit = QgsUnitTypes::RenderMillimeters; setName( "Copyright Label" ); // initialize default values in the gui projectRead(); }
QgsDecorationCopyright::QgsDecorationCopyright( QObject* parent ) : QgsDecorationItem( parent ) { mPlacementLabels << tr( "Bottom Left" ) << tr( "Top Left" ) << tr( "Top Right" ) << tr( "Bottom Right" ); setName( "Copyright Label" ); // initialise default values in the gui projectRead(); }
// Unload the plugin by cleaning up the GUI void QgsGrassPlugin::unload() { // Close mapset QString err = QgsGrass::closeMapset(); // remove the GUI qGisInterface->removePluginMenu( tr( "&GRASS" ), mOpenMapsetAction ); qGisInterface->removePluginMenu( tr( "&GRASS" ), mNewMapsetAction ); qGisInterface->removePluginMenu( tr( "&GRASS" ), mCloseMapsetAction ); qGisInterface->removePluginMenu( tr( "&GRASS" ), mAddVectorAction ); qGisInterface->removePluginMenu( tr( "&GRASS" ), mAddRasterAction ); qGisInterface->removePluginMenu( tr( "&GRASS" ), mOpenToolsAction ); qGisInterface->removePluginMenu( tr( "&GRASS" ), mRegionAction ); qGisInterface->removePluginMenu( tr( "&GRASS" ), mEditRegionAction ); qGisInterface->removePluginMenu( tr( "&GRASS" ), mEditAction ); qGisInterface->removePluginMenu( tr( "&GRASS" ), mNewVectorAction ); delete mOpenMapsetAction; delete mNewMapsetAction; delete mCloseMapsetAction; delete mAddVectorAction; delete mAddRasterAction; delete mOpenToolsAction; delete mRegionAction; delete mEditRegionAction; delete mEditAction; delete mNewVectorAction; if ( toolBarPointer ) { delete toolBarPointer; toolBarPointer = 0; } // disconnect slots of QgsGrassPlugin so they're not fired also after unload disconnect( mCanvas, SIGNAL( renderComplete( QPainter * ) ), this, SLOT( postRender( QPainter * ) ) ); disconnect( qGisInterface, SIGNAL( currentLayerChanged( QgsMapLayer * ) ), this, SLOT( setEditAction() ) ); QWidget* qgis = qGisInterface->mainWindow(); disconnect( qgis, SIGNAL( projectRead() ), this, SLOT( projectRead() ) ); disconnect( qgis, SIGNAL( newProject() ), this, SLOT( newProject() ) ); }
/* * Initialize the GUI interface for the plugin */ void QgsNorthArrowPlugin::initGui() { // Create the action for tool myQActionPointer = new QAction( QIcon( ":/north_arrow.png" ), tr( "&North Arrow" ), this ); myQActionPointer->setWhatsThis( tr( "Creates a north arrow that is displayed on the map canvas" ) ); // Connect the action to the run connect( myQActionPointer, SIGNAL( activated() ), this, SLOT( run() ) ); //render the arrow each time the map is rendered connect( qGisInterface->mapCanvas(), SIGNAL( renderComplete( QPainter * ) ), this, SLOT( renderNorthArrow( 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 & appropriate menu qGisInterface->addToolBarIcon( myQActionPointer ); qGisInterface->addPluginToMenu( tr( "&Decorations" ), myQActionPointer ); projectRead(); refreshCanvas(); }
QgsDecorationTitle::QgsDecorationTitle( QObject *parent ) : QgsDecorationItem( parent ) { mPlacement = TopCenter; mMarginUnit = QgsUnitTypes::RenderMillimeters; setName( "Title Label" ); // initialize default values in the gui projectRead(); }
QgisAppInterface::QgisAppInterface( QgisApp * _qgis ) : qgis( _qgis ), legendIface( _qgis->legend() ) { // connect signals connect( qgis->legend(), SIGNAL( currentLayerChanged( QgsMapLayer * ) ), this, SIGNAL( currentLayerChanged( QgsMapLayer * ) ) ); connect( qgis, SIGNAL( currentThemeChanged( QString ) ), this, SIGNAL( currentThemeChanged( QString ) ) ); connect( qgis, SIGNAL( composerAdded( QgsComposerView* ) ), this, SIGNAL( composerAdded( QgsComposerView* ) ) ); connect( qgis, SIGNAL( composerWillBeRemoved( QgsComposerView* ) ), this, SIGNAL( composerWillBeRemoved( QgsComposerView* ) ) ); connect( qgis, SIGNAL( initializationCompleted() ), this, SIGNAL( initializationCompleted() ) ); connect( qgis, SIGNAL( newProject() ), this, SIGNAL( newProjectCreated() ) ); connect( qgis, SIGNAL( projectRead() ), this, SIGNAL( projectRead() ) ); }
/** * Constructor for the plugin. The plugin is passed a pointer to the main app * and an interface object that provides access to exposed functions in QGIS. * @param qgis Pointer to the QGIS main window * @param _qI Pointer to the QGIS interface object */ QgsDecorationNorthArrow::QgsDecorationNorthArrow( QObject* parent ) : QgsDecorationItem( parent ) { mRotationInt = 0; mAutomatic = true; mPlacementLabels << tr( "Bottom Left" ) << tr( "Top Left" ) << tr( "Top Right" ) << tr( "Bottom Right" ); setName( "North Arrow" ); 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 RoadGraphPlugin::initGui() { // create shorttest path dock mQShortestPathDock = new RgShortestPathWidget( mQGisIface->mainWindow() , this ); mQGisIface->addDockWidget( Qt::LeftDockWidgetArea, mQShortestPathDock ); // Create the action for tool mQSettingsAction = new QAction( QIcon( ":/roadgraph/road.png" ), tr( "Road graph settings" ), this ); mQShowDirectionAction = new QAction( QIcon( ":/roadgraph/showdirect.png" ), tr( "Show road's direction" ), this ); mInfoAction = new QAction( QIcon( ":/roadgraph/about.png" ), tr( "About" ), this ); // Set the what's this text mQSettingsAction->setWhatsThis( tr( "Road graph plugin settings" ) ); mQShowDirectionAction->setWhatsThis( tr( "Roads direction viewer" ) ); mInfoAction->setWhatsThis( tr( "About Road graph plugin" ) ); mQShowDirectionAction->setCheckable( true ); setGuiElementsToDefault(); // Connect the action to slots connect( mQSettingsAction, SIGNAL( triggered() ), this, SLOT( property() ) ); connect( mQShowDirectionAction, SIGNAL( triggered() ), this, SLOT( onShowDirection() ) ); connect( mInfoAction, SIGNAL( triggered() ), SLOT( about() ) ); // Add the icons to the toolbar mQGisIface->addToolBarIcon( mQShowDirectionAction ); mQGisIface->addPluginToMenu( tr( "Road graph" ), mQSettingsAction ); mQGisIface->addPluginToMenu( tr( "Road graph" ), mQShowDirectionAction ); mQGisIface->addPluginToMenu( tr( "Road graph" ), mInfoAction ); connect( mQGisIface->mapCanvas(), SIGNAL( renderComplete( QPainter* ) ), this, SLOT( render( QPainter* ) ) ); connect( mQGisIface, SIGNAL( projectRead() ), this, SLOT( projectRead() ) ); connect( mQGisIface, SIGNAL( newProjectCreated() ), this, SLOT( newProject() ) ); connect( mQGisIface, SIGNAL( projectRead() ), mQShortestPathDock, SLOT( clear() ) ); connect( mQGisIface, SIGNAL( newProjectCreated() ), mQShortestPathDock, SLOT( clear() ) ); // load settings projectRead(); } // RoadGraphPlugin::initGui()
QgsDecorationGrid::QgsDecorationGrid( QObject *parent ) : QgsDecorationItem( parent ) { setName( "Grid" ); mLineSymbol = nullptr; mMarkerSymbol = nullptr; projectRead(); connect( QgisApp::instance()->mapCanvas(), &QgsMapCanvas::destinationCrsChanged, this, &QgsDecorationGrid::checkMapUnitsChanged ); }
QgsDecorationScaleBar::QgsDecorationScaleBar( QObject* parent ) : QgsDecorationItem( parent ) , mMarginHorizontal( 0 ) , mMarginVertical( 0 ) { mPlacement = TopRight; mStyleLabels << tr( "Tick Down" ) << tr( "Tick Up" ) << tr( "Bar" ) << tr( "Box" ); setName( "Scale Bar" ); projectRead(); }
QgsDecorationScaleBar::QgsDecorationScaleBar( QObject* parent ) : QgsDecorationItem( parent ) { mPlacementLabels << tr( "Bottom Left" ) << tr( "Top Left" ) << tr( "Top Right" ) << tr( "Bottom Right" ); mPlacementIndex = 1; mStyleLabels << tr( "Tick Down" ) << tr( "Tick Up" ) << tr( "Bar" ) << tr( "Box" ); setName( "Scale Bar" ); projectRead(); }
QgsDecorationGrid::QgsDecorationGrid( QObject* parent ) : QgsDecorationItem( parent ) { setName( "Grid" ); mLineSymbol = nullptr; mMarkerSymbol = nullptr; projectRead(); connect( QgisApp::instance()->mapCanvas(), SIGNAL( mapUnitsChanged() ), this, SLOT( checkMapUnitsChanged() ) ); }
/** * Constructor for the plugin. The plugin is passed a pointer to the main app * and an interface object that provides access to exposed functions in QGIS. * @param qgis Pointer to the QGIS main window * @param _qI Pointer to the QGIS interface object */ QgsDecorationNorthArrow::QgsDecorationNorthArrow( QObject *parent ) : QgsDecorationItem( parent ) , mRotationInt( 0 ) , mAutomatic( true ) , mMarginHorizontal( 0 ) , mMarginVertical( 0 ) { mPlacement = BottomLeft; mMarginUnit = QgsUnitTypes::RenderMillimeters; setName( "North Arrow" ); projectRead(); }
/** * Constructor for the plugin. The plugin is passed a pointer to the main app * and an interface object that provides access to exposed functions in QGIS. * @param qgis Pointer to the QGIS main window * @param _qI Pointer to the QGIS interface object */ QgsDecorationNorthArrow::QgsDecorationNorthArrow( QObject* parent ) : QgsDecorationItem( parent ) , mRotationInt( 0 ) , mAutomatic( true ) , mMarginHorizontal( 0 ) , mMarginVertical( 0 ) { mPlacement = BottomLeft; mMarginUnit = QgsSymbolV2::MM; setName( "North Arrow" ); projectRead(); }
/* * 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(); }
void GlobePlugin::initGui() { mSettingsDialog = new QgsGlobePluginDialog( mQGisIface->mainWindow(), QgisGui::ModalDialogFlags ); connect( mSettingsDialog, SIGNAL( settingsApplied() ), this, SLOT( applySettings() ) ); mActionToggleGlobe = new QAction( QIcon( ":/globe/globe.png" ), tr( "Launch Globe" ), this ); mActionToggleGlobe->setCheckable( true ); mQGisIface->addToolBarIcon( mActionToggleGlobe ); mQGisIface->addPluginToMenu( tr( "&Globe" ), mActionToggleGlobe ); mLayerPropertiesFactory = new QgsGlobeLayerPropertiesFactory( this ); mQGisIface->registerMapLayerPropertiesFactory( mLayerPropertiesFactory ); connect( mActionToggleGlobe, SIGNAL( triggered( bool ) ), this, SLOT( setGlobeEnabled( bool ) ) ); // connect( mQGisIface->mapCanvas(), SIGNAL( annotationItemChanged( QgsAnnotationItem* ) ), this, SLOT( updateAnnotationItem( QgsAnnotationItem* ) ) ); connect( QgsProject::instance()->billboardRegistry(), SIGNAL( itemAdded( QgsBillBoardItem* ) ), this, SLOT( addBillboard( QgsBillBoardItem* ) ) ); connect( QgsProject::instance()->billboardRegistry(), SIGNAL( itemRemoved( QgsBillBoardItem* ) ), this, SLOT( removeBillboard( QgsBillBoardItem* ) ) ); connect( mLayerPropertiesFactory, SIGNAL( layerSettingsChanged( QgsMapLayer* ) ), this, SLOT( layerChanged( QgsMapLayer* ) ) ); connect( this, SIGNAL( xyCoordinates( const QgsPoint & ) ), mQGisIface->mapCanvas(), SIGNAL( xyCoordinates( const QgsPoint & ) ) ); connect( mQGisIface->mainWindow(), SIGNAL( projectRead() ), this, SLOT( projectRead() ) ); }
void QgsOfflineEditingPlugin::unload() { disconnect( mQGisIface->mainWindow(), SIGNAL( projectRead() ), this, SLOT( updateActions() ) ); disconnect( mQGisIface->mainWindow(), SIGNAL( newProject() ), this, SLOT( updateActions() ) ); disconnect( QgsProject::instance(), SIGNAL( writeProject( QDomDocument & ) ), this, SLOT( updateActions() ) ); // remove the GUI mQGisIface->removePluginDatabaseMenu( tr( "&Offline Editing" ), mActionConvertProject ); mQGisIface->removeDatabaseToolBarIcon( mActionConvertProject ); mQGisIface->removePluginDatabaseMenu( tr( "&Offline Editing" ), mActionSynchronize ); mQGisIface->removeDatabaseToolBarIcon( mActionSynchronize ); delete mActionConvertProject; delete mActionSynchronize; }
void QgsOfflineEditingPlugin::initGui() { delete mActionConvertProject; // Create the action for tool mActionConvertProject = new QAction( QIcon( ":/offline_editing/offline_editing_copy.png" ), tr( "Convert to offline project" ), this ); mActionConvertProject->setObjectName( "mActionConvertProject" ); // Set the what's this text mActionConvertProject->setWhatsThis( tr( "Create offline copies of selected layers and save as offline project" ) ); // Connect the action to the run connect( mActionConvertProject, SIGNAL( triggered() ), this, SLOT( convertProject() ) ); // Add the icon to the toolbar mQGisIface->addDatabaseToolBarIcon( mActionConvertProject ); mQGisIface->addPluginToDatabaseMenu( tr( "&Offline Editing" ), mActionConvertProject ); mActionConvertProject->setEnabled( false ); mActionSynchronize = new QAction( QIcon( ":/offline_editing/offline_editing_sync.png" ), tr( "Synchronize" ), this ); mActionSynchronize->setObjectName( "mActionSynchronize" ); mActionSynchronize->setWhatsThis( tr( "Synchronize offline project with remote layers" ) ); connect( mActionSynchronize, SIGNAL( triggered() ), this, SLOT( synchronize() ) ); mQGisIface->addDatabaseToolBarIcon( mActionSynchronize ); mQGisIface->addPluginToDatabaseMenu( tr( "&Offline Editing" ), mActionSynchronize ); mActionSynchronize->setEnabled( false ); mOfflineEditing = new QgsOfflineEditing(); mProgressDialog = new QgsOfflineEditingProgressDialog( mQGisIface->mainWindow(), QgisGui::ModalDialogFlags ); connect( mOfflineEditing, SIGNAL( progressStarted() ), this, SLOT( showProgress() ) ); connect( mOfflineEditing, SIGNAL( layerProgressUpdated( int, int ) ), this, SLOT( setLayerProgress( int, int ) ) ); connect( mOfflineEditing, SIGNAL( progressModeSet( QgsOfflineEditing::ProgressMode, int ) ), this, SLOT( setProgressMode( QgsOfflineEditing::ProgressMode, int ) ) ); connect( mOfflineEditing, SIGNAL( progressUpdated( int ) ), this, SLOT( updateProgress( int ) ) ); connect( mOfflineEditing, SIGNAL( progressStopped() ), this, SLOT( hideProgress() ) ); connect( mOfflineEditing, SIGNAL( warning( QString, QString ) ), mQGisIface->messageBar(), SLOT( pushWarning( QString, QString ) ) ); connect( mQGisIface->mainWindow(), SIGNAL( projectRead() ), this, SLOT( updateActions() ) ); connect( mQGisIface->mainWindow(), SIGNAL( newProject() ), this, SLOT( updateActions() ) ); connect( QgsProject::instance(), SIGNAL( writeProject( QDomDocument & ) ), this, SLOT( updateActions() ) ); connect( QgsMapLayerRegistry::instance(), SIGNAL( layerWasAdded( QgsMapLayer* ) ), this, SLOT( updateActions() ) ); connect( QgsMapLayerRegistry::instance(), SIGNAL( layerWillBeRemoved( QString ) ), this, SLOT( updateActions() ) ); updateActions(); }
/* * 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 ); }
/* * 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(); }