Skip to content

Commit

Permalink
[layouts] Add search filter box to 'add layer to legend' dialog
Browse files Browse the repository at this point in the history
Helps with finding specific layers in large projects
  • Loading branch information
nyalldawson committed Aug 22, 2018
1 parent 16b58b9 commit 8c5938a
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 2 deletions.
5 changes: 5 additions & 0 deletions src/app/layout/qgslayoutlegendlayersdialog.cpp
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -27,12 +27,17 @@ QgsLayoutLegendLayersDialog::QgsLayoutLegendLayersDialog( QWidget *parent )
QgsSettings settings; QgsSettings settings;
restoreGeometry( settings.value( QStringLiteral( "Windows/LayoutLegendLayers/geometry" ) ).toByteArray() ); restoreGeometry( settings.value( QStringLiteral( "Windows/LayoutLegendLayers/geometry" ) ).toByteArray() );


mFilterLineEdit->setShowClearButton( true );
mFilterLineEdit->setShowSearchIcon( true );

mModel = new QgsMapLayerProxyModel( listMapLayers ); mModel = new QgsMapLayerProxyModel( listMapLayers );
listMapLayers->setModel( mModel ); listMapLayers->setModel( mModel );
QModelIndex firstLayer = mModel->index( 0, 0 ); QModelIndex firstLayer = mModel->index( 0, 0 );
listMapLayers->selectionModel()->select( firstLayer, QItemSelectionModel::Select ); listMapLayers->selectionModel()->select( firstLayer, QItemSelectionModel::Select );


connect( listMapLayers, &QListView::doubleClicked, this, &QgsLayoutLegendLayersDialog::accept ); connect( listMapLayers, &QListView::doubleClicked, this, &QgsLayoutLegendLayersDialog::accept );

connect( mFilterLineEdit, &QLineEdit::textChanged, mModel, &QgsMapLayerProxyModel::setFilterString );
} }


QgsLayoutLegendLayersDialog::~QgsLayoutLegendLayersDialog() QgsLayoutLegendLayersDialog::~QgsLayoutLegendLayersDialog()
Expand Down
25 changes: 23 additions & 2 deletions src/ui/layout/qgslayoutlegendlayersdialogbase.ui
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -14,7 +14,10 @@
<string>Add Layer to Legend</string> <string>Add Layer to Legend</string>
</property> </property>
<layout class="QGridLayout" name="gridLayout"> <layout class="QGridLayout" name="gridLayout">
<item row="1" column="0"> <property name="spacing">
<number>6</number>
</property>
<item row="2" column="0">
<widget class="QDialogButtonBox" name="buttonBox"> <widget class="QDialogButtonBox" name="buttonBox">
<property name="orientation"> <property name="orientation">
<enum>Qt::Horizontal</enum> <enum>Qt::Horizontal</enum>
Expand All @@ -24,15 +27,33 @@
</property> </property>
</widget> </widget>
</item> </item>
<item row="0" column="0"> <item row="1" column="0">
<widget class="QListView" name="listMapLayers"> <widget class="QListView" name="listMapLayers">
<property name="selectionMode"> <property name="selectionMode">
<enum>QAbstractItemView::ExtendedSelection</enum> <enum>QAbstractItemView::ExtendedSelection</enum>
</property> </property>
</widget> </widget>
</item> </item>
<item row="0" column="0">
<widget class="QgsFilterLineEdit" name="mFilterLineEdit">
<property name="placeholderText">
<string>Search</string>
</property>
</widget>
</item>
</layout> </layout>
</widget> </widget>
<customwidgets>
<customwidget>
<class>QgsFilterLineEdit</class>
<extends>QLineEdit</extends>
<header>qgsfilterlineedit.h</header>
</customwidget>
</customwidgets>
<tabstops>
<tabstop>mFilterLineEdit</tabstop>
<tabstop>listMapLayers</tabstop>
</tabstops>
<resources/> <resources/>
<connections> <connections>
<connection> <connection>
Expand Down

0 comments on commit 8c5938a

Please sign in to comment.