Skip to content

Commit

Permalink
Always show coordinates
Browse files Browse the repository at this point in the history
  • Loading branch information
YoannQDQ committed Apr 17, 2023
1 parent 98bb668 commit cb9669e
Show file tree
Hide file tree
Showing 3 changed files with 69 additions and 121 deletions.
54 changes: 6 additions & 48 deletions src/app/qgsmeasuredialog.cpp
Expand Up @@ -59,14 +59,9 @@ QgsMeasureDialog::QgsMeasureDialog( QgsMeasureTool *tool, Qt::WindowFlags f )
QPushButton *cpb = new QPushButton( tr( "Copy &All" ) );
buttonBox->addButton( cpb, QDialogButtonBox::ActionRole );
connect( cpb, &QAbstractButton::clicked, this, &QgsMeasureDialog::copyMeasurements );

// Toggle the coordinates columns visibility
connect( mShowCoordinates, &QCheckBox::clicked, this, &QgsMeasureDialog::showCoordinatesChanged );
showCoordinatesChanged();
}
else
{
mShowCoordinates->hide();
mCopySettingsGroupBox->hide();
}

Expand Down Expand Up @@ -146,20 +141,6 @@ void QgsMeasureDialog::crsChanged()
updateUi();
}

void QgsMeasureDialog::showCoordinatesChanged()
{
// if Show Coordinates is unchecked, Hide the X and Y columns
mTable->setColumnHidden( Columns::X, !mShowCoordinates->isChecked() );
mTable->setColumnHidden( Columns::Y, !mShowCoordinates->isChecked() );

// The first row contains the first point, with no computed distance
// so we hide it if Show Coordinates is unchecked
if ( mTable->topLevelItemCount() > 0 )
{
mTable->topLevelItem( 0 )->setHidden( !mShowCoordinates->isChecked() );
}
}

void QgsMeasureDialog::updateSettings()
{
const QgsSettings settings;
Expand Down Expand Up @@ -289,12 +270,6 @@ void QgsMeasureDialog::addPoint()
item->setText( Columns::X, QLocale().toString( lastPoint.x(), 'f', mDecimalPlacesCoordinates ) );
item->setText( Columns::Y, QLocale().toString( lastPoint.y(), 'f', mDecimalPlacesCoordinates ) );
mTable->addTopLevelItem( item );

// Hide the first item if Show Coordinates is unchecked
if ( !mShowCoordinates->isChecked() )
{
item->setHidden( true );
}
}
QTreeWidgetItem *item = new QTreeWidgetItem();
QgsPointXY lastPoint = mTool->points().last();
Expand Down Expand Up @@ -663,12 +638,6 @@ void QgsMeasureDialog::updateUi()
item->setText( Columns::X, QLocale().toString( p2.x(), 'f', mDecimalPlacesCoordinates ) );
item->setText( Columns::Y, QLocale().toString( p2.y(), 'f', mDecimalPlacesCoordinates ) );
mTable->addTopLevelItem( item );

