Skip to content

Commit e8ddc48

Browse files
Gustrytimlinux
authored andcommittedJun 24, 2017
review of the raster metadata viewer (#4726)
1 parent 4717766 commit e8ddc48

File tree

4 files changed

+925
-992
lines changed

4 files changed

+925
-992
lines changed
 

‎src/app/qgsrasterlayerproperties.cpp

Lines changed: 51 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,7 @@ QgsRasterLayerProperties::QgsRasterLayerProperties( QgsMapLayer *lyr, QgsMapCanv
8282
, mGradientWidth( 0.0 )
8383
, mMapCanvas( canvas )
8484
, mHistogramWidget( nullptr )
85+
, mMetadataFilled( false )
8586
{
8687
mGrayMinimumMaximumEstimated = true;
8788
mRGBMinimumMaximumEstimated = true;
@@ -700,41 +701,9 @@ void QgsRasterLayerProperties::sync()
700701
*/
701702

702703
//these properties (layer name and label) are provided by the qgsmaplayer superclass
703-
leLayerSource->setText( mRasterLayer->source() );
704704
mLayerOrigNameLineEd->setText( mRasterLayer->originalName() );
705705
leDisplayName->setText( mRasterLayer->name() );
706706

707-
//display the raster dimensions and no data value
708-
if ( mRasterLayer->dataProvider()->capabilities() & QgsRasterDataProvider::Size )
709-
{
710-
lblColumns->setText( tr( "Columns: %1" ).arg( mRasterLayer->width() ) );
711-
lblRows->setText( tr( "Rows: %1" ).arg( mRasterLayer->height() ) );
712-
}
713-
else
714-
{
715-
// TODO: Account for fixedWidth and fixedHeight WMS layers
716-
lblColumns->setText( tr( "Columns: " ) + tr( "n/a" ) );
717-
lblRows->setText( tr( "Rows: " ) + tr( "n/a" ) );
718-
}
719-
720-
if ( mRasterLayer->dataProvider()->dataType( 1 ) == Qgis::ARGB32
721-
|| mRasterLayer->dataProvider()->dataType( 1 ) == Qgis::ARGB32_Premultiplied )
722-
{
723-
lblNoData->setText( tr( "No-Data Value: " ) + tr( "n/a" ) );
724-
}
725-
else
726-
{
727-
// TODO: all bands
728-
if ( mRasterLayer->dataProvider()->sourceHasNoDataValue( 1 ) )
729-
{
730-
lblNoData->setText( tr( "No-Data Value: %1" ).arg( mRasterLayer->dataProvider()->sourceNoDataValue( 1 ) ) );
731-
}
732-
else
733-
{
734-
lblNoData->setText( tr( "No-Data Value: " ) + tr( "n/a" ) );
735-
}
736-
}
737-
738707
//get the thumbnail for the layer
739708
QPixmap thumbnail = QPixmap::fromImage( mRasterLayer->previewAsImage( pixmapThumbnail->size() ) );
740709
pixmapThumbnail->setPixmap( thumbnail );
@@ -759,8 +728,10 @@ void QgsRasterLayerProperties::sync()
759728
*/
760729
//populate the metadata tab's text browser widget with gdal metadata info
761730
QString myStyle = QgsApplication::reportStyleSheet();
762-
txtbMetadata->document()->setDefaultStyleSheet( myStyle );
763-
txtbMetadata->setHtml( mRasterLayer->htmlMetadata() );
731+
myStyle.append( QStringLiteral( "body { margin: 10px; }\n " ) );
732+
teMetadataViewer->document()->setDefaultStyleSheet( myStyle );
733+
teMetadataViewer->setHtml( mRasterLayer->htmlMetadata() );
734+
mMetadataFilled = true;
764735

765736
// WMS Name as layer short name
766737
mLayerShortNameLineEdit->setText( mRasterLayer->shortName() );
@@ -968,19 +939,57 @@ void QgsRasterLayerProperties::apply()
968939
QPixmap thumbnail = QPixmap::fromImage( mRasterLayer->previewAsImage( pixmapThumbnail->size() ) );
969940
pixmapThumbnail->setPixmap( thumbnail );
970941

942+
if ( mRasterLayer->shortName() != mLayerShortNameLineEdit->text() )
943+
mMetadataFilled = false;
971944
mRasterLayer->setShortName( mLayerShortNameLineEdit->text() );
945+
946+
if ( mRasterLayer->title() != mLayerTitleLineEdit->text() )
947+
mMetadataFilled = false;
972948
mRasterLayer->setTitle( mLayerTitleLineEdit->text() );
949+
950+
if ( mRasterLayer->abstract() != mLayerAbstractTextEdit->toPlainText() )
951+
mMetadataFilled = false;
973952
mRasterLayer->setAbstract( mLayerAbstractTextEdit->toPlainText() );
953+
954+
if ( mRasterLayer->keywordList() != mLayerKeywordListLineEdit->text() )
955+
mMetadataFilled = false;
974956
mRasterLayer->setKeywordList( mLayerKeywordListLineEdit->text() );
957+
958+
if ( mRasterLayer->dataUrl() != mLayerDataUrlLineEdit->text() )
959+
mMetadataFilled = false;
975960
mRasterLayer->setDataUrl( mLayerDataUrlLineEdit->text() );
961+
962+
if ( mRasterLayer->dataUrlFormat() != mLayerDataUrlFormatComboBox->currentText() )
963+
mMetadataFilled = false;
976964
mRasterLayer->setDataUrlFormat( mLayerDataUrlFormatComboBox->currentText() );
965+
977966
//layer attribution and metadataUrl
967+
if ( mRasterLayer->attribution() != mLayerAttributionLineEdit->text() )
968+
mMetadataFilled = false;
978969
mRasterLayer->setAttribution( mLayerAttributionLineEdit->text() );
970+
971+
if ( mRasterLayer->attributionUrl() != mLayerAttributionUrlLineEdit->text() )
972+
mMetadataFilled = false;
979973
mRasterLayer->setAttributionUrl( mLayerAttributionUrlLineEdit->text() );
974+
975+
if ( mRasterLayer->metadataUrl() != mLayerMetadataUrlLineEdit->text() )
976+
mMetadataFilled = false;
980977
mRasterLayer->setMetadataUrl( mLayerMetadataUrlLineEdit->text() );
978+
979+
if ( mRasterLayer->metadataUrlType() != mLayerMetadataUrlTypeComboBox->currentText() )
980+
mMetadataFilled = false;
981981
mRasterLayer->setMetadataUrlType( mLayerMetadataUrlTypeComboBox->currentText() );
982+
983+
if ( mRasterLayer->metadataUrlFormat() != mLayerMetadataUrlFormatComboBox->currentText() )
984+
mMetadataFilled = false;
982985
mRasterLayer->setMetadataUrlFormat( mLayerMetadataUrlFormatComboBox->currentText() );
986+
987+
if ( mRasterLayer->legendUrl() != mLayerLegendUrlLineEdit->text() )
988+
mMetadataFilled = false;
983989
mRasterLayer->setLegendUrl( mLayerLegendUrlLineEdit->text() );
990+
991+
if ( mRasterLayer->legendUrlFormat() != mLayerLegendUrlFormatComboBox->currentText() )
992+
mMetadataFilled = false;
984993
mRasterLayer->setLegendUrlFormat( mLayerLegendUrlFormatComboBox->currentText() );
985994

986995
// update symbology
@@ -1107,8 +1116,8 @@ void QgsRasterLayerProperties::on_buttonBuildPyramids_clicked()
11071116

11081117
//populate the metadata tab's text browser widget with gdal metadata info
11091118
QString myStyle = QgsApplication::reportStyleSheet();
1110-
txtbMetadata->setHtml( mRasterLayer->htmlMetadata() );
1111-
txtbMetadata->document()->setDefaultStyleSheet( myStyle );
1119+
teMetadataViewer->setHtml( mRasterLayer->htmlMetadata() );
1120+
teMetadataViewer->document()->setDefaultStyleSheet( myStyle );
11121121
}
11131122

11141123
void QgsRasterLayerProperties::on_mRenderTypeComboBox_currentIndexChanged( int index )
@@ -1438,6 +1447,12 @@ void QgsRasterLayerProperties::mOptionsStackedWidget_CurrentChanged( int indx )
14381447
{
14391448
mHistogramWidget->setActive( false );
14401449
}
1450+
1451+
if ( indx == mOptStackedWidget->indexOf( mOptsPage_Information ) || !mMetadataFilled )
1452+
//set the metadata contents (which can be expensive)
1453+
teMetadataViewer->clear();
1454+
teMetadataViewer->setHtml( mRasterLayer->htmlMetadata() );
1455+
mMetadataFilled = true;
14411456
}
14421457

14431458
void QgsRasterLayerProperties::on_pbnImportTransparentPixelValues_clicked()

‎src/app/qgsrasterlayerproperties.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -192,5 +192,7 @@ class APP_EXPORT QgsRasterLayerProperties : public QgsOptionsDialogBase, private
192192
QgsMapLayerStyle mOldStyle;
193193

194194
bool mDisableRenderTypeComboBoxCurrentIndexChanged = false;
195+
196+
bool mMetadataFilled;
195197
};
196198
#endif

