patch_on_r15538-rbr_with_symbol_levels.diff
| /hometb/mk/sig/dev/r15538-patched/qgis//src/core/symbology-ng/qgsrulebasedrendererv2.cpp 2011-03-20 00:23:38.414326467 +0100 | ||
|---|---|---|
| 128 | 128 | |
| 129 | 129 |
QgsSymbolV2* QgsRuleBasedRendererV2::symbolForFeature( QgsFeature& feature ) |
| 130 | 130 |
{
|
| 131 |
return mCurrentSymbol; |
|
| 131 |
QgsDebugMsg( "usingSymbolLevels:" ); |
|
| 132 |
QgsDebugMsg( QString(usingSymbolLevels()?"T":"F") ); |
|
| 133 |
QgsDebugMsg( QString(mUsingSymbolLevels?"T":"F") ); |
|
| 134 | ||
| 135 |
if( !usingSymbolLevels() ) return mCurrentSymbol; |
|
| 136 | ||
| 137 |
for ( QList<Rule*>::iterator it = mCurrentRules.begin(); it != mCurrentRules.end(); ++it ) |
|
| 138 |
{
|
|
| 139 |
Rule* rule = *it; |
|
| 140 | ||
| 141 |
if ( rule->isFilterOK( mCurrentFields, feature ) ) |
|
| 142 |
{
|
|
| 143 |
return rule->symbol(); //works with levels but takes only first rule |
|
| 144 |
} |
|
| 145 |
} |
|
| 132 | 146 |
} |
| 133 | 147 | |
| 134 | 148 |
void QgsRuleBasedRendererV2::renderFeature( QgsFeature& feature, |
| ... | ... | |
| 200 | 214 |
QgsSymbolV2* s = mDefaultSymbol->clone(); |
| 201 | 215 |
QgsRuleBasedRendererV2* r = new QgsRuleBasedRendererV2( s ); |
| 202 | 216 |
r->mRules = mRules; |
| 217 |
r->setUsingSymbolLevels( usingSymbolLevels() ); |
|
| 203 | 218 |
return r; |
| 204 | 219 |
} |
| 205 | 220 | |
| ... | ... | |
| 219 | 234 |
{
|
| 220 | 235 |
QDomElement rendererElem = doc.createElement( RENDERER_TAG_NAME ); |
| 221 | 236 |
rendererElem.setAttribute( "type", "RuleRenderer" ); |
| 237 |
rendererElem.setAttribute( "symbollevels", ( mUsingSymbolLevels ? "1" : "0" ) ); |
|
| 222 | 238 | |
| 223 | 239 |
QDomElement rulesElem = doc.createElement( "rules" ); |
| 224 | 240 | |
| /hometb/mk/sig/dev/r15538-patched/qgis//src/gui/symbology-ng/qgsrulebasedrendererv2widget.cpp 2011-03-20 21:04:05.928573752 +0100 | ||
|---|---|---|
| 27 | 27 |
#include <QTreeWidgetItem> |
| 28 | 28 |
#include <QVBoxLayout> |
| 29 | 29 |
#include <QMessageBox> |
| 30 |
#include <sstream> |
|
| 30 | 31 | |
| 31 | 32 |
QgsRendererV2Widget* QgsRuleBasedRendererV2Widget::create( QgsVectorLayer* layer, QgsStyleV2* style, QgsFeatureRendererV2* renderer ) |
| 32 | 33 |
{
|
| ... | ... | |
| 487 | 488 |
//item->setBackground( 1, Qt::lightGray ); |
| 488 | 489 |
//item->setBackground( 3, Qt::lightGray ); |
| 489 | 490 | |
| 491 |
// Id: add 1 to rule number and convert to string |
|
| 492 |
std::ostringstream ioss; |
|
| 493 |
ioss << i+1; |
|
| 494 |
std::string ruleIdx = ioss.str(); |
|
| 495 |
while( ruleIdx.size() < 4 ){ ruleIdx.insert( 0, " " );} // pad to left with spaces (to fix string-based sorting)
|
|
| 496 |
item->setText( 4, QString(ruleIdx.c_str()) );// Insert Id in table (as 'Priority' column) |
|
| 497 |
item->setTextAlignment (4, Qt::AlignRight); |
|
| 490 | 498 |
lst << item; |
| 491 | 499 |
} |
| 492 | 500 | |
| ... | ... | |
| 550 | 558 | |
| 551 | 559 |
//item->setBackground( 1, Qt::lightGray ); |
| 552 | 560 |
//item->setBackground( 3, Qt::lightGray ); |
| 561 | ||
| 562 |
// Id: add 1 to rule number and convert to string |
|
| 563 |
std::ostringstream ioss; |
|
| 564 |
ioss << i+1; |
|
| 565 |
std::string ruleIdx = ioss.str(); |
|
| 566 |
while( ruleIdx.size() < 4 ){ ruleIdx.insert( 0, " " );} // pad to left with spaces (to fix string-based sorting)
|
|
| 567 |
item->setText( 4, QString(ruleIdx.c_str()) );// Insert Id in table TODO: base it on SymbolIdx ? How to access it? |
|
| 568 |
item->setTextAlignment (4, Qt::AlignRight); |
|
| 569 | ||
| 553 | 570 |
} |
| 554 | 571 |
addTopLevelItems( scale_items.values() ); |
| 555 | 572 |
} |
| ... | ... | |
| 601 | 618 |
item->setTextAlignment( 2, Qt::AlignRight ); |
| 602 | 619 |
item->setTextAlignment( 3, Qt::AlignRight ); |
| 603 | 620 |
} |
| 621 | ||
| 622 |
// Id: add 1 to rule number and convert to string |
|
| 623 |
std::ostringstream ioss; |
|
| 624 |
ioss << i+1; |
|
| 625 |
std::string ruleIdx = ioss.str(); |
|
| 626 |
while( ruleIdx.size() < 4 ){ ruleIdx.insert( 0, " " );} // pad to left with spaces (to fix string-based sorting)
|
|
| 627 |
item->setText( 4, QString(ruleIdx.c_str()) );// Insert Id in table |
|
| 628 |
item->setTextAlignment (4, Qt::AlignRight); |
|
| 604 | 629 |
} |
| 605 | 630 | |
| 606 | 631 |
addTopLevelItems( filter_items.values() ); |
| /hometb/mk/sig/dev/r15538-patched/qgis//src/ui/qgsrulebasedrendererv2widget.ui 2011-03-20 00:48:48.341785748 +0100 | ||
|---|---|---|
| 51 | 51 |
<set>AlignHCenter|AlignVCenter|AlignCenter</set> |
| 52 | 52 |
</property> |
| 53 | 53 |
</column> |
| 54 |
<column> |
|
| 55 |
<property name="text"> |
|
| 56 |
<string>Priority</string> |
|
| 57 |
</property> |
|
| 58 |
<property name="textAlignment"> |
|
| 59 |
<set>AlignHCenter|AlignVCenter|AlignCenter</set> |
|
| 60 |
</property> |
|
| 61 |
</column> |
|
| 54 | 62 |
</widget> |
| 55 | 63 |
</item> |
| 56 | 64 |
<item row="0" column="1"> |