Skip to content

Commit f3f1c43

Browse files
committed
Resolved merge conflicts
2 parents dba6ba4 + 966c5c1 commit f3f1c43

File tree

61 files changed

+6688
-5359
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

61 files changed

+6688
-5359
lines changed

CMakeLists.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
SET(CPACK_PACKAGE_VERSION_MAJOR "1")
22
SET(CPACK_PACKAGE_VERSION_MINOR "9")
3-
SET(CPACK_PACKAGE_VERSION_PATCH "9")
3+
SET(CPACK_PACKAGE_VERSION_PATCH "0")
44
SET(COMPLETE_VERSION ${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH})
5-
SET(RELEASE_NAME "Master")
5+
SET(RELEASE_NAME "Lisboa")
66
SET(PROJECT_VERSION ${COMPLETE_VERSION})
77
PROJECT(qgis${PROJECT_VERSION})
88
IF (APPLE)

debian/changelog

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,12 @@
1-
qgis (1.9.90) UNRELEASED; urgency=low
1+
qgis (1.9.0) UNRELEASED; urgency=low
22

3-
* new development version 1.9.90 after branch of 1.8.0
3+
* new development version 1.9 after branch of 1.8
4+
5+
-- Jürgen E. Fischer <jef@norbit.de> Thu, 14 Jun 2012 10:56:27 +0200
6+
7+
qgis (1.8.0) UNRELEASED; urgency=low
8+
9+
* new development version 1.8 after branch
410
* include function help in package
511
* include heatmap plugin
612
* drop extra include path for QtWebkit on oneiric and natty
@@ -13,11 +19,6 @@ qgis (1.9.90) UNRELEASED; urgency=low
1319
* copyright & policy update (synced from debiangis)
1420
* run crssync in postinst
1521
* run tests with xvfb and upload to results to (c)dashboard
16-
17-
-- Jürgen E. Fischer <jef@norbit.de> Wed, 18 Apr 2012 20:50:12 +0200
18-
19-
qgis (1.8.0) UNRELEASED; urgency=low
20-
2122
* new development version 1.8 after branch
2223
* add qgis browser (qbrowser)
2324
* add zonal statistics plugins and globe plugin
@@ -30,7 +31,7 @@ qgis (1.8.0) UNRELEASED; urgency=low
3031
* build package with libspatialindex where available
3132
* drop wfsplugin & displaceplugin
3233

33-
-- Jürgen E. Fischer <jef@norbit.de> Fri, 28 Oct 2011 08:52:45 +0200
34+
-- Jürgen E. Fischer <jef@norbit.de> Thu, 14 Jun 2012 10:56:27 +0200
3435

3536
qgis (1.7.0) UNRELEASED; urgency=low
3637

python/core/core.sip

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,8 @@
6262
%Include qgsrasterdataprovider.sip
6363
%Include qgsrasterlayer.sip
6464
%Include qgsrasterpyramid.sip
65+
%Include qgsrasterrenderer.sip
66+
%Include qgsrasterresampler.sip
6567
%Include qgsrastershader.sip
6668
%Include qgsrastershaderfunction.sip
6769
%Include qgsrastertransparency.sip

python/core/qgsrasterlayer.sip

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -222,6 +222,10 @@ public:
222222
/** \brief Mutator for mUserDefinedRGBMinimumMaximum */
223223
void setUserDefinedRGBMinimumMaximum( bool theBool );
224224

225+
/**Set raster renderer. Takes ownership of the renderer object*/
226+
void setRenderer( QgsRasterRenderer* renderer );
227+
QgsRasterRenderer* renderer();
228+
225229
/** \brief Accessor to find out how many standard deviations are being plotted */
226230
double standardDeviations() const;
227231

src/app/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -394,7 +394,7 @@ INCLUDE_DIRECTORIES(
394394
../core
395395
../core/gps ../core/gps/qextserialport
396396
../core/composer ../core/raster ../core/renderer ../core/symbology ../core/symbology-ng
397-
../gui ../gui/symbology-ng ../gui/attributetable
397+
../gui ../gui/symbology-ng ../gui/attributetable ../gui/raster
398398
../plugins
399399
../python
400400
gps

src/app/qgisapp.cpp

Lines changed: 95 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -139,6 +139,7 @@
139139
#include "qgsmessageviewer.h"
140140
#include "qgsmimedatautils.h"
141141
#include "qgsmessagelog.h"
142+
#include "qgsmultibandcolorrenderer.h"
142143
#include "qgsnewvectorlayerdialog.h"
143144
#include "qgsoptions.h"
144145
#include "qgspastetransformations.h"
@@ -158,10 +159,12 @@
158159
#include "qgsrastercalcdialog.h"
159160
#include "qgsrasterlayer.h"
160161
#include "qgsrasterlayerproperties.h"
162+
#include "qgsrasterrenderer.h"
161163
#include "qgsrectangle.h"
162164
#include "qgsrenderer.h"
163165
#include "qgsscalecombobox.h"
164166
#include "qgsshortcutsmanager.h"
167+
#include "qgssinglebandgrayrenderer.h"
165168
#include "qgssnappingdialog.h"
166169
#include "qgssponsors.h"
167170
#include "qgstextannotationitem.h"
@@ -5097,6 +5100,11 @@ void QgisApp::options()
50975100
}
50985101

