@@ -46,7 +46,7 @@ QgsAttributeTableView::QgsAttributeTableView( QWidget *parent )
4646 setSelectionMode ( QAbstractItemView::ExtendedSelection );
4747 setSortingEnabled ( true );
4848
49- connect ( verticalHeader (), SIGNAL ( sectionClicked ( int ) ), SLOT ( onVerticalHeaderSectionClicked ( int ) ) );
49+ verticalHeader ()-> viewport ()-> installEventFilter ( this );
5050}
5151
5252QgsAttributeTableView::~QgsAttributeTableView ()
@@ -75,6 +75,30 @@ void QgsAttributeTableView::setCanvasAndLayerCache( QgsMapCanvas *canvas, QgsVec
7575 delete filterModel;
7676}
7777
78+ bool QgsAttributeTableView::eventFilter (QObject *object, QEvent *event)
79+ {
80+ if ( object == verticalHeader ()->viewport () )
81+ {
82+
83+ qDebug () << " Event " << event->type ();
84+
85+ switch ( event->type () )
86+ {
87+ case QEvent::MouseButtonPress:
88+ mFilterModel ->disableSelectionSync ();
89+ break ;
90+
91+ case QEvent::MouseButtonRelease:
92+ mFilterModel ->enableSelectionSync ();
93+ break ;
94+
95+ default :
96+ break ;
97+ }
98+ }
99+ return false ;
100+ }
101+
78102void QgsAttributeTableView::setModel ( QgsAttributeTableFilterModel* filterModel )
79103{
80104 if ( mFilterModel )
@@ -158,22 +182,6 @@ void QgsAttributeTableView::keyPressEvent( QKeyEvent *event )
158182 }
159183}
160184
161- void QgsAttributeTableView::onVerticalHeaderSectionClicked ( int logicalIndex )
162- {
163- Q_UNUSED ( logicalIndex )
164-
165- QgsFeatureIds selectedFeatures;
166-
167- QModelIndexList selectedRows = selectionModel ()->selectedRows ();
168-
169- foreach ( QModelIndex row, selectedRows )
170- {
171- selectedFeatures.insert ( mFilterModel ->rowToId ( row ) );
172- }
173-
174- emit selectionChangeFinished ( selectedFeatures );
175- }
176-
177185void QgsAttributeTableView::onFilterAboutToBeInvalidated ()
178186{
179187 disconnect ( selectionModel (), SIGNAL ( selectionChanged ( QItemSelection, QItemSelection ) ), this , SLOT ( onSelectionChanged ( QItemSelection, QItemSelection ) ) );
0 commit comments