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 * ) ) ); }
QgsGrassRegion::QgsGrassRegion( QgsGrassPlugin *plugin, QgisInterface *iface, QWidget * parent, Qt::WFlags f ) : QDialog( parent, f ), QgsGrassRegionBase( ) { QgsDebugMsg( "QgsGrassRegion()" ); setupUi( this ); setAttribute( Qt::WA_DeleteOnClose ); connect( buttonBox, SIGNAL( accepted() ), this, SLOT( accept() ) ); connect( buttonBox, SIGNAL( rejected() ), this, SLOT( reject() ) ); mPlugin = plugin; mInterface = iface; mCanvas = mInterface->mapCanvas(); restorePosition(); 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( mCellResRadio ); mRadioGroup->addButton( mRowsColsRadio ); mCellResRadio->setChecked( true ); radioChanged(); connect( mRadioGroup, SIGNAL( buttonClicked( int ) ), this, SLOT( radioChanged() ) ); // Set values to current region QString gisdbase = QgsGrass::getDefaultGisdbase(); QString location = QgsGrass::getDefaultLocation(); QString mapset = QgsGrass::getDefaultMapset(); if ( gisdbase.isEmpty() || location.isEmpty() || mapset.isEmpty() ) { QMessageBox::warning( 0, tr( "Warning" ), tr( "GISDBASE, LOCATION_NAME or MAPSET is not set, cannot display current region." ) ); } QgsGrass::setLocation( gisdbase, location ); char *err = G__get_window( &mWindow, ( char * ) "", ( char * ) "WIND", mapset.toLatin1().data() ); if ( err ) { QMessageBox::warning( 0, tr( "Warning" ), tr( "Cannot read current region: %1" ).arg( QString::fromUtf8( err ) ) ); return; } mRegionEdit = new QgsGrassRegionEdit( mCanvas ); connect( mRegionEdit, SIGNAL( captureStarted() ), this, SLOT( hide() ) ); connect( mRegionEdit, SIGNAL( captureEnded() ), this, SLOT( onCaptureFinished() ) ); mCanvas->setMapTool( mRegionEdit ); refreshGui(); connect( mCanvas, SIGNAL( renderComplete( QPainter * ) ), this, SLOT( postRender( QPainter * ) ) ); // 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() ) ); // Symbology QPen pen = mPlugin->regionPen(); mColorButton->setColor( pen.color() ); connect( mColorButton, SIGNAL( clicked() ), this, SLOT( changeColor() ) ); mWidthSpinBox->setValue( pen.width() ); connect( mWidthSpinBox, SIGNAL( valueChanged( int ) ), this, SLOT( changeWidth() ) ); }