Skip to content

Commit

Permalink
Do not use automatic grouping anymore
Browse files Browse the repository at this point in the history
  • Loading branch information
wonder-sk committed Jan 4, 2012
1 parent 45caf4f commit 83ec810
Show file tree
Hide file tree
Showing 2 changed files with 38 additions and 30 deletions.
66 changes: 36 additions & 30 deletions src/gui/symbology-ng/qgsrulebasedrendererv2widget.cpp
Expand Up @@ -86,7 +86,7 @@ QgsRuleBasedRendererV2Widget::QgsRuleBasedRendererV2Widget( QgsVectorLayer* laye

connect( btnRenderingOrder, SIGNAL( clicked() ), this, SLOT( setRenderingOrder() ) );

treeRules->populateRules();
treeRules->setGrouping( QgsRendererRulesTreeWidget::NoGrouping );
}

QgsRuleBasedRendererV2Widget::~QgsRuleBasedRendererV2Widget()
Expand Down Expand Up @@ -511,7 +511,7 @@ void QgsRendererRulesTreeWidget::setRenderer( QgsRuleBasedRendererV2* r )
void QgsRendererRulesTreeWidget::setGrouping( Grouping g )
{
mGrouping = g;
setRootIsDecorated( mGrouping != NoGrouping );
setRootIsDecorated( true ); //mGrouping != NoGrouping );
populateRules();
}

Expand Down Expand Up @@ -569,47 +569,53 @@ void QgsRendererRulesTreeWidget::populateRules()
setColumnWidth( 1, 200 ); // make the column for filter a bit bigger
}

void QgsRendererRulesTreeWidget::populateRulesNoGrouping()
QTreeWidgetItem* QgsRendererRulesTreeWidget::populateRulesNoGrouping( QgsRuleBasedRendererV2::Rule* rule, int i, QTreeWidgetItem* parentItem )
{
QList<QTreeWidgetItem *> lst;
QTreeWidgetItem* item = new QTreeWidgetItem( parentItem );

for ( int i = 0; i < mR->ruleCount(); ++i )
QString txtLabel = rule->label();
item->setText( 0, txtLabel );
item->setData( 0, Qt::UserRole + 1, i );
if ( rule->symbol() )
{
QgsRuleBasedRendererV2::Rule* rule = mR->ruleAt( i );

QTreeWidgetItem* item = new QTreeWidgetItem;

QString txtLabel = rule->label();
item->setText( 0, txtLabel );
item->setData( 0, Qt::UserRole + 1, i );
item->setIcon( 0, QgsSymbolLayerV2Utils::symbolPreviewIcon( rule->symbol(), QSize( 16, 16 ) ) );
}

QString txtRule = rule->filterExpression();
if ( txtRule.isEmpty() )
txtRule = tr( "(no filter)" );
item->setText( 1, txtRule );

if ( rule->dependsOnScale() )
{
item->setText( 2, formatScale( rule->scaleMinDenom(), mLongestMinDenom ) );
item->setText( 3, formatScale( rule->scaleMaxDenom(), mLongestMaxDenom ) );
item->setTextAlignment( 2, Qt::AlignRight );
item->setTextAlignment( 3, Qt::AlignRight );
}
QString txtRule = rule->filterExpression();
if ( txtRule.isEmpty() )
txtRule = tr( "(no filter)" );
item->setText( 1, txtRule );

//item->setBackground( 1, Qt::lightGray );
//item->setBackground( 3, Qt::lightGray );
if ( rule->dependsOnScale() )
{
item->setText( 2, formatScale( rule->scaleMinDenom(), mLongestMinDenom ) );
item->setText( 3, formatScale( rule->scaleMaxDenom(), mLongestMaxDenom ) );
item->setTextAlignment( 2, Qt::AlignRight );
item->setTextAlignment( 3, Qt::AlignRight );
}

// Priority (Id): add 1 to rule number and convert to string
item->setText( 4, QString( "%1" ).arg( i + 1, 4 ) );
item->setTextAlignment( 4, Qt::AlignRight );
lst << item;
// process children
QgsRuleBasedRendererV2::RuleList& children = rule->children();
for ( int i = 0; i < children.count(); ++i )
{
populateRulesNoGrouping( children[i], i, item );
}

return item;
}

void QgsRendererRulesTreeWidget::populateRulesNoGrouping()
{
QList<QTreeWidgetItem *> lst;

QgsRuleBasedRendererV2::Rule* rule = mR->rootRule();
QTreeWidgetItem* item = populateRulesNoGrouping( rule, -1, NULL );

lst << item;
addTopLevelItems( lst );
}


void QgsRendererRulesTreeWidget::populateRulesGroupByScale()
{
QMap< QPair<int, int>, QTreeWidgetItem*> scale_items;
Expand Down
2 changes: 2 additions & 0 deletions src/gui/symbology-ng/qgsrulebasedrendererv2widget.h
Expand Up @@ -45,6 +45,8 @@ class GUI_EXPORT QgsRendererRulesTreeWidget : public QTreeWidget
void populateRulesGroupByScale();
void populateRulesGroupByFilter();

QTreeWidgetItem* populateRulesNoGrouping( QgsRuleBasedRendererV2::Rule* rule, int i, QTreeWidgetItem* parentItem );

QString formatScaleRange( int minDenom, int maxDenom );

QString formatScale( int denom, int size = 0 );
Expand Down

0 comments on commit 83ec810

Please sign in to comment.