category-fix.diff
src/gui/symbology-ng/qgscategorizedsymbolrendererv2widget.cpp | ||
---|---|---|
445 | 445 | |
446 | 446 |
void QgsCategorizedSymbolRendererV2Widget::changeSelectedSymbols() |
447 | 447 |
{ |
448 |
QItemSelectionModel* m = viewCategories->selectionModel(); |
|
449 |
QModelIndexList selectedIndexes = m->selectedRows( 1 ); |
|
448 |
QList<int> selectedCats = selectedCategories(); |
|
450 | 449 | |
451 |
if ( m && selectedIndexes.size() > 0 )
|
|
450 |
if ( selectedCats.size() > 0 )
|
|
452 | 451 |
{ |
453 | 452 |
QgsSymbolV2* newSymbol = mCategorizedSymbol->clone(); |
454 | 453 |
QgsSymbolV2SelectorDialog dlg( newSymbol, mStyle, mLayer, this ); |
... | ... | |
458 | 457 |
return; |
459 | 458 |
} |
460 | 459 | |
461 |
foreach ( QModelIndex idx, selectedIndexes )
|
|
460 |
foreach ( const int idx, selectedCats )
|
|
462 | 461 |
{ |
463 |
if ( idx.isValid() ) |
|
464 |
{ |
|
465 |
int catIdx = mRenderer->categoryIndexForValue( idx.data( Qt::UserRole + 1 ) ); |
|
466 |
QgsSymbolV2* newCatSymbol = newSymbol->clone(); |
|
467 |
newCatSymbol->setColor( mRenderer->categories()[catIdx].symbol()->color() ); |
|
468 |
mRenderer->updateCategorySymbol( catIdx, newCatSymbol ); |
|
469 |
} |
|
462 |
QgsRendererCategoryV2 category = mRenderer->categories().value( idx ); |
|
463 | ||
464 |
QgsSymbolV2* newCatSymbol = newSymbol->clone(); |
|
465 |
newCatSymbol->setColor( mRenderer->categories()[idx].symbol()->color() ); |
|
466 |
mRenderer->updateCategorySymbol( idx, newCatSymbol ); |
|
470 | 467 |
} |
471 | 468 |
} |
472 | 469 |
} |