mirror of
https://github.com/qgis/QGIS.git
synced 2025-02-25 00:58:06 -05:00
define default transforms in global options
adds QgsCoordinateTransformContext::readSettings()/writeSettings to read/write from settings
This commit is contained in:
parent
8798cf0680
commit
44ed7bd9fb
@ -12,6 +12,7 @@
|
||||
|
||||
|
||||
|
||||
|
||||
class QgsCoordinateTransformContext
|
||||
{
|
||||
%Docstring
|
||||
@ -149,6 +150,19 @@ class QgsCoordinateTransformContext
|
||||
%End
|
||||
|
||||
|
||||
void readSettings();
|
||||
%Docstring
|
||||
Reads the context's state from application settings.
|
||||
.. seealso:: readSettings()
|
||||
%End
|
||||
|
||||
void writeSettings();
|
||||
%Docstring
|
||||
Write the context's state to application settings.
|
||||
.. seealso:: writeSettings()
|
||||
%End
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
@ -38,6 +38,7 @@
|
||||
#include "qgsattributetablefiltermodel.h"
|
||||
#include "qgsrasterformatsaveoptionswidget.h"
|
||||
#include "qgsrasterpyramidsoptionswidget.h"
|
||||
#include "qgsdatumtransformdialog.h"
|
||||
#include "qgsdialog.h"
|
||||
#include "qgscomposer.h"
|
||||
#include "qgscolorschemeregistry.h"
|
||||
@ -454,56 +455,21 @@ QgsOptions::QgsOptions( QWidget *parent, Qt::WindowFlags fl, const QList<QgsOpti
|
||||
leProjectGlobalCrs->setCrs( mDefaultCrs );
|
||||
leProjectGlobalCrs->setOptionVisible( QgsProjectionSelectionWidget::DefaultCrs, false );
|
||||
|
||||
//default datum transformations
|
||||
mSettings->beginGroup( QStringLiteral( "/Projections" ) );
|
||||
|
||||
mShowDatumTransformDialogCheckBox->setChecked( mSettings->value( QStringLiteral( "/Projections/showDatumTransformDialog" ), false ).toBool() );
|
||||
|
||||
QStringList projectionKeys = mSettings->allKeys();
|
||||
// Datum transforms
|
||||
QgsCoordinateTransformContext context;
|
||||
context.readSettings();
|
||||
mDefaultDatumTransformTableModel->setTransformContext( context );
|
||||
mDefaultDatumTransformTableView->setModel( mDefaultDatumTransformTableModel );
|
||||
mDefaultDatumTransformTableView->resizeColumnToContents( 0 );
|
||||
mDefaultDatumTransformTableView->horizontalHeader()->show();
|
||||
mDefaultDatumTransformTableView->setSelectionMode( QAbstractItemView::SingleSelection );
|
||||
mDefaultDatumTransformTableView->setSelectionBehavior( QAbstractItemView::SelectRows );
|
||||
connect( mAddDefaultTransformButton, &QToolButton::clicked, this, &QgsOptions::addDefaultDatumTransform );
|
||||
connect( mRemoveDefaultTransformButton, &QToolButton::clicked, this, &QgsOptions::removeDefaultDatumTransform );
|
||||
connect( mEditDefaultTransformButton, &QToolButton::clicked, this, &QgsOptions::editDefaultDatumTransform );
|
||||
|
||||
//collect src and dest entries that belong together
|
||||
QMap< QPair< QString, QString >, QPair< int, int > > transforms;
|
||||
QStringList::const_iterator pkeyIt = projectionKeys.constBegin();
|
||||
for ( ; pkeyIt != projectionKeys.constEnd(); ++pkeyIt )
|
||||
{
|
||||
if ( pkeyIt->contains( QLatin1String( "srcTransform" ) ) || pkeyIt->contains( QLatin1String( "destTransform" ) ) )
|
||||
{
|
||||
QStringList split = pkeyIt->split( '/' );
|
||||
QString srcAuthId, destAuthId;
|
||||
if ( ! split.isEmpty() )
|
||||
{
|
||||
srcAuthId = split.at( 0 );
|
||||
}
|
||||
if ( split.size() > 1 )
|
||||
{
|
||||
destAuthId = split.at( 1 ).split( '_' ).at( 0 );
|
||||
}
|
||||
|
||||
if ( pkeyIt->contains( QLatin1String( "srcTransform" ) ) )
|
||||
{
|
||||
transforms[ qMakePair( srcAuthId, destAuthId )].first = mSettings->value( *pkeyIt ).toInt();
|
||||
}
|
||||
else if ( pkeyIt->contains( QLatin1String( "destTransform" ) ) )
|
||||
{
|
||||
transforms[ qMakePair( srcAuthId, destAuthId )].second = mSettings->value( *pkeyIt ).toInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
mSettings->endGroup();
|
||||
|
||||
QMap< QPair< QString, QString >, QPair< int, int > >::const_iterator transformIt = transforms.constBegin();
|
||||
for ( ; transformIt != transforms.constEnd(); ++transformIt )
|
||||
{
|
||||
const QPair< int, int > &v = transformIt.value();
|
||||
QTreeWidgetItem *item = new QTreeWidgetItem();
|
||||
item->setText( 0, transformIt.key().first );
|
||||
item->setText( 1, transformIt.key().second );
|
||||
item->setText( 2, QString::number( v.first ) );
|
||||
item->setText( 3, QString::number( v.second ) );
|
||||
mDefaultDatumTransformTreeWidget->addTopLevelItem( item );
|
||||
}
|
||||
connect( mAddDefaultTransformButton, &QAbstractButton::clicked, this, &QgsOptions::addDefaultTransformation );
|
||||
connect( mRemoveDefaultTransformButton, &QAbstractButton::clicked, this, &QgsOptions::removeDefaultTransformation );
|
||||
|
||||
// Set the units for measuring
|
||||
mDistanceUnitsComboBox->addItem( tr( "Meters" ), QgsUnitTypes::DistanceMeters );
|
||||
@ -1560,7 +1526,7 @@ void QgsOptions::saveOptions()
|
||||
mStyleSheetBuilder->saveToSettings( mStyleSheetNewOpts );
|
||||
}
|
||||
|
||||
saveDefaultDatumTransformations();
|
||||
mDefaultDatumTransformTableModel->transformContext().writeSettings();
|
||||
|
||||
mLocatorOptionsWidget->commitChanges();
|
||||
|
||||
@ -2255,72 +2221,71 @@ void QgsOptions::saveMinMaxLimits( QComboBox *cbox, const QString &name )
|
||||
mSettings->setValue( "/Raster/defaultContrastEnhancementLimits/" + name, value );
|
||||
}
|
||||
|
||||
void QgsOptions::removeDefaultTransformation()
|
||||
void QgsOptions::addDefaultDatumTransform()
|
||||
{
|
||||
QList<QTreeWidgetItem *> items = mDefaultDatumTransformTreeWidget->selectedItems();
|
||||
for ( int i = 0; i < items.size(); ++i )
|
||||
QgsDatumTransformDialog *dlg = new QgsDatumTransformDialog();
|
||||
if ( dlg->exec() )
|
||||
{
|
||||
int idx = mDefaultDatumTransformTreeWidget->indexOfTopLevelItem( items.at( i ) );
|
||||
if ( idx >= 0 )
|
||||
{
|
||||
delete mDefaultDatumTransformTreeWidget->takeTopLevelItem( idx );
|
||||
}
|
||||
QPair< QPair<QgsCoordinateReferenceSystem, int>, QPair<QgsCoordinateReferenceSystem, int > > dt = dlg->selectedDatumTransforms();
|
||||
QgsCoordinateTransformContext context = mDefaultDatumTransformTableModel->transformContext();
|
||||
context.addSourceDestinationDatumTransform( dt.first.first, dt.second.first, dt.first.second, dt.second.second );
|
||||
mDefaultDatumTransformTableModel->setTransformContext( context );
|
||||
}
|
||||
}
|
||||
|
||||
void QgsOptions::addDefaultTransformation()
|
||||
void QgsOptions::removeDefaultDatumTransform()
|
||||
{
|
||||
QTreeWidgetItem *item = new QTreeWidgetItem();
|
||||
item->setText( 0, QLatin1String( "" ) );
|
||||
item->setText( 1, QLatin1String( "" ) );
|
||||
item->setText( 2, QLatin1String( "" ) );
|
||||
item->setText( 3, QLatin1String( "" ) );
|
||||
item->setFlags( Qt::ItemIsEnabled | Qt::ItemIsSelectable | Qt::ItemIsEditable );
|
||||
mDefaultDatumTransformTreeWidget->addTopLevelItem( item );
|
||||
QModelIndexList selectedIndexes = mDefaultDatumTransformTableView->selectionModel()->selectedIndexes();
|
||||
if ( selectedIndexes.count() > 0 )
|
||||
{
|
||||
mDefaultDatumTransformTableModel->removeTransform( selectedIndexes );
|
||||
}
|
||||
}
|
||||
|
||||
void QgsOptions::saveDefaultDatumTransformations()
|
||||
void QgsOptions::editDefaultDatumTransform()
|
||||
{
|
||||
QgsSettings s;
|
||||
s.beginGroup( QStringLiteral( "/Projections" ) );
|
||||
QStringList groupKeys = s.allKeys();
|
||||
QStringList::const_iterator groupKeyIt = groupKeys.constBegin();
|
||||
for ( ; groupKeyIt != groupKeys.constEnd(); ++groupKeyIt )
|
||||
QModelIndexList selectedIndexes = mDefaultDatumTransformTableView->selectionModel()->selectedIndexes();
|
||||
if ( selectedIndexes.count() > 0 )
|
||||
{
|
||||
if ( groupKeyIt->contains( QLatin1String( "srcTransform" ) ) || groupKeyIt->contains( QLatin1String( "destTransform" ) ) )
|
||||
QgsCoordinateReferenceSystem sourceCrs;
|
||||
QgsCoordinateReferenceSystem destinationCrs;
|
||||
int sourceTransform = -1;
|
||||
int destinationTransform = -1;
|
||||
for ( QModelIndexList::const_iterator it = selectedIndexes.constBegin(); it != selectedIndexes.constEnd(); it ++ )
|
||||
{
|
||||
s.remove( *groupKeyIt );
|
||||
if ( it->column() == QgsDatumTransformTableModel::SourceCrsColumn )
|
||||
{
|
||||
sourceCrs = QgsCoordinateReferenceSystem( mDefaultDatumTransformTableModel->data( *it, Qt::DisplayRole ).toString() );
|
||||
}
|
||||
if ( it->column() == QgsDatumTransformTableModel::DestinationCrsColumn )
|
||||
{
|
||||
destinationCrs = QgsCoordinateReferenceSystem( mDefaultDatumTransformTableModel->data( *it, Qt::DisplayRole ).toString() );
|
||||
}
|
||||
if ( it->column() == QgsDatumTransformTableModel::SourceTransformColumn )
|
||||
{
|
||||
sourceTransform = mDefaultDatumTransformTableModel->data( *it, Qt::UserRole ).toInt();
|
||||
}
|
||||
if ( it->column() == QgsDatumTransformTableModel::DestinationTransformColumn )
|
||||
{
|
||||
destinationTransform = mDefaultDatumTransformTableModel->data( *it, Qt::UserRole ).toInt();
|
||||
}
|
||||
}
|
||||
if ( sourceCrs.isValid() && destinationCrs.isValid() &&
|
||||
( sourceTransform != -1 || destinationTransform != -1 ) )
|
||||
{
|
||||
QgsDatumTransformDialog *dlg = new QgsDatumTransformDialog( sourceCrs, destinationCrs, qMakePair( sourceTransform, destinationTransform ) );
|
||||
if ( dlg->exec() )
|
||||
{
|
||||
QPair< QPair<QgsCoordinateReferenceSystem, int>, QPair<QgsCoordinateReferenceSystem, int > > dt = dlg->selectedDatumTransforms();
|
||||
QgsCoordinateTransformContext context = mDefaultDatumTransformTableModel->transformContext();
|
||||
// QMap::insert takes care of replacing existing value
|
||||
context.addSourceDestinationDatumTransform( sourceCrs, destinationCrs, dt.first.second, dt.second.second );
|
||||
mDefaultDatumTransformTableModel->setTransformContext( context );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
int nDefaultTransforms = mDefaultDatumTransformTreeWidget->topLevelItemCount();
|
||||
for ( int i = 0; i < nDefaultTransforms; ++i )
|
||||
{
|
||||
QTreeWidgetItem *item = mDefaultDatumTransformTreeWidget->topLevelItem( i );
|
||||
QString srcAuthId = item->text( 0 );
|
||||
QString destAuthId = item->text( 1 );
|
||||
if ( srcAuthId.isEmpty() || destAuthId.isEmpty() )
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
bool conversionOk;
|
||||
int srcDatumTransform = item->text( 2 ).toInt( &conversionOk );
|
||||
if ( conversionOk )
|
||||
{
|
||||
s.setValue( srcAuthId + "//" + destAuthId + "_srcTransform", srcDatumTransform );
|
||||
}
|
||||
int destDatumTransform = item->text( 3 ).toInt( &conversionOk );
|
||||
if ( conversionOk )
|
||||
{
|
||||
s.setValue( srcAuthId + "//" + destAuthId + "_destTransform", destDatumTransform );
|
||||
}
|
||||
}
|
||||
|
||||
s.endGroup();
|
||||
}
|
||||
|
||||
|
||||
void QgsOptions::addColor()
|
||||
{
|
||||
QColor newColor = QgsColorDialog::getColor( QColor(), this->parentWidget(), tr( "Select color" ), true );
|
||||
|
@ -25,6 +25,7 @@
|
||||
#include "qgshelp.h"
|
||||
|
||||
#include "qgscoordinatereferencesystem.h"
|
||||
#include "qgsdatumtransformtablemodel.h"
|
||||
|
||||
#include <QList>
|
||||
#include "qgis_app.h"
|
||||
@ -227,11 +228,17 @@ class APP_EXPORT QgsOptions : public QgsOptionsDialogBase, private Ui::QgsOption
|
||||
/* Save the list of which gdal drivers should be used. */
|
||||
void saveGdalDriverList();
|
||||
|
||||
void removeDefaultTransformation();
|
||||
void addDefaultTransformation();
|
||||
|
||||
void addColor();
|
||||
|
||||
//! add a new datum transform
|
||||
void addDefaultDatumTransform();
|
||||
|
||||
//! remove currently selected datum transform
|
||||
void removeDefaultDatumTransform();
|
||||
|
||||
//! edit currently selected datum transform
|
||||
void editDefaultDatumTransform();
|
||||
|
||||
private:
|
||||
QgsSettings *mSettings = nullptr;
|
||||
QStringList i18nList();
|
||||
@ -248,8 +255,6 @@ class APP_EXPORT QgsOptions : public QgsOptionsDialogBase, private Ui::QgsOption
|
||||
//! Generate table row for custom environment variables
|
||||
void addCustomEnvVarRow( const QString &varName, const QString &varVal, const QString &varApply = QString() );
|
||||
|
||||
void saveDefaultDatumTransformations();
|
||||
|
||||
void showHelp();
|
||||
|
||||
QListWidgetItem *addScaleToScaleList( const QString &newScale );
|
||||
@ -267,7 +272,7 @@ class APP_EXPORT QgsOptions : public QgsOptionsDialogBase, private Ui::QgsOption
|
||||
|
||||
QList< QgsOptionsPageWidget * > mAdditionalOptionWidgets;
|
||||
QgsLocatorOptionsWidget *mLocatorOptionsWidget = nullptr;
|
||||
|
||||
QgsDatumTransformTableModel *mDefaultDatumTransformTableModel = new QgsDatumTransformTableModel( this );
|
||||
};
|
||||
|
||||
#endif // #ifndef QGSOPTIONS_H
|
||||
|
@ -1297,7 +1297,6 @@ void QgsProjectProperties::editDatumTransform()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void QgsProjectProperties::cbxWFSPubliedStateChanged( int aIdx )
|
||||
|
@ -17,6 +17,8 @@
|
||||
|
||||
#include "qgscoordinatetransformcontext.h"
|
||||
#include "qgscoordinatetransformcontext_p.h"
|
||||
#include "qgssettings.h"
|
||||
|
||||
QgsCoordinateTransformContext::QgsCoordinateTransformContext()
|
||||
: d( new QgsCoordinateTransformContextPrivate() )
|
||||
{}
|
||||
@ -37,8 +39,10 @@ void QgsCoordinateTransformContext::clear()
|
||||
// play it safe
|
||||
d->mLock.lockForWrite();
|
||||
d->mSourceDestDatumTransforms.clear();
|
||||
#if 0
|
||||
d->mSourceDatumTransforms.clear();
|
||||
d->mDestDatumTransforms.clear();
|
||||
#endif
|
||||
d->mLock.unlock();
|
||||
}
|
||||
|
||||
@ -163,8 +167,10 @@ void QgsCoordinateTransformContext::readXml( const QDomElement &element, const Q
|
||||
d->mLock.lockForWrite();
|
||||
|
||||
d->mSourceDestDatumTransforms.clear();
|
||||
#if 0
|
||||
d->mSourceDatumTransforms.clear();
|
||||
d->mDestDatumTransforms.clear();
|
||||
#endif
|
||||
|
||||
const QDomNodeList contextNodes = element.elementsByTagName( QStringLiteral( "transformContext" ) );
|
||||
if ( contextNodes.count() < 1 )
|
||||
@ -192,6 +198,7 @@ void QgsCoordinateTransformContext::readXml( const QDomElement &element, const Q
|
||||
}
|
||||
}
|
||||
|
||||
#if 0
|
||||
// src transforms
|
||||
const QDomNodeList srcNodes = contextElem.elementsByTagName( QStringLiteral( "source" ) );
|
||||
for ( int i = 0; i < srcNodes .size(); ++i )
|
||||
@ -219,6 +226,7 @@ void QgsCoordinateTransformContext::readXml( const QDomElement &element, const Q
|
||||
d->mDestDatumTransforms.insert( key, value );
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
d->mLock.unlock();
|
||||
}
|
||||
@ -240,6 +248,7 @@ void QgsCoordinateTransformContext::writeXml( QDomElement &element, QDomDocument
|
||||
contextElem.appendChild( transformElem );
|
||||
}
|
||||
|
||||
#if 0
|
||||
// src transforms
|
||||
for ( auto it = d->mSourceDatumTransforms.constBegin(); it != d->mSourceDatumTransforms.constEnd(); ++ it )
|
||||
{
|
||||
@ -257,7 +266,92 @@ void QgsCoordinateTransformContext::writeXml( QDomElement &element, QDomDocument
|
||||
transformElem.setAttribute( QStringLiteral( "transform" ), it.value() );
|
||||
contextElem.appendChild( transformElem );
|
||||
}
|
||||
#endif
|
||||
|
||||
element.appendChild( contextElem );
|
||||
d->mLock.unlock();
|
||||
}
|
||||
|
||||
void QgsCoordinateTransformContext::readSettings()
|
||||
{
|
||||
d.detach();
|
||||
d->mLock.lockForWrite();
|
||||
|
||||
d->mSourceDestDatumTransforms.clear();
|
||||
#if 0
|
||||
d->mSourceDatumTransforms.clear();
|
||||
d->mDestDatumTransforms.clear();
|
||||
#endif
|
||||
|
||||
QgsSettings *settings = new QgsSettings();
|
||||
settings->beginGroup( QStringLiteral( "/Projections" ) );
|
||||
QStringList projectionKeys = settings->allKeys();
|
||||
|
||||
//collect src and dest entries that belong together
|
||||
QMap< QPair< QString, QString >, QPair< int, int > > transforms;
|
||||
QStringList::const_iterator pkeyIt = projectionKeys.constBegin();
|
||||
for ( ; pkeyIt != projectionKeys.constEnd(); ++pkeyIt )
|
||||
{
|
||||
if ( pkeyIt->contains( QLatin1String( "srcTransform" ) ) || pkeyIt->contains( QLatin1String( "destTransform" ) ) )
|
||||
{
|
||||
QStringList split = pkeyIt->split( '/' );
|
||||
QString srcAuthId, destAuthId;
|
||||
if ( ! split.isEmpty() )
|
||||
{
|
||||
srcAuthId = split.at( 0 );
|
||||
}
|
||||
if ( split.size() > 1 )
|
||||
{
|
||||
destAuthId = split.at( 1 ).split( '_' ).at( 0 );
|
||||
}
|
||||
|
||||
if ( pkeyIt->contains( QLatin1String( "srcTransform" ) ) )
|
||||
{
|
||||
transforms[ qMakePair( srcAuthId, destAuthId )].first = settings->value( *pkeyIt ).toInt();
|
||||
}
|
||||
else if ( pkeyIt->contains( QLatin1String( "destTransform" ) ) )
|
||||
{
|
||||
transforms[ qMakePair( srcAuthId, destAuthId )].second = settings->value( *pkeyIt ).toInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// add transforms to context
|
||||
QMap< QPair< QString, QString >, QPair< int, int > >::const_iterator transformIt = transforms.constBegin();
|
||||
for ( ; transformIt != transforms.constEnd(); ++transformIt )
|
||||
{
|
||||
d->mSourceDestDatumTransforms.insert( transformIt.key(), transformIt.value() );
|
||||
}
|
||||
|
||||
d->mLock.unlock();
|
||||
settings->endGroup();
|
||||
}
|
||||
|
||||
void QgsCoordinateTransformContext::writeSettings()
|
||||
{
|
||||
QgsSettings s;
|
||||
s.beginGroup( QStringLiteral( "/Projections" ) );
|
||||
QStringList groupKeys = s.allKeys();
|
||||
QStringList::const_iterator groupKeyIt = groupKeys.constBegin();
|
||||
for ( ; groupKeyIt != groupKeys.constEnd(); ++groupKeyIt )
|
||||
{
|
||||
if ( groupKeyIt->contains( QLatin1String( "srcTransform" ) ) || groupKeyIt->contains( QLatin1String( "destTransform" ) ) )
|
||||
{
|
||||
s.remove( *groupKeyIt );
|
||||
}
|
||||
}
|
||||
|
||||
QMap< QPair< QString, QString >, QPair< int, int > >::const_iterator transformIt = d->mSourceDestDatumTransforms.constBegin();
|
||||
for ( ; transformIt != d->mSourceDestDatumTransforms.constEnd(); ++transformIt )
|
||||
{
|
||||
QString srcAuthId = transformIt.key().first;
|
||||
QString destAuthId = transformIt.key().second;
|
||||
int sourceDatumTransform = transformIt.value().first;
|
||||
int destinationDatumTransform = transformIt.value().second;
|
||||
|
||||
s.setValue( srcAuthId + "//" + destAuthId + "_srcTransform", sourceDatumTransform );
|
||||
s.setValue( srcAuthId + "//" + destAuthId + "_destTransform", destinationDatumTransform );
|
||||
}
|
||||
|
||||
s.endGroup();
|
||||
}
|
||||
|
@ -24,6 +24,7 @@
|
||||
|
||||
class QgsReadWriteContext;
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
* This class is considered CRITICAL and any change MUST be accompanied with
|
||||
* full unit tests in testqgsfeature.cpp.
|
||||
@ -242,6 +243,19 @@ class CORE_EXPORT QgsCoordinateTransformContext
|
||||
void writeXml( QDomElement &element, QDomDocument &document, const QgsReadWriteContext &context ) const;
|
||||
|
||||
|
||||
/**
|
||||
* Reads the context's state from application settings.
|
||||
* \see readSettings()
|
||||
*/
|
||||
void readSettings();
|
||||
|
||||
/**
|
||||
* Write the context's state to application settings.
|
||||
* \see writeSettings()
|
||||
*/
|
||||
void writeSettings();
|
||||
|
||||
|
||||
private:
|
||||
|
||||
QExplicitlySharedDataPointer<QgsCoordinateTransformContextPrivate> d;
|
||||
|
@ -50,8 +50,10 @@ class QgsCoordinateTransformContextPrivate : public QSharedData
|
||||
{
|
||||
other.mLock.lockForRead();
|
||||
mSourceDestDatumTransforms = other.mSourceDestDatumTransforms;
|
||||
#if 0
|
||||
mSourceDatumTransforms = other.mSourceDatumTransforms;
|
||||
mDestDatumTransforms = other.mDestDatumTransforms;
|
||||
#endif
|
||||
other.mLock.unlock();
|
||||
}
|
||||
|
||||
@ -61,11 +63,13 @@ class QgsCoordinateTransformContextPrivate : public QSharedData
|
||||
*/
|
||||
QMap< QPair< QString, QString >, QPair< int, int > > mSourceDestDatumTransforms;
|
||||
|
||||
#if 0
|
||||
//! Mapping for datum transforms to use for source CRS
|
||||
QMap< QString, int > mSourceDatumTransforms;
|
||||
|
||||
//! Mapping for datum transforms to use for destination CRS
|
||||
QMap< QString, int > mDestDatumTransforms;
|
||||
#endif
|
||||
|
||||
//! Mutex for making QgsCoordinateTransformContextPrivate thread safe
|
||||
mutable QReadWriteLock mLock;
|
||||
|
@ -337,8 +337,8 @@
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>848</width>
|
||||
<height>812</height>
|
||||
<width>577</width>
|
||||
<height>766</height>
|
||||
</rect>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_28">
|
||||
@ -1032,7 +1032,7 @@
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>848</width>
|
||||
<width>545</width>
|
||||
<height>1114</height>
|
||||
</rect>
|
||||
</property>
|
||||
@ -1568,8 +1568,8 @@
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>848</width>
|
||||
<height>812</height>
|
||||
<width>540</width>
|
||||
<height>705</height>
|
||||
</rect>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_27">
|
||||
@ -1936,7 +1936,7 @@
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>848</width>
|
||||
<width>717</width>
|
||||
<height>1020</height>
|
||||
</rect>
|
||||
</property>
|
||||
@ -2687,8 +2687,8 @@
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>848</width>
|
||||
<height>812</height>
|
||||
<width>140</width>
|
||||
<height>276</height>
|
||||
</rect>
|
||||
</property>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_46">
|
||||
@ -2838,8 +2838,8 @@
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>848</width>
|
||||
<height>812</height>
|
||||
<width>532</width>
|
||||
<height>236</height>
|
||||
</rect>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_25">
|
||||
@ -4679,30 +4679,6 @@ The bigger the number, the faster zooming with the mouse wheel will be.</string>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item row="4" column="0">
|
||||
<widget class="QTreeWidget" name="mDefaultDatumTransformTreeWidget">
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>Source CRS</string>
|
||||
</property>
|
||||
</column>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>Destination CRS</string>
|
||||
</property>
|
||||
</column>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>Source datum transform</string>
|
||||
</property>
|
||||
</column>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>Destination datum transform</string>
|
||||
</property>
|
||||
</column>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="Line" name="line_2">
|
||||
<property name="orientation">
|
||||
@ -4710,6 +4686,9 @@ The bigger the number, the faster zooming with the mouse wheel will be.</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="0">
|
||||
<widget class="QTableView" name="mDefaultDatumTransformTableView"/>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
@ -4796,8 +4775,8 @@ The bigger the number, the faster zooming with the mouse wheel will be.</string>
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>848</width>
|
||||
<height>812</height>
|
||||
<width>641</width>
|
||||
<height>764</height>
|
||||
</rect>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_33">
|
||||
|
@ -259,8 +259,8 @@
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>676</width>
|
||||
<height>764</height>
|
||||
<width>565</width>
|
||||
<height>697</height>
|
||||
</rect>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_8">
|
||||
@ -797,8 +797,7 @@
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_21">
|
||||
<item>
|
||||
<widget class="QgsProjectionSelectionTreeWidget" name="projectionSelector" native="true">
|
||||
</widget>
|
||||
<widget class="QgsProjectionSelectionTreeWidget" name="projectionSelector" native="true"/>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
@ -831,9 +830,6 @@
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="0" colspan="4">
|
||||
<widget class="QTableView" name="mDatumTransformTableView"/>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QToolButton" name="mDatumTransformAddButton">
|
||||
<property name="text">
|
||||
@ -868,8 +864,10 @@
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="0" colspan="4">
|
||||
<widget class="QTableView" name="mDatumTransformTableView"/>
|
||||
</item>
|
||||
</layout>
|
||||
<zorder>cbxProjectionEnabled</zorder>
|
||||
<zorder>mDatumTransformTableView</zorder>
|
||||
<zorder>mDatumTransformAddButton</zorder>
|
||||
<zorder>mDatumTransformRemoveButton</zorder>
|
||||
@ -910,8 +908,8 @@
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>676</width>
|
||||
<height>764</height>
|
||||
<width>133</width>
|
||||
<height>100</height>
|
||||
</rect>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_10">
|
||||
@ -996,8 +994,8 @@
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>676</width>
|
||||
<height>764</height>
|
||||
<width>269</width>
|
||||
<height>597</height>
|
||||
</rect>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_12">
|
||||
@ -1434,7 +1432,7 @@
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>676</width>
|
||||
<width>598</width>
|
||||
<height>2363</height>
|
||||
</rect>
|
||||
</property>
|
||||
@ -2535,8 +2533,8 @@
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>676</width>
|
||||
<height>764</height>
|
||||
<width>156</width>
|
||||
<height>59</height>
|
||||
</rect>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_17">
|
||||
@ -2689,47 +2687,47 @@
|
||||
</layout>
|
||||
</widget>
|
||||
<customwidgets>
|
||||
<customwidget>
|
||||
<class>QgsCollapsibleGroupBox</class>
|
||||
<extends>QGroupBox</extends>
|
||||
<header>qgscollapsiblegroupbox.h</header>
|
||||
<container>1</container>
|
||||
</customwidget>
|
||||
<customwidget>
|
||||
<class>QgsFilterLineEdit</class>
|
||||
<extends>QLineEdit</extends>
|
||||
<header>qgsfilterlineedit.h</header>
|
||||
</customwidget>
|
||||
<customwidget>
|
||||
<class>QgsScrollArea</class>
|
||||
<extends>QScrollArea</extends>
|
||||
<header>qgsscrollarea.h</header>
|
||||
<container>1</container>
|
||||
</customwidget>
|
||||
<customwidget>
|
||||
<class>QgsCollapsibleGroupBox</class>
|
||||
<extends>QGroupBox</extends>
|
||||
<header>qgscollapsiblegroupbox.h</header>
|
||||
<container>1</container>
|
||||
</customwidget>
|
||||
<customwidget>
|
||||
<class>QgsColorButton</class>
|
||||
<extends>QToolButton</extends>
|
||||
<header>qgscolorbutton.h</header>
|
||||
<container>1</container>
|
||||
</customwidget>
|
||||
<customwidget>
|
||||
<class>QgsOpacityWidget</class>
|
||||
<extends>QWidget</extends>
|
||||
<header>qgsopacitywidget.h</header>
|
||||
<container>1</container>
|
||||
</customwidget>
|
||||
<customwidget>
|
||||
<class>QgsVariableEditorWidget</class>
|
||||
<extends>QWidget</extends>
|
||||
<header location="global">qgsvariableeditorwidget.h</header>
|
||||
<container>1</container>
|
||||
</customwidget>
|
||||
<customwidget>
|
||||
<class>QgsFilterLineEdit</class>
|
||||
<extends>QLineEdit</extends>
|
||||
<header>qgsfilterlineedit.h</header>
|
||||
</customwidget>
|
||||
<customwidget>
|
||||
<class>QgsColorSchemeList</class>
|
||||
<extends>QWidget</extends>
|
||||
<header location="global">qgscolorschemelist.h</header>
|
||||
<container>1</container>
|
||||
</customwidget>
|
||||
<customwidget>
|
||||
<class>QgsOpacityWidget</class>
|
||||
<extends>QWidget</extends>
|
||||
<header>qgsopacitywidget.h</header>
|
||||
<container>1</container>
|
||||
</customwidget>
|
||||
<customwidget>
|
||||
<class>QgsCodeEditorPython</class>
|
||||
<extends>QWidget</extends>
|
||||
@ -2882,6 +2880,7 @@
|
||||
<include location="../../images/images.qrc"/>
|
||||
<include location="../../images/images.qrc"/>
|
||||
<include location="../../images/images.qrc"/>
|
||||
<include location="../../images/images.qrc"/>
|
||||
</resources>
|
||||
<connections>
|
||||
<connection>
|
||||
|
Loading…
x
Reference in New Issue
Block a user