@@ -191,7 +191,7 @@ QgsFieldsProperties::QgsFieldsProperties( QgsVectorLayer *layer, QWidget* parent
191
191
attrTreeLayout->setMargin ( 0 );
192
192
attrListLayout->setMargin ( 0 );
193
193
mAttributesTree = new QgsAttributesTree ( mAttributesTreeFrame );
194
- mAttributesList = new QgsAttributesList ( mAttributesListFrame );
194
+ mAttributesList = new QTableWidget ( mAttributesListFrame );
195
195
attrTreeLayout->addWidget ( mAttributesTree );
196
196
attrListLayout->addWidget ( mAttributesList );
197
197
mAttributesTreeFrame ->setLayout ( attrTreeLayout );
@@ -536,14 +536,7 @@ void QgsFieldsProperties::attributeAdded( int idx )
536
536
537
537
void QgsFieldsProperties::attributeDeleted ( int idx )
538
538
{
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 );
547
540
}
548
541
549
542
void QgsFieldsProperties::addAttribute ()
@@ -580,24 +573,6 @@ bool QgsFieldsProperties::addAttribute( const QgsField &field )
580
573
}
581
574
}
582
575
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
-
601
576
void QgsFieldsProperties::editingToggled ()
602
577
{
603
578
if ( !mLayer ->isEditable () )
@@ -626,20 +601,15 @@ void QgsFieldsProperties::on_mAddAttributeButton_clicked()
626
601
627
602
void QgsFieldsProperties::on_mDeleteAttributeButton_clicked ()
628
603
{
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 () )
633
606
{
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 );
642
608
}
609
+
610
+ mLayer ->beginEditCommand ( tr ( " Deleted attribute" ) );
611
+ mLayer ->deleteAttributes ( attrs.toList () );
612
+ mLayer ->endEditCommand ();
643
613
}
644
614
645
615
void QgsFieldsProperties::updateButtons ()
0 commit comments