Skip to content

Commit 6e60d67

Browse files
committed
Merge pull request #1747 from NathanW2/measure_dialog
Add units selector to measure dialog. Add info text to dialog
2 parents d9042f5 + ee9c368 commit 6e60d67

File tree

3 files changed

+96
-17
lines changed

3 files changed

+96
-17
lines changed

src/app/qgsmeasuredialog.cpp

+23-1
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,20 @@ QgsMeasureDialog::QgsMeasureDialog( QgsMeasureTool* tool, Qt::WindowFlags f )
4343
mMeasureArea = tool->measureArea();
4444
mTotal = 0.;
4545

46+
mUnitsCombo->addItem( tr( "Meters" ) );
47+
mUnitsCombo->addItem( tr( "Feet" ) );
48+
mUnitsCombo->addItem( tr( "Degrees" ) );
49+
mUnitsCombo->addItem( tr( "Nautical Miles" ) );
50+
51+
QSettings settings;
52+
QString units = settings.value( "/qgis/measure/displayunits", "meters" ).toString();
53+
mUnitsCombo->setCurrentIndex( mUnitsCombo->findText( units, Qt::MatchFixedString ) );
54+
4655
updateSettings();
56+
57+
connect( mUnitsCombo, SIGNAL( currentIndexChanged( const QString & ) ), this, SLOT( unitsChanged( const QString & ) ) );
58+
59+
groupBox->setCollapsed( true );
4760
}
4861

4962
void QgsMeasureDialog::updateSettings()
@@ -52,8 +65,8 @@ void QgsMeasureDialog::updateSettings()
5265

5366
mDecimalPlaces = settings.value( "/qgis/measure/decimalplaces", "3" ).toInt();
5467
mCanvasUnits = mTool->canvas()->mapUnits();
55-
mDisplayUnits = QGis::fromLiteral( settings.value( "/qgis/measure/displayunits", QGis::toLiteral( QGis::Meters ) ).toString() );
5668
// Configure QgsDistanceArea
69+
mDisplayUnits = QGis::fromLiteral( mUnitsCombo->currentText().toLower() );
5770
mDa.setSourceCrs( mTool->canvas()->mapSettings().destinationCrs().srsid() );
5871
mDa.setEllipsoid( QgsProject::instance()->readEntry( "Measure", "/Ellipsoid", GEO_NONE ) );
5972
// Only use ellipsoidal calculation when project wide transformation is enabled.
@@ -77,6 +90,14 @@ void QgsMeasureDialog::updateSettings()
7790
updateUi();
7891
}
7992

