@@ -191,7 +191,7 @@ QgsFieldsProperties::QgsFieldsProperties( QgsVectorLayer *layer, QWidget* parent
191191 attrTreeLayout->setMargin ( 0 );
192192 attrListLayout->setMargin ( 0 );
193193 mAttributesTree = new QgsAttributesTree ( mAttributesTreeFrame );
194- mAttributesList = new QgsAttributesList ( mAttributesListFrame );
194+ mAttributesList = new QTableWidget ( mAttributesListFrame );
195195 attrTreeLayout->addWidget ( mAttributesTree );
196196 attrListLayout->addWidget ( mAttributesList );
197197 mAttributesTreeFrame ->setLayout ( attrTreeLayout );
@@ -536,14 +536,7 @@ void QgsFieldsProperties::attributeAdded( int idx )
536536
537537void QgsFieldsProperties::attributeDeleted ( int idx )
538538{
539- for ( int i = 0 ; i < mAttributesList ->rowCount (); i++ )
540- {
541- if ( mAttributesList ->item ( i, 0 )->text ().toInt () == idx )
542- {
543- mAttributesList ->removeRow ( i );
544- break ;
545- }
546- }
539+ mAttributesList ->removeRow ( idx );
547540}
548541
549542void QgsFieldsProperties::addAttribute ()
@@ -580,24 +573,6 @@ bool QgsFieldsProperties::addAttribute( const QgsField &field )
580573 }
581574}
582575
583- void QgsFieldsProperties::deleteAttribute ()
584- {
585- QList<QTableWidgetItem*> items = mAttributesList ->selectedItems ();
586- QList<int > idxs;
587-
588- for ( QList<QTableWidgetItem*>::const_iterator it = items.begin (); it != items.end (); it++ )
589- {
590- if (( *it )->column () == 0 )
591- idxs << ( *it )->text ().toInt ();
592- }
593- for ( QList<int >::const_iterator it = idxs.begin (); it != idxs.end (); it++ )
594- {
595- mLayer ->beginEditCommand ( tr ( " Deleted attribute" ) );
596- mLayer ->deleteAttribute ( *it );
597- mLayer ->endEditCommand ();
598- }
599- }
600-
601576void QgsFieldsProperties::editingToggled ()
602577{
603578 if ( !mLayer ->isEditable () )
@@ -626,20 +601,15 @@ void QgsFieldsProperties::on_mAddAttributeButton_clicked()
626601
627602void QgsFieldsProperties::on_mDeleteAttributeButton_clicked ()
628603{
629- QList<QTableWidgetItem*> items = mAttributesList ->selectedItems ();
630- QList<int > idxs;
631-
632- for ( QList<QTableWidgetItem*>::const_iterator it = items.begin (); it != items.end (); it++ )
604+ QSet<int > attrs;
605+ foreach ( QTableWidgetItem* item, mAttributesList ->selectedItems () )
633606 {
634- if (( *it )->column () == 0 )
635- idxs << ( *it )->text ().toInt ();
636- }
637- for ( QList<int >::const_iterator it = idxs.begin (); it != idxs.end (); it++ )
638- {
639- mLayer ->beginEditCommand ( tr ( " Deleted attribute" ) );
640- mLayer ->deleteAttribute ( *it );
641- mLayer ->endEditCommand ();
607+ attrs << mAttributesList ->row ( item );
642608 }
609+
610+ mLayer ->beginEditCommand ( tr ( " Deleted attribute" ) );
611+ mLayer ->deleteAttributes ( attrs.toList () );
612+ mLayer ->endEditCommand ();
643613}
644614
645615void QgsFieldsProperties::updateButtons ()
0 commit comments