@@ -104,6 +104,7 @@ void QgsDualView::init( QgsVectorLayer* layer, QgsMapCanvas* mapCanvas, const Qg
104104 connect ( mAttributeForm , SIGNAL ( modeChanged ( QgsAttributeForm::Mode ) ), this , SIGNAL ( formModeChanged ( QgsAttributeForm::Mode ) ) );
105105 connect ( mMasterModel , SIGNAL ( modelChanged () ), mAttributeForm , SLOT ( refreshFeature () ) );
106106 connect ( mAttributeForm , SIGNAL ( filterExpressionSet ( QString, QgsAttributeForm::FilterType ) ), this , SIGNAL ( filterExpressionSet ( QString, QgsAttributeForm::FilterType ) ) );
107+ connect ( mFilterModel , SIGNAL ( sortColumnChanged ( int , Qt::SortOrder ) ), this , SLOT ( onSortColumnChanged () ) );
107108 if ( mFeatureListPreviewButton ->defaultAction () )
108109 mFeatureList ->setDisplayExpression ( mDisplayExpression );
109110 else
@@ -512,7 +513,6 @@ void QgsDualView::organizeColumns()
512513 if ( dialog.exec () == QDialog::Accepted )
513514 {
514515 QgsAttributeTableConfig config = dialog.config ();
515- mLayerCache ->layer ()->setAttributeTableConfig ( config );
516516 setAttributeTableConfig ( config );
517517 }
518518}
@@ -651,6 +651,13 @@ void QgsDualView::previewExpressionChanged( const QString& expression )
651651 mLayerCache ->layer ()->setDisplayExpression ( expression );
652652}
653653
654+ void QgsDualView::onSortColumnChanged ()
655+ {
656+ QgsAttributeTableConfig cfg = mLayerCache ->layer ()->attributeTableConfig ();
657+ cfg.setSortExpression ( mFilterModel ->sortExpression () );
658+ mLayerCache ->layer ()->setAttributeTableConfig ( cfg );
659+ }
660+
654661void QgsDualView::sortByPreviewExpression ()
655662{
656663 setSortExpression ( mFeatureList ->displayExpression () );
@@ -684,6 +691,7 @@ void QgsDualView::setFeatureSelectionManager( QgsIFeatureSelectionManager* featu
684691
685692void QgsDualView::setAttributeTableConfig ( const QgsAttributeTableConfig& config )
686693{
694+ mLayerCache ->layer ()->setAttributeTableConfig ( config );
687695 mFilterModel ->setAttributeTableConfig ( config );
688696 mTableView ->setAttributeTableConfig ( config );
689697 mConfig = config;
@@ -695,6 +703,10 @@ void QgsDualView::setSortExpression( const QString& sortExpression )
695703 mFilterModel ->sort ( -1 );
696704 else
697705 mFilterModel ->sort ( sortExpression );
706+
707+ QgsAttributeTableConfig cfg = mLayerCache ->layer ()->attributeTableConfig ();
708+ cfg.setSortExpression ( sortExpression );
709+ mLayerCache ->layer ()->setAttributeTableConfig ( cfg );
698710}
699711
700712QString QgsDualView::sortExpression () const
0 commit comments