Skip to content

Commit

Permalink
Fix Qt::UniqueConnection with lambda
Browse files Browse the repository at this point in the history
  • Loading branch information
m-kuhn committed Nov 5, 2019
1 parent 8f52da7 commit 9346dba
Show file tree
Hide file tree
Showing 5 changed files with 27 additions and 14 deletions.
2 changes: 1 addition & 1 deletion CMakeLists.txt
Expand Up @@ -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)
Expand Down
17 changes: 11 additions & 6 deletions src/gui/editorwidgets/qgshtmlwidgetwrapper.cpp
Expand Up @@ -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

}
Expand Down Expand Up @@ -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 )
Expand Down
3 changes: 3 additions & 0 deletions src/gui/editorwidgets/qgshtmlwidgetwrapper.h
Expand Up @@ -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;
Expand Down
16 changes: 9 additions & 7 deletions src/gui/editorwidgets/qgsvaluerelationwidgetwrapper.cpp
Expand Up @@ -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 );
}
}

Expand Down Expand Up @@ -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 );
}
3 changes: 3 additions & 0 deletions src/gui/editorwidgets/qgsvaluerelationwidgetwrapper.h
Expand Up @@ -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;

Expand Down

0 comments on commit 9346dba

Please sign in to comment.