‎src/core/raster/qgsrasterlayer.cpp

Lines changed: 129 additions & 159 deletions
Original file line numberDiff line numberDiff line change
@@ -304,38 +304,84 @@ QgsLegendColorList QgsRasterLayer::legendSymbologyItems() const
304304

305305
QString QgsRasterLayer::htmlMetadata() const
306306
{
307-
QgsRasterDataProvider *provider = const_cast< QgsRasterDataProvider * >( mDataProvider );
308-
QString myMetadata;
309-
myMetadata += "<p class=\"glossy\">" + tr( "Driver" ) + "</p>\n";
310-
myMetadata += QLatin1String( "<p>" );
311-
myMetadata += mDataProvider->description();
312-
myMetadata += QLatin1String( "</p>\n" );
307+
QString myMetadata = QStringLiteral( "<html>\n<body>\n" );
313308

314-
// Insert provider-specific (e.g. WMS-specific) metadata
315-
// crashing
316-
myMetadata += mDataProvider->metadata();
309+
// Identification section
310+
myMetadata += QLatin1String( "<h1>" ) % tr( "Identification" ) % QLatin1String( "</h1>\n<hr>\n<table class=\"list-view\">\n" );
317311

318-
myMetadata += QLatin1String( "<p class=\"glossy\">" );
319-
myMetadata += tr( "No Data Value" );
320-
myMetadata += QLatin1String( "</p>\n" );
321-
myMetadata += QLatin1String( "<p>" );
322-
// TODO: all bands
323-
if ( mDataProvider->sourceHasNoDataValue( 1 ) )
324-
{
325-
myMetadata += QString::number( mDataProvider->sourceNoDataValue( 1 ) );
326-
}
312+
// ID
313+
myMetadata += QLatin1String( "<tr><td class=\"highlight\">" ) % tr( "ID" ) % QLatin1String( "</td><td>" ) % id() % QLatin1String( "</td></tr>\n" );
314+
315+
// original name
316+
myMetadata += QLatin1String( "<tr><td class=\"highlight\">" ) % tr( "Original" ) % QLatin1String( "</td><td>" ) % originalName() % QLatin1String( "</td></tr>\n" );
317+
318+
// name
319+
myMetadata += QLatin1String( "<tr><td class=\"highlight\">" ) % tr( "Name" ) % QLatin1String( "</td><td>" ) % name() % QLatin1String( "</td></tr>\n" );
320+
321+
// short
322+
myMetadata += QLatin1String( "<tr><td class=\"highlight\">" ) % tr( "Short" ) % QLatin1String( "</td><td>" ) % shortName() % QLatin1String( "</td></tr>\n" );
323+
324+
// title
325+
myMetadata += QLatin1String( "<tr><td class=\"highlight\">" ) % tr( "Title" ) % QLatin1String( "</td><td>" ) % title() % QLatin1String( "</td></tr>\n" );
326+
327+
// abstract
328+
myMetadata += QLatin1String( "<tr><td class=\"highlight\">" ) % tr( "Abstract" ) % QLatin1String( "</td><td>" ) % abstract() % QLatin1String( "</td></tr>\n" );
329+
330+
// keywords
331+
myMetadata += QLatin1String( "<tr><td class=\"highlight\">" ) % tr( "Keywords" ) % QLatin1String( "</td><td>" ) % keywordList() % QLatin1String( "</td></tr>\n" );
332+
333+
// lang, waiting for the proper metadata implementation QEP #91 Work package 2
334+
// myMetadata += QLatin1String( "<tr><td class=\"highlight\">" ) % tr( "Language" ) % QLatin1String( "</td><td>en-CA</td></tr>\n" );
335+
336+
// comment, not existing for rasters for now
337+
// myMetadata += QLatin1String( "<tr><td class=\"highlight\">" ) % tr( "Comment" ) % QLatin1String( "</td><td>" ) % dataComment() % QLatin1String( "</td></tr>\n" );
338+
339+
// date, waiting for the proper metadata implementation QEP #91 Work package 2
340+
// myMetadata += QLatin1String( "<tr><td class=\"highlight\">" ) % tr( "Date" ) % QLatin1String( "</td><td>28/03/17</td></tr>\n" );
341+
342+
// storage type
343+
myMetadata += QLatin1String( "<tr><td class=\"highlight\">" ) % tr( "Provider" ) % QLatin1String( "</td><td>" ) % providerType() % QLatin1String( "</td></tr>\n" );
344+
345+
// data source
346+
myMetadata += QLatin1String( "<tr><td class=\"highlight\">" ) % tr( "Source" ) % QLatin1String( "</td><td>" ) % publicSource() % QLatin1String( "</td></tr>\n" );
347+
348+
// Section spatial
349+
myMetadata += QLatin1String( "</table>\n<br><br><h1>" ) % tr( "Spatial" ) % QLatin1String( "</h1>\n<hr>\n<table class=\"list-view\">\n" );
350+
351+
// EPSG
352+
myMetadata += QLatin1String( "<tr><td class=\"highlight\">" ) % tr( "CRS" ) % QLatin1String( "</td><td>" ) % crs().authid() % QLatin1String( " - " );
353+
myMetadata += crs().description() % QLatin1String( " - " );
354+
if ( crs().isGeographic() )
355+
myMetadata += tr( "Geographic" );
327356
else
328-
{
329-
myMetadata += '*' + tr( "NoDataValue not set" ) + '*';
330-
}
331-
myMetadata += QLatin1String( "</p>\n" );
357+
myMetadata += tr( "Projected" );
358+
myMetadata += QLatin1String( "</td></tr>\n" );
359+
360+
// Extent
361+
myMetadata += QLatin1String( "<tr><td class=\"highlight\">" ) % tr( "Extent" ) % QLatin1String( "</td><td>" ) % extent().toString() % QLatin1String( "</td></tr>\n" );
362+
363+
// unit
364+
myMetadata += QLatin1String( "<tr><td class=\"highlight\">" ) % tr( "Unit" ) % QLatin1String( "</td><td>" ) % QgsUnitTypes::toString( crs().mapUnits() ) % QLatin1String( "</td></tr>\n" );
365+
366+
// Raster Width
367+
myMetadata += QLatin1String( "<tr><td class=\"highlight\">" ) % tr( "Width" ) % QLatin1String( "</td><td>" );
368+
if ( dataProvider()->capabilities() & QgsRasterDataProvider::Size )
369+
myMetadata += QString::number( width() );
370+
else
371+
myMetadata += tr( "n/a" );
372+
myMetadata += QLatin1String( "</td></tr>\n" );
332373

333-
myMetadata += QLatin1String( "</p>\n" );
334-
myMetadata += QLatin1String( "<p class=\"glossy\">" );
335-
myMetadata += tr( "Data Type" );
336-
myMetadata += QLatin1String( "</p>\n" );
337-
myMetadata += QLatin1String( "<p>" );
338-
//just use the first band
374+
// Raster height
375+
myMetadata += QLatin1String( "<tr><td class=\"highlight\">" ) % tr( "Height" ) % QLatin1String( "</td><td>" );
376+
if ( dataProvider()->capabilities() & QgsRasterDataProvider::Size )
377+
myMetadata += QString::number( height() );
378+
else
379+
myMetadata += tr( "n/a" );
380+
myMetadata += QLatin1String( "</td></tr>\n" );
381+
382+
// Data type
383+
myMetadata += QLatin1String( "<tr><td class=\"highlight\">" ) % tr( "Data type" ) % QLatin1String( "</td><td>" );
384+
// Just use the first band
339385
switch ( mDataProvider->sourceDataType( 1 ) )
340386
{
341387
case Qgis::Byte:
@@ -374,147 +420,71 @@ QString QgsRasterLayer::htmlMetadata() const
374420
default:
375421
myMetadata += tr( "Could not determine raster data type." );
376422
}
377-
myMetadata += QLatin1String( "</p>\n" );
378-
379-
myMetadata += QLatin1String( "<p class=\"glossy\">" );
380-
myMetadata += tr( "Pyramid overviews" );
381-
myMetadata += QLatin1String( "</p>\n" );
382-
myMetadata += QLatin1String( "<p>" );
383-
384-
myMetadata += QLatin1String( "<p class=\"glossy\">" );
385-
myMetadata += tr( "Layer Spatial Reference System" );
386-
myMetadata += QLatin1String( "</p>\n" );
387-
myMetadata += QLatin1String( "<p>" );
388-
myMetadata += crs().toProj4();
389-
myMetadata += QLatin1String( "</p>\n" );
390-
391-
myMetadata += QLatin1String( "<p class=\"glossy\">" );
392-
myMetadata += tr( "Layer Extent (layer original source projection)" );
393-
myMetadata += QLatin1String( "</p>\n" );
394-
myMetadata += QLatin1String( "<p>" );
395-
myMetadata += mDataProvider->extent().toString();
396-
myMetadata += QLatin1String( "</p>\n" );
397-
398-
// output coordinate system
399-
// TODO: this is not related to layer, to be removed? [MD]
400-
#if 0
401-
myMetadata += "<tr><td class=\"glossy\">";
402-
myMetadata += tr( "Project Spatial Reference System" );
403-
myMetadata += "</p>\n";
404-
myMetadata += "<p>";
405-
myMetadata += mCoordinateTransform->destCRS().toProj4();
406-
myMetadata += "</p>\n";
407-
#endif
423+
myMetadata += QLatin1String( "</td></tr>\n" );
408424

409-
//
410-
// Add the stats for each band to the output table
411-
//
412-
int myBandCountInt = bandCount();
413-
for ( int myIteratorInt = 1; myIteratorInt <= myBandCountInt; ++myIteratorInt )
414-
{
415-
QgsDebugMsgLevel( "Raster properties : checking if band " + QString::number( myIteratorInt ) + " has stats? ", 4 );
416-
//band name
417-
myMetadata += QLatin1String( "<p class=\"glossy\">\n" );
418-
myMetadata += tr( "Band" );
419-
myMetadata += QLatin1String( "</p>\n" );
420-
myMetadata += QLatin1String( "<p>" );
421-
myMetadata += bandName( myIteratorInt );
422-
myMetadata += QLatin1String( "</p>\n" );
423-
//band number
424-
myMetadata += QLatin1String( "<p>" );
425-
myMetadata += tr( "Band No" );
426-
myMetadata += QLatin1String( "</p>\n" );
427-
myMetadata += QLatin1String( "<p>\n" );
428-
myMetadata += QString::number( myIteratorInt );
429-
myMetadata += QLatin1String( "</p>\n" );
430-
431-
//check if full stats for this layer have already been collected
432-
if ( !provider->hasStatistics( myIteratorInt ) ) //not collected
425+
// Bands section
426+
myMetadata += QLatin1String( "</table>\n<br><br><h1>" ) % tr( "Bands" ) % QLatin1String( "</h1>\n<hr>\n<table class=\"list-view\">\n" );
427+
428+
// Band count
429+
myMetadata += QLatin1String( "<tr><td class=\"highlight\">" ) % tr( "Band count" ) % QLatin1String( "</td><td>" ) % QString::number( bandCount() ) % QLatin1String( "</td></tr>\n" );
430+
431+
// Band table
432+
myMetadata += "</table>\n<br><table width=\"100%\" class=\"tabular-view\">\n";
433+
myMetadata += "<tr><th>" % tr( "Number" ) % "</th><th>" % tr( "Band" ) % "</th><th>" % tr( "No-Data" ) % "</th><th>" % tr( "Min" ) % "</th><th>" % tr( "Max" ) % "</th></tr>\n";
434+
435+
QgsRasterDataProvider *provider = const_cast< QgsRasterDataProvider * >( mDataProvider );
436+
for ( int i = 1; i <= bandCount(); i++ )
437+
{
438+
QString rowClass = QString( "" );
439+
if ( i % 2 )
440+
rowClass = QString( "class=\"odd-row\"" );
441+
myMetadata += "<tr " % rowClass % "><td>" % QString::number( i ) % "</td><td>" % bandName( i ) % "</td><td>";
442+
443+
if ( dataProvider()->sourceHasNoDataValue( i ) )
444+
myMetadata += QString::number( dataProvider()->sourceNoDataValue( i ) );
445+
else
446+
myMetadata += tr( "n/a" );
447+
myMetadata += "</td>";
448+
449+
if ( provider->hasStatistics( i ) )
433450
{
434-
QgsDebugMsgLevel( ".....no", 4 );
435-
436-
myMetadata += QLatin1String( "<p>" );
437-
myMetadata += tr( "No Stats" );
438-
myMetadata += QLatin1String( "</p>\n" );
439-
myMetadata += QLatin1String( "<p>\n" );
440-
myMetadata += tr( "No stats collected yet" );
441-
myMetadata += QLatin1String( "</p>\n" );
451+
QgsRasterBandStats myRasterBandStats = provider->bandStatistics( i );
452+
myMetadata += "<td>" % QString::number( myRasterBandStats.minimumValue, 'f', 10 ) % "</td>";
453+
myMetadata += "<td>" % QString::number( myRasterBandStats.maximumValue, 'f', 10 ) % "</td>";
442454
}
443-
else // collected - show full detail
455+
else
444456
{
445-
QgsDebugMsgLevel( ".....yes", 4 );
446-
447-
QgsRasterBandStats myRasterBandStats = provider->bandStatistics( myIteratorInt );
448-
//Min Val
449-
myMetadata += QLatin1String( "<p>" );
450-
myMetadata += tr( "Min Val" );
451-
myMetadata += QLatin1String( "</p>\n" );
452-
myMetadata += QLatin1String( "<p>\n" );
453-
myMetadata += QString::number( myRasterBandStats.minimumValue, 'f', 10 );
454-
myMetadata += QLatin1String( "</p>\n" );
455-
456-
// Max Val
457-
myMetadata += QLatin1String( "<p>" );
458-
myMetadata += tr( "Max Val" );
459-
myMetadata += QLatin1String( "</p>\n" );
460-
myMetadata += QLatin1String( "<p>\n" );
461-
myMetadata += QString::number( myRasterBandStats.maximumValue, 'f', 10 );
462-
myMetadata += QLatin1String( "</p>\n" );
463-
464-
// Range
465-
myMetadata += QLatin1String( "<p>" );
466-
myMetadata += tr( "Range" );
467-
myMetadata += QLatin1String( "</p>\n" );
468-
myMetadata += QLatin1String( "<p>\n" );
469-
myMetadata += QString::number( myRasterBandStats.range, 'f', 10 );
470-
myMetadata += QLatin1String( "</p>\n" );
471-
472-
// Mean
473-
myMetadata += QLatin1String( "<p>" );
474-
myMetadata += tr( "Mean" );
475-
myMetadata += QLatin1String( "</p>\n" );
476-
myMetadata += QLatin1String( "<p>\n" );
477-
myMetadata += QString::number( myRasterBandStats.mean, 'f', 10 );
478-
myMetadata += QLatin1String( "</p>\n" );
479-
480-
//sum of squares
481-
myMetadata += QLatin1String( "<p>" );
482-
myMetadata += tr( "Sum of squares" );
483-
myMetadata += QLatin1String( "</p>\n" );
484-
myMetadata += QLatin1String( "<p>\n" );
485-
myMetadata += QString::number( myRasterBandStats.sumOfSquares, 'f', 10 );
486-
myMetadata += QLatin1String( "</p>\n" );
487-
488-
//standard deviation
489-
myMetadata += QLatin1String( "<p>" );
490-
myMetadata += tr( "Standard Deviation" );
491-
myMetadata += QLatin1String( "</p>\n" );
492-
myMetadata += QLatin1String( "<p>\n" );
493-
myMetadata += QString::number( myRasterBandStats.stdDev, 'f', 10 );
494-
myMetadata += QLatin1String( "</p>\n" );
495-
496-
//sum of all cells
497-
myMetadata += QLatin1String( "<p>" );
498-
myMetadata += tr( "Sum of all cells" );
499-
myMetadata += QLatin1String( "</p>\n" );
500-
myMetadata += QLatin1String( "<p>\n" );
501-
myMetadata += QString::number( myRasterBandStats.sum, 'f', 10 );
502-
myMetadata += QLatin1String( "</p>\n" );
503-
504-
//number of cells
505-
myMetadata += QLatin1String( "<p>" );
506-
myMetadata += tr( "Cell Count" );
507-
myMetadata += QLatin1String( "</p>\n" );
508-
myMetadata += QLatin1String( "<p>\n" );
509-
myMetadata += QString::number( myRasterBandStats.elementCount );
510-
myMetadata += QLatin1String( "</p>\n" );
457+
myMetadata += "<td>" % tr( "n/a" ) % "</td><td>" % tr( "n/a" ) % "</td>";
511458
}
459+
460+
myMetadata += "</tr>\n";
512461
}
513462

514-
QgsDebugMsgLevel( myMetadata, 4 );
463+
//close previous bands table and start references
464+
myMetadata += QLatin1String( "</table>\n<br><br><h1>" ) % tr( "References" ) % QLatin1String( "</h1>\n<hr>\n<table class=\"list-view\">\n" );
465+
466+
// data URL
467+
myMetadata += QLatin1String( "<tr><td class=\"highlight\">" ) % tr( "Data URL" ) % QLatin1String( "</td><td>" ) % dataUrl() % QLatin1String( "</td></tr>\n" );
468+
myMetadata += QLatin1String( "<tr><td class=\"highlight\">" ) % tr( "Data Format" ) % QLatin1String( "</td><td>" ) % dataUrlFormat() % QLatin1String( "</td></tr>\n" );
469+
470+
// attribution
471+
myMetadata += QLatin1String( "<tr><td class=\"highlight\">" ) % tr( "Attribution" ) % QLatin1String( "</td><td>" ) % attribution() % QLatin1String( "</td></tr>\n" );
472+
myMetadata += QLatin1String( "<tr><td class=\"highlight\">" ) % tr( "Attribution URL" ) % QLatin1String( "</td><td>" ) % attributionUrl() % QLatin1String( "</td></tr>\n" );
473+
474+
// metadata URL
475+
myMetadata += QLatin1String( "<tr><td class=\"highlight\">" ) % tr( "Metadata URL" ) % QLatin1String( "</td><td>" ) % metadataUrl() % QLatin1String( "</td></tr>\n" );
476+
myMetadata += QLatin1String( "<tr><td class=\"highlight\">" ) % tr( "Metadata Type" ) % QLatin1String( "</td><td>" ) % metadataUrlType() % QLatin1String( "</td></tr>\n" );
477+
myMetadata += QLatin1String( "<tr><td class=\"highlight\">" ) % tr( "Metadata Format" ) % QLatin1String( "</td><td>" ) % metadataUrlFormat() % QLatin1String( "</td></tr>\n" );
478+
479+
// legend URL
480+
myMetadata += QLatin1String( "<tr><td class=\"highlight\">" ) % tr( "Legend URL" ) % QLatin1String( "</td><td>" ) % legendUrl() % QLatin1String( "</td></tr>\n" );
481+
myMetadata += QLatin1String( "<tr><td class=\"highlight\">" ) % tr( "Legend Format" ) % QLatin1String( "</td><td>" ) % legendUrlFormat() % QLatin1String( "</td></tr>\n" );
482+
483+
myMetadata += QStringLiteral( "</table>\n</body>\n</html>\n" );
515484
return myMetadata;
516485
}
517486

487+
518488
/**
519489
* @param bandNumber the number of the band to use for generating a pixmap of the associated palette
520490
* @return a 100x100 pixel QPixmap of the bands palette

‎src/ui/qgsrasterlayerpropertiesbase.ui

Lines changed: 743 additions & 797 deletions
Large diffs are not rendered by default.

0 commit comments

Comments
 (0)
Please sign in to comment.