Skip to content

Commit b5aa65c

Browse files
committed
use toggle selection button instead of check/uncheck2
1 parent 88d482e commit b5aa65c

4 files changed

+31
-50
lines changed

src/app/qgslayercapabilitiesmodel.cpp

+4-5
Original file line numberDiff line numberDiff line change
@@ -55,16 +55,15 @@ void QgsLayerCapabilitiesModel::setFilterText( const QString &filterText )
5555
invalidateFilter();
5656
}
5757

58-
void QgsLayerCapabilitiesModel::checkSelectedItems( const QModelIndexList &checkedIndexes, bool check )
58+
void QgsLayerCapabilitiesModel::toggleSelectedItems( const QModelIndexList &checkedIndexes )
5959
{
6060
QVector<int> roles = QVector<int>() << Qt::CheckStateRole;
61-
// beginResetModel();
6261
for ( const QModelIndex &index : checkedIndexes )
6362
{
64-
if ( setData( index, check ? Qt::Checked : Qt::Unchecked, Qt::CheckStateRole ) )
65-
emit dataChanged( index, index ); //), roles);
63+
bool isChecked = data( index, Qt::CheckStateRole ) == Qt::Checked;
64+
if ( setData( index, isChecked ? Qt::Unchecked : Qt::Checked, Qt::CheckStateRole ) )
65+
emit dataChanged( index, index );
6666
}
67-
//endResetModel();
6867
}
6968

7069
QStringList QgsLayerCapabilitiesModel::nonIdentifiableLayers() const

src/app/qgslayercapabilitiesmodel.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ class APP_EXPORT QgsLayerCapabilitiesModel : public QSortFilterProxyModel
5959

6060
public slots:
6161
void setFilterText( const QString &filterText = QString() );
62-
void checkSelectedItems( const QModelIndexList &checkedIndexes, bool check );
62+
void toggleSelectedItems( const QModelIndexList &checkedIndexes );
6363

6464
protected:
6565
bool filterAcceptsRow( int sourceRow, const QModelIndex &sourceParent ) const override;

src/app/qgsprojectproperties.cpp

+3-11
Original file line numberDiff line numberDiff line change
@@ -369,8 +369,7 @@ QgsProjectProperties::QgsProjectProperties( QgsMapCanvas *mapCanvas, QWidget *pa
369369
Q_UNUSED( selected );
370370
Q_UNUSED( deselected );
371371
bool hasSelection = !mLayerCapabilitiesTree->selectionModel()->selectedIndexes().isEmpty();
372-
mLayerCapabilitiesCheckButton->setEnabled( hasSelection );
373-
mLayerCapabilitiesUncheckButton->setEnabled( hasSelection );
372+
mLayerCapabilitiesToggleSelectionButton->setEnabled( hasSelection );
374373
} );
375374

376375
mLayerCapabilitiesTreeFilterLineEdit->setShowClearButton( true );
@@ -382,18 +381,11 @@ QgsProjectProperties::QgsProjectProperties( QgsMapCanvas *mapCanvas, QWidget *pa
382381
mLayerCapabilitiesTree->expandAll();
383382
} );
384383

