Skip to content

Commit 7877deb

Browse files
author
wonder
committedMay 15, 2009
Added random color ramp to as an example of a discrete color ramp.
git-svn-id: http://svn.osgeo.org/qgis/branches/symbology-ng-branch@10802 c8812cc2-4d05-0410-92ff-de0c093fc19c

File tree

7 files changed

+546
-14
lines changed

7 files changed

+546
-14
lines changed
 

‎src/core/symbology-ng/qgsvectorcolorrampv2.cpp

Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33

44
#include "qgssymbollayerv2utils.h"
55

6+
#include <stdlib.h> // for random()
7+
68
QgsVectorGradientColorRampV2::QgsVectorGradientColorRampV2(QColor color1, QColor color2)
79
: mColor1(color1), mColor2(color2)
810
{
@@ -40,3 +42,75 @@ QgsStringMap QgsVectorGradientColorRampV2::properties() const
4042
map["color2"] = QgsSymbolLayerV2Utils::encodeColor(mColor2);
4143
return map;
4244
}
45+
46+
//////////////
47+
48+
49+
QgsVectorRandomColorRampV2::QgsVectorRandomColorRampV2(int count, int hueMin, int hueMax,
50+
int satMin, int satMax, int valMin, int valMax )
51+
: mCount(count), mHueMin(hueMin), mHueMax(hueMax),
52+
mSatMin(satMin), mSatMax(satMax), mValMin(valMin), mValMax(valMax)
53+
{
54+
updateColors();
55+
}
56+
57+
QgsVectorColorRampV2* QgsVectorRandomColorRampV2::create(const QgsStringMap& props)
58+
{
59+
int count = DEFAULT_RANDOM_COUNT;
60+
int hueMin = DEFAULT_RANDOM_HUE_MIN, hueMax = DEFAULT_RANDOM_HUE_MAX;
61+
int satMin = DEFAULT_RANDOM_SAT_MIN, satMax = DEFAULT_RANDOM_SAT_MAX;
62+
int valMin = DEFAULT_RANDOM_VAL_MIN, valMax = DEFAULT_RANDOM_VAL_MAX;
63+
64+
if (props.contains("count")) count = props["count"].toInt();
65+
if (props.contains("hueMin")) hueMin = props["hueMin"].toInt();
66+
if (props.contains("hueMax")) hueMax = props["hueMax"].toInt();
67+
if (props.contains("satMin")) satMin = props["satMin"].toInt();
68+
if (props.contains("satMax")) satMax = props["satMax"].toInt();
69+
if (props.contains("valMin")) valMin = props["valMin"].toInt();
70+
if (props.contains("valMax")) valMax = props["valMax"].toInt();
71+
72+
return new QgsVectorRandomColorRampV2(count, hueMin, hueMax, satMin, satMax, valMin, valMax);
73+
}
74+
75+
QColor QgsVectorRandomColorRampV2::color(double value) const
76+
{
77+
int colorCnt = mColors.count();
78+
int colorIdx = (int) ( value * colorCnt );
79+
80+
if (colorIdx >= 0 && colorIdx < colorCnt)
81+
return mColors.at( colorIdx );
82+
83+
return QColor();
84+
}
85+
86+
QgsVectorColorRampV2* QgsVectorRandomColorRampV2::clone() const
87+
{
88+
return new QgsVectorRandomColorRampV2(mCount, mHueMin, mHueMax, mSatMin, mSatMax, mValMin, mValMax);
89+
}
90+
91+
QgsStringMap QgsVectorRandomColorRampV2::properties() const
92+
{
93+
QgsStringMap map;
94+
map["count"] = QString::number(mCount);
95+
map["hueMin"] = QString::number(mHueMin);
96+
map["hueMax"] = QString::number(mHueMax);
97+
map["satMin"] = QString::number(mSatMin);
98+
map["satMax"] = QString::number(mSatMax);
99+
map["valMin"] = QString::number(mValMin);
100+
map["valMax"] = QString::number(mValMax);
101+
return map;
102+
}
103+
104+
void QgsVectorRandomColorRampV2::updateColors()
105+
{
106+
int h,s,v;
107+
108+
mColors.clear();
109+
for (int i = 0; i < mCount; i++)
110+
{
111+
h = (random() % (mHueMax-mHueMin+1)) + mHueMin;
112+
s = (random() % (mSatMax-mSatMin+1)) + mSatMin;
113+
v = (random() % (mValMax-mValMin+1)) + mValMin;
114+
mColors.append( QColor::fromHsv(h,s,v) );
115+
}
116+
}

