mirror of
				https://github.com/qgis/QGIS.git
				synced 2025-11-04 00:04:25 -05:00 
			
		
		
		
	Use a single format string using Qt format for renderer label
This commit is contained in:
		
							parent
							
								
									428375ed4c
								
							
						
					
					
						commit
						fcfafa0a51
					
				@ -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,35 +202,7 @@
 | 
			
		||||
        <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>
 | 
			
		||||
@ -238,19 +210,6 @@
 | 
			
		||||
       </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>
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user