From f20e28d98fd626cc86977bd801ac540920464eb3 Mon Sep 17 00:00:00 2001 From: Denis Rouzaud Date: Wed, 1 Jun 2016 11:54:57 +0200 Subject: [PATCH] allow to hide/show all columns in attribute table config --- .../qgsorganizetablecolumnsdialog.sip | 11 +++++ .../qgsorganizetablecolumnsdialog.cpp | 27 ++++++++++++ .../qgsorganizetablecolumnsdialog.h | 12 ++++++ src/ui/qgsorganizetablecolumnsdialog.ui | 41 +++++++++++++++---- 4 files changed, 84 insertions(+), 7 deletions(-) diff --git a/python/gui/attributetable/qgsorganizetablecolumnsdialog.sip b/python/gui/attributetable/qgsorganizetablecolumnsdialog.sip index 43db7c84737..85ab33bfa84 100644 --- a/python/gui/attributetable/qgsorganizetablecolumnsdialog.sip +++ b/python/gui/attributetable/qgsorganizetablecolumnsdialog.sip @@ -23,4 +23,15 @@ class QgsOrganizeTableColumnsDialog : QDialog * Get the updated configuration */ QgsAttributeTableConfig config() const; + + public slots: + /** + * showAll checks all the fields to show them all in the attribute table + */ + void showAll(); + + /** + * hideAll unchecks all the fields to hide them all in the attribute table + */ + void hideAll(); }; diff --git a/src/gui/attributetable/qgsorganizetablecolumnsdialog.cpp b/src/gui/attributetable/qgsorganizetablecolumnsdialog.cpp index 72f89b147b2..6be4d513501 100644 --- a/src/gui/attributetable/qgsorganizetablecolumnsdialog.cpp +++ b/src/gui/attributetable/qgsorganizetablecolumnsdialog.cpp @@ -45,6 +45,10 @@ QgsOrganizeTableColumnsDialog::QgsOrganizeTableColumnsDialog( const QgsVectorLay : QDialog( parent, flags ) { setupUi( this ); + + connect( mShowAllButton, SIGNAL( clicked( bool ) ), this, SLOT( showAll() ) ); + connect( mHideAllButton, SIGNAL( clicked( bool ) ), this, SLOT( hideAll() ) ); + if ( vl ) { mConfig = vl->attributeTableConfig(); @@ -86,6 +90,13 @@ QgsOrganizeTableColumnsDialog::QgsOrganizeTableColumnsDialog( const QgsVectorLay } } + if ( !vl || mConfig.columns().count() < 7 ) + { + mShowAllButton->hide(); + mHideAllButton->hide(); + } + + QSettings settings; restoreGeometry( settings.value( "/Windows/QgsOrganizeTableColumnsDialog/geometry" ).toByteArray() ); } @@ -114,3 +125,19 @@ QgsAttributeTableConfig QgsOrganizeTableColumnsDialog::config() const config.setColumns( columns ); return config; } + +void QgsOrganizeTableColumnsDialog::showAll() +{ + for ( int i = 0 ; i < mFieldsList->count() ; i++ ) + { + mFieldsList->item( i )->setCheckState( Qt::Checked ); + } +} + +void QgsOrganizeTableColumnsDialog::hideAll() +{ + for ( int i = 0 ; i < mFieldsList->count() ; i++ ) + { + mFieldsList->item( i )->setCheckState( Qt::Unchecked ); + } +} diff --git a/src/gui/attributetable/qgsorganizetablecolumnsdialog.h b/src/gui/attributetable/qgsorganizetablecolumnsdialog.h index 51cd866cd56..2b6eafa6acc 100644 --- a/src/gui/attributetable/qgsorganizetablecolumnsdialog.h +++ b/src/gui/attributetable/qgsorganizetablecolumnsdialog.h @@ -48,8 +48,20 @@ class GUI_EXPORT QgsOrganizeTableColumnsDialog : public QDialog, private Ui::Qgs */ QgsAttributeTableConfig config() const; + public slots: + /** + * showAll checks all the fields to show them all in the attribute table + */ + void showAll(); + + /** + * hideAll unchecks all the fields to hide them all in the attribute table + */ + void hideAll(); + private: QgsAttributeTableConfig mConfig; + }; #endif diff --git a/src/ui/qgsorganizetablecolumnsdialog.ui b/src/ui/qgsorganizetablecolumnsdialog.ui index abcefedacc0..e57343312d0 100644 --- a/src/ui/qgsorganizetablecolumnsdialog.ui +++ b/src/ui/qgsorganizetablecolumnsdialog.ui @@ -13,8 +13,25 @@ Filter table column - - + + + + + Qt::Horizontal + + + QDialogButtonBox::Cancel|QDialogButtonBox::Ok + + + + + + + select all + + + + QAbstractItemView::DragDrop @@ -24,15 +41,25 @@ - - + + + + unselect all + + + + + Qt::Horizontal - - QDialogButtonBox::Cancel|QDialogButtonBox::Ok + + + 40 + 20 + - +