Skip to content

Commit 172c12b

Browse files
committed
Fix build
(was using api from the mid 1970's... well.. a few weeks ago anyway)
1 parent 62ea90c commit 172c12b

File tree

5 files changed

+50
-34
lines changed

5 files changed

+50
-34
lines changed

python/core/dxf/qgsdxfexport.sip

+14
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,20 @@ class QgsDxfExport
7272
*/
7373
QgsUnitTypes::DistanceUnit mapUnits() const;
7474

75+
/**
76+
* Set destination CRS
77+
* @see destinationCrs()
78+
* @note added in QGIS 3.0
79+
*/
80+
void setDestinationCrs( const QgsCoordinateReferenceSystem& crs );
81+
82+
/**
83+
* Returns the destination CRS, or an invalid CRS if no reprojection will be done.
84+
* @see setDestinationCrs()
85+
* @note added in QGIS 3.0
86+
*/
87+
QgsCoordinateReferenceSystem destinationCrs() const;
88+
7589
/**
7690
* Set symbology export mode
7791
* @param e the mode

src/app/qgsdxfexportdialog.cpp

+10-11
Original file line numberDiff line numberDiff line change
@@ -460,13 +460,12 @@ QgsDxfExportDialog::QgsDxfExportDialog( QWidget *parent, Qt::WindowFlags f )
460460
buttonBox->button( QDialogButtonBox::Ok )->setEnabled( false );
461461
restoreGeometry( s.value( "/Windows/DxfExport/geometry" ).toByteArray() );
462462

463-
mCRS = QgsProject::instance()->readEntry( "dxf", "/lastDxfCrs",
464-
s.value( "qgis/lastDxfCrs", QString::number( QgisApp::instance()->mapCanvas()->mapSettings().destinationCrs().srsid() ) ).toString()
465-
).toLong();
466-
467-
QgsCoordinateReferenceSystem crs = QgsCRSCache::instance()->crsBySrsId( mCRS );
468-
mCrsSelector->setCrs( crs );
469-
mCrsSelector->setLayerCrs( crs );
463+
long crsid = QgsProject::instance()->readEntry( "dxf", "/lastDxfCrs",
464+
s.value( "qgis/lastDxfCrs", QString::number( QgisApp::instance()->mapCanvas()->mapSettings().destinationCrs().srsid() ) ).toString()
465+
).toLong();
466+
mCRS = QgsCoordinateReferenceSystem::fromSrsId( crsid );
467+
mCrsSelector->setCrs( mCRS );
468+
mCrsSelector->setLayerCrs( mCRS );
470469
mCrsSelector->dialog()->setMessage( tr( "Select the coordinate reference system for the dxf file. "
471470
"The data points will be transformed from the layer coordinate reference system." ) );
472471

@@ -613,15 +612,15 @@ void QgsDxfExportDialog::saveSettings()
613612
s.setValue( "qgis/lastDxfMapRectangle", mMapExtentCheckBox->isChecked() );
614613
s.setValue( "qgis/lastDxfLayerTitleAsName", mLayerTitleAsName->isChecked() );
615614
s.setValue( "qgis/lastDxfEncoding", mEncoding->currentText() );
616-
s.setValue( "qgis/lastDxfCrs", QString::number( mCRS ) );
615+
s.setValue( "qgis/lastDxfCrs", QString::number( mCRS.srsid() ) );
617616

618617
QgsProject::instance()->writeEntry( "dxf", "/lastDxfSymbologyMode", mSymbologyModeComboBox->currentIndex() );
619618
QgsProject::instance()->writeEntry( "dxf", "/lastSymbologyExportScale", mScaleWidget->scale() );
620619
QgsProject::instance()->writeEntry( "dxf", "/lastDxfLayerTitleAsName", mLayerTitleAsName->isChecked() );
621620
QgsProject::instance()->writeEntry( "dxf", "/lastDxfMapRectangle", mMapExtentCheckBox->isChecked() );
622621
QgsProject::instance()->writeEntry( "dxf", "/lastDxfEncoding", mEncoding->currentText() );
623622
QgsProject::instance()->writeEntry( "dxf", "/lastVisibilityPreset", mVisibilityPresets->currentText() );
624-
QgsProject::instance()->writeEntry( "dxf", "/lastDxfCrs", QString::number( mCRS ) );
623+
QgsProject::instance()->writeEntry( "dxf", "/lastDxfCrs", QString::number( mCRS.srsid() ) );
625624
}
626625

627626

@@ -632,10 +631,10 @@ QString QgsDxfExportDialog::encoding() const
632631

633632
void QgsDxfExportDialog::on_mCrsSelector_crsChanged( const QgsCoordinateReferenceSystem &crs )
634633
{
635-
mCRS = crs.srsid();
634+
mCRS = crs;
636635
}
637636

638-
long QgsDxfExportDialog::crs() const
637+
QgsCoordinateReferenceSystem QgsDxfExportDialog::crs() const
639638
{
640639
return mCRS;
641640
}

src/app/qgsdxfexportdialog.h

+2-2
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ class QgsDxfExportDialog : public QDialog, private Ui::QgsDxfExportDialogBase
8888
bool exportMapExtent() const;
8989
bool layerTitleAsName() const;
9090
QString encoding() const;
91-
long crs() const;
91+
QgsCoordinateReferenceSystem crs() const;
9292

9393
public slots:
9494
/** Change the selection of layers in the list */
@@ -107,7 +107,7 @@ class QgsDxfExportDialog : public QDialog, private Ui::QgsDxfExportDialogBase
107107
QgsLayerTreeGroup *mLayerTreeGroup;
108108
FieldSelectorDelegate *mFieldSelectorDelegate;
109109

110-
long mCRS;
110+
QgsCoordinateReferenceSystem mCRS;
111111
};
112112