‎src/core/symbology-ng/qgsvectorcolorrampv2.h

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,4 +50,54 @@ class QgsVectorGradientColorRampV2 : public QgsVectorColorRampV2
5050
QColor mColor1, mColor2;
5151
};
5252

53+
#define DEFAULT_RANDOM_COUNT 10
54+
#define DEFAULT_RANDOM_HUE_MIN 0
55+
#define DEFAULT_RANDOM_HUE_MAX 359
56+
#define DEFAULT_RANDOM_VAL_MIN 0
57+
#define DEFAULT_RANDOM_VAL_MAX 255
58+
#define DEFAULT_RANDOM_SAT_MIN 0
59+
#define DEFAULT_RANDOM_SAT_MAX 255
60+
61+
class QgsVectorRandomColorRampV2 : public QgsVectorColorRampV2
62+
{
63+
public:
64+
QgsVectorRandomColorRampV2(int count = DEFAULT_RANDOM_COUNT,
65+
int hueMin = DEFAULT_RANDOM_HUE_MIN, int hueMax = DEFAULT_RANDOM_HUE_MAX,
66+
int satMin = DEFAULT_RANDOM_SAT_MIN, int satMax = DEFAULT_RANDOM_SAT_MAX,
67+
int valMin = DEFAULT_RANDOM_VAL_MIN, int valMax = DEFAULT_RANDOM_VAL_MAX );
68+
69+
static QgsVectorColorRampV2* create(const QgsStringMap& properties = QgsStringMap());
70+
71+
virtual QColor color(double value) const;
72+
73+
virtual QString type() const { return "random"; }
74+
75+
virtual QgsVectorColorRampV2* clone() const;
76+
77+
virtual QgsStringMap properties() const;
78+
79+
void updateColors();
80+
81+
int count() const { return mCount; }
82+
int hueMin() const { return mHueMin; }
83+
int hueMax() const { return mHueMax; }
84+
int satMin() const { return mSatMin; }
85+
int satMax() const { return mSatMax; }
86+
int valMin() const { return mValMin; }
87+
int valMax() const { return mValMax; }
88+
89+
void setCount(int val) { mCount = val; }
90+
void setHueMin(int val) { mHueMin = val; }
91+
void setHueMax(int val) { mHueMax = val; }
92+
void setSatMin(int val) { mSatMin = val; }
93+
void setSatMax(int val) { mSatMax = val; }
94+
void setValMin(int val) { mValMin = val; }
95+
void setValMax(int val) { mValMax = val; }
96+
97+
protected:
98+
int mCount;
99+
int mHueMin, mHueMax, mSatMin, mSatMax, mValMin, mValMax;
100+
QList<QColor> mColors;
101+
};
102+
53103
#endif

‎src/gui/CMakeLists.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ symbology-ng/qgsrendererv2propertiesdialog.cpp
99
symbology-ng/qgsstylev2managerdialog.cpp
1010
symbology-ng/qgssymbolv2selectordialog.cpp
1111
symbology-ng/qgsvectorgradientcolorrampv2dialog.cpp
12+
symbology-ng/qgsvectorrandomcolorrampv2dialog.cpp
1213

1314
qgisgui.cpp
1415
qgisinterface.cpp
@@ -46,6 +47,7 @@ symbology-ng/qgsrendererv2propertiesdialog.h
4647
symbology-ng/qgsstylev2managerdialog.h
4748
symbology-ng/qgssymbolv2selectordialog.h
4849
symbology-ng/qgsvectorgradientcolorrampv2dialog.h
50+
symbology-ng/qgsvectorrandomcolorrampv2dialog.h
4951

5052
qgscomposerview.h
5153
qgsdetaileditemdelegate.h

‎src/gui/symbology-ng/qgsstylev2managerdialog.cpp

Lines changed: 48 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88

