2
2
#include " qgssymbollevelsv2dialog.h"
3
3
4
4
#include " qgssymbollayerv2utils.h"
5
+ #include " qgssymbollayerv2.h"
5
6
#include " qgssymbolv2.h"
6
7
7
8
#include < QTableWidgetItem>
8
9
9
- QgsSymbolLevelsV2Dialog::QgsSymbolLevelsV2Dialog (QgsSymbolV2List symbols, QgsSymbolV2LevelOrder levels , QWidget* parent)
10
- : QDialog(parent), mSymbols(symbols), mLevels(levels)
10
+ QgsSymbolLevelsV2Dialog::QgsSymbolLevelsV2Dialog (QgsSymbolV2List symbols, bool usingSymbolLevels , QWidget* parent)
11
+ : QDialog(parent), mSymbols(symbols)
11
12
{
12
13
setupUi (this );
13
14
14
- chkEnable->setChecked ( !levels. isEmpty () );
15
+ chkEnable->setChecked ( usingSymbolLevels );
15
16
16
17
connect (chkEnable, SIGNAL (clicked ()), this , SLOT (updateUi ()));
17
18
@@ -42,17 +43,14 @@ QgsSymbolLevelsV2Dialog::QgsSymbolLevelsV2Dialog(QgsSymbolV2List symbols, QgsSym
42
43
43
44
updateUi ();
44
45
45
- connect (tableLevels, SIGNAL (itemChanged (QTableWidgetItem*)), this , SLOT (updateLevels (QTableWidgetItem*)));
46
+ if (!usingSymbolLevels)
47
+ setDefaultLevels ();
48
+
46
49
populateTable ();
47
50
}
48
51
49
52
void QgsSymbolLevelsV2Dialog::populateTable ()
50
53
{
51
- if (mLevels .isEmpty ())
52
- return ;
53
-
54
- disconnect (tableLevels, SIGNAL (itemChanged (QTableWidgetItem*)), this , SLOT (updateLevels (QTableWidgetItem*)));
55
-
56
54
for (int row = 0 ; row < mSymbols .count (); row++)
57
55
{
58
56
QgsSymbolV2* sym = mSymbols [row];
@@ -66,81 +64,33 @@ void QgsSymbolLevelsV2Dialog::populateTable()
66
64
}
67
65
else
68
66
{
69
- item = new QTableWidgetItem ( QString::number (levelForSymbolLayer (sym, layer)) );
67
+ item = new QTableWidgetItem ( QString::number ( sym-> symbolLayer ( layer)-> renderingPass () ) );
70
68
}
71
69
tableLevels->setItem (row, layer, item);
72
70
}
73
71
}
74
72
75
- connect (tableLevels, SIGNAL (itemChanged (QTableWidgetItem*)), this , SLOT (updateLevels (QTableWidgetItem*)));
76
-
77
73
}
78
74
79
75
void QgsSymbolLevelsV2Dialog::updateUi ()
80
76
{
81
- if (chkEnable->isChecked ())
82
- {
83
- if (mLevels .isEmpty ())
84
- setDefaultLevels ();
85
- populateTable ();
86
- }
87
- else
88
- mLevels .clear ();
89
-
90
77
tableLevels->setEnabled (chkEnable->isChecked ());
91
78
}
92
79
93
80
void QgsSymbolLevelsV2Dialog::setDefaultLevels ()
94
81
{
95
- mLevels .clear ();
96
- for (int col = 0 ; col < tableLevels->columnCount (); col++)
82
+ for (int i = 0 ; i < mSymbols .count (); i++)
97
83
{
98
- QgsSymbolV2Level level ;
99
- for (int i = 0 ; i < mSymbols . count (); i ++)
84
+ QgsSymbolV2* sym = mSymbols [i] ;
85
+ for (int layer = 0 ; layer < sym-> symbolLayerCount (); layer ++)
100
86
{
101
- QgsSymbolV2* sym = mSymbols [i];
102
- if (col < sym->symbolLayerCount ())
103
- level.append (QgsSymbolV2LevelItem (sym, col));
87
+ sym->symbolLayer (layer)->setRenderingPass (layer);
104
88
}
105
- mLevels .append (level);
106
89
}
107
90
}
108
91
109
- int QgsSymbolLevelsV2Dialog::levelForSymbolLayer (QgsSymbolV2* sym, int layer)
110
- {
111
- for (int l = 0 ; l < mLevels .count (); l++)
112
- {
113
- QgsSymbolV2Level& level = mLevels [l];
114
- for (int i = 0 ; i < level.count (); i++)
115
- {
116
- QgsSymbolV2LevelItem& item = level[i];
117
- if (item.symbol () == sym && item.layer () == layer)
118
- return l;
119
- }
120
- }
121
- return -1 ;
122
- }
123
92
124
- void QgsSymbolLevelsV2Dialog::updateLevels (QTableWidgetItem* item)
93
+ bool QgsSymbolLevelsV2Dialog::usingLevels () const
125
94
{
126
- int num = item->text ().toInt ();
127
- if (num > 100 )
128
- {
129
- item->setText (" 0" );
130
- return ;
131
- }
132
-
133
- mLevels .clear ();
134
- for (int col = 0 ; col < tableLevels->columnCount (); col++)
135
- {
136
- for (int row = 0 ; row < mSymbols .count (); row++)
137
- {
138
- QgsSymbolV2* sym = mSymbols [row];
139
- int level = tableLevels->item (row,col)->text ().toInt ();
140
- QgsSymbolV2LevelItem item (sym,col);
141
- while (level >= mLevels .count ()) // append new empty levels
142
- mLevels .append ( QgsSymbolV2Level () );
143
- mLevels [level].append (item);
144
- }
145
- }
95
+ return chkEnable->isChecked ();
146
96
}
0 commit comments