113113
#endif // QGSDXFEXPORTDIALOG_H

src/core/dxf/qgsdxfexport.cpp

+15-16
Original file line numberDiff line numberDiff line change
@@ -373,7 +373,6 @@ QgsDxfExport::QgsDxfExport()
373373
, mSymbolLayerCounter( 0 )
374374
, mNextHandleId( DXF_HANDSEED )
375375
, mBlockCounter( 0 )
376-
, mCrs( -1 )
377376
{
378377
}
379378

@@ -392,7 +391,7 @@ QgsDxfExport& QgsDxfExport::operator=( const QgsDxfExport & dxfExport )
392391
mSymbolLayerCounter = 0; // internal counter
393392
mNextHandleId = 0;
394393
mBlockCounter = 0;
395-
mCrs = -1;
394+
mCrs = QgsCoordinateReferenceSystem();
396395
return *this;
397396
}
398397

@@ -524,12 +523,12 @@ int QgsDxfExport::writeToFile( QIODevice* d, const QString& encoding )
524523
mMapSettings.setExtent( mExtent );
525524

526525
int dpi = 96;
527-
mFactor = 1000 * dpi / mSymbologyScaleDenominator / 25.4 * QgsUnitTypes::fromUnitToUnitFactor( mMapUnits, QGis::Meters );
526+
mFactor = 1000 * dpi / mSymbologyScaleDenominator / 25.4 * QgsUnitTypes::fromUnitToUnitFactor( mMapUnits, QgsUnitTypes::DistanceMeters );
528527
mMapSettings.setOutputSize( QSize( mExtent.width() * mFactor, mExtent.height() * mFactor ) );
529528
mMapSettings.setOutputDpi( dpi );
530-
if ( mCrs >= 0 )
531-
mMapSettings.setDestinationCrs( QgsCRSCache::instance()->crsBySrsId( mCrs ) );
532-
mMapSettings.setCrsTransformEnabled( mCrs >= 0 );
529+
if ( mCrs.isValid() )
530+
mMapSettings.setDestinationCrs( mCrs );
531+
mMapSettings.setCrsTransformEnabled( mCrs.isValid() );
533532

534533
writeHeader( dxfEncoding( encoding ) );
535534
writeTables();
@@ -553,11 +552,11 @@ void QgsDxfExport::writeHeader( const QString& codepage )
553552

554553
// EXTMIN
555554
writeGroup( 9, "$EXTMIN" );
556-
writeGroup( 0, QgsPointV2( QgsWKBTypes::PointZ, mExtent.xMinimum(), mExtent.yMinimum() ) );
555+
writeGroup( 0, QgsPointV2( QgsWkbTypes::PointZ, mExtent.xMinimum(), mExtent.yMinimum() ) );
557556

558557
// EXTMAX
559558
writeGroup( 9, "$EXTMAX" );
560-
writeGroup( 0, QgsPointV2( QgsWKBTypes::PointZ, mExtent.xMaximum(), mExtent.yMaximum() ) );
559+
writeGroup( 0, QgsPointV2( QgsWkbTypes::PointZ, mExtent.xMaximum(), mExtent.yMaximum() ) );
561560

562561
// Global linetype scale
563562
writeGroup( 9, "$LTSCALE" );
@@ -1015,7 +1014,7 @@ void QgsDxfExport::writeEntities()
10151014

10161015
QgsFeatureIterator featureIt = vl->getFeatures( freq );
10171016

1018-
const QgsCoordinateTransform *ct = mMapSettings.hasCrsTransformEnabled() ? mMapSettings.layerTransform( vl ) : nullptr;
1017+
QgsCoordinateTransform ct = mMapSettings.hasCrsTransformEnabled() ? mMapSettings.layerTransform( vl ) : QgsCoordinateTransform();
10191018

10201019
QgsFeature fet;
10211020
while ( featureIt.nextFeature( fet ) )
@@ -1150,7 +1149,7 @@ void QgsDxfExport::writeEntitiesSymbolLevels( QgsVectorLayer* layer )
11501149
}
11511150
}
11521151