50995102
void QgisApp::fullHistogramStretch()
5103+
{
5104+
histogramStretch( false );
5105+
}
5106+
5107+
void QgisApp::histogramStretch( bool visibleAreaOnly )
51005108
{
51015109
QgsMapLayer * layer = mMapLegend->currentLayer();
51025110

@@ -5116,76 +5124,118 @@ void QgisApp::fullHistogramStretch()
51165124
tr( "To perform a full histogram stretch, you need to have a raster layer selected." ) );
51175125
return;
51185126
}
5119-
if ( rlayer->providerType() == "wms" )
5127+
5128+
QgsRasterDataProvider* provider = rlayer->dataProvider();
5129+
if ( !provider )
51205130
{
51215131
return;
51225132
}
5123-
if ( rlayer->drawingStyle() == QgsRasterLayer::SingleBandGray ||
5124-
rlayer->drawingStyle() == QgsRasterLayer::MultiBandSingleBandGray ||
5125-
rlayer->drawingStyle() == QgsRasterLayer::MultiBandColor
5126-
)
5133+
5134+
//get renderer
5135+
QgsRasterRenderer* renderer = rlayer->renderer();
5136+
if ( !renderer )
51275137
{
5128-
rlayer->setContrastEnhancementAlgorithm( "StretchToMinimumMaximum" );
5129-
rlayer->setMinimumMaximumUsingDataset();
5130-
rlayer->setCacheImage( NULL );
5131-
//refreshLayerSymbology( rlayer->getLayerID() );
5132-
mMapCanvas->refresh();
51335138
return;
51345139
}
5140+
5141+
//singleband gray <-> multiband color
5142+
if ( renderer->type() == "singlebandgray" )
5143+
{
5144+
QgsSingleBandGrayRenderer* grayRenderer = static_cast<QgsSingleBandGrayRenderer*>( renderer );
5145+
if ( !grayRenderer )
5146+
{
5147+
return;
5148+
}
5149+
5150+
//create new contrast enhancements
5151+
int grayBand = grayRenderer->grayBand();
5152+
if ( grayBand == -1 )
5153+
{
5154+
return;
5155+
}
5156+
5157+
QgsContrastEnhancement* e = rasterContrastEnhancement( rlayer, grayBand, visibleAreaOnly );
5158+
if ( !e )
5159+
{
5160+
return;
5161+
}
5162+
grayRenderer->setContrastEnhancement( e );
5163+
}
5164+
else if ( renderer->type() == "multibandcolor" )
5165+
{
5166+
QgsMultiBandColorRenderer* colorRenderer = static_cast<QgsMultiBandColorRenderer*>( renderer );
5167+
if ( !colorRenderer )
5168+
{
5169+
return;
5170+
}
5171+
5172+
QgsContrastEnhancement* redEnhancement = rasterContrastEnhancement( rlayer, colorRenderer->redBand(), visibleAreaOnly );
5173+
if ( redEnhancement )
5174+
{
5175+
colorRenderer->setRedContrastEnhancement( redEnhancement );
5176+
}
5177+
QgsContrastEnhancement* greenEnhancement = rasterContrastEnhancement( rlayer, colorRenderer->greenBand(), visibleAreaOnly );
5178+
if ( greenEnhancement )
5179+
{
5180+
colorRenderer->setGreenContrastEnhancement( greenEnhancement );
5181+
}
5182+
QgsContrastEnhancement* blueEnhancement = rasterContrastEnhancement( rlayer, colorRenderer->blueBand(), visibleAreaOnly );
5183+
if ( blueEnhancement )
5184+
{
5185+
colorRenderer->setBlueContrastEnhancement( blueEnhancement );
5186+
}
5187+
}
51355188
else
51365189
{
5137-
QMessageBox::information( this,
5138-
tr( "No Valid Raster Layer Selected" ),
5139-
tr( "To perform a local histogram stretch, you need to have a grayscale "
5140-
"or multiband (multiband single layer, singleband grayscale or multiband color) "
5141-
" raster layer selected." ) );
51425190
return;
51435191
}
5192+
5193+
mMapCanvas->refresh();
51445194
}
51455195

