Use panel widget for data-defined size legend

This commit is contained in:
Martin Dobias 2017-06-21 14:09:23 +02:00
parent 5cff21f9e4
commit f33974e9e0
13 changed files with 91 additions and 120 deletions

View File

@ -239,7 +239,7 @@
%Include symbology-ng/qgscategorizedsymbolrendererwidget.sip
%Include symbology-ng/qgscptcitycolorrampdialog.sip
%Include symbology-ng/qgsdashspacedialog.sip
%Include symbology-ng/qgsdatadefinedsizelegenddialog.sip
%Include symbology-ng/qgsdatadefinedsizelegendwidget.sip
%Include symbology-ng/qgsellipsesymbollayerwidget.sip
%Include symbology-ng/qgsgraduatedhistogramwidget.sip
%Include symbology-ng/qgsgraduatedsymbolrendererwidget.sip

View File

@ -1,7 +1,7 @@
/************************************************************************
* This file has been generated automatically from *
* *
* src/gui/symbology-ng/qgsdatadefinedsizelegenddialog.h *
* src/gui/symbology-ng/qgsdatadefinedsizelegendwidget.h *
* *
* Do not edit manually ! Edit header and run scripts/sipify.pl again *
************************************************************************/
@ -12,23 +12,23 @@
class QgsDataDefinedSizeLegendDialog : QDialog
class QgsDataDefinedSizeLegendWidget : QgsPanelWidget
{
%Docstring
Dialog for configuration of appearance of legend for marker symbols with data-defined size.
Widget for configuration of appearance of legend for marker symbols with data-defined size.
.. versionadded:: 3.0
%End
%TypeHeaderCode
#include "qgsdatadefinedsizelegenddialog.h"
#include "qgsdatadefinedsizelegendwidget.h"
%End
public:
explicit QgsDataDefinedSizeLegendDialog( const QgsDataDefinedSizeLegend *ddsLegend, const QgsProperty &ddSize, QgsMarkerSymbol *overrideSymbol /Transfer/, QgsMapCanvas *canvas = 0, QWidget *parent /TransferThis/ = 0 );
explicit QgsDataDefinedSizeLegendWidget( const QgsDataDefinedSizeLegend *ddsLegend, const QgsProperty &ddSize, QgsMarkerSymbol *overrideSymbol /Transfer/, QgsMapCanvas *canvas = 0, QWidget *parent /TransferThis/ = 0 );
%Docstring
when the symbol is given from outside rather than being set inside QgsDataDefinedSizeLegend.
%End
~QgsDataDefinedSizeLegendDialog();
~QgsDataDefinedSizeLegendWidget();
QgsDataDefinedSizeLegend *dataDefinedSizeLegend() const /Factory/;
%Docstring
@ -43,7 +43,7 @@ Returns configuration as set up in the dialog (may be null). Ownership is passed
/************************************************************************
* This file has been generated automatically from *
* *
* src/gui/symbology-ng/qgsdatadefinedsizelegenddialog.h *
* src/gui/symbology-ng/qgsdatadefinedsizelegendwidget.h *
* *
* Do not edit manually ! Edit header and run scripts/sipify.pl again *
************************************************************************/

View File

@ -86,10 +86,10 @@ and by connecting the slot contextMenuViewCategories(const QPoint&)*
%End
virtual void refreshSymbolView();
QgsDataDefinedSizeLegend *showDataDefinedSizeLegendDialog( const QgsMarkerSymbol *symbol, const QgsDataDefinedSizeLegend *ddsLegend, bool *ok /Out/ ) /Factory/;
QgsDataDefinedSizeLegendWidget *openDataDefinedSizeLegendWidget( const QgsMarkerSymbol *symbol, const QgsDataDefinedSizeLegend *ddsLegend );
%Docstring
.. versionadded:: 3.0
:rtype: QgsDataDefinedSizeLegend
:rtype: QgsDataDefinedSizeLegendWidget
%End
protected slots:

View File

@ -22,7 +22,7 @@
#include "qgsproject.h"
#include "qgsapplication.h"
#include "qgsdatadefinedsizelegend.h"
#include "qgsdatadefinedsizelegenddialog.h"
#include "qgsdatadefinedsizelegendwidget.h"
#include "qgsdiagramproperties.h"
#include "qgsdiagramrenderer.h"
#include "qgslabelengineconfigdialog.h"
@ -947,9 +947,15 @@ void QgsDiagramProperties::showSizeLegendDialog()
QgsProperty ddSize = isExpression ? QgsProperty::fromExpression( sizeFieldNameOrExp ) : QgsProperty::fromField( sizeFieldNameOrExp );
ddSize.setTransformer( new QgsSizeScaleTransformer( QgsSizeScaleTransformer::Linear, 0.0, mMaxValueSpinBox->value(), 0.0, mSizeSpinBox->value() ) );
QgsDataDefinedSizeLegendDialog dlg( mSizeLegend.get(), ddSize, nullptr, mMapCanvas );
if ( !dlg.exec() )
return;
QgsDataDefinedSizeLegendWidget *panel = new QgsDataDefinedSizeLegendWidget( mSizeLegend.get(), ddSize, nullptr, mMapCanvas );
mSizeLegend.reset( dlg.dataDefinedSizeLegend() );
QDialog dlg;
dlg.setLayout( new QVBoxLayout() );
dlg.setWindowTitle( panel->panelTitle() );
dlg.layout()->addWidget( panel );
QDialogButtonBox *buttonBox = new QDialogButtonBox( QDialogButtonBox::Ok );
connect( buttonBox, &QDialogButtonBox::accepted, &dlg, &QDialog::accept );
dlg.layout()->addWidget( buttonBox );
if ( dlg.exec() )
mSizeLegend.reset( panel->dataDefinedSizeLegend() );
}