93+
void QgsMeasureDialog::unitsChanged( const QString &units )
94+
{
95+
mDisplayUnits = QGis::fromLiteral( units.toLower() );
96+
mTable->clear();
97+
mTotal = 0.;
98+
updateUi();
99+
}
100+
80101
void QgsMeasureDialog::restart()
81102
{
82103
mTool->restart();
@@ -269,6 +290,7 @@ void QgsMeasureDialog::updateUi()
269290

270291
editTotal->setToolTip( toolTip );
271292
mTable->setToolTip( toolTip );
293+
mNotesLabel->setText( toolTip );
272294

273295
QGis::UnitType newDisplayUnits;
274296
double dummy = 1.0;

src/app/qgsmeasuredialog.h

+3
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,9 @@ class APP_EXPORT QgsMeasureDialog : public QDialog, private Ui::QgsMeasureBase
6666
//! When any external settings change
6767
void updateSettings();
6868

69+
private slots:
70+
void unitsChanged( const QString &units );
71+
6972
private:
7073

7174
//! formats distance to most appropriate units

src/ui/qgsmeasurebase.ui

+70-16
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@
66
<rect>
77
<x>0</x>
88
<y>0</y>
9-
<width>281</width>
10-
<height>272</height>
9+
<width>359</width>
10+
<height>301</height>
1111
</rect>
1212
</property>
1313
<property name="baseSize">
@@ -25,13 +25,32 @@
2525
</iconset>
2626
</property>
2727
<layout class="QGridLayout">
28-
<property name="margin">
28+
<property name="leftMargin">
29+
<number>9</number>
30+
</property>
31+
<property name="topMargin">
32+
<number>9</number>
33+
</property>
34+
<property name="rightMargin">
35+
<number>9</number>
36+
</property>
37+
<property name="bottomMargin">
2938
<number>9</number>
3039
</property>
3140
<property name="spacing">
3241
<number>6</number>
3342
</property>
34-
<item row="2" column="2">
43+
<item row="4" column="0">
44+
<widget class="QLabel" name="textLabel2">
45+
<property name="text">
46+
<string>Total</string>
47+
</property>
48+
<property name="buddy">
49+
<cstring>editTotal</cstring>
50+
</property>
51+
</widget>
52+
</item>
53+
<item row="4" column="2">
3554
<widget class="QLineEdit" name="editTotal">
3655
<property name="font">
3756
<font>
@@ -47,7 +66,7 @@
4766
</property>
4867
</widget>
4968
</item>
50-
<item row="2" column="1">
69+
<item row="4" column="1">
5170
<spacer>
5271
<property name="orientation">
5372
<enum>Qt::Horizontal</enum>
@@ -63,17 +82,10 @@
6382
</property>
6483
</spacer>
6584
</item>
66-
<item row="2" column="0">
67-
<widget class="QLabel" name="textLabel2">
68-
<property name="text">
69-
<string>Total</string>
70-
</property>
71-
<property name="buddy">
72-
<cstring>editTotal</cstring>
73-
</property>
74-
</widget>
85+
<item row="4" column="3">
86+
<widget class="QComboBox" name="mUnitsCombo"/>
7587
</item>
76-
<item row="1" column="0" colspan="3">
88+
<item row="2" column="0" colspan="4">
7789
<widget class="QTreeWidget" name="mTable">
7890
<property name="editTriggers">
7991
<set>QAbstractItemView::NoEditTriggers</set>
@@ -88,19 +100,61 @@
88100
<property name="text">
89101
<string>Segments</string>
90102
</property>
103+
<property name="textAlignment">
104+
<set>AlignRight|AlignVCenter</set>
105+
</property>
91106
</column>
92107
</widget>
93108
</item>
94-
<item row="3" column="2">
109+
<item row="6" column="0" colspan="4">
95110
<widget class="QDialogButtonBox" name="buttonBox">
96111
<property name="standardButtons">
97112
<set>QDialogButtonBox::Close|QDialogButtonBox::Help</set>
98113
</property>
99114
</widget>
100115
</item>
116+
<item row="5" column="0" colspan="4">
117+
<widget class="QgsCollapsibleGroupBox" name="groupBox">
118+
<property name="title">
119+
<string>Info</string>
120+
</property>
121+
<layout class="QVBoxLayout" name="verticalLayout">
122+
<property name="leftMargin">
123+
<number>3</number>
124+
</property>
125+
<property name="topMargin">
126+
<number>3</number>
127+
</property>
128+
<property name="rightMargin">
129+
<number>3</number>
130+
</property>
131+
<property name="bottomMargin">
132+
<number>3</number>
133+
</property>
134+
<item>
135+
<widget class="QLabel" name="mNotesLabel">
136+
<property name="text">
137+
<string/>
138+
</property>
139+
<property name="wordWrap">
140+
<bool>true</bool>
141+
</property>
142+
</widget>
143+
</item>
144+
</layout>
145+
</widget>
146+
</item>
101147
</layout>
102148
</widget>
103149
<layoutdefault spacing="6" margin="11"/>
150+
<customwidgets>
151+
<customwidget>
152+
<class>QgsCollapsibleGroupBox</class>
153+
<extends>QGroupBox</extends>
154+
<header>qgscollapsiblegroupbox.h</header>
155+
<container>1</container>
156+
</customwidget>
157+
</customwidgets>
104158
<tabstops>
105159
<tabstop>mTable</tabstop>
106160
<tabstop>editTotal</tabstop>

0 commit comments

Comments
 (0)