5146-
void QgisApp::localHistogramStretch()
5196+
QgsContrastEnhancement* QgisApp::rasterContrastEnhancement( QgsRasterLayer* rlayer, int band,
5197+
bool visibleAreaOnly ) const
51475198
{
5148-
QgsMapLayer * layer = mMapLegend->currentLayer();
5149-
5150-
if ( !layer )
5199+
if ( !rlayer || band == -1 )
51515200
{
5152-
QMessageBox::information( this,
5153-
tr( "No Layer Selected" ),
5154-
tr( "To perform a local histogram stretch, you need to have a raster layer selected." ) );
5155-
return;
5201+
return 0;
51565202
}
51575203

5158-
QgsRasterLayer* rlayer = qobject_cast<QgsRasterLayer *>( layer );
5159-
if ( !rlayer )
5204+
QgsRasterDataProvider* provider = rlayer->dataProvider();
5205+
if ( !provider )
51605206
{
5161-
QMessageBox::information( this,
5162-
tr( "No Raster Layer Selected" ),
5163-
tr( "To perform a local histogram stretch, you need to have a raster layer selected." ) );
5164-
return;
5207+
return 0;
51655208
}
5166-
if ( rlayer->drawingStyle() == QgsRasterLayer::SingleBandGray ||
5167-
rlayer->drawingStyle() == QgsRasterLayer::MultiBandSingleBandGray ||
5168-
rlayer->drawingStyle() == QgsRasterLayer::MultiBandColor
5169-
)
5209+
5210+
QgsContrastEnhancement* e = new QgsContrastEnhancement(( QgsContrastEnhancement::QgsRasterDataType )(
5211+
provider->dataType( band ) ) );
5212+
double minValue = 0;
5213+
double maxValue = 0;
5214+
5215+
if ( visibleAreaOnly )
51705216
{
5171-
rlayer->setContrastEnhancementAlgorithm( "StretchToMinimumMaximum" );
5172-
rlayer->setMinimumMaximumUsingLastExtent();
5173-
rlayer->setCacheImage( NULL );
5174-
//refreshLayerSymbology( rlayer->getLayerID() );
5175-
mMapCanvas->refresh();
5176-
return;
5217+
double minMax[2];
5218+
rlayer->computeMinimumMaximumFromLastExtent( band, minMax );
5219+
minValue = minMax[0];
5220+
maxValue = minMax[1];
51775221
}
51785222
else
51795223
{
5180-
QMessageBox::information( this,
5181-
tr( "No Valid Raster Layer Selected" ),
5182-
tr( "To perform a local histogram stretch, you need to have a grayscale "
5183-
"or multiband (multiband single layer, singleband grayscale or multiband color) "
5184-
" raster layer selected." ) );
5185-
return;
5224+
QgsRasterBandStats rasterBandStats = rlayer->bandStatistics( band );
5225+
minValue = rasterBandStats.minimumValue;
5226+
maxValue = rasterBandStats.maximumValue;
51865227
}
5228+
5229+
e->setMinimumValue( minValue );
5230+
e->setMaximumValue( maxValue );
5231+
e->setContrastEnhancementAlgorithm( QgsContrastEnhancement::StretchToMinimumMaximum );
5232+
return e;
51875233
}
51885234

5235+
void QgisApp::localHistogramStretch()
5236+
{
5237+
histogramStretch( true );
5238+
}
51895239

51905240
void QgisApp::helpContents()
51915241
{

src/app/qgisapp.h

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ class QgsAnnotationItem;
4141
class QgsClipboard;
4242
class QgsComposer;
4343
class QgsComposerView;
44+
class QgsContrastEnhancement;
4445
class QgsGeometry;
4546
class QgsFeature;
4647

@@ -971,6 +972,12 @@ class QgisApp : public QMainWindow, private Ui::MainWindow
971972
void updateCRSStatusBar();
972973
void createDecorations();
973974

975+
/**Do histogram stretch for singleband gray / multiband color rasters*/
976+
void histogramStretch( bool visibleAreaOnly = false );
977+
/**Create raster enhancement object for a raster band*/
978+
QgsContrastEnhancement* rasterContrastEnhancement( QgsRasterLayer* rlayer, int band,
979+
bool visibleAreaOnly = false ) const;
980+
974981
// actions for menus and toolbars -----------------
975982

976983
#ifdef Q_WS_MAC

0 commit comments

Comments
 (0)