Skip to content

Commit

Permalink
Fix accidental api break
Browse files Browse the repository at this point in the history
QFlags created from enum classes aren't automatically converted
from an int value passed by Python code, so we need to create
compatibility functions for the older variants which accept
plain ints
  • Loading branch information
nyalldawson committed May 29, 2021
1 parent 0bd603c commit 4e73dd9
Show file tree
Hide file tree
Showing 8 changed files with 39 additions and 6 deletions.
9 changes: 8 additions & 1 deletion python/core/auto_generated/browser/qgsdataitem.sip.in
Expand Up @@ -289,13 +289,20 @@ Returns the capabilities for the data item.
.. seealso:: :py:func:`setCapabilities`
%End

virtual void setCapabilities( Qgis::BrowserItemCapabilities capabilities );
virtual void setCapabilities( Qgis::BrowserItemCapabilities capabilities ) /PyName=setCapabilitiesV2/;
%Docstring
Sets the capabilities for the data item.

.. seealso:: :py:func:`capabilities2`
%End

void setCapabilities( int capabilities ) /Deprecated/;
%Docstring

.. deprecated::
use setCapabilitiesV2 instead.
%End


static int findItem( QVector<QgsDataItem *> items, QgsDataItem *item );

Expand Down
9 changes: 8 additions & 1 deletion python/core/auto_generated/symbology/qgssymbol.sip.in
Expand Up @@ -325,7 +325,7 @@ matches the settings from that context.
.. seealso:: :py:func:`drawPreviewIcon`
%End

QImage bigSymbolPreviewImage( QgsExpressionContext *expressionContext = 0, Qgis::SymbolPreviewFlags flags = Qgis::SymbolPreviewFlag::FlagIncludeCrosshairsForMarkerSymbols );
QImage bigSymbolPreviewImage( QgsExpressionContext *expressionContext = 0, Qgis::SymbolPreviewFlags flags = Qgis::SymbolPreviewFlag::FlagIncludeCrosshairsForMarkerSymbols ) /PyName=bigSymbolPreviewImageV2/;
%Docstring
Returns a large (roughly 100x100 pixel) preview image for the symbol.

Expand All @@ -338,6 +338,13 @@ Returns a large (roughly 100x100 pixel) preview image for the symbol.
.. seealso:: :py:func:`drawPreviewIcon`
%End

QImage bigSymbolPreviewImage( QgsExpressionContext *expressionContext = 0, int flags = static_cast< int >( Qgis::SymbolPreviewFlag::FlagIncludeCrosshairsForMarkerSymbols ) ) /Deprecated/;
%Docstring

.. deprecated::
use bigSymbolPreviewImageV2 instead.
%End

QString dump() const;
%Docstring
Returns a string dump of the symbol's properties.
Expand Down
5 changes: 5 additions & 0 deletions src/core/browser/qgsdataitem.cpp
Expand Up @@ -525,6 +525,11 @@ bool QgsDataItem::rename( const QString & )
return false;
}

void QgsDataItem::setCapabilities( int capabilities )
{
setCapabilities( static_cast< Qgis::BrowserItemCapabilities >( capabilities ) );
}

Qgis::BrowserItemState QgsDataItem::state() const
{
return mState;
Expand Down
7 changes: 6 additions & 1 deletion src/core/browser/qgsdataitem.h
Expand Up @@ -291,7 +291,12 @@ class CORE_EXPORT QgsDataItem : public QObject
*
* \see capabilities2()
*/
virtual void setCapabilities( Qgis::BrowserItemCapabilities capabilities ) { mCapabilities = capabilities; }
virtual void setCapabilities( Qgis::BrowserItemCapabilities capabilities ) SIP_PYNAME( setCapabilitiesV2 ) { mCapabilities = capabilities; }

/**
* \deprecated use setCapabilitiesV2 instead.
*/
Q_DECL_DEPRECATED void setCapabilities( int capabilities ) SIP_DEPRECATED;

// static methods

Expand Down
4 changes: 4 additions & 0 deletions src/core/symbology/qgssymbol.cpp
Expand Up @@ -720,6 +720,10 @@ QImage QgsSymbol::bigSymbolPreviewImage( QgsExpressionContext *expressionContext
return preview;
}

QImage QgsSymbol::bigSymbolPreviewImage( QgsExpressionContext *expressionContext, int flags )
{
return bigSymbolPreviewImage( expressionContext, static_cast< Qgis::SymbolPreviewFlags >( flags ) );
}

QString QgsSymbol::dump() const
{
Expand Down
7 changes: 6 additions & 1 deletion src/core/symbology/qgssymbol.h
Expand Up @@ -354,7 +354,12 @@ class CORE_EXPORT QgsSymbol
* \see asImage()
* \see drawPreviewIcon()
*/
QImage bigSymbolPreviewImage( QgsExpressionContext *expressionContext = nullptr, Qgis::SymbolPreviewFlags flags = Qgis::SymbolPreviewFlag::FlagIncludeCrosshairsForMarkerSymbols );
QImage bigSymbolPreviewImage( QgsExpressionContext *expressionContext = nullptr, Qgis::SymbolPreviewFlags flags = Qgis::SymbolPreviewFlag::FlagIncludeCrosshairsForMarkerSymbols ) SIP_PYNAME( bigSymbolPreviewImageV2 );

/**
* \deprecated use bigSymbolPreviewImageV2 instead.
*/
Q_DECL_DEPRECATED QImage bigSymbolPreviewImage( QgsExpressionContext *expressionContext = nullptr, int flags = static_cast< int >( Qgis::SymbolPreviewFlag::FlagIncludeCrosshairsForMarkerSymbols ) ) SIP_DEPRECATED;

/**
* Returns a string dump of the symbol's properties.
Expand Down
2 changes: 1 addition & 1 deletion src/gui/symbology/qgssymbolselectordialog.cpp
Expand Up @@ -445,7 +445,7 @@ void QgsSymbolSelectorWidget::updatePreview()
return;

std::unique_ptr< QgsSymbol > symbolClone( mSymbol->clone() );
QImage preview = symbolClone->bigSymbolPreviewImage( &mPreviewExpressionContext );
QImage preview = symbolClone->bigSymbolPreviewImage( &mPreviewExpressionContext, Qgis::SymbolPreviewFlags() );
lblPreview->setPixmap( QPixmap::fromImage( preview ) );
// Hope this is a appropriate place
if ( !mBlockModified )
Expand Down
2 changes: 1 addition & 1 deletion tests/src/core/testqgssimplemarker.cpp
Expand Up @@ -255,7 +255,7 @@ void TestQgsSimpleMarkerSymbol::simpleMarkerSymbolPreviewRotation()
simpleMarkerLayer->setDataDefinedProperty( QgsSymbolLayer::PropertyAngle, QgsProperty::fromExpression( expression ) );

QgsExpressionContext ec;
QImage image = markerSymbol.bigSymbolPreviewImage( &ec );
QImage image = markerSymbol.bigSymbolPreviewImage( &ec, Qgis::SymbolPreviewFlags() );
image.save( _fileNameForTest( name ) );
QVERIFY( _verifyImage( name, mReport ) );
}
Expand Down

0 comments on commit 4e73dd9

Please sign in to comment.