526 changes: 283 additions & 243 deletions i18n/qgis_it.ts

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions python/core/qgsmaplayerregistry.sip
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,8 @@ public:

~QgsMapLayerRegistry();

//! Retrieve a pointer to a loaded plugin by id
QgsMapLayer * mapLayer(QString theLayerId);
//! Retrieve a pointer to a loaded layer by id
QgsMapLayer *mapLayer(QString theLayerId);

//! Retrieve the mapLayers collection (mainly intended for use by projection)
QMap<QString,QgsMapLayer*> & mapLayers();
Expand Down
26 changes: 26 additions & 0 deletions resources/context_help/HeatmapGui-de_DE
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
<h1>Heatmap-Erweiterung</h1>
<p>Die Heatmap-Erweiterung erzeugt ein Raster für eine Punktlayer. Die Heatmap wird auf Basis der Punktanzahl an einer gegebenen Position berechnet. Je höher die Anzahl der Punkte, desto höher wird der zugehörige Pixelwert im Raster sein.</p>

<h2>Parameter</h2>

<h3>Eingabepunktlayer</h3>
<p>Die Eingabe ist jeweils ein Punktlayer. In die Liste werden automatisch alle derzeit in die Karte geladenen Punktlayer übernommen. Klicken Sie auf den Pfeil neben der Liste und wählen Sie den gewünschten Layer.</p>

<h3>Ausgaberaster</h3>
<p>Der Dateiname für das Ausgaberaster kann durch Klick auf <label>...</label> neben dem Eingabefeld gewählt werden.<br/>
<b>Hinweis:</b> Wenn nicht explizit angegeben, wird die Dateiendung abhängig vom gewählten Ausgabeformat automatisch ergänzt,</p>

<h3>Ausgabeformat</h3>
<p>Alle Formate deren Erzeugung GDAL unterstützt sind in der Liste verfügbar. Wählen Sie das gewünschte Ausgabeformat Ihrer Datei.<br/>
<b>Hinweis:</b> Die Formate GeoTiff und ERDAS Imagine .img werden empfohlen. Einige Formate können die Applikation zum Absturz bringen. Bleiben Sie bitte bei den empfohlenen Formate bis die Absturzursache beseitig ist oder wählen Sie ein anderes Format, wenn Sie wissen, dass GDAL es voll unterstützt.</p>

<h3>Heatmap Punktattribute</h3>
<h4>Pufferradius</h4>
<p>Der Pufferradius gibt die Anzahl der <b>Pixel oder Zellen</b> um einen Punkt an, in dem die Hitze(wirkung) des Punktes point spürbar ist. Kleine Werte ergeben ein klare Trennung zwischen den Punkten und größere Werte ergeben schön gemischte Hitzebereiche. Dies ist der räumliche Parameter des Hitzeregion eines Punkts.<br/>
<b>Hinweise:</b> Der Wert ist immer ganzzahlig.</p>
<h4>Verfallrate</h4>
<p>Die Verfallrate gibt den Betrag des Hitze(einfluß) an, der die äußersten Pixel des Pufferradius erreicht. Es ist der direkte Wert des äußeren Bereichs.<br/>
<b>Beispiel:</b> Wenn die Verfallrate auf 0 und der Radius auf 10 gestellt ist, wird das mittige Pixel den Wert 1, die Pixel in einer Entfernung von 10 Einheiten den Wert 0, ein Pixel in der Entfernung von 5 Einheiten den Wert 0.5 und so weiter haben. Hier ist wird die Entfernung nicht in Pixeln, sondern mit sqrt( xOffset^2 + yOffset^2 ) gerechnet, damit Sie immer kreisförmige Hitzeregion erhalten.</p>

<h2>Weitere Einzelheiten</h2>
<p>Sie können über aruntheguy at gmail dot com mit dem Autor Kontakt aufnehmen.</p>
8 changes: 4 additions & 4 deletions resources/context_help/HeatmapGui-en_US
Original file line number Diff line number Diff line change
@@ -1,26 +1,26 @@
<h1>Heatmap Plugin Help</h1>
<p>Heatmap Plugin creates a heatmap raster for the input point vector layer. The heatmap is generated based on the number of points in a given location. The higher the number of points, the higher will be the corresponding pixel(s) value in the raster.</p>
<p>Heatmap Plugin creates a heatmap raster for the input point vector layer. The heatmap is generated based on the number of points in a given location. The higher the number of points, the higher the corresponding pixel(s) value will be in the raster.</p>