99
#include "qgssymbolv2propertiesdialog.h"
1010
#include "qgsvectorgradientcolorrampv2dialog.h"
11+
#include "qgsvectorrandomcolorrampv2dialog.h"
1112

1213
#include <QFile>
1314
#include <QInputDialog>
@@ -104,9 +105,17 @@ void QgsStyleV2ManagerDialog::populateList()
104105
int itemType = currentItemType();
105106

106107
if (itemType < 3)
108+
{
107109
populateSymbols(itemType);
108-
else
110+
}
111+
else if (itemType == 3)
112+
{
109113
populateColorRamps();
114+
}
115+
else
116+
{
117+
Q_ASSERT(0 && "not implemented");
118+
}
110119
}
111120

112121
void QgsStyleV2ManagerDialog::populateSymbols(int type)
@@ -170,11 +179,17 @@ QString QgsStyleV2ManagerDialog::currentItemName()
170179
void QgsStyleV2ManagerDialog::addItem()
171180
{
172181
if (currentItemType() < 3)
182+
{
173183
addSymbol();
184+
}
174185
else if (currentItemType() == 3)
186+
{
175187
addColorRamp();
188+
}
176189
else
190+
{
177191
Q_ASSERT(0 && "not implemented");
192+
}
178193

179194
populateList();
180195
populateTypes();
@@ -217,18 +232,15 @@ bool QgsStyleV2ManagerDialog::addSymbol()
217232

218233
bool QgsStyleV2ManagerDialog::addColorRamp()
219234
{
220-
// TODO: random color ramp
221-
/*
235+
// let the user choose the color ramp type
222236
QStringList rampTypes;
223237
rampTypes << "Gradient" << "Random";
224238
bool ok;
225-
QString rampType = QInputDialog.getItem(this, "Color ramp type",
239+
QString rampType = QInputDialog::getItem(this, "Color ramp type",
226240
"Please select color ramp type:", rampTypes, 0, false, &ok);
227241
if (!ok || rampType.isEmpty())
228242
return false;
229-
*/
230-
QString rampType = "Gradient";
231-
243+
232244
QgsVectorColorRampV2* ramp;
233245
if (rampType == "Gradient")
234246
{
@@ -241,22 +253,23 @@ bool QgsStyleV2ManagerDialog::addColorRamp()
241253
}
242254
ramp = gradRamp;
243255
}
244-
else
256+
else if (rampType == "Random")
245257
{
246-
/*
247258
QgsVectorRandomColorRampV2* randRamp = new QgsVectorRandomColorRampV2();
248-
DlgRandomColorRamp dlg(randRamp, this);
259+
QgsVectorRandomColorRampV2Dialog dlg(randRamp, this);
249260
if (!dlg.exec())
250261
{
251262
delete randRamp;
252263
return false;
253264
}
254265
ramp = randRamp;
255-
*/
266+
}
267+
else
268+
{
269+
Q_ASSERT(0 && "invalid ramp type");
256270
}
257271

258272
// get name
259-
bool ok;
260273
QString name = QInputDialog::getText(this, "Color ramp name",
261274
"Please enter name for new color ramp:", QLineEdit::Normal, "new color ramp", &ok);
262275
if (!ok || name.isEmpty())
@@ -274,11 +287,17 @@ bool QgsStyleV2ManagerDialog::addColorRamp()
274287
void QgsStyleV2ManagerDialog::editItem()
275288
{
276289
if (currentItemType() < 3)
290+
{
277291
editSymbol();
292+
}
278293
else if (currentItemType() == 3)
294+
{
279295
editColorRamp();
296+
}
280297
else
298+
{
281299
Q_ASSERT(0 && "not implemented");
300+
}
282301

283302
populateList();
284303
}
@@ -322,10 +341,19 @@ bool QgsStyleV2ManagerDialog::editColorRamp()
322341
return false;
323342
}
324343
}
344+
else if (ramp->type() == "random")
345+
{
346+
QgsVectorRandomColorRampV2* randRamp = static_cast<QgsVectorRandomColorRampV2*>(ramp);
347+
QgsVectorRandomColorRampV2Dialog dlg(randRamp, this);
348+
if (!dlg.exec())
349+
{
350+
delete ramp;
351+
return false;
352+
}
353+
}
325354
else
326355
{
327-
// TODO: random color ramp
328-
//dlg = DlgRandomColorRamp(ramp, self)
356+
Q_ASSERT(0 && "invalid ramp type");
329357
}
330358

