mirror of
https://github.com/qgis/QGIS.git
synced 2025-11-22 00:14:55 -05:00
Defer mask source widget population (fixes #34942)
This commit is contained in:
parent
0e2c858723
commit
1237d94405
@ -14,6 +14,7 @@
|
||||
***************************************************************************/
|
||||
|
||||
#include <QSet>
|
||||
#include <QCheckBox>
|
||||
|
||||
#include "qgsmaskingwidget.h"
|
||||
#include "qgsmasksourceselectionwidget.h"
|
||||
@ -42,6 +43,14 @@ QgsMaskingWidget::QgsMaskingWidget( QWidget *parent ) :
|
||||
{
|
||||
emit widgetChanged();
|
||||
} );
|
||||
|
||||
connect( mEditMaskSettingsGroup, &QGroupBox::toggled, this, [&]( bool on )
|
||||
{
|
||||
if ( on && mLayer )
|
||||
{
|
||||
populate();
|
||||
}
|
||||
} );
|
||||
}
|
||||
|
||||
/**
|
||||
@ -133,8 +142,16 @@ QList<QPair<QgsSymbolLayerId, QList<QgsSymbolLayerReference>>> symbolLayerMasks(
|
||||
void QgsMaskingWidget::setLayer( QgsVectorLayer *layer )
|
||||
{
|
||||
mLayer = layer;
|
||||
if ( mEditMaskSettingsGroup->isChecked() )
|
||||
{
|
||||
populate();
|
||||
}
|
||||
}
|
||||
|
||||
void QgsMaskingWidget::populate()
|
||||
{
|
||||
mMaskSourcesWidget->update();
|
||||
mMaskTargetsWidget->setLayer( layer );
|
||||
mMaskTargetsWidget->setLayer( mLayer );
|
||||
|
||||
// collect masks and filter on those which have the current layer as destination
|
||||
QSet<QgsSymbolLayerId> maskedSymbolLayers;
|
||||
|
||||
@ -48,7 +48,9 @@ class GUI_EXPORT QgsMaskingWidget: public QgsPanelWidget, private Ui::QgsMasking
|
||||
void widgetChanged();
|
||||
|
||||
private:
|
||||
QgsVectorLayer *mLayer;
|
||||
QgsVectorLayer *mLayer = nullptr;
|
||||
//! Populate the mask source and target widgets
|
||||
void populate();
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@ -63,6 +63,7 @@ QgsMaskSourceSelectionWidget::QgsMaskSourceSelectionWidget( QWidget *parent )
|
||||
|
||||
// place the tree in a layout
|
||||
QVBoxLayout *vbox = new QVBoxLayout();
|
||||
vbox->setContentsMargins( 0, 0, 0, 0 );
|
||||
vbox->addWidget( mTree );
|
||||
|
||||
setLayout( vbox );
|
||||
|
||||
@ -37,6 +37,7 @@ QgsSymbolLayerSelectionWidget::QgsSymbolLayerSelectionWidget( QWidget *parent )
|
||||
|
||||
// place the tree in a layout
|
||||
QVBoxLayout *vbox = new QVBoxLayout();
|
||||
vbox->setContentsMargins( 0, 0, 0, 0 );
|
||||
vbox->addWidget( mTree );
|
||||
|
||||
setLayout( vbox );
|
||||
|
||||
@ -6,51 +6,54 @@
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>637</width>
|
||||
<height>409</height>
|
||||
<width>863</width>
|
||||
<height>461</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>Form</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout">
|
||||
<property name="spacing">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="leftMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="topMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="rightMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="bottomMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_2">
|
||||
<item>
|
||||
<widget class="QLabel" name="label">
|
||||
<property name="text">
|
||||
<string>Masked symbol layers</string>
|
||||
<widget class="QGroupBox" name="mEditMaskSettingsGroup">
|
||||
<property name="title">
|
||||
<string>Edit mask settings</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QgsSymbolLayerSelectionWidget" name="mMaskTargetsWidget" native="true"/>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="label_2">
|
||||
<property name="text">
|
||||
<string>Mask sources</string>
|
||||
<property name="checkable">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QgsMaskSourceSelectionWidget" name="mMaskSourcesWidget" native="true">
|
||||
<property name="enabled">
|
||||
<property name="checked">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout">
|
||||
<property name="leftMargin">
|
||||
<number>9</number>
|
||||
</property>
|
||||
<item>
|
||||
<widget class="QLabel" name="label">
|
||||
<property name="text">
|
||||
<string>Masked symbol layers</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QgsSymbolLayerSelectionWidget" name="mMaskTargetsWidget" native="true"/>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="label_2">
|
||||
<property name="text">
|
||||
<string>Mask sources</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QgsMaskSourceSelectionWidget" name="mMaskSourcesWidget" native="true">
|
||||
<property name="enabled">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user