<h2>The Dialog Parameters</h2>

<h3>Input Point Vector</h3>
<p>The input is always a vector layer of point type. All the point vector layers that are currently loaded in the window are automatically populated in the input layer drop-down list. Click the Dropdown button and select the required layer.</p>
<p>The input is always a vector layer of point type. All the point vector layers that are currently loaded in the canvas are automatically populated in the input layer drop-down list. Click the dropdown button and select the desired layer.</p>

<h3>Output Ratser</h3>
<p>The output raster location and filename can be set by clicking the <label>...</label> button next to the output raster textbox.<br/>
<b>Note:</b>The file format is automatically added depending upon the output format selected, if not explicitly given.</p>

<h3>Output Format</h3>
<p>All the file creation supporting GDAL formats are available in the drop down list. Click and select the required output format for your file.<br/>
<b>Note:</b> GeoTiff and ERDAS Imagine .img formats are recommended. Some formats makes the application crash. Kindly stick to the recommended formats until the crash issue is resolved or Use other formats if you know about its GDAL support completely.</p>
<b>Note:</b> GeoTiff and ERDAS Imagine .img formats are recommended. Some formats make the application crash. Kindly stick to the recommended formats until the crash issue is resolved or use an other formats if you know GDAL supports it completely.</p>

<h3>Heatmap Point Attributes</h3>
<h4>Buffer Radius</h4>
<p>The buffer radius specifies the number of <b>pixels or cells</b> around a point where the heat(influence) of the point will be felt. Smaller values give you clear distinction between points and bigger values gives you nicely merged heatmap regions. This is the spatial parameter of the heat region of a point.<br/>
<b>Note:</b> The value is always a whole number.</p>
<h4>Decay Ratio</h4>
<p>The decay ratio defines amount of heat(influence) that should reach the outermost pixel in the Buffer Radius. It is the direct measure of the outer most value.<br/>
<b>Example:</b> If Decay Ratio is set as 0 and Buffer Radius as 10, then the centre pixel of a point will have value and the pixel away by a distance of 10 units will have the value 0, a pixel which is 5 units away will have a value of 0.5 and so on. Here distance is measure not by pixel count rather using sqrt( xOffset^2 + yOffset^2 ), so you always get a circular heat region.</p>
<b>Example:</b> If decay Ratio is set to 0 and radius to 10, then the center pixel of a point will have value and the pixel away by a distance of 10 units will have the value 0, a pixel which is 5 units away will have a value of 0.5 and so on. Here distance is measure not by pixel count rather using sqrt( xOffset^2 + yOffset^2 ), so you always get a circular heat region.</p>