331359
mStyle->addColorRamp(name, ramp);
@@ -336,11 +364,17 @@ bool QgsStyleV2ManagerDialog::editColorRamp()
336364
void QgsStyleV2ManagerDialog::removeItem()
337365
{
338366
if (currentItemType() < 3)
367+
{
339368
removeSymbol();
369+
}
340370
else if (currentItemType() == 3)
371+
{
341372
removeColorRamp();
373+
}
342374
else
375+
{
343376
Q_ASSERT(0 && "not implemented");
377+
}
344378

345379
populateList();
346380
populateTypes();
Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
2+
#include "qgsvectorrandomcolorrampv2dialog.h"
3+
4+
#include "qgsvectorcolorrampv2.h"
5+
6+
#include <QColorDialog>
7+
8+
9+
QgsVectorRandomColorRampV2Dialog::QgsVectorRandomColorRampV2Dialog(QgsVectorRandomColorRampV2* ramp, QWidget* parent)
10+
: QDialog(parent), mRamp(ramp)
11+
{
12+
setupUi(this);
13+
14+
spinCount->setValue( ramp->count() );
15+
spinHue1->setValue( ramp->hueMin() );
16+
spinHue2->setValue( ramp->hueMax() );
17+
spinSat1->setValue( ramp->satMin() );
18+
spinSat2->setValue( ramp->satMax() );
19+
spinVal1->setValue( ramp->valMin() );
20+
spinVal2->setValue( ramp->valMax() );
21+
22+
connect(spinCount, SIGNAL(valueChanged(int)), this, SLOT(setCount(int)) );
23+
connect(spinHue1, SIGNAL(valueChanged(int)), this, SLOT(setHue1(int)) );
24+
connect(spinHue2, SIGNAL(valueChanged(int)), this, SLOT(setHue2(int)) );
25+
connect(spinSat1, SIGNAL(valueChanged(int)), this, SLOT(setSat1(int)) );
26+
connect(spinSat2, SIGNAL(valueChanged(int)), this, SLOT(setSat2(int)) );
27+
connect(spinVal1, SIGNAL(valueChanged(int)), this, SLOT(setVal1(int)) );
28+
connect(spinVal2, SIGNAL(valueChanged(int)), this, SLOT(setVal2(int)) );
29+
30+
updatePreview();
31+
}
32+
33+
void QgsVectorRandomColorRampV2Dialog::updatePreview()
34+
{
35+
mRamp->updateColors();
36+
37+
QSize size(300,40);
38+
lblPreview->setPixmap(QgsSymbolLayerV2Utils::colorRampPreviewPixmap(mRamp, size));
39+
}
40+
41+
void QgsVectorRandomColorRampV2Dialog::setCount( int val )
42+
{
43+
mRamp->setCount(val);
44+
updatePreview();
45+
}
46+
47+
void QgsVectorRandomColorRampV2Dialog::setHue1( int val )
48+
{
49+
mRamp->setHueMin(val);
50+
updatePreview();
51+
}
52+
53+
void QgsVectorRandomColorRampV2Dialog::setHue2( int val )
54+
{
55+
mRamp->setHueMax(val);
56+
updatePreview();
57+
}
58+
59+
void QgsVectorRandomColorRampV2Dialog::setSat1( int val )
60+
{
61+
mRamp->setSatMin(val);
62+
updatePreview();
63+
}
64+
65+
void QgsVectorRandomColorRampV2Dialog::setSat2( int val )
66+
{
67+
mRamp->setSatMax(val);
68+
updatePreview();
69+
}
70+
71+
void QgsVectorRandomColorRampV2Dialog::setVal1( int val )
72+
{
73+
mRamp->setValMin(val);
74+
updatePreview();
75+
}
76+
77+
void QgsVectorRandomColorRampV2Dialog::setVal2( int val )
78+
{
79+
mRamp->setValMax(val);
80+
updatePreview();
81+
}
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
2+
#ifndef QGSVECTORRANDOMCOLORRAMPV2DIALOG_H
3+
#define QGSVECTORRANDOMCOLORRAMPV2DIALOG_H
4+
5+
#include <QDialog>
6+
7+
#include "ui_qgsvectorrandomcolorrampv2dialogbase.h"
8+
9+
class QgsVectorRandomColorRampV2;
10+
11+
class QgsVectorRandomColorRampV2Dialog : public QDialog, private Ui::QgsVectorRandomColorRampV2DialogBase
12+
{
13+
Q_OBJECT
14+
15+
public:
16+
QgsVectorRandomColorRampV2Dialog(QgsVectorRandomColorRampV2* ramp, QWidget* parent = NULL);
17+
18+
public slots:
19+
void setCount( int val );
20+
void setHue1( int val );
21+
void setHue2( int val );
22+
void setSat1( int val );
23+
void setSat2( int val );
24+
void setVal1( int val );
25+
void setVal2( int val );
26+
27+
protected:
28+
29+
void updatePreview();
30+
31+
QgsVectorRandomColorRampV2* mRamp;
32+
};
33+
34+
#endif
Lines changed: 257 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,257 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<ui version="4.0">
3+
<class>QgsVectorRandomColorRampV2DialogBase</class>
4+
<widget class="QDialog" name="QgsVectorRandomColorRampV2DialogBase">
5+
<property name="geometry">
6+
<rect>
7+
<x>0</x>
8+
<y>0</y>
9+
<width>429</width>
10+
<height>266</height>
11+
</rect>
12+
</property>
13+
<property name="windowTitle">
14+
<string>Random color ramp</string>
15+
</property>
16+
<layout class="QVBoxLayout">
17+
<item>
18+
<layout class="QGridLayout">
19+
<item row="0" column="0">
20+
<widget class="QLabel" name="label_8">
21+
<property name="text">
22+
<string>Hue</string>
23+
</property>
24+
</widget>
25+
</item>
26+
<item row="0" column="1">
27+
<widget class="QLabel" name="label">
28+
<property name="text">
29+
<string>from</string>
30+
</property>
31+
</widget>
32+
</item>
33+
<item row="0" column="2">
34+
<widget class="QSpinBox" name="spinHue1">
35+
<property name="maximum">
36+
<number>359</number>
37+
</property>
38+
</widget>
39+
</item>
40+
<item row="0" column="3">
41+
<widget class="QLabel" name="label_4">
42+
<property name="text">
43+
<string>to</string>
44+
</property>
45+
</widget>
46+
</item>
47+
<item row="0" column="4">
48+
<widget class="QSpinBox" name="spinHue2">
49+
<property name="maximum">
50+
<number>359</number>
51+
</property>
52+
<property name="value">
53+
<number>359</number>
54+
</property>
55+
</widget>
56+
</item>
57+
<item row="1" column="0">
58+
<widget class="QLabel" name="label_9">
59+
<property name="text">
60+
<string>Saturation</string>
61+
</property>
62+
</widget>
63+
</item>
64+
<item row="1" column="1">
65+
<widget class="QLabel" name="label_2">
66+
<property name="text">
67+
<string>from</string>
68+
</property>
69+
</widget>
70+
</item>
71+
<item row="1" column="2">
72+
<widget class="QSpinBox" name="spinSat1">
73+
<property name="maximum">
74+
<number>255</number>
75+
</property>
76+
</widget>
77+
</item>
78+
<item row="1" column="3">
79+
<widget class="QLabel" name="label_5">
80+
<property name="text">
81+
<string>to</string>
82+
</property>
83+
</widget>
84+
</item>
85+
<item row="1" column="4">
86+
<widget class="QSpinBox" name="spinSat2">
87+
<property name="maximum">
88+
<number>255</number>
89+
</property>
90+
<property name="value">
91+
<number>255</number>
92+
</property>
93+
</widget>
94+
</item>
95+
<item row="2" column="0">
96+
<widget class="QLabel" name="label_10">
97+
<property name="text">
98+
<string>Value</string>
99+
</property>
100+
</widget>
101+
</item>
102+
<item row="2" column="1">
103+
<widget class="QLabel" name="label_3">
104+
<property name="text">
105+
<string>from</string>
106+
</property>
107+
</widget>
108+
</item>
109+
<item row="2" column="2">
110+
<widget class="QSpinBox" name="spinVal1">
111+
<property name="maximum">
112+
<number>255</number>
113+
</property>
114+
</widget>
115+
</item>
116+
<item row="2" column="3">
117+
<widget class="QLabel" name="label_6">
118+
<property name="text">
119+
<string>to</string>
120+
</property>
121+
</widget>
122+
</item>
123+
<item row="2" column="4">
124+
<widget class="QSpinBox" name="spinVal2">
125+
<property name="maximum">
126+
<number>255</number>
127+
</property>
128+
<property name="value">
129+
<number>255</number>
130+
</property>
131+
</widget>
132+
</item>
133+
</layout>
134+
</item>
135+
<item>
136+
<layout class="QHBoxLayout">
137+
<item>
138+
<widget class="QLabel" name="label_7">
139+
<property name="text">
140+
<string>Classes</string>
141+
</property>
142+
</widget>
143+
</item>
144+
<item>
145+
<widget class="QSpinBox" name="spinCount">
146+
<property name="minimum">
147+
<number>1</number>
148+
</property>
149+
<property name="maximum">
150+
<number>100</number>
151+
</property>
152+
<property name="value">
153+
<number>10</number>
154+
</property>
155+
</widget>
156+
</item>
157+
<item>
158+
<spacer>
159+
<property name="orientation">
160+
<enum>Qt::Horizontal</enum>
161+
</property>
162+
<property name="sizeType">
163+
<enum>QSizePolicy::Preferred</enum>
164+
</property>
165+
<property name="sizeHint" stdset="0">
166+
<size>
167+
<width>150</width>
168+
<height>20</height>
169+
</size>
170+
</property>
171+
</spacer>
172+
</item>
173+
</layout>
174+
</item>
175+
<item>
176+
<spacer>
177+
<property name="orientation">
178+
<enum>Qt::Vertical</enum>
179+
</property>
180+
<property name="sizeType">
181+
<enum>QSizePolicy::Preferred</enum>
182+
</property>
183+
<property name="sizeHint" stdset="0">
184+
<size>
185+
<width>20</width>
186+
<height>20</height>
187+
</size>
188+
</property>
189+
</spacer>
190+
</item>
191+
<item>
192+
<widget class="QGroupBox" name="groupBox">
193+
<property name="title">
194+
<string>Preview</string>
195+
</property>
196+
<layout class="QHBoxLayout">
197+
<item>
198+
<widget class="QLabel" name="lblPreview">
199+
<property name="text">
200+
<string/>
201+
</property>
202+
<property name="alignment">
203+
<set>Qt::AlignCenter</set>
204+
</property>
205+
</widget>
206+
</item>
207+
</layout>
208+
</widget>
209+
</item>
210+
<item>
211+
<widget class="QDialogButtonBox" name="buttonBox">
212+
<property name="orientation">
213+
<enum>Qt::Horizontal</enum>
214+
</property>
215+
<property name="standardButtons">
216+
<set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
217+
</property>
218+
</widget>
219+
</item>
220+
</layout>
221+
</widget>
222+
<resources/>
223+
<connections>
224+
<connection>
225+
<sender>buttonBox</sender>
226+
<signal>accepted()</signal>
227+
<receiver>QgsVectorRandomColorRampV2DialogBase</receiver>
228+
<slot>accept()</slot>
229+
<hints>
230+
<hint type="sourcelabel">
231+
<x>248</x>
232+
<y>254</y>
233+
</hint>
234+
<hint type="destinationlabel">
235+
<x>157</x>
236+
<y>274</y>
237+
</hint>
238+
</hints>
239+
</connection>
240+
<connection>
241+
<sender>buttonBox</sender>
242+
<signal>rejected()</signal>
243+
<receiver>QgsVectorRandomColorRampV2DialogBase</receiver>
244+
<slot>reject()</slot>
245+
<hints>
246+
<hint type="sourcelabel">
247+
<x>316</x>
248+
<y>260</y>
249+
</hint>
250+
<hint type="destinationlabel">
251+
<x>286</x>
252+
<y>274</y>
253+
</hint>
254+
</hints>
255+
</connection>
256+
</connections>
257+
</ui>

0 commit comments

Comments
 (0)
Please sign in to comment.