void QgsGrassRegion::colsChanged() { if ( mUpdatingGui ) return; mWindow.cols = mCols->text().toInt(); if ( mWindow.cols < 1 ) mWindow.cols = 1; adjust(); refreshGui(); }
void QgsGrassRegion::rowsChanged() { if ( mUpdatingGui ) return; mWindow.rows = mRows->text().toInt(); if ( mWindow.rows < 1 ) mWindow.rows = 1; adjust(); refreshGui(); }
void QgsGrassRegion::EWResChanged() { if ( mUpdatingGui ) return; mWindow.ew_res = mEWRes->text().toDouble(); if ( mWindow.ew_res <= 0 ) mWindow.ew_res = 1; adjust(); refreshGui(); }
void QgsGrassRegion::westChanged() { if ( mUpdatingGui ) return; mWindow.west = mWest->text().toDouble(); if ( mWindow.west > mWindow.east ) mWindow.west = mWindow.east; adjust(); refreshGui(); }
void QgsGrassRegion::southChanged() { if ( mUpdatingGui ) return; mWindow.south = mSouth->text().toDouble(); if ( mWindow.south > mWindow.north ) mWindow.south = mWindow.north; adjust(); refreshGui(); }
void QgsGrassRegion::onCaptureFinished() { QgsDebugMsg( "entered." ); QgsRectangle rect = mRegionEdit->getRegion(); mWindow.west = rect.xMinimum(); mWindow.east = rect.xMaximum(); mWindow.south = rect.yMinimum(); mWindow.north = rect.yMaximum(); adjust(); refreshGui(); show(); }
void QgsGrassRegion::reloadRegion() { readRegion(); refreshGui(); }
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() ) ); }