Fix Qt::UniqueConnection with lambda

This commit is contained in:
Matthias Kuhn 2019-11-05 09:27:55 +01:00
parent 8f52da7fdf
commit 9346dba3f7
5 changed files with 27 additions and 14 deletions

View File

@ -761,7 +761,7 @@ IF (WITH_CORE)
MARK_AS_ADVANCED (ADD_CLAZY_CHECKS)
IF (ADD_CLAZY_CHECKS)
SET(CMAKE_CXX_BASE_FLAGS "${CMAKE_CXX_FLAGS}")
SET(CLAZY_BASE_CHECKS "connect-3arg-lambda")
SET(CLAZY_BASE_CHECKS "connect-3arg-lambda,lambda-unique-connection")
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_BASE_FLAGS} -Xclang -plugin-arg-clazy -Xclang ${CLAZY_BASE_CHECKS}")
ENDIF (ADD_CLAZY_CHECKS)
ENDIF (WITH_CORE)

View File

@ -49,12 +49,8 @@ void QgsHtmlWidgetWrapper::initWidget( QWidget *editor )
const int horizontalDpi = qApp->desktop()->screen()->logicalDpiX();
mWidget->setZoomFactor( horizontalDpi / 96.0 );
auto page = mWidget->page();
connect( page, &QWebPage::contentsChanged, this, [ = ]
{
auto docHeight { page->mainFrame()->contentsSize().height() };
mWidget->setFixedHeight( docHeight );
}, Qt::ConnectionType::UniqueConnection );
QWebPage *page = mWidget->page();
connect( page, &QWebPage::contentsChanged, this, &QgsHtmlWidgetWrapper::fixHeight, Qt::ConnectionType::UniqueConnection );
#endif
}
@ -95,6 +91,15 @@ void QgsHtmlWidgetWrapper::setHtmlContext( )
mWidget->setHtml( mHtmlCode );
}
#ifdef WITH_QTWEBKIT
void QgsHtmlWidgetWrapper::fixHeight()
{
QWebPage *page = mWidget->page();
int docHeight { page->mainFrame()->contentsSize().height() };
mWidget->setFixedHeight( docHeight );
}
#endif
void QgsHtmlWidgetWrapper::setFeature( const QgsFeature &feature )
{
if ( !mWidget )

View File

@ -59,6 +59,9 @@ class GUI_EXPORT QgsHtmlWidgetWrapper : public QgsWidgetWrapper
private slots:
//! sets the html context with the current values
void setHtmlContext( );
#ifdef WITH_QTWEBKIT
void fixHeight();
#endif
private:
QString mHtmlCode;

View File

@ -172,13 +172,7 @@ void QgsValueRelationWidgetWrapper::initWidget( QWidget *editor )
}
else if ( mLineEdit )
{
connect( mLineEdit, &QLineEdit::textChanged, this, [ = ]( const QString & value )
{
Q_NOWARN_DEPRECATED_PUSH
emit valueChanged( value );
Q_NOWARN_DEPRECATED_POP
emit valuesChanged( value );
}, Qt::UniqueConnection );
connect( mLineEdit, &QLineEdit::textChanged, this, &QgsValueRelationWidgetWrapper::emitValueChanged, Qt::UniqueConnection );
}
}
@ -472,3 +466,11 @@ QList<QgsVectorLayerRef> QgsValueRelationWidgetWrapper::layerDependencies() cons
}
return result;
}
void QgsValueRelationWidgetWrapper::emitValueChanged( const QString &value )
{
Q_NOWARN_DEPRECATED_PUSH
emit valueChanged( value );
Q_NOWARN_DEPRECATED_POP
emit valuesChanged( value );
}

View File

@ -104,6 +104,9 @@ class GUI_EXPORT QgsValueRelationWidgetWrapper : public QgsEditorWidgetWrapper
QList<QgsVectorLayerRef> layerDependencies() const override;
private slots:
void emitValueChanged( const QString &value );
private:
void updateValues( const QVariant &value, const QVariantList & = QVariantList() ) override;