Skip to content

Commit

Permalink
[composer] Allow finer setting of scalebar height and widths
Browse files Browse the repository at this point in the history
While the settings are stored as double, they were being
rounded off in the UI to the nearest mm
  • Loading branch information
nyalldawson committed Sep 1, 2017
1 parent 247d265 commit 7ca0b2d
Show file tree
Hide file tree
Showing 4 changed files with 48 additions and 55 deletions.
10 changes: 6 additions & 4 deletions src/app/composer/qgscomposerscalebarwidget.cpp
Expand Up @@ -233,15 +233,15 @@ void QgsComposerScaleBarWidget::on_mNumberOfSegmentsSpinBox_valueChanged( int i
mComposerScaleBar->endCommand();
}

void QgsComposerScaleBarWidget::on_mHeightSpinBox_valueChanged( int i )
void QgsComposerScaleBarWidget::on_mHeightSpinBox_valueChanged( double d )
{
if ( !mComposerScaleBar )
{
return;
}
mComposerScaleBar->beginCommand( tr( "Scalebar height changed" ), QgsComposerMergeCommand::ScaleBarHeight );
disconnectUpdateSignal();
mComposerScaleBar->setHeight( i );
mComposerScaleBar->setHeight( d );
mComposerScaleBar->update();
connectUpdateSignal();
mComposerScaleBar->endCommand();
Expand Down Expand Up @@ -562,6 +562,8 @@ void QgsComposerScaleBarWidget::blockMemberSignals( bool block )
mSegmentSizeRadioGroup.blockSignals( block );
mMapItemComboBox->blockSignals( block );
mFontButton->blockSignals( block );
mMinWidthSpinBox->blockSignals( block );
mMaxWidthSpinBox->blockSignals( block );
}

void QgsComposerScaleBarWidget::connectUpdateSignal()
Expand Down Expand Up @@ -651,7 +653,7 @@ void QgsComposerScaleBarWidget::composerMapChanged( QgsComposerItem *item )
mComposerScaleBar->endCommand();
}

