mirror of
https://github.com/qgis/QGIS.git
synced 2025-02-25 00:58:06 -05:00
pseudocolor renderer GUI min/max support
This commit is contained in:
parent
b331d45e5c
commit
d9c5a68d80
@ -20,5 +20,5 @@ class QgsSingleBandGrayRendererWidget: QgsRasterRendererWidget
|
||||
int selectedBand( int index = 0 );
|
||||
|
||||
public slots:
|
||||
void loadMinMax( int theBandNo, double theMin, double theMax );
|
||||
void loadMinMax( int theBandNo, double theMin, double theMax, int theOrigin );
|
||||
};
|
||||
|
@ -26,11 +26,14 @@
|
||||
#include "qgsbilinearrasterresampler.h"
|
||||
#include "qgscubicrasterresampler.h"
|
||||
|
||||
#include <QCoreApplication>
|
||||
#include <QDomDocument>
|
||||
#include <QDomElement>
|
||||
#include <QImage>
|
||||
#include <QPainter>
|
||||
|
||||
#define tr( sourceText ) QCoreApplication::translate ( "QgsRasterRenderer", sourceText )
|
||||
|
||||
QgsRasterRenderer::QgsRasterRenderer( QgsRasterInterface* input, const QString& type )
|
||||
: QgsRasterInterface( input )
|
||||
, mType( type ), mOpacity( 1.0 ), mRasterTransparency( 0 )
|
||||
@ -140,3 +143,146 @@ void QgsRasterRenderer::readXML( const QDomElement& rendererElem )
|
||||
mRasterTransparency->readXML( rasterTransparencyElem );
|
||||
}
|
||||
}
|
||||
|
||||
QString QgsRasterRenderer::minMaxOriginName( int theOrigin )
|
||||
{
|
||||
if ( theOrigin == MinMaxUnknown )
|
||||
{
|
||||
return "Unknown";
|
||||
}
|
||||
else if ( theOrigin == MinMaxUser )
|
||||
{
|
||||
return "User";
|
||||
}
|
||||
|
||||
QString name;
|
||||
if ( theOrigin & MinMaxMinMax )
|
||||
{
|
||||
name += "MinMax";
|
||||
}
|
||||
else if ( theOrigin & MinMaxCumulativeCut )
|
||||
{
|
||||
name += "CumulativeCut";
|
||||
}
|
||||
else if ( theOrigin & MinMaxStdDev )
|
||||
{
|
||||
name += "StdDev";
|
||||
}
|
||||
|
||||
if ( theOrigin & MinMaxFullExtent )
|
||||
{
|
||||
name += "FullExtent";
|
||||
}
|
||||
else if ( theOrigin & MinMaxSubExtent )
|
||||
{
|
||||
name += "SubExtent";
|
||||
}
|
||||
|
||||
if ( theOrigin & MinMaxEstimated )
|
||||
{
|
||||
name += "Estimated";
|
||||
}
|
||||
else if ( theOrigin & MinMaxExact )
|
||||
{
|
||||
name += "Exact";
|
||||
}
|
||||
return name;
|
||||
}
|
||||
|
||||
QString QgsRasterRenderer::minMaxOriginLabel( int theOrigin )
|
||||
{
|
||||
if ( theOrigin == MinMaxUnknown )
|
||||
{
|
||||
return tr( "Unknown" );
|
||||
}
|
||||
else if ( theOrigin == MinMaxUser )
|
||||
{
|
||||
return tr( "User defined" );
|
||||
}
|
||||
|
||||
QString name;
|
||||
if ( theOrigin & MinMaxEstimated )
|
||||
{
|
||||
name += tr( "Estimated" );
|
||||
}
|
||||
else if ( theOrigin & MinMaxExact )
|
||||
{
|
||||
name += tr( "Exact" );
|
||||
}
|
||||
|
||||
name += " ";
|
||||
|
||||
if ( theOrigin & MinMaxMinMax )
|
||||
{
|
||||
name += tr( "min / max" );
|
||||
}
|
||||
else if ( theOrigin & MinMaxCumulativeCut )
|
||||
{
|
||||
name += "cumulative cut";
|
||||
}
|
||||
else if ( theOrigin & MinMaxStdDev )
|
||||
{
|
||||
name += "standard deviation";
|
||||
}
|
||||
|
||||
name += " " + tr( " of " ) + " ";
|
||||
|
||||
if ( theOrigin & MinMaxFullExtent )
|
||||
{
|
||||
name += "full extent";
|
||||
}
|
||||
else if ( theOrigin & MinMaxSubExtent )
|
||||
{
|
||||
name += "sub extent";
|
||||
}
|
||||
|
||||
name += ".";
|
||||
|
||||
return name;
|
||||
}
|
||||
|
||||
int QgsRasterRenderer::minMaxOriginFromName( QString theName )
|
||||
{
|
||||
if ( theName.contains( "Unknown" ) )
|
||||
{
|
||||
return MinMaxUnknown;
|
||||
}
|
||||
else if ( theName.contains( "User" ) )
|
||||
{
|
||||
return MinMaxUser;
|
||||
}
|
||||
|
||||
int origin = 0;
|
||||
|
||||
if ( theName.contains( "MinMax" ) )
|
||||
{
|
||||
origin |= MinMaxMinMax;
|
||||
}
|
||||
else if ( theName.contains( "CumulativeCut" ) )
|
||||
{
|
||||
origin |= MinMaxCumulativeCut;
|
||||
}
|
||||
else if ( theName.contains( "StdDev" ) )
|
||||
{
|
||||
origin |= MinMaxStdDev;
|
||||
}
|
||||
|
||||
if ( theName.contains( "FullExtent" ) )
|
||||
{
|
||||
origin |= MinMaxFullExtent;
|
||||
}
|
||||
else if ( theName.contains( "SubExtent" ) )
|
||||
{
|
||||
origin |= MinMaxSubExtent;
|
||||
}
|
||||
|
||||
if ( theName.contains( "Estimated" ) )
|
||||
{
|
||||
origin |= MinMaxEstimated;
|
||||
}
|
||||
else if ( theName.contains( "Exact" ) )
|
||||
{
|
||||
origin |= MinMaxExact;
|
||||
}
|
||||
return origin;
|
||||
}
|
||||
|
@ -39,6 +39,23 @@ class QDomElement;
|
||||
class CORE_EXPORT QgsRasterRenderer : public QgsRasterInterface
|
||||
{
|
||||
public:
|
||||
// Origin of min / max values
|
||||
enum MinMaxOrigin
|
||||
{
|
||||
MinMaxUnknown = 0,
|
||||
MinMaxUser = 1, // entered by user
|
||||
// method
|
||||
MinMaxMinMax = 1 << 1,
|
||||
MinMaxCumulativeCut = 1 << 2,
|
||||
MinMaxStdDev = 1 << 3,
|
||||
// Extent
|
||||
MinMaxFullExtent = 1 << 4,
|
||||
MinMaxSubExtent = 1 << 5,
|
||||
// Precision
|
||||
MinMaxEstimated = 1 << 6,
|
||||
MinMaxExact = 1 << 7
|
||||
};
|
||||
|
||||
QgsRasterRenderer( QgsRasterInterface* input = 0, const QString& type = "" );
|
||||
virtual ~QgsRasterRenderer();
|
||||
|
||||
@ -82,6 +99,10 @@ class CORE_EXPORT QgsRasterRenderer : public QgsRasterInterface
|
||||
/**Returns a list of band numbers used by the renderer*/
|
||||
virtual QList<int> usesBands() const { return QList<int>(); }
|
||||
|
||||
static QString minMaxOriginName( int theOrigin );
|
||||
static QString minMaxOriginLabel( int theOrigin );
|
||||
static int minMaxOriginFromName( QString theName );
|
||||
|
||||
protected:
|
||||
|
||||
/**Write upper class info into rasterrenderer element (called by writeXML method of subclasses)*/
|
||||
|
@ -24,7 +24,12 @@
|
||||
#include <QImage>
|
||||
|
||||
QgsSingleBandPseudoColorRenderer::QgsSingleBandPseudoColorRenderer( QgsRasterInterface* input, int band, QgsRasterShader* shader ):
|
||||
QgsRasterRenderer( input, "singlebandpseudocolor" ), mShader( shader ), mBand( band )
|
||||
QgsRasterRenderer( input, "singlebandpseudocolor" )
|
||||
, mShader( shader )
|
||||
, mBand( band )
|
||||
, mClassificationMin( std::numeric_limits<double>::quiet_NaN() )
|
||||
, mClassificationMax( std::numeric_limits<double>::quiet_NaN() )
|
||||
, mClassificationMinMaxOrigin( QgsRasterRenderer::MinMaxUnknown )
|
||||
{
|
||||
}
|
||||
|
||||
@ -85,8 +90,16 @@ QgsRasterRenderer* QgsSingleBandPseudoColorRenderer::create( const QDomElement&
|
||||
shader = new QgsRasterShader();
|
||||
shader->readXML( rasterShaderElem );
|
||||
}
|
||||
QgsRasterRenderer* r = new QgsSingleBandPseudoColorRenderer( input, band, shader );
|
||||
|
||||
//QgsRasterRenderer* r = new QgsSingleBandPseudoColorRenderer( input, band, shader );
|
||||
QgsSingleBandPseudoColorRenderer* r = new QgsSingleBandPseudoColorRenderer( input, band, shader );
|
||||
r->readXML( elem );
|
||||
|
||||
// TODO: add _readXML in superclass?
|
||||
r->setClassificationMin( elem.attribute( "classificationMin", "NaN" ).toDouble() );
|
||||
r->setClassificationMax( elem.attribute( "classificationMax", "NaN" ).toDouble() );
|
||||
r->setClassificationMinMaxOrigin( QgsRasterRenderer::minMaxOriginFromName( elem.attribute( "classificationMinMaxOrigin", "Unknown" ) ) );
|
||||
|
||||
return r;
|
||||
}
|
||||
|
||||
@ -210,6 +223,10 @@ void QgsSingleBandPseudoColorRenderer::writeXML( QDomDocument& doc, QDomElement&
|
||||
{
|
||||
mShader->writeXML( doc, rasterRendererElem ); //todo: include color ramp items directly in this renderer
|
||||
}
|
||||
rasterRendererElem.setAttribute( "classificationMin", QString::number( mClassificationMin ) );
|
||||
rasterRendererElem.setAttribute( "classificationMax", QString::number( mClassificationMax ) );
|
||||
rasterRendererElem.setAttribute( "classificationMinMaxOrigin", QgsRasterRenderer::minMaxOriginName( mClassificationMinMaxOrigin ) );
|
||||
|
||||
parentElem.appendChild( rasterRendererElem );
|
||||
}
|
||||
|
||||
|
@ -49,9 +49,23 @@ class CORE_EXPORT QgsSingleBandPseudoColorRenderer: public QgsRasterRenderer
|
||||
|
||||
QList<int> usesBands() const;
|
||||
|
||||
double classificationMin() const { return mClassificationMin; }
|
||||
double classificationMax() const { return mClassificationMax; }
|
||||
void setClassificationMin( double min ) { mClassificationMin = min; }
|
||||
void setClassificationMax( double max ) { mClassificationMax = max; }
|
||||
int classificationMinMaxOrigin() const { return mClassificationMinMaxOrigin; }
|
||||
void setClassificationMinMaxOrigin( int origin ) { mClassificationMinMaxOrigin = origin; }
|
||||
|
||||
private:
|
||||
QgsRasterShader* mShader;
|
||||
int mBand;
|
||||
|
||||
// Minimum and maximum values used for automatic classification, these
|
||||
// values are not used by renderer in rendering process
|
||||
double mClassificationMin;
|
||||
double mClassificationMax;
|
||||
|
||||
int mClassificationMinMaxOrigin;
|
||||
};
|
||||
|
||||
#endif // QGSSINGLEBANDPSEUDOCOLORRENDERER_H
|
||||
|
@ -44,6 +44,7 @@ void QgsRasterMinMaxWidget::on_mLoadPushButton_clicked()
|
||||
|
||||
foreach ( int myBand, mBands )
|
||||
{
|
||||
int origin = QgsRasterRenderer::MinMaxUnknown;
|
||||
QgsDebugMsg( QString( "myBand = %1" ).arg( myBand ) );
|
||||
if ( myBand < 1 || myBand > mLayer->dataProvider()->bandCount() )
|
||||
{
|
||||
@ -56,6 +57,11 @@ void QgsRasterMinMaxWidget::on_mLoadPushButton_clicked()
|
||||
if ( mCurrentExtentRadioButton->isChecked() )
|
||||
{
|
||||
myExtent = mExtent; // current
|
||||
origin |= QgsRasterRenderer::MinMaxSubExtent;
|
||||
}
|
||||
else
|
||||
{
|
||||
origin |= QgsRasterRenderer::MinMaxFullExtent;
|
||||
}
|
||||
QgsDebugMsg( QString( "myExtent.isEmpty() = %1" ).arg( myExtent.isEmpty() ) );
|
||||
|
||||
@ -63,6 +69,11 @@ void QgsRasterMinMaxWidget::on_mLoadPushButton_clicked()
|
||||
if ( mEstimateRadioButton->isChecked() )
|
||||
{
|
||||
mySampleSize = 250000;
|
||||
origin |= QgsRasterRenderer::MinMaxEstimated;
|
||||
}
|
||||
else
|
||||
{
|
||||
origin |= QgsRasterRenderer::MinMaxExact;
|
||||
}
|
||||
|
||||
if ( mCumulativeCutRadioButton->isChecked() )
|
||||
@ -70,6 +81,7 @@ void QgsRasterMinMaxWidget::on_mLoadPushButton_clicked()
|
||||
double myLower = mCumulativeCutLowerDoubleSpinBox->value() / 100.0;
|
||||
double myUpper = mCumulativeCutUpperDoubleSpinBox->value() / 100.0;
|
||||
mLayer->dataProvider()->cumulativeCut( myBand, myLower, myUpper, myMin, myMax, myExtent, mySampleSize );
|
||||
origin |= QgsRasterRenderer::MinMaxCumulativeCut;
|
||||
}
|
||||
else if ( mMinMaxRadioButton->isChecked() )
|
||||
{
|
||||
@ -77,6 +89,7 @@ void QgsRasterMinMaxWidget::on_mLoadPushButton_clicked()
|
||||
QgsRasterBandStats myRasterBandStats = mLayer->dataProvider()->bandStatistics( myBand, QgsRasterBandStats::Min | QgsRasterBandStats::Max, myExtent, mySampleSize );
|
||||
myMin = myRasterBandStats.minimumValue;
|
||||
myMax = myRasterBandStats.maximumValue;
|
||||
origin |= QgsRasterRenderer::MinMaxMinMax;
|
||||
}
|
||||
else if ( mStdDevRadioButton->isChecked() )
|
||||
{
|
||||
@ -84,9 +97,9 @@ void QgsRasterMinMaxWidget::on_mLoadPushButton_clicked()
|
||||
double myStdDev = mStdDevSpinBox->value();
|
||||
myMin = myRasterBandStats.mean - ( myStdDev * myRasterBandStats.stdDev );
|
||||
myMax = myRasterBandStats.mean + ( myStdDev * myRasterBandStats.stdDev );
|
||||
|
||||
origin |= QgsRasterRenderer::MinMaxStdDev;
|
||||
}
|
||||
|
||||
emit load( myBand, myMin, myMax );
|
||||
emit load( myBand, myMin, myMax, origin );
|
||||
}
|
||||
}
|
||||
|
@ -34,7 +34,7 @@ class GUI_EXPORT QgsRasterMinMaxWidget: public QWidget, private Ui::QgsRasterMin
|
||||
void setBands( const QList<int> & theBands ) { mBands = theBands; }
|
||||
|
||||
signals:
|
||||
void load( int theBandNo, double theMin, double theMax );
|
||||
void load( int theBandNo, double theMin, double theMax, int origin );
|
||||
|
||||
private slots:
|
||||
void on_mLoadPushButton_clicked();
|
||||
|
@ -87,8 +87,9 @@ QgsRasterRenderer* QgsSingleBandGrayRendererWidget::renderer()
|
||||
return renderer;
|
||||
}
|
||||
|
||||
void QgsSingleBandGrayRendererWidget::loadMinMax( int theBandNo, double theMin, double theMax )
|
||||
void QgsSingleBandGrayRendererWidget::loadMinMax( int theBandNo, double theMin, double theMax, int theOrigin )
|
||||
{
|
||||
Q_UNUSED( theOrigin );
|
||||
QgsDebugMsg( QString( "theBandNo = %1 theMin = %2 theMax = %3" ).arg( theBandNo ).arg( theMin ).arg( theMax ) );
|
||||
|
||||
if ( qIsNaN( theMin ) )
|
||||
|
@ -42,7 +42,7 @@ class GUI_EXPORT QgsSingleBandGrayRendererWidget: public QgsRasterRendererWidget
|
||||
int selectedBand( int index = 0 ) { Q_UNUSED( index ); return mGrayBandComboBox->currentIndex() + 1; }
|
||||
|
||||
public slots:
|
||||
void loadMinMax( int theBandNo, double theMin, double theMax );
|
||||
void loadMinMax( int theBandNo, double theMin, double theMax, int theOrigin );
|
||||
|
||||
private slots:
|
||||
void on_mGrayBandComboBox_currentIndexChanged( int index );
|
||||
|
@ -34,6 +34,8 @@ QgsSingleBandPseudoColorRendererWidget::QgsSingleBandPseudoColorRendererWidget(
|
||||
{
|
||||
setupUi( this );
|
||||
|
||||
mColormapTreeWidget->setColumnWidth( 1, 50 );
|
||||
|
||||
mColorRampComboBox->populate( QgsStyleV2::defaultStyle() );
|
||||
|
||||
if ( !mRasterLayer )
|
||||
@ -47,6 +49,20 @@ QgsSingleBandPseudoColorRendererWidget::QgsSingleBandPseudoColorRendererWidget(
|
||||
return;
|
||||
}
|
||||
|
||||
// Must be before adding items to mBandComboBox (signal)
|
||||
mMinLineEdit->setValidator( new QDoubleValidator( mMinLineEdit ) );
|
||||
mMaxLineEdit->setValidator( new QDoubleValidator( mMaxLineEdit ) );
|
||||
|
||||
mMinMaxWidget = new QgsRasterMinMaxWidget( layer, this );
|
||||
mMinMaxWidget->setExtent( extent );
|
||||
QHBoxLayout *layout = new QHBoxLayout();
|
||||
layout->setContentsMargins( 0, 0, 0, 0 );
|
||||
mMinMaxContainerWidget->setLayout( layout );
|
||||
layout->addWidget( mMinMaxWidget );
|
||||
connect( mMinMaxWidget, SIGNAL( load( int, double, double, int ) ),
|
||||
this, SLOT( loadMinMax( int, double, double, int ) ) );
|
||||
|
||||
|
||||
//fill available bands into combo box
|
||||
int nBands = provider->bandCount();
|
||||
for ( int i = 1; i <= nBands; ++i ) //band numbering seem to start at 1
|
||||
@ -61,6 +77,8 @@ QgsSingleBandPseudoColorRendererWidget::QgsSingleBandPseudoColorRendererWidget(
|
||||
mClassificationModeComboBox->addItem( tr( "Equal interval" ) );
|
||||
//quantile would be nice as well
|
||||
|
||||
mNumberOfEntriesSpinBox->setValue( 5 ); // some default
|
||||
|
||||
setFromRenderer( layer->renderer() );
|
||||
}
|
||||
|
||||
@ -109,7 +127,12 @@ QgsRasterRenderer* QgsSingleBandPseudoColorRendererWidget::renderer()
|
||||
rasterShader->setRasterShaderFunction( colorRampShader );
|
||||
|
||||
int bandNumber = mBandComboBox->itemData( mBandComboBox->currentIndex() ).toInt();
|
||||
return new QgsSingleBandPseudoColorRenderer( mRasterLayer->dataProvider(), bandNumber, rasterShader );
|
||||
QgsSingleBandPseudoColorRenderer *renderer = new QgsSingleBandPseudoColorRenderer( mRasterLayer->dataProvider(), bandNumber, rasterShader );
|
||||
|
||||
renderer->setClassificationMin( lineEditValue( mMinLineEdit ) );
|
||||
renderer->setClassificationMax( lineEditValue( mMaxLineEdit ) );
|
||||
renderer->setClassificationMinMaxOrigin( mMinMaxOrigin );
|
||||
return renderer;
|
||||
}
|
||||
|
||||
void QgsSingleBandPseudoColorRendererWidget::on_mAddEntryButton_clicked()
|
||||
@ -190,27 +213,32 @@ void QgsSingleBandPseudoColorRendererWidget::on_mClassifyButton_clicked()
|
||||
return;
|
||||
}
|
||||
|
||||
int bandNr = mBandComboBox->itemData( bandComboIndex ).toInt();
|
||||
QgsRasterBandStats myRasterBandStats = mRasterLayer->dataProvider()->bandStatistics( bandNr );
|
||||
//int bandNr = mBandComboBox->itemData( bandComboIndex ).toInt();
|
||||
//QgsRasterBandStats myRasterBandStats = mRasterLayer->dataProvider()->bandStatistics( bandNr );
|
||||
int numberOfEntries = mNumberOfEntriesSpinBox->value();
|
||||
|
||||
QList<double> entryValues;
|
||||
QList<QColor> entryColors;
|
||||
|
||||
double min = lineEditValue( mMinLineEdit );
|
||||
double max = lineEditValue( mMaxLineEdit );
|
||||
|
||||
if ( mClassificationModeComboBox->currentText() == tr( "Equal interval" ) )
|
||||
{
|
||||
double currentValue = myRasterBandStats.minimumValue;
|
||||
//double currentValue = myRasterBandStats.minimumValue;
|
||||
double currentValue = min;
|
||||
double intervalDiff;
|
||||
if ( numberOfEntries > 1 )
|
||||
{
|
||||
//because the highest value is also an entry, there are (numberOfEntries - 1)
|
||||
//intervals
|
||||
intervalDiff = ( myRasterBandStats.maximumValue - myRasterBandStats.minimumValue ) /
|
||||
( numberOfEntries - 1 );
|
||||
//intervalDiff = ( myRasterBandStats.maximumValue - myRasterBandStats.minimumValue ) /
|
||||
intervalDiff = ( max - min ) / ( numberOfEntries - 1 );
|
||||
}
|
||||
else
|
||||
{
|
||||
intervalDiff = myRasterBandStats.maximumValue - myRasterBandStats.minimumValue;
|
||||
//intervalDiff = myRasterBandStats.maximumValue - myRasterBandStats.minimumValue;
|
||||
intervalDiff = max - min;
|
||||
}
|
||||
|
||||
for ( int i = 0; i < numberOfEntries; ++i )
|
||||
@ -515,5 +543,78 @@ void QgsSingleBandPseudoColorRendererWidget::setFromRenderer( const QgsRasterRen
|
||||
}
|
||||
}
|
||||
}
|
||||
setLineEditValue( mMinLineEdit, pr->classificationMin() );
|
||||
setLineEditValue( mMaxLineEdit, pr->classificationMax() );
|
||||
mMinMaxOrigin = pr->classificationMinMaxOrigin();
|
||||
showMinMaxOrigin();
|
||||
}
|
||||
}
|
||||
|
||||
void QgsSingleBandPseudoColorRendererWidget::on_mBandComboBox_currentIndexChanged( int index )
|
||||
{
|
||||
QList<int> myBands;
|
||||
myBands.append( mBandComboBox->itemData( index ).toInt() );
|
||||
mMinMaxWidget->setBands( myBands );
|
||||
}
|
||||
|
||||
void QgsSingleBandPseudoColorRendererWidget::loadMinMax( int theBandNo, double theMin, double theMax, int theOrigin )
|
||||
{
|
||||
QgsDebugMsg( QString( "theBandNo = %1 theMin = %2 theMax = %3" ).arg( theBandNo ).arg( theMin ).arg( theMax ) );
|
||||
|
||||
if ( qIsNaN( theMin ) )
|
||||
{
|
||||
mMinLineEdit->clear();
|
||||
}
|
||||
else
|
||||
{
|
||||
mMinLineEdit->setText( QString::number( theMin ) );
|
||||
}
|
||||
|
||||
if ( qIsNaN( theMax ) )
|
||||
{
|
||||
mMaxLineEdit->clear();
|
||||
}
|
||||
else
|
||||
{
|
||||
mMaxLineEdit->setText( QString::number( theMax ) );
|
||||
}
|
||||
|
||||
mMinMaxOrigin = theOrigin;
|
||||
showMinMaxOrigin();
|
||||
}
|
||||
|
||||
void QgsSingleBandPseudoColorRendererWidget::showMinMaxOrigin()
|
||||
{
|
||||
mMinMaxOriginLabel->setText( QgsRasterRenderer::minMaxOriginLabel( mMinMaxOrigin ) );
|
||||
}
|
||||
|
||||
void QgsSingleBandPseudoColorRendererWidget::setLineEditValue( QLineEdit * theLineEdit, double theValue )
|
||||
{
|
||||
QString s;
|
||||
if ( !qIsNaN( theValue ) )
|
||||
{
|
||||
s = QString::number( theValue );
|
||||
}
|
||||
theLineEdit->setText( s );
|
||||
}
|
||||
|
||||
double QgsSingleBandPseudoColorRendererWidget::lineEditValue( const QLineEdit * theLineEdit ) const
|
||||
{
|
||||
if ( theLineEdit->text().isEmpty() )
|
||||
{
|
||||
return std::numeric_limits<double>::quiet_NaN();
|
||||
}
|
||||
|
||||
return theLineEdit->text().toDouble();
|
||||
}
|
||||
|
||||
void QgsSingleBandPseudoColorRendererWidget::resetClassifyButton()
|
||||
{
|
||||
mClassifyButton->setEnabled( true );
|
||||
double min = lineEditValue( mMinLineEdit );
|
||||
double max = lineEditValue( mMaxLineEdit );
|
||||
if ( qIsNaN( min ) || qIsNaN( max ) || min >= max )
|
||||
{
|
||||
mClassifyButton->setEnabled( false );
|
||||
}
|
||||
}
|
||||
|
@ -18,6 +18,7 @@
|
||||
#ifndef QGSSINGLEBANDCOLORRENDERERWIDGET_H
|
||||
#define QGSSINGLEBANDCOLORRENDERERWIDGET_H
|
||||
|
||||
#include "qgsrasterminmaxwidget.h"
|
||||
#include "qgsrasterrendererwidget.h"
|
||||
#include "qgscolorrampshader.h"
|
||||
#include "ui_qgssinglebandpseudocolorrendererwidgetbase.h"
|
||||
@ -38,6 +39,9 @@ class GUI_EXPORT QgsSingleBandPseudoColorRendererWidget: public QgsRasterRendere
|
||||
private:
|
||||
void populateColormapTreeWidget( const QList<QgsColorRampShader::ColorRampItem>& colorRampItems );
|
||||
|
||||
public slots:
|
||||
void loadMinMax( int theBandNo, double theMin, double theMax, int theOrigin );
|
||||
|
||||
private slots:
|
||||
void on_mAddEntryButton_clicked();
|
||||
void on_mDeleteEntryButton_clicked();
|
||||
@ -47,6 +51,19 @@ class GUI_EXPORT QgsSingleBandPseudoColorRendererWidget: public QgsRasterRendere
|
||||
void on_mLoadFromFileButton_clicked();
|
||||
void on_mExportToFileButton_clicked();
|
||||
void on_mColormapTreeWidget_itemDoubleClicked( QTreeWidgetItem* item, int column );
|
||||
void on_mBandComboBox_currentIndexChanged( int index );
|
||||
void on_mMinLineEdit_textChanged( const QString & text ) { Q_UNUSED( text ); resetClassifyButton(); }
|
||||
void on_mMaxLineEdit_textChanged( const QString & text ) { Q_UNUSED( text ); resetClassifyButton(); }
|
||||
void on_mMinLineEdit_textEdited( const QString & text ) { Q_UNUSED( text ); mMinMaxOrigin = QgsRasterRenderer::MinMaxUser; showMinMaxOrigin(); }
|
||||
void on_mMaxLineEdit_textEdited( const QString & text ) { Q_UNUSED( text ); mMinMaxOrigin = QgsRasterRenderer::MinMaxUser; showMinMaxOrigin(); }
|
||||
|
||||
private:
|
||||
void setLineEditValue( QLineEdit *theLineEdit, double theValue );
|
||||
double lineEditValue( const QLineEdit *theLineEdit ) const;
|
||||
void resetClassifyButton();
|
||||
void showMinMaxOrigin();
|
||||
QgsRasterMinMaxWidget * mMinMaxWidget;
|
||||
int mMinMaxOrigin;
|
||||
};
|
||||
|
||||
#endif // QGSSINGLEBANDCOLORRENDERERWIDGET_H
|
||||
|
@ -6,8 +6,8 @@
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>722</width>
|
||||
<height>663</height>
|
||||
<width>652</width>
|
||||
<height>515</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="sizePolicy">
|
||||
@ -101,7 +101,27 @@
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>318</width>
|
||||
<width>150</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QCheckBox" name="mInvertColorMapCheckBox">
|
||||
<property name="text">
|
||||
<string>Invert color map</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="horizontalSpacer_4">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
@ -112,52 +132,71 @@
|
||||
<item row="4" column="0">
|
||||
<widget class="QStackedWidget" name="mRendererStackedWidget"/>
|
||||
</item>
|
||||
<item row="0" column="0">
|
||||
<item row="5" column="0">
|
||||
<widget class="QGroupBox" name="mResamplingGroupBox_2">
|
||||
<property name="title">
|
||||
<string>Resampling</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout_9">
|
||||
<item row="0" column="0">
|
||||
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||
<item>
|
||||
<widget class="QLabel" name="mZoomedInResamplingLabel">
|
||||
<property name="text">
|
||||
<string>Zoomed in</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<item>
|
||||
<widget class="QComboBox" name="mZoomedInResamplingComboBox"/>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="horizontalSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="mZoomedOutResamplingLabel">
|
||||
<property name="text">
|
||||
<string>Zoomed out</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="2">
|
||||
<item>
|
||||
<widget class="QComboBox" name="mZoomedOutResamplingComboBox"/>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="horizontalSpacer_3">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="mMaximumOversamplingLabel">
|
||||
<property name="text">
|
||||
<string>Maximum oversampling</string>
|
||||
<string>Oversampling</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QComboBox" name="mZoomedInResamplingComboBox"/>
|
||||
</item>
|
||||
<item row="1" column="1">
|
||||
<widget class="QComboBox" name="mZoomedOutResamplingComboBox"/>
|
||||
</item>
|
||||
<item row="1" column="2">
|
||||
<item>
|
||||
<widget class="QDoubleSpinBox" name="mMaximumOversamplingSpinBox"/>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="0">
|
||||
<widget class="QCheckBox" name="mInvertColorMapCheckBox">
|
||||
<property name="text">
|
||||
<string>Invert color map</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<widget class="QWidget" name="tabBarPage2">
|
||||
@ -589,7 +628,7 @@
|
||||
<enum>Qt::RightToLeft</enum>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Less than:</string>
|
||||
<string>Less than:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
@ -599,15 +638,15 @@
|
||||
<enum>Qt::RightToLeft</enum>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>More than or equal to:</string>
|
||||
<string>More than or equal to:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="3">
|
||||
<widget class="QgsScaleComboBox" name="cbMaximumScale"/>
|
||||
<widget class="QgsScaleComboBox" name="cbMaximumScale" native="true"/>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<widget class="QgsScaleComboBox" name="cbMinimumScale"/>
|
||||
<widget class="QgsScaleComboBox" name="cbMinimumScale" native="true"/>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
@ -899,7 +938,7 @@
|
||||
<string><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
|
||||
<html><head><meta name="qrichtext" content="1" /><style type="text/css">
|
||||
p, li { white-space: pre-wrap; }
|
||||
</style></head><body style=" font-family:'DejaVu Sans'; font-size:10pt; font-weight:400; font-style:normal;">
|
||||
</style></head><body style=" font-family:'DejaVu Sans'; font-size:9pt; font-weight:400; font-style:normal;">
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Cantarell'; font-size:11pt;"><br /></span></p></body></html></string>
|
||||
</property>
|
||||
</widget>
|
||||
@ -1046,6 +1085,13 @@ p, li { white-space: pre-wrap; }
|
||||
</layout>
|
||||
</widget>
|
||||
<layoutdefault spacing="6" margin="11"/>
|
||||
<customwidgets>
|
||||
<customwidget>
|
||||
<class>QgsScaleComboBox</class>
|
||||
<extends>QWidget</extends>
|
||||
<header>qgsscalecombobox.h</header>
|
||||
</customwidget>
|
||||
</customwidgets>
|
||||
<tabstops>
|
||||
<tabstop>tabBar</tabstop>
|
||||
<tabstop>buttonBox</tabstop>
|
||||
|
@ -6,271 +6,282 @@
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>433</width>
|
||||
<height>293</height>
|
||||
<width>371</width>
|
||||
<height>264</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>Form</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout_5">
|
||||
<item row="0" column="0">
|
||||
<layout class="QVBoxLayout" name="verticalLayout_3">
|
||||
<item>
|
||||
<widget class="QGroupBox" name="mLoadMinMaxValuesGroupBox">
|
||||
<property name="title">
|
||||
<string>Load min/max values</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout">
|
||||
<property name="margin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<item>
|
||||
<widget class="QWidget" name="widget" native="true">
|
||||
<layout class="QGridLayout" name="gridLayout">
|
||||
<item row="0" column="0" colspan="2">
|
||||
<widget class="QRadioButton" name="mCumulativeCutRadioButton">
|
||||
<property name="text">
|
||||
<string>Cumulative pixel count cut</string>
|
||||
</property>
|
||||
<property name="checked">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="2" colspan="3">
|
||||
<widget class="QWidget" name="widget_4" native="true">
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_3">
|
||||
<item>
|
||||
<widget class="QDoubleSpinBox" name="mCumulativeCutLowerDoubleSpinBox">
|
||||
<property name="decimals">
|
||||
<number>1</number>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="label">
|
||||
<property name="text">
|
||||
<string>-</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QDoubleSpinBox" name="mCumulativeCutUpperDoubleSpinBox">
|
||||
<property name="decimals">
|
||||
<number>1</number>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="label_2">
|
||||
<property name="text">
|
||||
<string>%</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="horizontalSpacer_6">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>123</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QRadioButton" name="mMinMaxRadioButton">
|
||||
<property name="text">
|
||||
<string>Min / max</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="1" colspan="4">
|
||||
<spacer name="horizontalSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>268</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item row="2" column="0" colspan="3">
|
||||
<widget class="QRadioButton" name="mStdDevRadioButton">
|
||||
<property name="text">
|
||||
<string>Mean +/- standard deviation ×</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="3">
|
||||
<widget class="QDoubleSpinBox" name="mStdDevSpinBox">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="value">
|
||||
<double>1.000000000000000</double>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="4">
|
||||
<spacer name="horizontalSpacer_4">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>148</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||
<item>
|
||||
<widget class="QRadioButton" name="mCumulativeCutRadioButton">
|
||||
<property name="text">
|
||||
<string>Cumulative count cut</string>
|
||||
</property>
|
||||
<property name="checked">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QDoubleSpinBox" name="mCumulativeCutLowerDoubleSpinBox">
|
||||
<property name="decimals">
|
||||
<number>1</number>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="label">
|
||||
<property name="text">
|
||||
<string>-</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QDoubleSpinBox" name="mCumulativeCutUpperDoubleSpinBox">
|
||||
<property name="decimals">
|
||||
<number>1</number>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="label_2">
|
||||
<property name="text">
|
||||
<string>%</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="horizontalSpacer_6">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>123</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QWidget" name="widget_2" native="true">
|
||||
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||
<item>
|
||||
<widget class="QGroupBox" name="mExtentGroupBox">
|
||||
<property name="title">
|
||||
<string>Extent</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout_3">
|
||||
<item row="0" column="0">
|
||||
<widget class="QRadioButton" name="mFullExtentRadioButton">
|
||||
<property name="text">
|
||||
<string>Full</string>
|
||||
</property>
|
||||
<property name="checked">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<spacer name="horizontalSpacer_9">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>60</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QRadioButton" name="mCurrentExtentRadioButton">
|
||||
<property name="text">
|
||||
<string>Current</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="1">
|
||||
<spacer name="horizontalSpacer_10">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>60</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QGroupBox" name="mAccuracyGroupBox">
|
||||
<property name="title">
|
||||
<string>Accuracy</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout_2">
|
||||
<item row="0" column="1">
|
||||
<spacer name="horizontalSpacer_7">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>65</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QRadioButton" name="mActualRadioButton">
|
||||
<property name="text">
|
||||
<string>Actual (slower)</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="1">
|
||||
<spacer name="horizontalSpacer_8">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>65</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item row="0" column="0">
|
||||
<widget class="QRadioButton" name="mEstimateRadioButton">
|
||||
<property name="text">
|
||||
<string>Estimate (faster)</string>
|
||||
</property>
|
||||
<property name="checked">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_5">
|
||||
<item>
|
||||
<widget class="QRadioButton" name="mMinMaxRadioButton">
|
||||
<property name="text">
|
||||
<string>Min / max</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="horizontalSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>268</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QWidget" name="widget_3" native="true">
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_2">
|
||||
<item>
|
||||
<spacer name="horizontalSpacer_5">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>313</width>
|
||||
<height>21</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="mLoadPushButton">
|
||||
<property name="text">
|
||||
<string>Load</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_3">
|
||||
<item>
|
||||
<widget class="QRadioButton" name="mStdDevRadioButton">
|
||||
<property name="text">
|
||||
<string>Mean +/- standard deviation ×</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QDoubleSpinBox" name="mStdDevSpinBox">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="value">
|
||||
<double>1.000000000000000</double>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="horizontalSpacer_4">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>318</width>
|
||||
<height>17</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_2">
|
||||
<item>
|
||||
<widget class="QGroupBox" name="mExtentGroupBox">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Minimum">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="title">
|
||||
<string>Extent</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout_3">
|
||||
<item row="0" column="0">
|
||||
<widget class="QRadioButton" name="mFullExtentRadioButton">
|
||||
<property name="text">
|
||||
<string>Full</string>
|
||||
</property>
|
||||
<property name="checked">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<spacer name="horizontalSpacer_9">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>60</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QRadioButton" name="mCurrentExtentRadioButton">
|
||||
<property name="text">
|
||||
<string>Current</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="1">
|
||||
<spacer name="horizontalSpacer_10">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>60</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QGroupBox" name="mAccuracyGroupBox">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Minimum">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="title">
|
||||
<string>Accuracy</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout_2">
|
||||
<item row="0" column="1">
|
||||
<spacer name="horizontalSpacer_7">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>65</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QRadioButton" name="mActualRadioButton">
|
||||
<property name="text">
|
||||
<string>Actual (slower)</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="1">
|
||||
<spacer name="horizontalSpacer_8">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>65</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item row="0" column="0">
|
||||
<widget class="QRadioButton" name="mEstimateRadioButton">
|
||||
<property name="text">
|
||||
<string>Estimate (faster)</string>
|
||||
</property>
|
||||
<property name="checked">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_4">
|
||||
<item>
|
||||
<spacer name="horizontalSpacer_5">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>313</width>
|
||||
<height>21</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="mLoadPushButton">
|
||||
<property name="text">
|
||||
<string>Load</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
|
@ -6,231 +6,360 @@
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>584</width>
|
||||
<height>400</height>
|
||||
<width>637</width>
|
||||
<height>207</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>Form</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout_2">
|
||||
<item row="0" column="0">
|
||||
<layout class="QGridLayout" name="gridLayout">
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="mBandLabel">
|
||||
<property name="text">
|
||||
<string>Band</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<widget class="QComboBox" name="mBandComboBox"/>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QLabel" name="mColorInterpolationLabel">
|
||||
<property name="text">
|
||||
<string>Color interpolation</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="1">
|
||||
<widget class="QComboBox" name="mColorInterpolationComboBox"/>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_5">
|
||||
<item>
|
||||
<layout class="QVBoxLayout" name="verticalLayout">
|
||||
<item>
|
||||
<widget class="QPushButton" name="mAddEntryButton">
|
||||
<property name="text">
|
||||
<string>Add entry</string>
|
||||
</property>
|
||||
</widget>
|
||||
<layout class="QGridLayout" name="gridLayout">
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="mBandLabel">
|
||||
<property name="text">
|
||||
<string>Band</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<widget class="QComboBox" name="mBandComboBox"/>
|
||||
</item>
|
||||
<item row="1" column="1">
|
||||
<widget class="QComboBox" name="mColorInterpolationComboBox"/>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QLabel" name="mColorInterpolationLabel">
|
||||
<property name="text">
|
||||
<string>Color interpolation</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="mDeleteEntryButton">
|
||||
<property name="text">
|
||||
<string>Delete entry</string>
|
||||
</property>
|
||||
</widget>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_3">
|
||||
<item>
|
||||
<widget class="QToolButton" name="mAddEntryButton">
|
||||
<property name="toolTip">
|
||||
<string>Add values manually</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>...</string>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset resource="../../images/images.qrc">
|
||||
<normaloff>:/images/themes/default/mActionNewAttribute.png</normaloff>:/images/themes/default/mActionNewAttribute.png</iconset>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QToolButton" name="mDeleteEntryButton">
|
||||
<property name="toolTip">
|
||||
<string>Remove selected row</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>...</string>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset resource="../../images/images.qrc">
|
||||
<normaloff>:/images/themes/default/mActionDeleteAttribute.png</normaloff>:/images/themes/default/mActionDeleteAttribute.png</iconset>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QToolButton" name="mSortButton">
|
||||
<property name="text">
|
||||
<string>...</string>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset>
|
||||
<normaloff>../../../../../../usr/share/icons/oxygen/16x16/actions/view-sort-ascending.png</normaloff>../../../../../../usr/share/icons/oxygen/16x16/actions/view-sort-ascending.png</iconset>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QToolButton" name="mLoadFromBandButton">
|
||||
<property name="toolTip">
|
||||
<string>Load color map from band</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>...</string>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset resource="../../images/images.qrc">
|
||||
<normaloff>:/images/themes/default/mActionDraw.png</normaloff>:/images/themes/default/mActionDraw.png</iconset>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QToolButton" name="mLoadFromFileButton">
|
||||
<property name="toolTip">
|
||||
<string>Load color map from file</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>...</string>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset resource="../../images/images.qrc">
|
||||
<normaloff>:/images/themes/default/mActionFileOpen.png</normaloff>:/images/themes/default/mActionFileOpen.png</iconset>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QToolButton" name="mExportToFileButton">
|
||||
<property name="toolTip">
|
||||
<string>Export color map to file</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>...</string>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset resource="../../images/images.qrc">
|
||||
<normaloff>:/images/themes/default/mActionFileSaveAs.png</normaloff>:/images/themes/default/mActionFileSaveAs.png</iconset>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="horizontalSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>48</width>
|
||||
<height>28</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="mSortButton">
|
||||
<property name="text">
|
||||
<string>Sort</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="horizontalSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>148</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QToolButton" name="mLoadFromBandButton">
|
||||
<property name="toolTip">
|
||||
<string>Load color map from band</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>...</string>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset resource="../../images/images.qrc">
|
||||
<normaloff>:/images/themes/default/mActionNewAttribute.png</normaloff>:/images/themes/default/mActionNewAttribute.png</iconset>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QToolButton" name="mLoadFromFileButton">
|
||||
<property name="toolTip">
|
||||
<string>Load color map from file</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>...</string>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset resource="../../images/images.qrc">
|
||||
<normaloff>:/images/themes/default/mActionFileOpen.png</normaloff>:/images/themes/default/mActionFileOpen.png</iconset>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QToolButton" name="mExportToFileButton">
|
||||
<property name="toolTip">
|
||||
<string>Export color map to file</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>...</string>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset resource="../../images/images.qrc">
|
||||
<normaloff>:/images/themes/default/mActionFileSaveAs.png</normaloff>:/images/themes/default/mActionFileSaveAs.png</iconset>
|
||||
<widget class="QTreeWidget" name="mColormapTreeWidget">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Expanding">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<attribute name="headerDefaultSectionSize">
|
||||
<number>70</number>
|
||||
</attribute>
|
||||
<attribute name="headerMinimumSectionSize">
|
||||
<number>10</number>
|
||||
</attribute>
|
||||
<attribute name="headerStretchLastSection">
|
||||
<bool>true</bool>
|
||||
</attribute>
|
||||
<attribute name="headerDefaultSectionSize">
|
||||
<number>70</number>
|
||||
</attribute>
|
||||
<attribute name="headerMinimumSectionSize">
|
||||
<number>10</number>
|
||||
</attribute>
|
||||
<attribute name="headerStretchLastSection">
|
||||
<bool>true</bool>
|
||||
</attribute>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>Value</string>
|
||||
</property>
|
||||
</column>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>Color</string>
|
||||
</property>
|
||||
</column>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>Label</string>
|
||||
</property>
|
||||
</column>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item row="2" column="0">
|
||||
<widget class="QTreeWidget" name="mColormapTreeWidget">
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>Value</string>
|
||||
</property>
|
||||
</column>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>Color</string>
|
||||
</property>
|
||||
</column>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>Label</string>
|
||||
</property>
|
||||
</column>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="0">
|
||||
<widget class="QGroupBox" name="grpGenerateColorMap">
|
||||
<property name="title">
|
||||
<string>Generate new color map</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="_2">
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="mNumberOfEntriesLabel">
|
||||
<property name="text">
|
||||
<string>Classes</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<widget class="QSpinBox" name="mNumberOfEntriesSpinBox">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="maximum">
|
||||
<number>255</number>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="3">
|
||||
<widget class="QLabel" name="mClassificationModeLabel">
|
||||
<property name="text">
|
||||
<string>Mode</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="4">
|
||||
<widget class="QComboBox" name="mClassificationModeComboBox"/>
|
||||
</item>
|
||||
<item row="0" column="9">
|
||||
<widget class="QPushButton" name="mClassifyButton">
|
||||
<property name="text">
|
||||
<string>Classify</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="5">
|
||||
<spacer name="horizontalSpacer_3">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item row="0" column="6">
|
||||
<widget class="QLabel" name="label">
|
||||
<property name="text">
|
||||
<string>Color ramp</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="2">
|
||||
<spacer name="horizontalSpacer_2">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item row="0" column="7">
|
||||
<widget class="QgsColorRampComboBox" name="mColorRampComboBox"/>
|
||||
</item>
|
||||
<item row="0" column="8">
|
||||
<spacer name="horizontalSpacer_4">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<item>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_3">
|
||||
<item>
|
||||
<widget class="QGroupBox" name="grpGenerateColorMap">
|
||||
<property name="title">
|
||||
<string>Generate new color map</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_2">
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||
<item>
|
||||
<widget class="QLabel" name="mNumberOfEntriesLabel">
|
||||
<property name="text">
|
||||
<string>Classes</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QSpinBox" name="mNumberOfEntriesSpinBox">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="maximum">
|
||||
<number>255</number>
|
||||
</property>
|
||||
<property name="value">
|
||||
<number>0</number>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="horizontalSpacer_2">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="label">
|
||||
<property name="text">
|
||||
<string>Colors</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QgsColorRampComboBox" name="mColorRampComboBox"/>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="horizontalSpacer_6">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="mClassifyButton">
|
||||
<property name="text">
|
||||
<string>Classify</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_4">
|
||||
<item>
|
||||
<widget class="QLabel" name="mMinLabel">
|
||||
<property name="text">
|
||||
<string>Min</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLineEdit" name="mMinLineEdit"/>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="horizontalSpacer_5">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="mMaxLabel">
|
||||
<property name="text">
|
||||
<string>Max</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLineEdit" name="mMaxLineEdit"/>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="horizontalSpacer_3">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="mClassificationModeLabel">
|
||||
<property name="text">
|
||||
<string>Mode</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QComboBox" name="mClassificationModeComboBox"/>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_2">
|
||||
<item>
|
||||
<widget class="QLabel" name="label_2">
|
||||
<property name="text">
|
||||
<string>Min / max origin:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="mMinMaxOriginLabel">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Expanding" vsizetype="Preferred">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Min / Max origin</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QWidget" name="mMinMaxContainerWidget" native="true">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="MinimumExpanding">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<zorder>grpGenerateColorMap</zorder>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
|
Loading…
x
Reference in New Issue
Block a user