385-
connect( mLayerCapabilitiesCheckButton, &QToolButton::clicked, this, [ = ]( bool clicked )
384+
connect( mLayerCapabilitiesToggleSelectionButton, &QToolButton::clicked, this, [ = ]( bool clicked )
386385
{
387386
Q_UNUSED( clicked );
388387
const QModelIndexList indexes = mLayerCapabilitiesTree->selectionModel()->selectedIndexes();
389-
mLayerCapabilitiesModel->checkSelectedItems( indexes, true );
390-
mLayerCapabilitiesTree->repaint();
391-
} );
392-
connect( mLayerCapabilitiesUncheckButton, &QToolButton::clicked, this, [ = ]( bool clicked )
393-
{
394-
Q_UNUSED( clicked );
395-
const QModelIndexList indexes = mLayerCapabilitiesTree->selectionModel()->selectedIndexes();
396-
mLayerCapabilitiesModel->checkSelectedItems( indexes, false );
388+
mLayerCapabilitiesModel->toggleSelectedItems( indexes );
397389
mLayerCapabilitiesTree->repaint();
398390
} );
399391

src/ui/qgsprojectpropertiesbase.ui

+23-33
Original file line numberDiff line numberDiff line change
@@ -277,7 +277,7 @@
277277
<rect>
278278
<x>0</x>
279279
<y>0</y>
280-
<width>676</width>
280+
<width>563</width>
281281
<height>833</height>
282282
</rect>
283283
</property>
@@ -875,8 +875,8 @@
875875
<rect>
876876
<x>0</x>
877877
<y>0</y>
878-
<width>676</width>
879-
<height>764</height>
878+
<width>547</width>
879+
<height>152</height>
880880
</rect>
881881
</property>
882882
<layout class="QVBoxLayout" name="verticalLayout_7">
@@ -950,8 +950,8 @@
950950
<rect>
951951
<x>0</x>
952952
<y>0</y>
953-
<width>676</width>
954-
<height>764</height>
953+
<width>271</width>
954+
<height>597</height>
955955
</rect>
956956
</property>
957957
<layout class="QVBoxLayout" name="verticalLayout_12">
@@ -1414,30 +1414,10 @@
14141414
<property name="verticalSpacing">
14151415
<number>0</number>
14161416
</property>
1417-
<item row="1" column="0" colspan="4">
1418-
<widget class="QTreeView" name="mLayerCapabilitiesTree"/>
1417+
<item row="3" column="3">
1418+
<widget class="QgsFilterLineEdit" name="mLayerCapabilitiesTreeFilterLineEdit"/>
14191419
</item>
14201420
<item row="3" column="1">
1421-
<widget class="QPushButton" name="mLayerCapabilitiesCheckButton">
1422-
<property name="enabled">
1423-
<bool>false</bool>
1424-
</property>
1425-
<property name="text">
1426-
<string>Check Selected</string>
1427-
</property>
1428-
</widget>
1429-
</item>
1430-
<item row="3" column="0">
1431-
<widget class="QPushButton" name="mLayerCapabilitiesUncheckButton">
1432-
<property name="enabled">
1433-
<bool>false</bool>
1434-
</property>
1435-
<property name="text">
1436-
<string>Uncheck Selected</string>
1437-
</property>
1438-
</widget>
1439-
</item>
1440-
<item row="3" column="2">
14411421
<spacer name="horizontalSpacer_5">
14421422
<property name="orientation">
14431423
<enum>Qt::Horizontal</enum>
@@ -1450,10 +1430,20 @@
14501430
</property>
14511431
</spacer>
14521432
</item>
1453-
<item row="3" column="3">
1454-
<widget class="QgsFilterLineEdit" name="mLayerCapabilitiesTreeFilterLineEdit"/>
1433+
<item row="3" column="0">
1434+
<widget class="QPushButton" name="mLayerCapabilitiesToggleSelectionButton">
1435+
<property name="enabled">
1436+
<bool>false</bool>
1437+
</property>
1438+
<property name="text">
1439+
<string>Toggle Selection</string>
1440+
</property>
1441+
</widget>
1442+
</item>
1443+
<item row="1" column="0" colspan="4">
1444+
<widget class="QTreeView" name="mLayerCapabilitiesTree"/>
14551445
</item>
1456-
<item row="4" column="3">
1446+
<item row="3" column="2">
14571447
<widget class="QCheckBox" name="mShowSpatialLayersCheckBox">
14581448
<property name="layoutDirection">
14591449
<enum>Qt::LeftToRight</enum>
@@ -1591,8 +1581,8 @@
15911581
<rect>
15921582
<x>0</x>
15931583
<y>0</y>
1594-
<width>676</width>
1595-
<height>764</height>
1584+
<width>157</width>
1585+
<height>59</height>
15961586
</rect>
15971587
</property>
15981588
<layout class="QVBoxLayout" name="verticalLayout_17">
@@ -1653,7 +1643,7 @@
16531643
<rect>
16541644
<x>0</x>
16551645
<y>0</y>
1656-
<width>676</width>
1646+
<width>603</width>
16571647
<height>2666</height>
16581648
</rect>
16591649
</property>

0 commit comments

Comments
 (0)