Skip to content
Permalink
Browse files

Use a single format string using Qt format for renderer label

  • Loading branch information
NathanW2 committed Sep 28, 2014
1 parent 428375e commit fcfafa0a51a3d4daa8aa7a6abc655e0defcd618b
@@ -46,19 +46,13 @@ class QgsRendererRangeV2LabelFormat
%End
public:
QgsRendererRangeV2LabelFormat();
QgsRendererRangeV2LabelFormat( QString prefix, QString separator, QString suffix, int decimalPlaces=4, bool trimTrailingZeroes=false );
QgsRendererRangeV2LabelFormat( QString format, int decimalPlaces=4, bool trimTrailingZeroes=false );

bool operator==( const QgsRendererRangeV2LabelFormat & other ) const;
bool operator!=( const QgsRendererRangeV2LabelFormat & other ) const;

QString prefix() const;
void setPrefix( QString prefix );

QString separator() const;
void setSeparator( QString separator );

QString suffix() const;
void setSuffix( QString suffix );
QString format() const;
void setFormat( QString format );

int decimalPlaces() const;
void setDecimalPlaces( int decimalPlaces );
@@ -167,21 +167,17 @@ void QgsRendererRangeV2::toSld( QDomDocument &doc, QDomElement &element, QgsStri
///////////

QgsRendererRangeV2LabelFormat::QgsRendererRangeV2LabelFormat():
mPrefix( "" ),
mSeparator( " - " ),
mSuffix( "" ),
mFormat( " %1 - %2 " ),
mDecimalPlaces( 4 ),
mTrimTrailingZeroes( false ),
mReTrailingZeroes( "\\.?0*$" )
{
}

QgsRendererRangeV2LabelFormat::QgsRendererRangeV2LabelFormat( QString prefix, QString separator, QString suffix, int decimalPlaces, bool trimTrailingZeroes ):
QgsRendererRangeV2LabelFormat::QgsRendererRangeV2LabelFormat( QString format, int decimalPlaces, bool trimTrailingZeroes ):
mReTrailingZeroes( "\\.?0*$" )
{
setPrefix( prefix );
setSeparator( separator );
setSuffix( suffix );
setFormat( format );
setDecimalPlaces( decimalPlaces );
setTrimTrailingZeroes( trimTrailingZeroes );
}
@@ -190,9 +186,7 @@ QgsRendererRangeV2LabelFormat::QgsRendererRangeV2LabelFormat( QString prefix, QS
bool QgsRendererRangeV2LabelFormat::operator==( const QgsRendererRangeV2LabelFormat &other ) const
{
return
prefix() == other.prefix() &&
separator() == other.separator() &&
suffix() == other.suffix() &&
format() == other.format() &&
decimalPlaces() == other.decimalPlaces() &&
trimTrailingZeroes() == other.trimTrailingZeroes();
}
@@ -226,23 +220,19 @@ QString QgsRendererRangeV2LabelFormat::labelForRange( double lower, double upper
if ( upperStr.contains( '.' ) ) upperStr = upperStr.replace( mReTrailingZeroes, "" );
}

return mPrefix + lowerStr + mSeparator + upperStr + mSuffix;
return mFormat.arg(lowerStr, upperStr);
}

void QgsRendererRangeV2LabelFormat::setFromDomElement( QDomElement &element )
{
mPrefix = element.attribute( "prefix", "" );
mSeparator = element.attribute( "separator", " - " );
mSuffix = element.attribute( "suffix", "" );
mFormat = element.attribute( "format", " %1 - %2" );
mDecimalPlaces = element.attribute( "decimalplaces", "4" ).toInt();
mTrimTrailingZeroes = element.attribute( "trimtrailingzeroes", "false" ) == "true";
}

void QgsRendererRangeV2LabelFormat::saveToDomElement( QDomElement &element )
{
element.setAttribute( "prefix", mPrefix );
element.setAttribute( "separator", mSeparator );
element.setAttribute( "suffix", mSuffix );
element.setAttribute( "format", mFormat );
element.setAttribute( "decimalplaces", mDecimalPlaces );
element.setAttribute( "trimtrailingzeroes", mTrimTrailingZeroes ? "true" : "false" );
}
@@ -71,19 +71,13 @@ class CORE_EXPORT QgsRendererRangeV2LabelFormat
{
public:
QgsRendererRangeV2LabelFormat();
QgsRendererRangeV2LabelFormat( QString prefix, QString separator, QString suffix, int decimalPlaces = 4, bool trimTrailingZeroes = false );
QgsRendererRangeV2LabelFormat( QString format, int decimalPlaces = 4, bool trimTrailingZeroes = false );

bool operator==( const QgsRendererRangeV2LabelFormat & other ) const;
bool operator!=( const QgsRendererRangeV2LabelFormat & other ) const;

QString prefix() const { return mPrefix; }
void setPrefix( QString prefix ) { mPrefix = prefix; }

QString separator() const { return mSeparator; }
void setSeparator( QString separator ) { mSeparator = separator; }

QString suffix() const { return mSuffix; }
void setSuffix( QString suffix ) { mSuffix = suffix; }
QString format() const { return mFormat; }
void setFormat( QString format ) { mFormat = format; }

int decimalPlaces() const { return mDecimalPlaces; }
void setDecimalPlaces( int decimalPlaces );
@@ -99,9 +93,7 @@ class CORE_EXPORT QgsRendererRangeV2LabelFormat
void saveToDomElement( QDomElement &element );

protected:
QString mPrefix;
QString mSeparator;
QString mSuffix;
QString mFormat;
int mDecimalPlaces;
bool mTrimTrailingZeroes;
QRegExp mReTrailingZeroes;
@@ -457,9 +457,7 @@ void QgsGraduatedSymbolRendererV2Widget::connectUpdateHandlers()
connect( cbxInvertedColorRamp, SIGNAL( toggled( bool ) ) , this, SLOT( reapplyColorRamp() ) );
connect( spinDecimalPlaces, SIGNAL( valueChanged( int ) ), this, SLOT( labelFormatChanged() ) );
connect( cbxTrimTrailingZeroes, SIGNAL( toggled( bool ) ), this, SLOT( labelFormatChanged() ) );
connect( txtPrefix, SIGNAL( textChanged( QString ) ), this, SLOT( labelFormatChanged() ) );
connect( txtSeparator, SIGNAL( textChanged( QString ) ), this, SLOT( labelFormatChanged() ) );
connect( txtSuffix, SIGNAL( textChanged( QString ) ), this, SLOT( labelFormatChanged() ) );
connect( txtFormat, SIGNAL( textChanged( QString ) ), this, SLOT( labelFormatChanged() ) );

connect( mModel, SIGNAL( rowsMoved() ), this, SLOT( rowsMoved() ) );
connect( mModel, SIGNAL( dataChanged( QModelIndex, QModelIndex ) ), this, SLOT( modelDataChanged( ) ) );
@@ -475,9 +473,7 @@ void QgsGraduatedSymbolRendererV2Widget::disconnectUpdateHandlers()
disconnect( cbxInvertedColorRamp, SIGNAL( toggled( bool ) ) , this, SLOT( reapplyColorRamp() ) );
disconnect( spinDecimalPlaces, SIGNAL( valueChanged( int ) ), this, SLOT( labelFormatChanged() ) );
disconnect( cbxTrimTrailingZeroes, SIGNAL( toggled( bool ) ), this, SLOT( labelFormatChanged() ) );
disconnect( txtPrefix, SIGNAL( textChanged( QString ) ), this, SLOT( labelFormatChanged() ) );
disconnect( txtSeparator, SIGNAL( textChanged( QString ) ), this, SLOT( labelFormatChanged() ) );
disconnect( txtSuffix, SIGNAL( textChanged( QString ) ), this, SLOT( labelFormatChanged() ) );
disconnect( txtFormat, SIGNAL( textChanged( QString ) ), this, SLOT( labelFormatChanged() ) );

disconnect( mModel, SIGNAL( rowsMoved() ), this, SLOT( rowsMoved() ) );
disconnect( mModel, SIGNAL( dataChanged( QModelIndex, QModelIndex ) ), this, SLOT( modelDataChanged( ) ) );
@@ -518,9 +514,7 @@ void QgsGraduatedSymbolRendererV2Widget::updateUiFromRenderer( bool updateCount
}

QgsRendererRangeV2LabelFormat labelFormat = mRenderer->labelFormat();
txtPrefix->setText( labelFormat.prefix() );
txtSeparator->setText( labelFormat.separator() );
txtSuffix->setText( labelFormat.suffix() );
txtFormat->setText( labelFormat.format() );
spinDecimalPlaces->setValue( labelFormat.decimalPlaces() );
cbxTrimTrailingZeroes->setChecked( labelFormat.trimTrailingZeroes() );

@@ -859,9 +853,7 @@ void QgsGraduatedSymbolRendererV2Widget::scaleMethodChanged( QgsSymbolV2::ScaleM
void QgsGraduatedSymbolRendererV2Widget::labelFormatChanged()
{
QgsRendererRangeV2LabelFormat labelFormat = QgsRendererRangeV2LabelFormat(
txtPrefix->text(),
txtSeparator->text(),
txtSuffix->text(),
txtFormat->text(),
spinDecimalPlaces->value(),
cbxTrimTrailingZeroes->isChecked() );
mRenderer->setLabelFormat( labelFormat, true );
@@ -6,7 +6,7 @@
<rect>
<x>0</x>
<y>0</y>
<width>637</width>
<width>647</width>
<height>339</height>
</rect>
</property>
@@ -186,13 +186,13 @@
<item row="3" column="0">
<widget class="QLabel" name="label">
<property name="text">
<string>Label </string>
<string>Label Format</string>
</property>
<property name="alignment">
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
</property>
<property name="buddy">
<cstring>txtPrefix</cstring>
<cstring>txtFormat</cstring>
</property>
</widget>
</item>
@@ -202,55 +202,14 @@
<number>0</number>
</property>
<item>
<widget class="QLineEdit" name="txtPrefix">
<property name="alignment">
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label_3">
<property name="text">
<string>#.##</string>
</property>
</widget>
</item>
<item>
<widget class="QLineEdit" name="txtSeparator">
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label_17">
<property name="text">
<string>#.##</string>
</property>
</widget>
</item>
<item>
<widget class="QLineEdit" name="txtSuffix">
<widget class="QLineEdit" name="txtFormat">
<property name="alignment">
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
</property>
</widget>
</item>
</layout>
</item>
<item row="3" column="2">
<widget class="QLabel" name="label_16">
<property name="text">
<string>Decimal places</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
<property name="buddy">
<cstring>spinDecimalPlaces</cstring>
</property>
</widget>
</item>
<item row="3" column="3">
<layout class="QHBoxLayout" name="horizontalLayout_7">
<item>
@@ -281,6 +240,19 @@
</item>
</layout>
</item>
<item row="3" column="2">
<widget class="QLabel" name="label_16">
<property name="text">
<string>Decimal places</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
<property name="buddy">
<cstring>spinDecimalPlaces</cstring>
</property>
</widget>
</item>
</layout>
</item>
<item>
@@ -386,9 +358,7 @@
</customwidget>
</customwidgets>
<tabstops>
<tabstop>txtPrefix</tabstop>
<tabstop>txtSeparator</tabstop>
<tabstop>txtSuffix</tabstop>
<tabstop>txtFormat</tabstop>
<tabstop>spinDecimalPlaces</tabstop>
<tabstop>cbxTrimTrailingZeroes</tabstop>
<tabstop>btnChangeGraduatedSymbol</tabstop>

0 comments on commit fcfafa0

Please sign in to comment.
You can’t perform that action at this time.