<h2>Further Details</h2>
<p>Contact the author through aruntheguy at gmail dot com</p>
Expand Down
5 changes: 3 additions & 2 deletions src/app/qgisapp.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -6164,9 +6164,10 @@ void QgisApp::activateDeactivateLayerRelatedActions( QgsMapLayer* layer )
//start editing/stop editing
if ( dprovider->capabilities() & QgsVectorDataProvider::EditingCapabilities )
{
mActionToggleEditing->setEnabled( !vlayer->isReadOnly() );
bool canChangeAttributes = dprovider->capabilities() & QgsVectorDataProvider::ChangeAttributeValues;
mActionToggleEditing->setEnabled( canChangeAttributes && !vlayer->isReadOnly() );
mActionToggleEditing->setChecked( vlayer->isEditable() );
mActionSaveEdits->setEnabled( vlayer->isEditable() );
mActionSaveEdits->setEnabled( canChangeAttributes && vlayer->isEditable() );
}
else
{
Expand Down
2 changes: 1 addition & 1 deletion src/core/qgsapplication.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@ QgsApplication::QgsApplication( int & argc, char ** argv, bool GUIenabled, QStri
}
void QgsApplication::init( QString customConfigPath )
{
if( customConfigPath.isEmpty() )
if ( customConfigPath.isEmpty() )
{
customConfigPath = QDir::homePath() + QString( "/.qgis/" );
}
Expand Down
2 changes: 1 addition & 1 deletion src/core/qgsmaplayerregistry.h
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ class CORE_EXPORT QgsMapLayerRegistry : public QObject

~QgsMapLayerRegistry();

//! Retrieve a pointer to a loaded plugin by id
//! Retrieve a pointer to a loaded layer by id
QgsMapLayer * mapLayer( QString theLayerId );

//! Retrieve the mapLayers collection (mainly intended for use by projectio)
Expand Down
75 changes: 38 additions & 37 deletions src/plugins/heatmap/heatmap.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -74,11 +74,11 @@ void Heatmap::initGui()
// Create the action for tool
mQActionPointer = new QAction( QIcon( ":/heatmap/heatmap.png" ), tr( "Heatmap" ), this );
// Set the what's this text
mQActionPointer->setWhatsThis( tr( "Creats a heatmap raster for the input point vector." ) );
mQActionPointer->setWhatsThis( tr( "Creates a heatmap raster for the input point vector." ) );
// Connect the action to the run
connect( mQActionPointer, SIGNAL( triggered() ), this, SLOT( run() ) );
// Add the icon to the toolbar
mQGisIface->addToolBarIcon( mQActionPointer );
mQGisIface->addRasterToolBarIcon( mQActionPointer );
mQGisIface->addPluginToRasterMenu( tr( "&Heatmap" ), mQActionPointer );

}
Expand Down Expand Up @@ -108,8 +108,8 @@ void Heatmap::run()
void Heatmap::unload()
{
// remove the GUI
mQGisIface->removePluginMenu( "&Heatmap", mQActionPointer );
mQGisIface->removeToolBarIcon( mQActionPointer );
mQGisIface->removePluginRasterMenu( "&Heatmap", mQActionPointer );
mQGisIface->removeRasterToolBarIcon( mQActionPointer );
delete mQActionPointer;
}

Expand All @@ -126,21 +126,21 @@ void Heatmap::createRaster( QgsVectorLayer* theVectorLayer, int theBuffer, float

GDALDataset *emptyDataset;
GDALDriver *myDriver;

myDriver = GetGDALDriverManager()->GetDriverByName( theOutputFormat.toUtf8() );
if( myDriver == NULL )
if ( myDriver == NULL )
{
QMessageBox::information( 0, tr("Error in GDAL Driver!"), tr("Cannot open the driver for the format specified") );
QMessageBox::information( 0, tr( "GDAL driver error" ), tr( "Cannot open the driver for the specified format" ) );
return;
}

// bounding box info
QgsRectangle myBBox = theVectorLayer->extent();
// fixing a base width of 500 px/cells
xSize = 500;
xResolution = myBBox.width()/xSize;
xResolution = myBBox.width() / xSize;
yResolution = xResolution;
ySize = myBBox.height()/yResolution;
ySize = myBBox.height() / yResolution;
// add extra extend to cover the corner points' heat region
xSize = xSize + ( theBuffer * 2 ) + 10 ;
ySize = ySize + ( theBuffer * 2 ) + 10 ;
Expand All @@ -155,57 +155,58 @@ void Heatmap::createRaster( QgsVectorLayer* theVectorLayer, int theBuffer, float
emptyDataset->SetGeoTransform( geoTransform );

GDALRasterBand *poBand;
poBand = emptyDataset->GetRasterBand(1);
poBand = emptyDataset->GetRasterBand( 1 );
poBand->SetNoDataValue( NO_DATA );

float* line = ( float * ) CPLMalloc( sizeof( float ) * xSize );
std::fill_n( line, xSize, NO_DATA );
for ( int i = 0; i < xSize; i++ )
line[i] = NO_DATA;
// Write the empty raster
for ( int i = 0; i < ySize ; i += 1 )
for ( int i = 0; i < ySize ; i++ )
{
poBand->RasterIO( GF_Write, 0, 0, xSize, 1, line, xSize, 1, GDT_Float32, 0, 0 );
}

CPLFree( line );
//close the dataset
GDALClose( (GDALDatasetH) emptyDataset );
GDALClose(( GDALDatasetH ) emptyDataset );

// open the raster in GA_Update mode
GDALDataset *heatmapDS;
heatmapDS = ( GDALDataset * ) GDALOpen( theOutputFilename.toUtf8(), GA_Update );
if( !heatmapDS )
if ( !heatmapDS )
{
QMessageBox::information( 0, tr("Error in Updating Raster!"), tr("Couldnot open the created raster for updation. The Heatmap was not generated.") );
QMessageBox::information( 0, tr( "Raster update error" ), tr( "Could not open the created raster for updating. The heatmap was not generated." ) );
return;
}
poBand = heatmapDS->GetRasterBand( 1 );
// Get the data buffer ready
int blockSize = 2 * theBuffer + 1; // block SIDE would have been more appropriate
// Open the vector features
QgsVectorDataProvider* myVectorProvider = theVectorLayer->dataProvider();
if( !myVectorProvider )
if ( !myVectorProvider )
{
QMessageBox::information( 0, tr( "Error in Point Layer!"), tr("Couldnot identify the vector data provider.") );
QMessageBox::information( 0, tr( "Point layer error" ), tr( "Could not identify the vector data provider." ) );
return;
}
QgsAttributeList dummyList;
myVectorProvider->select( dummyList );

int totalFeatures = myVectorProvider->featureCount();
int counter = 0;

QProgressDialog p( "Creating Heatmap ... ", "Abort", 0, totalFeatures );
p.setWindowModality(Qt::WindowModal);
p.setWindowModality( Qt::WindowModal );

QgsFeature myFeature;

while( myVectorProvider->nextFeature( myFeature ) )
while ( myVectorProvider->nextFeature( myFeature ) )
{
counter += 1;
counter++;
p.setValue( counter );
if( p.wasCanceled() )
if ( p.wasCanceled() )
{
QMessageBox::information( 0, tr("Heatmap Generation Aborted!"), tr("QGIS will now load the partially-computed raster.") );
QMessageBox::information( 0, tr( "Heatmap generation aborted" ), tr( "QGIS will now load the partially-computed raster." ) );
break;
}

Expand All @@ -215,46 +216,46 @@ void Heatmap::createRaster( QgsVectorLayer* theVectorLayer, int theBuffer, float
QgsPoint myPoint;
myPoint = myPointGeometry->asPoint();
// avoiding any empty points or out of extent points
if( ( myPoint.x() < rasterX ) || ( myPoint.y() < rasterY ) )
if (( myPoint.x() < rasterX ) || ( myPoint.y() < rasterY ) )
{
continue;
}
// calculate the pixel position
// calculate the pixel position
unsigned int xPosition, yPosition;
xPosition = (( myPoint.x() - rasterX )/ xResolution ) - theBuffer;
yPosition = (( myPoint.y() - rasterY )/ yResolution ) - theBuffer;
xPosition = (( myPoint.x() - rasterX ) / xResolution ) - theBuffer;
yPosition = (( myPoint.y() - rasterY ) / yResolution ) - theBuffer;

// get the data
float *dataBuffer = ( float * ) CPLMalloc( sizeof( float ) * blockSize * blockSize );
poBand->RasterIO( GF_Read, xPosition, yPosition, blockSize, blockSize, dataBuffer, blockSize, blockSize, GDT_Float32, 0, 0 );

for( int xp = 0; xp <= theBuffer; xp += 1 )
for ( int xp = 0; xp <= theBuffer; xp++ )
{
for( int yp = 0; yp <= theBuffer; yp += 1 )
for ( int yp = 0; yp <= theBuffer; yp++ )
{
float distance = sqrt( pow( xp, 2 ) + pow( yp, 2 ) );
float pixelValue = 1 - ( (1-theDecay) * distance / theBuffer );
float distance = sqrt( pow( xp, 2.0 ) + pow( yp, 2.0 ) );
float pixelValue = 1 - (( 1 - theDecay ) * distance / theBuffer );

// clearing anamolies along the axes
if( xp == 0 && yp == 0 )
if ( xp == 0 && yp == 0 )
{
pixelValue /= 4;
}
else if( xp == 0 || yp == 0 )
else if ( xp == 0 || yp == 0 )
{
pixelValue /= 2;
}

if( distance <= theBuffer )
if ( distance <= theBuffer )
{
int pos[4];
pos[0] = ( theBuffer + xp ) * blockSize + ( theBuffer + yp );
pos[1] = ( theBuffer + xp ) * blockSize + ( theBuffer - yp );
pos[2] = ( theBuffer - xp ) * blockSize + ( theBuffer + yp );
pos[3] = ( theBuffer - xp ) * blockSize + ( theBuffer - yp );
for( int p = 0; p < 4; p += 1 )
for ( int p = 0; p < 4; p++ )
{
if( dataBuffer[ pos[p] ] == NO_DATA )
if ( dataBuffer[ pos[p] ] == NO_DATA )
{
dataBuffer[ pos[p] ] = 0;
}
Expand All @@ -269,7 +270,7 @@ void Heatmap::createRaster( QgsVectorLayer* theVectorLayer, int theBuffer, float
}

//Finally close the dataset
GDALClose( (GDALDatasetH) heatmapDS );
GDALClose(( GDALDatasetH ) heatmapDS );

// Open the file in QGIS window
mQGisIface->addRasterLayer( theOutputFilename, QFileInfo( theOutputFilename ).baseName() );
Expand Down
2 changes: 1 addition & 1 deletion src/plugins/heatmap/heatmap.h
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,7 @@ class Heatmap: public QObject, public QgisPlugin
//! the worker slot to create heatmap
/*
* Signal: createRaster
* Params:
* Params:
* QgsVectorLayer* -> Input point layer
* int -> Buffer distance
* float -> Decay ratio
Expand Down
68 changes: 27 additions & 41 deletions src/plugins/heatmap/heatmapgui.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -36,29 +36,25 @@ HeatmapGui::HeatmapGui( QWidget* parent, Qt::WFlags fl )
setupUi( this );

// Adding point layers to the mInputVectorCombo
QMap<QString, QgsMapLayer*> mapLayers = QgsMapLayerRegistry::instance()->mapLayers();
QMapIterator<QString, QgsMapLayer*> layers(mapLayers);

while( layers.hasNext() )
foreach( QgsMapLayer *l, QgsMapLayerRegistry::instance()->mapLayers() )
{
layers.next();
QgsVectorLayer* vl = qobject_cast<QgsVectorLayer *>(layers.value());
if( ( vl ) && ( vl->geometryType() == QGis::Point ) )
{
mInputVectorCombo->addItem( vl->name(), QVariant( vl->id() ) );
}
QgsVectorLayer *vl = qobject_cast<QgsVectorLayer *>( l );
if ( !vl || vl->geometryType() != QGis::Point )
continue;

mInputVectorCombo->addItem( vl->name(), vl->id() );
}

// Adding GDAL drivers with CREATE to the mFormatCombo
int myTiffIndex = -1;
int myIndex = -1;
GDALAllRegister();
int nDrivers = GDALGetDriverCount();
for( int i = 0; i < nDrivers; i +=1 )
for ( int i = 0; i < nDrivers; i += 1 )
{
GDALDriver* nthDriver = GetGDALDriverManager()->GetDriver( i );
char** driverMetadata = nthDriver->GetMetadata();
if( CSLFetchBoolean( driverMetadata, GDAL_DCAP_CREATE, false ) )
if ( CSLFetchBoolean( driverMetadata, GDAL_DCAP_CREATE, false ) )
{
++myIndex;
QString myLongName = nthDriver->GetMetadataItem( GDAL_DMD_LONGNAME );
Expand All @@ -72,7 +68,7 @@ HeatmapGui::HeatmapGui( QWidget* parent, Qt::WFlags fl )
}
}
}
mFormatCombo->setCurrentIndex(myTiffIndex);
mFormatCombo->setCurrentIndex( myTiffIndex );

//finally set right the ok button
enableOrDisableOkButton();
Expand All @@ -85,7 +81,6 @@ HeatmapGui::~HeatmapGui()
void HeatmapGui::on_mButtonBox_accepted()
{
// Variables to be emitted with the createRaster signal
QgsVectorLayer* inputLayer;
int bufferDistance;
float decayRatio;
QString outputFileName;
Expand All @@ -94,31 +89,21 @@ void HeatmapGui::on_mButtonBox_accepted()
QString dummyText;

// The input vector layer
int myLayerId = mInputVectorCombo->itemData( mInputVectorCombo->currentIndex() ).toInt();
QString myLayerId = mInputVectorCombo->itemData( mInputVectorCombo->currentIndex() ).toString();

QMap<QString, QgsMapLayer*> mapLayers = QgsMapLayerRegistry::instance()->mapLayers();
QMapIterator<QString, QgsMapLayer*> layers(mapLayers);

while( layers.hasNext() )
QgsVectorLayer* inputLayer = qobject_cast<QgsVectorLayer *>( QgsMapLayerRegistry::instance()->mapLayer( myLayerId ) );
if ( !inputLayer )
{
layers.next();
QgsVectorLayer* vl = qobject_cast<QgsVectorLayer *>(layers.value());
if ( vl )
{
dummyText = vl->id();
if( dummyText.toInt() == myLayerId )
{
inputLayer = vl;
}
}
QMessageBox::information( 0, tr( "Layer not found" ), tr( "Layer %1 not found." ).arg( myLayerId ) );
return;
}

// The buffer distance
dummyText = mBufferLineEdit->text();
bufferDistance = dummyText.toInt();
if( bufferDistance == NULL )
if ( bufferDistance == 0 )
{
QMessageBox::information( 0, tr("Invalid Buffer Value!"), tr("Buffer distance cannot be NULL, kindly enter a valid value.") );
QMessageBox::information( 0, tr( "Invalid buffer value" ), tr( "Buffer distance cannot be zero. Please enter a valid value." ) );
return;
}
// The decay ratio
Expand All @@ -128,9 +113,9 @@ void HeatmapGui::on_mButtonBox_accepted()
// The output filename
outputFileName = mOutputRasterLineEdit->text();
QFileInfo myFileInfo( outputFileName );
if( outputFileName.isEmpty() || !myFileInfo.dir().exists() )
if ( outputFileName.isEmpty() || !myFileInfo.dir().exists() )
{
QMessageBox::information( 0, tr("Output filename is invalid!"), tr("Kindly enter a valid output file path and name.") );
QMessageBox::information( 0, tr( "Invalid output filename" ), tr( "Please enter a valid output file path and name." ) );
return;
}

Expand All @@ -139,22 +124,23 @@ void HeatmapGui::on_mButtonBox_accepted()

// append the file format if the suffix is empty
QString suffix = myFileInfo.suffix();
if( suffix.isEmpty() )
if ( suffix.isEmpty() )
{
QMap<QString, QString>::const_iterator it = mExtensionMap.find( outputFormat );
if( it != mExtensionMap.end() && it.key() == outputFormat )
if ( it != mExtensionMap.end() && it.key() == outputFormat )
{
// making sure that there is really a extension value available
// Some drivers donot seem to have any extension at all
if( it.value() != NULL || it.value() != "" )
if ( it.value() != NULL || it.value() != "" )
{
outputFileName.append(".");
outputFileName.append( "." );
outputFileName.append( it.value() );
}
}
}

emit createRaster( inputLayer, bufferDistance, decayRatio, outputFileName, outputFormat );

//and finally
accept();
}
Expand All @@ -174,13 +160,13 @@ void HeatmapGui::on_mBrowseButton_clicked()
QSettings s;
QString lastDir = s.value( "/Heatmap/lastOutputDir", "" ).toString();

QString outputFilename = QFileDialog::getSaveFileName( 0, tr( "Save Heatmap as: "), lastDir );
if( !outputFilename.isEmpty() )
QString outputFilename = QFileDialog::getSaveFileName( 0, tr( "Save Heatmap as:" ), lastDir );
if ( !outputFilename.isEmpty() )
{
mOutputRasterLineEdit->setText( outputFilename );
QFileInfo outputFileInfo( outputFilename );
QDir outputDir = outputFileInfo.absoluteDir();
if( outputDir.exists() )
if ( outputDir.exists() )
{
s.setValue( "/Heatmap/lastOutputDir", outputFileInfo.absolutePath() );
}
Expand All @@ -199,7 +185,7 @@ void HeatmapGui::enableOrDisableOkButton()
bool enabled = true;
QString filename = mOutputRasterLineEdit->text();
QFileInfo theFileInfo( filename );
if( filename.isEmpty() || !theFileInfo.dir().exists() || ( mInputVectorCombo->count() == 0 ) )
if ( filename.isEmpty() || !theFileInfo.dir().exists() || ( mInputVectorCombo->count() == 0 ) )
{
enabled = false;
}
Expand Down
2 changes: 1 addition & 1 deletion src/plugins/heatmap/heatmapgui.h
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ class HeatmapGui : public QDialog, private Ui::HeatmapGuiBase
signals:
/*
* Signal: createRaster
* Params:
* Params:
* QgsVectorLayer* -> Input point layer
* int -> Buffer distance
* float -> Decay ratio
Expand Down