QgsGrassRegion::QgsGrassRegion( QgisInterface *iface, QWidget * parent, Qt::WindowFlags f ) : QWidget( parent, f ) , QgsGrassRegionBase() , mInterface( 0 ) , mCanvas( 0 ) , mRadioGroup( 0 ) , mX( 0 ) , mY( 0 ) , mUpdatingGui( false ) , mRegionEdit( 0 ) { QgsDebugMsg( "QgsGrassRegion()" ); QgsGrass::initRegion( &mWindow ); setupUi( this ); setAttribute( Qt::WA_DeleteOnClose ); connect( mButtonBox, SIGNAL( clicked( QAbstractButton * ) ), SLOT( buttonClicked( QAbstractButton * ) ) ); //mPlugin = plugin; mInterface = iface; mCanvas = mInterface->mapCanvas(); mUpdatingGui = false; // Set input validators QDoubleValidator *dv = new QDoubleValidator( 0 ); QIntValidator *iv = new QIntValidator( 0 ); mNorth->setValidator( dv ); mSouth->setValidator( dv ); mEast->setValidator( dv ); mWest->setValidator( dv ); mNSRes->setValidator( dv ); mEWRes->setValidator( dv ); mRows->setValidator( iv ); mCols->setValidator( iv ); // Group radio buttons mRadioGroup = new QButtonGroup(); mRadioGroup->addButton( mResRadio ); mRadioGroup->addButton( mRowsColsRadio ); mResRadio->setChecked( true ); radioChanged(); connect( mRadioGroup, SIGNAL( buttonClicked( int ) ), this, SLOT( radioChanged() ) ); // Connect entries connect( mNorth, SIGNAL( editingFinished() ), this, SLOT( northChanged() ) ); connect( mSouth, SIGNAL( editingFinished() ), this, SLOT( southChanged() ) ); connect( mEast, SIGNAL( editingFinished() ), this, SLOT( eastChanged() ) ); connect( mWest, SIGNAL( editingFinished() ), this, SLOT( westChanged() ) ); connect( mNSRes, SIGNAL( editingFinished() ), this, SLOT( NSResChanged() ) ); connect( mEWRes, SIGNAL( editingFinished() ), this, SLOT( EWResChanged() ) ); connect( mRows, SIGNAL( editingFinished() ), this, SLOT( rowsChanged() ) ); connect( mCols, SIGNAL( editingFinished() ), this, SLOT( colsChanged() ) ); connect( QgsGrass::instance(), SIGNAL( regionChanged() ), SLOT( reloadRegion() ) ); connect( mCanvas, SIGNAL( mapToolSet( QgsMapTool * ) ), SLOT( canvasMapToolSet( QgsMapTool * ) ) ); }
Widget::Widget(QWidget *parent) : QWidget(parent) { QHBoxLayout *mainLayout = new QHBoxLayout(); _mapView = new QMMapView(QMMapView::RoadMap, QMCoordinate(55.8495931,4.3640841), 15);//15 = niveau du zoom _controls = new QWidget(); _addr = new QTextEdit(); _button = new QPushButton(); buildControls(); mainLayout->addWidget(_mapView, 1); mainLayout->addWidget(_controls, 1); mainLayout->addWidget(_addr, 1); mainLayout->addWidget(_button, 1); setLayout(mainLayout); resize(1200, 600); connect(_mapView, SIGNAL(mapLoaded()), this, SLOT(onMapLoaded())); connect(_mapView, SIGNAL(regionChanged(QMCoordinateRegion)), this, SLOT(onRegionChanged(QMCoordinateRegion))); connect(_mapView, SIGNAL(mapBecameIdle()), this, SLOT(onMapBecameIdle())); connect(_button, SIGNAL(clicked()),this,SLOT(newPos())); }
// Open tools void QgsGrassPlugin::openTools() { if ( !mTools ) { mTools = new QgsGrassTools( qGisInterface, qGisInterface->mainWindow(), 0, Qt::Dialog ); connect( mTools, SIGNAL( regionChanged() ), this, SLOT( redrawRegion() ) ); } mTools->show(); }
void ScriptingCellListener::slotChanged(const KCRegion& region) { KCRegion::ConstIterator end(region.constEnd()); QVariantList ranges; for (KCRegion::ConstIterator it = region.constBegin(); it != end; ++it) ranges << (*it)->rect(); emit regionChanged(ranges); for (KCRegion::ConstIterator it = region.constBegin(); it != end; ++it) { const QRect r((*it)->rect()); for (int row = r.top(); row <= r.bottom(); ++row) for (int col = r.left(); col <= r.right(); ++col) emit cellChanged(col, row); } }
void BioXASSSRLMonochromator::setRegion(BioXASSSRLMonochromatorRegionControl *newControl) { if (region_ != newControl) { removeChildControl(region_); region_ = newControl; addChildControl(region_); updateRegion(); updateStepEnergy(); updateEncoderEnergy(); emit regionChanged(region_); } }
/** Sets region */ void cwLinePlotLabelView::setRegion(cwCavingRegion* region) { if(Region != region) { if(Region != nullptr) { disconnect(Region, &cwCavingRegion::insertedCaves, this, &cwLinePlotLabelView::addCaves); disconnect(Region, &cwCavingRegion::beginRemoveCaves, this, &cwLinePlotLabelView::removeCaves); } Region = region; clear(); if(Region != nullptr) { connect(Region, &cwCavingRegion::insertedCaves, this, &cwLinePlotLabelView::addCaves); connect(Region, &cwCavingRegion::beginRemoveCaves, this, &cwLinePlotLabelView::removeCaves); if(Region->hasCaves()) { //Add all the caves addCaves(0, Region->caveCount() - 1); } } emit regionChanged(); } }
void QgsGrassTools::emitRegionChanged() { QgsDebugMsg( "entered." ); emit regionChanged(); }
/* * 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(); }
QgsGrassTools::QgsGrassTools( QgisInterface *iface, QWidget * parent, const char * name, Qt::WFlags f ) : QDialog( parent, f ), QgsGrassToolsBase() , mBrowser( 0 ) , mModulesListModel( 0 ), mModelProxy( 0 ), mDirectModulesListModel( 0 ), mDirectModelProxy( 0 ) { Q_UNUSED( name ); setupUi( this ); QgsDebugMsg( "QgsGrassTools()" ); qRegisterMetaType<QgsDetailedItemData>(); setWindowTitle( tr( "GRASS Tools" ) ); // setupUi(this); mIface = iface; mCanvas = mIface->mapCanvas(); connect( qApp, SIGNAL( aboutToQuit() ), this, SLOT( closeTools() ) ); //statusBar()->hide(); // set the dialog title QString title = tr( "GRASS Tools: %1/%2" ).arg( QgsGrass::getDefaultLocation() ).arg( QgsGrass::getDefaultMapset() ); setWindowTitle( title ); // Add map browser mBrowser = new QgsGrassBrowser( mIface, this ); connect( mBrowser, SIGNAL( regionChanged() ), this, SLOT( emitRegionChanged() ) ); // Tree view code. mModulesTree->header()->hide(); connect( mModulesTree, SIGNAL( itemClicked( QTreeWidgetItem *, int ) ), this, SLOT( moduleClicked( QTreeWidgetItem *, int ) ) ); mDirectModulesTree->header()->hide(); connect( mDirectModulesTree, SIGNAL( itemClicked( QTreeWidgetItem *, int ) ), this, SLOT( directModuleClicked( QTreeWidgetItem *, int ) ) ); // List view with filter mModulesListModel = new QStandardItemModel( 0, 1 ); mModelProxy = new QSortFilterProxyModel( this ); mModelProxy->setSourceModel( mModulesListModel ); mModelProxy->setFilterRole( Qt::UserRole + 2 ); mListView->setModel( mModelProxy ); connect( mListView, SIGNAL( clicked( const QModelIndex ) ), this, SLOT( listItemClicked( const QModelIndex ) ) ); mDirectModulesListModel = new QStandardItemModel( 0, 1 ); mDirectModelProxy = new QSortFilterProxyModel( this ); mDirectModelProxy->setSourceModel( mDirectModulesListModel ); mDirectModelProxy->setFilterRole( Qt::UserRole + 2 ); mDirectListView->setModel( mDirectModelProxy ); connect( mDirectListView, SIGNAL( clicked( const QModelIndex ) ), this, SLOT( directListItemClicked( const QModelIndex ) ) ); // Show before loadConfig() so that user can see loading restorePosition(); showTabs(); }
QgsGrassTools::QgsGrassTools( QgisInterface *iface, QWidget * parent, const char * name, Qt::WFlags f ) : QDialog( parent, f ), QgsGrassToolsBase() { setupUi( this ); QgsDebugMsg( "QgsGrassTools()" ); qRegisterMetaType<QgsDetailedItemData>(); setWindowTitle( tr( "GRASS Tools" ) ); // setupUi(this); mIface = iface; mCanvas = mIface->mapCanvas(); connect( qApp, SIGNAL( aboutToQuit() ), this, SLOT( closeTools() ) ); // // Radims original tree view code. // mModulesTree->header()->hide(); connect( mModulesTree, SIGNAL( itemClicked( QTreeWidgetItem *, int ) ), this, SLOT( moduleClicked( QTreeWidgetItem *, int ) ) ); // // Tims experimental list view with filter // mModelTools = new QStandardItemModel( 0, 1 ); mModelProxy = new QSortFilterProxyModel( this ); mModelProxy->setSourceModel( mModelTools ); mModelProxy->setFilterRole( Qt::UserRole + 2 ); mListView->setModel( mModelProxy ); mListView->setItemDelegateForColumn( 0, new QgsDetailedItemDelegate() ); mListView->setUniformItemSizes( false ); //mListView2 = new QListView(this); //mDockWidget = new QDockWidget(tr("Grass Tools"), 0); //mDockWidget->setWidget(mListView2); //mDockWidget->setObjectName("GrassTools"); //mDockWidget->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea); //mIface->addDockWidget(Qt::LeftDockWidgetArea, mDockWidget); connect( mListView, SIGNAL( clicked( const QModelIndex ) ), this, SLOT( listItemClicked( const QModelIndex ) ) ); // // End of Tims experimental bit // // // Load the modules lists // // Show before loadConfig() so that user can see loading QString conf = QgsApplication::pkgDataPath() + "/grass/config/default.qgc"; restorePosition(); QApplication::setOverrideCursor( Qt::WaitCursor ); loadConfig( conf ); QApplication::restoreOverrideCursor(); //statusBar()->hide(); // set the dialog title QString title = tr( "GRASS Tools: " ) + QgsGrass::getDefaultLocation() + "/" + QgsGrass::getDefaultMapset(); setWindowTitle( title ); // Add map browser mBrowser = new QgsGrassBrowser( mIface, this ); mTabWidget->addTab( mBrowser, tr( "Browser" ) ); connect( mBrowser, SIGNAL( regionChanged() ), this, SLOT( emitRegionChanged() ) ); }
/* * 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 ); }