@@ -90,7 +90,7 @@ QgsGrassRasterProvider::QgsGrassRasterProvider( QString const & uri )
90
90
91
91
mTimestamp = dataTimestamp ();
92
92
93
- mRasterValue .start ( mGisdbase , mLocation , mMapset , mMapName );
93
+ mRasterValue .set ( mGisdbase , mLocation , mMapset , mMapName );
94
94
// mValidNoDataValue = true;
95
95
96
96
QString error;
@@ -651,13 +651,13 @@ void QgsGrassRasterProvider::freeze()
651
651
void QgsGrassRasterProvider::thaw ()
652
652
{
653
653
QgsDebugMsg ( " entered" );
654
- mRasterValue .start ( mGisdbase , mLocation , mMapset , mMapName );
655
654
mValid = true ;
656
655
}
657
656
658
657
// -------------------------------- QgsGrassRasterValue ----------------------------------------
659
658
660
- QgsGrassRasterValue::QgsGrassRasterValue () : mProcess( 0 )
659
+ QgsGrassRasterValue::QgsGrassRasterValue ()
660
+ : mProcess( 0 )
661
661
{
662
662
}
663
663
@@ -666,18 +666,21 @@ QgsGrassRasterValue::~QgsGrassRasterValue()
666
666
stop ();
667
667
}
668
668
669
- void QgsGrassRasterValue::start ( QString gisdbase, QString location,
670
- QString mapset, QString map )
669
+ void QgsGrassRasterValue::set ( const QString & gisdbase, const QString & location, const QString & mapset, const QString & map )
671
670
{
672
- QgsDebugMsg ( " entered" );
673
- if ( mProcess )
674
- {
675
- QgsDebugMsg ( " alread running" );
676
- }
677
671
mGisdbase = gisdbase;
678
672
mLocation = location;
679
673
mMapset = mapset;
680
674
mMapName = map;
675
+ }
676
+
677
+ void QgsGrassRasterValue::start ()
678
+ {
679
+ QgsDebugMsg ( " entered" );
680
+ if ( mProcess )
681
+ {
682
+ QgsDebugMsg ( " already running" );
683
+ }
681
684
// TODO: catch exceptions
682
685
QString module = QgsGrass::qgisGrassModulePath () + " /qgis.g.info" ;
683
686
QStringList arguments;
@@ -715,7 +718,15 @@ double QgsGrassRasterValue::value( double x, double y, bool *ok )
715
718
*ok = false ;
716
719
double value = std::numeric_limits<double >::quiet_NaN ();
717
720
718
- if ( !mProcess ) return value;
721
+ if ( !mProcess )
722
+ {
723
+ start ();
724
+ }
725
+
726
+ if ( !mProcess )
727
+ {
728
+ return value;
729
+ }
719
730
720
731
QString coor = QString ( " %1 %2\n " ).arg ( QgsRasterBlock::printValue ( x ),
721
732
QgsRasterBlock::printValue ( y ) );
0 commit comments