View File

@ -18,7 +18,7 @@ SET(QGIS_GUI_SRCS
symbology-ng/qgscategorizedsymbolrendererwidget.cpp
symbology-ng/qgscptcitycolorrampdialog.cpp
symbology-ng/qgsdashspacedialog.cpp
symbology-ng/qgsdatadefinedsizelegenddialog.cpp
symbology-ng/qgsdatadefinedsizelegendwidget.cpp
symbology-ng/qgsellipsesymbollayerwidget.cpp
symbology-ng/qgsgraduatedhistogramwidget.cpp
symbology-ng/qgsgraduatedsymbolrendererwidget.cpp
@ -494,7 +494,7 @@ SET(QGIS_GUI_MOC_HDRS
symbology-ng/qgscategorizedsymbolrendererwidget.h
symbology-ng/qgscptcitycolorrampdialog.h
symbology-ng/qgsdashspacedialog.h
symbology-ng/qgsdatadefinedsizelegenddialog.h
symbology-ng/qgsdatadefinedsizelegendwidget.h
symbology-ng/qgsellipsesymbollayerwidget.h
symbology-ng/qgsgraduatedhistogramwidget.h
symbology-ng/qgsgraduatedsymbolrendererwidget.h

View File

@ -19,6 +19,7 @@
#include "qgscategorizedsymbolrenderer.h"
#include "qgsdatadefinedsizelegend.h"
#include "qgsdatadefinedsizelegendwidget.h"
#include "qgssymbol.h"
#include "qgssymbollayerutils.h"
#include "qgscolorramp.h"
@ -1044,12 +1045,14 @@ QgsExpressionContext QgsCategorizedSymbolRendererWidget::createExpressionContext
void QgsCategorizedSymbolRendererWidget::dataDefinedSizeLegend()
{
bool ok;
QgsMarkerSymbol *s = static_cast<QgsMarkerSymbol *>( mCategorizedSymbol ); // this should be only enabled for marker symbols
std::unique_ptr<QgsDataDefinedSizeLegend> ddsLegend( showDataDefinedSizeLegendDialog( s, mRenderer->dataDefinedSizeLegend(), &ok ) );
if ( ok )
QgsDataDefinedSizeLegendWidget *panel = openDataDefinedSizeLegendWidget( s, mRenderer->dataDefinedSizeLegend() );
if ( panel )
{
mRenderer->setDataDefinedSizeLegend( ddsLegend.release() ); // ownership is passed from dlg to renderer
emit widgetChanged();
connect( panel, &QgsPanelWidget::widgetChanged, [ = ]
{
mRenderer->setDataDefinedSizeLegend( panel->dataDefinedSizeLegend() );
emit widgetChanged();
} );
}
}

View File

@ -1,5 +1,5 @@
/***************************************************************************
qgsdatadefinedsizelegenddialog.cpp
qgsdatadefinedsizelegendwidget.cpp
--------------------------------------
Date : June 2017
Copyright : (C) 2017 by Martin Dobias
@ -13,7 +13,7 @@
* *
***************************************************************************/
#include "qgsdatadefinedsizelegenddialog.h"
#include "qgsdatadefinedsizelegendwidget.h"
#include <QInputDialog>
@ -28,12 +28,13 @@
#include "qgssymbolselectordialog.h"
#include "qgsvectorlayer.h"
QgsDataDefinedSizeLegendDialog::QgsDataDefinedSizeLegendDialog( const QgsDataDefinedSizeLegend *ddsLegend, const QgsProperty &ddSize, QgsMarkerSymbol *overrideSymbol, QgsMapCanvas *canvas, QWidget *parent )
: QDialog( parent )
QgsDataDefinedSizeLegendWidget::QgsDataDefinedSizeLegendWidget( const QgsDataDefinedSizeLegend *ddsLegend, const QgsProperty &ddSize, QgsMarkerSymbol *overrideSymbol, QgsMapCanvas *canvas, QWidget *parent )
: QgsPanelWidget( parent )
, mSizeProperty( ddSize )
, mMapCanvas( canvas )
{
setupUi( this );
setPanelTitle( tr( "Data-defined size legend" ) );
QgsMarkerSymbol *symbol = nullptr;
@ -89,9 +90,9 @@ QgsDataDefinedSizeLegendDialog::QgsDataDefinedSizeLegendDialog( const QgsDataDef
mSizeClassesModel->sort( 0 );
}
connect( groupManualSizeClasses, &QGroupBox::clicked, this, &QgsDataDefinedSizeLegendDialog::updatePreview );
connect( btnAddClass, &QToolButton::clicked, this, &QgsDataDefinedSizeLegendDialog::addSizeClass );
connect( btnRemoveClass, &QToolButton::clicked, this, &QgsDataDefinedSizeLegendDialog::removeSizeClass );
connect( groupManualSizeClasses, &QGroupBox::clicked, this, &QgsDataDefinedSizeLegendWidget::updatePreview );
connect( btnAddClass, &QToolButton::clicked, this, &QgsDataDefinedSizeLegendWidget::addSizeClass );
connect( btnRemoveClass, &QToolButton::clicked, this, &QgsDataDefinedSizeLegendWidget::removeSizeClass );
viewSizeClasses->setModel( mSizeClassesModel );
@ -104,22 +105,23 @@ QgsDataDefinedSizeLegendDialog::QgsDataDefinedSizeLegendDialog( const QgsDataDef
mPreviewModel->setLegendMapViewData( canvas->mapUnitsPerPixel(), canvas->mapSettings().outputDpi(), canvas->scale() );
viewLayerTree->setModel( mPreviewModel );
connect( cboAlignSymbols, static_cast<void ( QComboBox::* )( int )>( &QComboBox::currentIndexChanged ), [ = ] { updatePreview(); } );
connect( radDisabled, &QRadioButton::clicked, this, &QgsDataDefinedSizeLegendDialog::updatePreview );
connect( radSeparated, &QRadioButton::clicked, this, &QgsDataDefinedSizeLegendDialog::updatePreview );
connect( radCollapsed, &QRadioButton::clicked, this, &QgsDataDefinedSizeLegendDialog::updatePreview );
connect( btnChangeSymbol, &QPushButton::clicked, this, &QgsDataDefinedSizeLegendDialog::changeSymbol );
connect( cboAlignSymbols, static_cast<void ( QComboBox::* )( int )>( &QComboBox::currentIndexChanged ), [ = ] { emit widgetChanged(); } );
connect( radDisabled, &QRadioButton::clicked, this, &QgsPanelWidget::widgetChanged );
connect( radSeparated, &QRadioButton::clicked, this, &QgsPanelWidget::widgetChanged );
connect( radCollapsed, &QRadioButton::clicked, this, &QgsPanelWidget::widgetChanged );
connect( btnChangeSymbol, &QPushButton::clicked, this, &QgsDataDefinedSizeLegendWidget::changeSymbol );
connect( this, &QgsPanelWidget::widgetChanged, this, &QgsDataDefinedSizeLegendWidget::updatePreview );
updatePreview();
}
QgsDataDefinedSizeLegendDialog::~QgsDataDefinedSizeLegendDialog()
QgsDataDefinedSizeLegendWidget::~QgsDataDefinedSizeLegendWidget()
{
delete mPreviewModel;
delete mPreviewTree;
delete mPreviewLayer;
}
QgsDataDefinedSizeLegend *QgsDataDefinedSizeLegendDialog::dataDefinedSizeLegend() const
QgsDataDefinedSizeLegend *QgsDataDefinedSizeLegendWidget::dataDefinedSizeLegend() const
{
if ( radDisabled->isChecked() )
return nullptr;
@ -146,7 +148,7 @@ QgsDataDefinedSizeLegend *QgsDataDefinedSizeLegendDialog::dataDefinedSizeLegend(
return ddsLegend;
}
void QgsDataDefinedSizeLegendDialog::updatePreview()
void QgsDataDefinedSizeLegendWidget::updatePreview()
{
QgsMarkerSymbol *symbol = mSourceSymbol->clone();
symbol->setDataDefinedSize( mSizeProperty );
@ -157,7 +159,7 @@ void QgsDataDefinedSizeLegendDialog::updatePreview()
viewLayerTree->expandAll();
}
void QgsDataDefinedSizeLegendDialog::changeSymbol()
void QgsDataDefinedSizeLegendWidget::changeSymbol()
{
std::unique_ptr<QgsMarkerSymbol> newSymbol( mSourceSymbol->clone() );
QgsSymbolWidgetContext context;
@ -188,7 +190,7 @@ void QgsDataDefinedSizeLegendDialog::changeSymbol()
updatePreview();
}
void QgsDataDefinedSizeLegendDialog::addSizeClass()
void QgsDataDefinedSizeLegendWidget::addSizeClass()
{
bool ok;
double v = QInputDialog::getDouble( this, tr( "Add Size Class" ), tr( "Enter value for a new class" ),
@ -204,7 +206,7 @@ void QgsDataDefinedSizeLegendDialog::addSizeClass()
updatePreview();
}
void QgsDataDefinedSizeLegendDialog::removeSizeClass()
void QgsDataDefinedSizeLegendWidget::removeSizeClass()
{
QModelIndex idx = viewSizeClasses->currentIndex();
if ( !idx.isValid() )

View File

@ -1,5 +1,5 @@
/***************************************************************************
qgsdatadefinedsizelegenddialog.h
qgsdatadefinedsizelegendwidget.h
--------------------------------------
Date : June 2017
Copyright : (C) 2017 by Martin Dobias
@ -13,16 +13,16 @@
* *
***************************************************************************/
#ifndef QGSDATADEFINEDSIZELEGENDDIALOG_H
#define QGSDATADEFINEDSIZELEGENDDIALOG_H
#ifndef QGSDATADEFINEDSIZELEGENDWIDGET_H
#define QGSDATADEFINEDSIZELEGENDWIDGET_H
#include "qgis.h"
#include "qgis_gui.h"
#include <memory>
#include <QDialog>
#include <ui_qgsdatadefinedsizelegenddialog.h>
#include <ui_qgsdatadefinedsizelegendwidget.h>
#include "qgspanelwidget.h"
#include "qgsproperty.h"
class QStandardItemModel;
@ -37,11 +37,11 @@ class QgsProperty;
class QgsVectorLayer;
/** \ingroup gui
* Dialog for configuration of appearance of legend for marker symbols with data-defined size.
* Widget for configuration of appearance of legend for marker symbols with data-defined size.
*
* \since QGIS 3.0
*/
class GUI_EXPORT QgsDataDefinedSizeLegendDialog : public QDialog, private Ui::QgsDataDefinedSizeLegendDialog
class GUI_EXPORT QgsDataDefinedSizeLegendWidget : public QgsPanelWidget, private Ui::QgsDataDefinedSizeLegendWidget
{
Q_OBJECT
public:
@ -49,8 +49,8 @@ class GUI_EXPORT QgsDataDefinedSizeLegendDialog : public QDialog, private Ui::Qg
//! The ddSize argument determines scaling of the marker symbol - it should have a size scale transformer assigned
//! to know the range of sizes. The overrideSymbol argument may override the source symbol: this is useful in case
//! when the symbol is given from outside rather than being set inside QgsDataDefinedSizeLegend.
explicit QgsDataDefinedSizeLegendDialog( const QgsDataDefinedSizeLegend *ddsLegend, const QgsProperty &ddSize, QgsMarkerSymbol *overrideSymbol SIP_TRANSFER, QgsMapCanvas *canvas = nullptr, QWidget *parent SIP_TRANSFERTHIS = nullptr );
~QgsDataDefinedSizeLegendDialog();
explicit QgsDataDefinedSizeLegendWidget( const QgsDataDefinedSizeLegend *ddsLegend, const QgsProperty &ddSize, QgsMarkerSymbol *overrideSymbol SIP_TRANSFER, QgsMapCanvas *canvas = nullptr, QWidget *parent SIP_TRANSFERTHIS = nullptr );
~QgsDataDefinedSizeLegendWidget();
//! Returns configuration as set up in the dialog (may be null). Ownership is passed to the caller.
QgsDataDefinedSizeLegend *dataDefinedSizeLegend() const SIP_FACTORY;
@ -75,4 +75,4 @@ class GUI_EXPORT QgsDataDefinedSizeLegendDialog : public QDialog, private Ui::Qg
QStandardItemModel *mSizeClassesModel;
};
#endif // QGSDATADEFINEDSIZELEGENDDIALOG_H
#endif // QGSDATADEFINEDSIZELEGENDWIDGET_H

View File

@ -16,6 +16,7 @@
#include "qgspanelwidget.h"
#include "qgsdatadefinedsizelegend.h"
#include "qgsdatadefinedsizelegendwidget.h"
#include "qgssymbol.h"
#include "qgssymbollayerutils.h"
#include "qgscolorramp.h"
@ -1176,12 +1177,14 @@ void QgsGraduatedSymbolRendererWidget::keyPressEvent( QKeyEvent *event )
void QgsGraduatedSymbolRendererWidget::dataDefinedSizeLegend()
{
bool ok;
QgsMarkerSymbol *s = static_cast<QgsMarkerSymbol *>( mGraduatedSymbol ); // this should be only enabled for marker symbols
std::unique_ptr<QgsDataDefinedSizeLegend> ddsLegend( showDataDefinedSizeLegendDialog( s, mRenderer->dataDefinedSizeLegend(), &ok ) );
if ( ok )
QgsDataDefinedSizeLegendWidget *panel = openDataDefinedSizeLegendWidget( s, mRenderer->dataDefinedSizeLegend() );
if ( panel )
{
mRenderer->setDataDefinedSizeLegend( ddsLegend.release() ); // ownership is passed from dlg to renderer
emit widgetChanged();
connect( panel, &QgsPanelWidget::widgetChanged, [ = ]
{
mRenderer->setDataDefinedSizeLegend( panel->dataDefinedSizeLegend() );
emit widgetChanged();
} );
}
}

View File

@ -14,7 +14,7 @@
***************************************************************************/
#include "qgsrendererwidget.h"
#include "qgsdatadefinedsizelegenddialog.h"
#include "qgsdatadefinedsizelegendwidget.h"
#include "qgssymbol.h"
#include "qgsvectorlayer.h"
#include "qgscolordialog.h"
@ -275,10 +275,8 @@ void QgsRendererWidget::applyChanges()
apply();
}
QgsDataDefinedSizeLegend *QgsRendererWidget::showDataDefinedSizeLegendDialog( const QgsMarkerSymbol *symbol, const QgsDataDefinedSizeLegend *ddsLegend, bool *ok )
QgsDataDefinedSizeLegendWidget *QgsRendererWidget::openDataDefinedSizeLegendWidget( const QgsMarkerSymbol *symbol, const QgsDataDefinedSizeLegend *ddsLegend )
{
*ok = false;
QgsProperty ddSize = symbol->dataDefinedSize();
if ( !ddSize || !ddSize.isActive() )
{
@ -291,12 +289,10 @@ QgsDataDefinedSizeLegend *QgsRendererWidget::showDataDefinedSizeLegendDialog( co
return nullptr;
}
QgsDataDefinedSizeLegendDialog dlg( ddsLegend, ddSize, symbol->clone(), mContext.mapCanvas() );
if ( !dlg.exec() )
return nullptr;
*ok = true;
return dlg.dataDefinedSizeLegend();
QgsDataDefinedSizeLegendWidget *panel = new QgsDataDefinedSizeLegendWidget( ddsLegend, ddSize, symbol->clone(), mContext.mapCanvas() );
connect( panel, &QgsPanelWidget::widgetChanged, this, &QgsPanelWidget::widgetChanged );
openPanel( panel );
return panel;
}

View File

@ -24,6 +24,7 @@
#include "qgssymbollayer.h"
class QgsDataDefinedSizeLegend;
class QgsDataDefinedSizeLegendWidget;
class QgsVectorLayer;
class QgsStyle;
class QgsFeatureRenderer;
@ -99,10 +100,10 @@ class GUI_EXPORT QgsRendererWidget : public QgsPanelWidget
virtual QList<QgsSymbol *> selectedSymbols() { return QList<QgsSymbol *>(); }
virtual void refreshSymbolView() {}
//! Shows GUI to setup data-defined size legend. If accepted, ok argument will be true and a new legend configuration is returned.
//! Caller takes ownership of the returned object.
//! Shows GUI to setup data-defined size legend.
//! Returns newly open panel - may be null if it coult not be opened. Ownership is not transferred.
//! \since QGIS 3.0
QgsDataDefinedSizeLegend *showDataDefinedSizeLegendDialog( const QgsMarkerSymbol *symbol, const QgsDataDefinedSizeLegend *ddsLegend, bool *ok SIP_OUT ) SIP_FACTORY;
QgsDataDefinedSizeLegendWidget *openDataDefinedSizeLegendWidget( const QgsMarkerSymbol *symbol, const QgsDataDefinedSizeLegend *ddsLegend );
protected slots:
void contextMenuViewCategories( QPoint p );

View File

@ -15,6 +15,7 @@
#include "qgssinglesymbolrendererwidget.h"
#include "qgsdatadefinedsizelegend.h"
#include "qgsdatadefinedsizelegendwidget.h"
#include "qgssinglesymbolrenderer.h"
#include "qgssymbol.h"
@ -117,12 +118,14 @@ void QgsSingleSymbolRendererWidget::showSymbolLevels()
void QgsSingleSymbolRendererWidget::dataDefinedSizeLegend()
{
bool ok;
QgsMarkerSymbol *s = static_cast<QgsMarkerSymbol *>( mSingleSymbol ); // this should be only enabled for marker symbols
std::unique_ptr<QgsDataDefinedSizeLegend> ddsLegend( showDataDefinedSizeLegendDialog( s, mRenderer->dataDefinedSizeLegend(), &ok ) );
if ( ok )
QgsDataDefinedSizeLegendWidget *panel = openDataDefinedSizeLegendWidget( s, mRenderer->dataDefinedSizeLegend() );
if ( panel )
{
mRenderer->setDataDefinedSizeLegend( ddsLegend.release() ); // ownership is passed from dlg to renderer
emit widgetChanged();
connect( panel, &QgsPanelWidget::widgetChanged, [ = ]
{
mRenderer->setDataDefinedSizeLegend( panel->dataDefinedSizeLegend() );
emit widgetChanged();
} );
}
}

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>QgsDataDefinedSizeLegendDialog</class>
<widget class="QDialog" name="QgsDataDefinedSizeLegendDialog">
<class>QgsDataDefinedSizeLegendWidget</class>
<widget class="QWidget" name="QgsDataDefinedSizeLegendWidget">
<property name="geometry">
<rect>
<x>0</x>
@ -132,23 +132,13 @@
</item>
</layout>
</item>
<item row="0" column="2">
<item row="0" column="1">
<widget class="QTreeView" name="viewLayerTree">
<property name="headerHidden">
<bool>true</bool>
</property>
</widget>
</item>
<item row="1" column="0" colspan="3">
<widget class="QDialogButtonBox" name="buttonBox">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="standardButtons">
<set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
</property>
</widget>
</item>
</layout>
</widget>
<tabstops>
@ -164,38 +154,5 @@
<tabstop>viewLayerTree</tabstop>
</tabstops>
<resources/>
<connections>
<connection>
<sender>buttonBox</sender>
<signal>accepted()</signal>
<receiver>QgsDataDefinedSizeLegendDialog</receiver>
<slot>accept()</slot>
<hints>
<hint type="sourcelabel">
<x>248</x>
<y>254</y>
</hint>
<hint type="destinationlabel">
<x>157</x>
<y>274</y>
</hint>
</hints>
</connection>
<connection>
<sender>buttonBox</sender>
<signal>rejected()</signal>
<receiver>QgsDataDefinedSizeLegendDialog</receiver>
<slot>reject()</slot>
<hints>
<hint type="sourcelabel">
<x>316</x>
<y>260</y>
</hint>
<hint type="destinationlabel">
<x>286</x>
<y>274</y>
</hint>
</hints>
</connection>
</connections>
<connections/>
</ui>