// Hide the first row if the coordinates are not shown
if ( !mShowCoordinates->isChecked() )
{
item->setHidden( true );
}
}
else
{
Expand Down Expand Up @@ -748,7 +717,6 @@ double QgsMeasureDialog::convertArea( double area, Qgis::AreaUnit toUnit ) const

void QgsMeasureDialog::copyMeasurements()
{
bool copyCoordinates = mShowCoordinates->isChecked();
bool includeHeader = mIncludeHeader->isChecked();

// Get the separator
Expand All @@ -766,35 +734,25 @@ void QgsMeasureDialog::copyMeasurements()
else
separator = mSeparatorCustom->text();


QClipboard *clipboard = QApplication::clipboard();
QString text;
QTreeWidgetItemIterator it( mTable );

if ( includeHeader )
{
if ( copyCoordinates )
{
text += mTable->headerItem()->text( Columns::X ) + separator;
text += mTable->headerItem()->text( Columns::Y ) + separator;
}
text += mTable->headerItem()->text( Columns::X ) + separator;
text += mTable->headerItem()->text( Columns::Y ) + separator;
text += mTable->headerItem()->text( Columns::Distance ) + QStringLiteral( "\n" );
}
// Discard the first item if show coordinates is not checked
if ( !copyCoordinates )
{
it++;
}

while ( *it )
{
if ( copyCoordinates )
{
text += ( *it )->text( Columns::X ) + separator;
text += ( *it )->text( Columns::Y ) + separator;
}
text += ( *it )->text( Columns::X ) + separator;
text += ( *it )->text( Columns::Y ) + separator;
text += ( *it )->text( Columns::Distance ) + QStringLiteral( "\n" );
it++;
}

clipboard->setText( text );
}

Expand Down
2 changes: 0 additions & 2 deletions src/app/qgsmeasuredialog.h
Expand Up @@ -73,8 +73,6 @@ class APP_EXPORT QgsMeasureDialog : public QDialog, private Ui::QgsMeasureBase
//! Copy measurements to the clipboard
void copyMeasurements();

void showCoordinatesChanged();

void crsChanged();

void projChanged();
Expand Down
134 changes: 63 additions & 71 deletions src/ui/qgsmeasurebase.ui
Expand Up @@ -7,7 +7,7 @@
<x>0</x>
<y>0</y>
<width>430</width>
<height>472</height>
<height>443</height>
</rect>
</property>
<property name="baseSize">
Expand Down Expand Up @@ -39,6 +39,35 @@
<property name="spacing">
<number>6</number>
</property>
<item row="8" column="0" colspan="4">
<widget class="QgsCollapsibleGroupBox" name="groupBox">
<property name="title">
<string>Info</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QLabel" name="mNotesLabel">
<property name="text">
<string/>
</property>
<property name="wordWrap">
<bool>true</bool>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item row="4" column="3">
<widget class="QComboBox" name="mUnitsCombo"/>
</item>
<item row="11" column="0" colspan="4">
<widget class="QDialogButtonBox" name="buttonBox">
<property name="standardButtons">
<set>QDialogButtonBox::Close|QDialogButtonBox::Help</set>
</property>
</widget>
</item>
<item row="2" column="0" colspan="4">
<widget class="QTreeWidget" name="mTable">
<property name="editTriggers">
Expand Down Expand Up @@ -73,36 +102,7 @@
</column>
</widget>
</item>
<item row="7" column="2">
<widget class="QRadioButton" name="mEllipsoidal">
<property name="text">
<string>Ellipsoidal</string>
</property>
<property name="checked">
<bool>true</bool>
</property>
</widget>
</item>
<item row="9" column="0" colspan="4">
<widget class="QgsCollapsibleGroupBox" name="groupBox">
<property name="title">
<string>Info</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QLabel" name="mNotesLabel">
<property name="text">
<string/>
</property>
<property name="wordWrap">
<bool>true</bool>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item row="10" column="0" colspan="4">
<spacer name="mSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
Expand All @@ -115,32 +115,16 @@
</property>
</spacer>
</item>
<item row="4" column="2">
<widget class="QLineEdit" name="editTotal">
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="alignment">
<set>Qt::AlignRight</set>
</property>
<property name="readOnly">
<bool>true</bool>
<item row="7" column="0">
<widget class="QRadioButton" name="mCartesian">
<property name="text">
<string>Cartesian</string>
</property>
</widget>
</item>
<item row="12" column="0" colspan="4">
<widget class="QDialogButtonBox" name="buttonBox">
<property name="standardButtons">
<set>QDialogButtonBox::Close|QDialogButtonBox::Help</set>
<property name="checked">
<bool>false</bool>
</property>
</widget>
</item>
<item row="4" column="3">
<widget class="QComboBox" name="mUnitsCombo"/>
</item>
<item row="4" column="1">
<spacer>
<property name="orientation">
Expand All @@ -157,6 +141,16 @@
</property>
</spacer>
</item>
<item row="4" column="0">
<widget class="QLabel" name="totalDistanceLabel">
<property name="text">
<string>Total</string>
</property>
<property name="buddy">
<cstring>editTotal</cstring>
</property>
</widget>
</item>
<item row="6" column="0">
<widget class="QLabel" name="totalHorizontalDistanceLabel">
<property name="text">
Expand All @@ -180,27 +174,33 @@
</property>
</widget>
</item>
<item row="4" column="0">
<widget class="QLabel" name="totalDistanceLabel">
<property name="text">
<string>Total</string>
<item row="4" column="2">
<widget class="QLineEdit" name="editTotal">
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="buddy">
<cstring>editTotal</cstring>
<property name="alignment">
<set>Qt::AlignRight</set>
</property>
<property name="readOnly">
<bool>true</bool>
</property>
</widget>
</item>
<item row="7" column="0">
<widget class="QRadioButton" name="mCartesian">
<item row="7" column="2">
<widget class="QRadioButton" name="mEllipsoidal">
<property name="text">
<string>Cartesian</string>
<string>Ellipsoidal</string>
</property>
<property name="checked">
<bool>false</bool>
<bool>true</bool>
</property>
</widget>
</item>
<item row="11" column="0" colspan="4">
<item row="10" column="0" colspan="4">
<widget class="QgsCollapsibleGroupBox" name="mCopySettingsGroupBox">
<property name="title">
<string>Copy settings</string>
Expand Down Expand Up @@ -299,13 +299,6 @@
</layout>
</widget>
</item>
<item row="8" column="0" colspan="4">
<widget class="QCheckBox" name="mShowCoordinates">
<property name="text">
<string>Show coordinates</string>
</property>
</widget>
</item>
</layout>
</widget>
<layoutdefault spacing="6" margin="11"/>
Expand All @@ -324,7 +317,6 @@
<tabstop>mUnitsCombo</tabstop>
<tabstop>editHorizontalTotal</tabstop>
<tabstop>mCartesian</tabstop>
<tabstop>mShowCoordinates</tabstop>
<tabstop>mIncludeHeader</tabstop>
<tabstop>mSeparatorComma</tabstop>
<tabstop>mSeparatorSemicolon</tabstop>
Expand Down

0 comments on commit cb9669e

Please sign in to comment.