void QgsComposerScaleBarWidget::on_mMinWidthSpinBox_valueChanged( int )
void QgsComposerScaleBarWidget::on_mMinWidthSpinBox_valueChanged( double )
{
if ( !mComposerScaleBar )
{
Expand All @@ -666,7 +668,7 @@ void QgsComposerScaleBarWidget::on_mMinWidthSpinBox_valueChanged( int )
mComposerScaleBar->endCommand();
}

void QgsComposerScaleBarWidget::on_mMaxWidthSpinBox_valueChanged( int )
void QgsComposerScaleBarWidget::on_mMaxWidthSpinBox_valueChanged( double )
{
if ( !mComposerScaleBar )
{
Expand Down
6 changes: 3 additions & 3 deletions src/app/composer/qgscomposerscalebarwidget.h
Expand Up @@ -35,7 +35,7 @@ class QgsComposerScaleBarWidget: public QgsComposerItemBaseWidget, private Ui::Q

public slots:

void on_mHeightSpinBox_valueChanged( int i );
void on_mHeightSpinBox_valueChanged( double d );
void on_mLineWidthSpinBox_valueChanged( double d );
void on_mSegmentSizeSpinBox_valueChanged( double d );
void on_mSegmentsLeftSpinBox_valueChanged( int i );
Expand All @@ -53,8 +53,8 @@ class QgsComposerScaleBarWidget: public QgsComposerItemBaseWidget, private Ui::Q
void on_mUnitsComboBox_currentIndexChanged( int index );
void on_mLineJoinStyleCombo_currentIndexChanged( int index );
void on_mLineCapStyleCombo_currentIndexChanged( int index );
void on_mMinWidthSpinBox_valueChanged( int i );
void on_mMaxWidthSpinBox_valueChanged( int i );
void on_mMinWidthSpinBox_valueChanged( double d );
void on_mMaxWidthSpinBox_valueChanged( double d );

private slots:
void setGuiElements();
Expand Down
4 changes: 2 additions & 2 deletions src/core/composer/qgscomposerscalebar.cpp
Expand Up @@ -728,8 +728,8 @@ bool QgsComposerScaleBar::readXml( const QDomElement &itemElem, const QDomDocume
mSettings.setNumberOfSegmentsLeft( itemElem.attribute( QStringLiteral( "numSegmentsLeft" ), QStringLiteral( "0" ) ).toInt() );
mSettings.setUnitsPerSegment( itemElem.attribute( QStringLiteral( "numUnitsPerSegment" ), QStringLiteral( "1.0" ) ).toDouble() );
mSettings.setSegmentSizeMode( static_cast<QgsScaleBarSettings::SegmentSizeMode>( itemElem.attribute( QStringLiteral( "segmentSizeMode" ), QStringLiteral( "0" ) ).toInt() ) );
mSettings.setMinimumBarWidth( itemElem.attribute( QStringLiteral( "minBarWidth" ), QStringLiteral( "50" ) ).toInt() );
mSettings.setMaximumBarWidth( itemElem.attribute( QStringLiteral( "maxBarWidth" ), QStringLiteral( "150" ) ).toInt() );
mSettings.setMinimumBarWidth( itemElem.attribute( QStringLiteral( "minBarWidth" ), QStringLiteral( "50" ) ).toDouble() );
mSettings.setMaximumBarWidth( itemElem.attribute( QStringLiteral( "maxBarWidth" ), QStringLiteral( "150" ) ).toDouble() );
mSegmentMillimeters = itemElem.attribute( QStringLiteral( "segmentMillimeters" ), QStringLiteral( "0.0" ) ).toDouble();
mSettings.setMapUnitsPerScaleBarUnit( itemElem.attribute( QStringLiteral( "numMapUnitsPerScaleBarUnit" ), QStringLiteral( "1.0" ) ).toDouble() );
mSettings.setLineWidth( itemElem.attribute( QStringLiteral( "outlineWidth" ), QStringLiteral( "0.3" ) ).toDouble() );
Expand Down
83 changes: 37 additions & 46 deletions src/ui/composer/qgscomposerscalebarwidgetbase.ui
Expand Up @@ -60,9 +60,9 @@
<property name="geometry">
<rect>
<x>0</x>
<y>-121</y>
<width>437</width>
<height>764</height>
<y>0</y>
<width>440</width>
<height>1004</height>
</rect>
</property>
<layout class="QVBoxLayout" name="mainLayout">
Expand Down Expand Up @@ -261,22 +261,6 @@
</property>
</widget>
</item>
<item row="4" column="2">
<widget class="QgsSpinBox" name="mMaxWidthSpinBox">
<property name="enabled">
<bool>false</bool>
</property>
<property name="suffix">
<string> mm</string>
</property>
<property name="prefix">
<string>max </string>
</property>
<property name="maximum">
<number>999</number>
</property>
</widget>
</item>
<item row="0" column="2">
<widget class="QgsSpinBox" name="mSegmentsLeftSpinBox">
<property name="suffix">
Expand All @@ -287,49 +271,56 @@
</property>
</widget>
</item>
<item row="3" column="2">
<widget class="QgsSpinBox" name="mMinWidthSpinBox">
<property name="enabled">
<bool>false</bool>
</property>
<property name="suffix">
<string> mm</string>
<item row="2" column="0" colspan="2">
<widget class="QRadioButton" name="mFixedSizeRadio">
<property name="text">
<string>Fi&amp;xed width</string>
</property>
<property name="prefix">
<string>min </string>
<property name="checked">
<bool>true</bool>
</property>
<property name="maximum">
<number>999</number>
</widget>
</item>
<item row="3" column="0" colspan="2">
<widget class="QRadioButton" name="mFitWidthRadio">
<property name="text">
<string>Fit segment width</string>
</property>
</widget>
</item>
<item row="5" column="2">
<widget class="QgsSpinBox" name="mHeightSpinBox">
<widget class="QgsDoubleSpinBox" name="mHeightSpinBox">
<property name="suffix">
<string> mm</string>
</property>
<property name="prefix">
<string/>
</property>
<property name="showClearButton" stdset="0">
<bool>false</bool>
<property name="maximum">
<double>999.990000000000009</double>
</property>
</widget>
</item>
<item row="2" column="0" colspan="2">
<widget class="QRadioButton" name="mFixedSizeRadio">
<property name="text">
<string>Fi&amp;xed width</string>
<item row="3" column="2">
<widget class="QgsDoubleSpinBox" name="mMinWidthSpinBox">
<property name="enabled">
<bool>false</bool>
</property>
<property name="checked">
<bool>true</bool>
<property name="suffix">
<string> mm</string>
</property>
<property name="maximum">
<double>999.990000000000009</double>
</property>
</widget>
</item>
<item row="3" column="0" colspan="2">
<widget class="QRadioButton" name="mFitWidthRadio">
<property name="text">
<string>Fit segment width</string>
<item row="4" column="2">
<widget class="QgsDoubleSpinBox" name="mMaxWidthSpinBox">
<property name="enabled">
<bool>false</bool>
</property>
<property name="suffix">
<string> mm</string>
</property>
<property name="maximum">
<double>999.990000000000009</double>
</property>
</widget>
</item>
Expand Down

0 comments on commit 7ca0b2d

Please sign in to comment.