1153-
const QgsCoordinateTransform *ct = mMapSettings.hasCrsTransformEnabled() ? mMapSettings.layerTransform( layer ) : nullptr;
1152+
QgsCoordinateTransform ct = mMapSettings.hasCrsTransformEnabled() ? mMapSettings.layerTransform( layer ) : QgsCoordinateTransform();
11541153

11551154
// export symbol layers and symbology
11561155
for ( int l = 0; l < levels.count(); l++ )
@@ -3642,7 +3641,7 @@ void QgsDxfExport::writeMText( const QString& layer, const QString& text, const
36423641
writeGroup( 7, "STANDARD" ); // so far only support for standard font
36433642
}
36443643

3645-
void QgsDxfExport::addFeature( QgsSymbolRenderContext& ctx, const QgsCoordinateTransform *ct, const QString& layer, const QgsSymbolLayer* symbolLayer, const QgsSymbol* symbol )
3644+
void QgsDxfExport::addFeature( QgsSymbolRenderContext& ctx, const QgsCoordinateTransform& ct, const QString& layer, const QgsSymbolLayer* symbolLayer, const QgsSymbol* symbol )
36463645
{
36473646
const QgsFeature *fet = ctx.feature();
36483647
if ( !fet )
@@ -3651,10 +3650,10 @@ void QgsDxfExport::addFeature( QgsSymbolRenderContext& ctx, const QgsCoordinateT
36513650
if ( !fet->hasGeometry() )
36523651
return;
36533652

3654-
QScopedPointer<QgsAbstractGeometry> geom( fet->constGeometry()->geometry()->clone() );
3655-
if ( ct )
3653+
QScopedPointer<QgsAbstractGeometry> geom( fet->geometry().geometry()->clone() );
3654+
if ( ct.isValid() )
36563655
{
3657-
geom->transform( *ct );
3656+
geom->transform( ct );
36583657
}
36593658

36603659
QgsWkbTypes::Type geometryType = geom->wkbType();
@@ -4389,12 +4388,12 @@ void QgsDxfExport::registerDxfLayer( QString layerId, QgsFeatureId fid, QString
43894388
mDxfLayerNames[layerId][fid] = layerName;
43904389
}
43914390

4392-
void QgsDxfExport::setDestinationCrs( long crs )
4391+
void QgsDxfExport::setDestinationCrs( const QgsCoordinateReferenceSystem& crs )
43934392
{
43944393
mCrs = crs;
43954394
}
43964395

4397-
long QgsDxfExport::destinationCrs()
4396+
QgsCoordinateReferenceSystem QgsDxfExport::destinationCrs() const
43984397
{
43994398
return mCrs;
44004399
}

src/core/dxf/qgsdxfexport.h

+9-5
Original file line numberDiff line numberDiff line change
@@ -98,13 +98,17 @@ class CORE_EXPORT QgsDxfExport
9898

9999
/**
100100
* Set destination CRS
101+
* @see destinationCrs()
102+
* @note added in QGIS 3.0
101103
*/
102-
void setDestinationCrs( long crs );
104+
void setDestinationCrs( const QgsCoordinateReferenceSystem& crs );
103105

104106
/**
105-
* Set destination CRS
107+
* Returns the destination CRS, or an invalid CRS if no reprojection will be done.
108+
* @see setDestinationCrs()
109+
* @note added in QGIS 3.0
106110
*/
107-
long destinationCrs();
111+
QgsCoordinateReferenceSystem destinationCrs() const;
108112

109113
/**
110114
* Set symbology export mode
@@ -362,7 +366,7 @@ class CORE_EXPORT QgsDxfExport
362366
void writeSymbolLayerLinetype( const QgsSymbolLayer *symbolLayer );
363367
void writeLinetype( const QString &styleName, const QVector<qreal> &pattern, QgsUnitTypes::RenderUnit u );
364368

365-
void addFeature( QgsSymbolRenderContext &ctx, const QgsCoordinateTransform *ct, const QString &layer, const QgsSymbolLayer *symbolLayer, const QgsSymbol *symbol );
369+
void addFeature( QgsSymbolRenderContext &ctx, const QgsCoordinateTransform& ct, const QString &layer, const QgsSymbolLayer *symbolLayer, const QgsSymbol *symbol );
366370

367371
//returns dxf palette index from symbol layer color
368372
static QColor colorFromSymbolLayer( const QgsSymbolLayer *symbolLayer, QgsSymbolRenderContext &ctx );
@@ -390,7 +394,7 @@ class CORE_EXPORT QgsDxfExport
390394

391395
//! DXF layer name for each label feature
392396
QMap< QString, QMap<QgsFeatureId, QString> > mDxfLayerNames;
393-
long mCrs;
397+
QgsCoordinateReferenceSystem mCrs;
394398
QgsMapSettings mMapSettings;
395399
double mFactor;
396400
};

0 commit comments

Comments
 (0)