[QGIS Commit] r10802 - in branches/symbology-ng-branch/src: core/symbology-ng gui gui/symbology-ng ui

svn_qgis at osgeo.org svn_qgis at osgeo.org
Fri May 15 18:32:59 EDT 2009


Author: wonder
Date: 2009-05-15 18:32:59 -0400 (Fri, 15 May 2009)
New Revision: 10802

Added:
   branches/symbology-ng-branch/src/gui/symbology-ng/qgsvectorrandomcolorrampv2dialog.cpp
   branches/symbology-ng-branch/src/gui/symbology-ng/qgsvectorrandomcolorrampv2dialog.h
   branches/symbology-ng-branch/src/ui/qgsvectorrandomcolorrampv2dialogbase.ui
Modified:
   branches/symbology-ng-branch/src/core/symbology-ng/qgsvectorcolorrampv2.cpp
   branches/symbology-ng-branch/src/core/symbology-ng/qgsvectorcolorrampv2.h
   branches/symbology-ng-branch/src/gui/CMakeLists.txt
   branches/symbology-ng-branch/src/gui/symbology-ng/qgsstylev2managerdialog.cpp
Log:
Added random color ramp to as an example of a discrete color ramp.


Modified: branches/symbology-ng-branch/src/core/symbology-ng/qgsvectorcolorrampv2.cpp
===================================================================
--- branches/symbology-ng-branch/src/core/symbology-ng/qgsvectorcolorrampv2.cpp	2009-05-15 21:15:33 UTC (rev 10801)
+++ branches/symbology-ng-branch/src/core/symbology-ng/qgsvectorcolorrampv2.cpp	2009-05-15 22:32:59 UTC (rev 10802)
@@ -3,6 +3,8 @@
 
 #include "qgssymbollayerv2utils.h"
 
+#include <stdlib.h> // for random()
+
 QgsVectorGradientColorRampV2::QgsVectorGradientColorRampV2(QColor color1, QColor color2)
   : mColor1(color1), mColor2(color2)
 {
@@ -40,3 +42,75 @@
   map["color2"] = QgsSymbolLayerV2Utils::encodeColor(mColor2);
   return map;
 }
+
+//////////////
+
+
+QgsVectorRandomColorRampV2::QgsVectorRandomColorRampV2(int count, int hueMin, int hueMax,
+                           int satMin, int satMax, int valMin, int valMax )
+ : mCount(count), mHueMin(hueMin), mHueMax(hueMax),
+   mSatMin(satMin), mSatMax(satMax), mValMin(valMin), mValMax(valMax)
+{
+  updateColors();
+}
+
+QgsVectorColorRampV2* QgsVectorRandomColorRampV2::create(const QgsStringMap& props)
+{
+  int count = DEFAULT_RANDOM_COUNT;
+  int hueMin = DEFAULT_RANDOM_HUE_MIN, hueMax = DEFAULT_RANDOM_HUE_MAX;
+  int satMin = DEFAULT_RANDOM_SAT_MIN, satMax = DEFAULT_RANDOM_SAT_MAX;
+  int valMin = DEFAULT_RANDOM_VAL_MIN, valMax = DEFAULT_RANDOM_VAL_MAX;
+
+  if (props.contains("count")) count = props["count"].toInt();
+  if (props.contains("hueMin")) hueMin = props["hueMin"].toInt();
+  if (props.contains("hueMax")) hueMax = props["hueMax"].toInt();
+  if (props.contains("satMin")) satMin = props["satMin"].toInt();
+  if (props.contains("satMax")) satMax = props["satMax"].toInt();
+  if (props.contains("valMin")) valMin = props["valMin"].toInt();
+  if (props.contains("valMax")) valMax = props["valMax"].toInt();
+
+  return new QgsVectorRandomColorRampV2(count, hueMin, hueMax, satMin, satMax, valMin, valMax);
+}
+
+QColor QgsVectorRandomColorRampV2::color(double value) const
+{
+  int colorCnt = mColors.count();
+  int colorIdx = (int) ( value * colorCnt );
+
+  if (colorIdx >= 0 && colorIdx < colorCnt)
+    return mColors.at( colorIdx );
+
+  return QColor();
+}
+
+QgsVectorColorRampV2* QgsVectorRandomColorRampV2::clone() const
+{
+  return new QgsVectorRandomColorRampV2(mCount, mHueMin, mHueMax, mSatMin, mSatMax, mValMin, mValMax);
+}
+
+QgsStringMap QgsVectorRandomColorRampV2::properties() const
+{
+  QgsStringMap map;
+  map["count"] = QString::number(mCount);
+  map["hueMin"] = QString::number(mHueMin);
+  map["hueMax"] = QString::number(mHueMax);
+  map["satMin"] = QString::number(mSatMin);
+  map["satMax"] = QString::number(mSatMax);
+  map["valMin"] = QString::number(mValMin);
+  map["valMax"] = QString::number(mValMax);
+  return map;
+}
+
+void QgsVectorRandomColorRampV2::updateColors()
+{
+  int h,s,v;
+
+  mColors.clear();
+  for (int i = 0; i < mCount; i++)
+  {
+    h = (random() % (mHueMax-mHueMin+1)) + mHueMin;
+    s = (random() % (mSatMax-mSatMin+1)) + mSatMin;
+    v = (random() % (mValMax-mValMin+1)) + mValMin;
+    mColors.append( QColor::fromHsv(h,s,v) );
+  }
+}

Modified: branches/symbology-ng-branch/src/core/symbology-ng/qgsvectorcolorrampv2.h
===================================================================
--- branches/symbology-ng-branch/src/core/symbology-ng/qgsvectorcolorrampv2.h	2009-05-15 21:15:33 UTC (rev 10801)
+++ branches/symbology-ng-branch/src/core/symbology-ng/qgsvectorcolorrampv2.h	2009-05-15 22:32:59 UTC (rev 10802)
@@ -50,4 +50,54 @@
   QColor mColor1, mColor2;
 };
 
+#define DEFAULT_RANDOM_COUNT   10
+#define DEFAULT_RANDOM_HUE_MIN 0
+#define DEFAULT_RANDOM_HUE_MAX 359
+#define DEFAULT_RANDOM_VAL_MIN 0
+#define DEFAULT_RANDOM_VAL_MAX 255
+#define DEFAULT_RANDOM_SAT_MIN 0
+#define DEFAULT_RANDOM_SAT_MAX 255
+
+class QgsVectorRandomColorRampV2 : public QgsVectorColorRampV2
+{
+public:
+  QgsVectorRandomColorRampV2(int count = DEFAULT_RANDOM_COUNT,
+                             int hueMin = DEFAULT_RANDOM_HUE_MIN, int hueMax = DEFAULT_RANDOM_HUE_MAX,
+                             int satMin = DEFAULT_RANDOM_SAT_MIN, int satMax = DEFAULT_RANDOM_SAT_MAX,
+                             int valMin = DEFAULT_RANDOM_VAL_MIN, int valMax = DEFAULT_RANDOM_VAL_MAX );
+
+  static QgsVectorColorRampV2* create(const QgsStringMap& properties = QgsStringMap());
+
+  virtual QColor color(double value) const;
+
+  virtual QString type() const { return "random"; }
+
+  virtual QgsVectorColorRampV2* clone() const;
+
+  virtual QgsStringMap properties() const;
+
+  void updateColors();
+
+  int count() const { return mCount; }
+  int hueMin() const { return mHueMin; }
+  int hueMax() const { return mHueMax; }
+  int satMin() const { return mSatMin; }
+  int satMax() const { return mSatMax; }
+  int valMin() const { return mValMin; }
+  int valMax() const { return mValMax; }
+
+  void setCount(int val) { mCount = val; }
+  void setHueMin(int val) { mHueMin = val; }
+  void setHueMax(int val) { mHueMax = val; }
+  void setSatMin(int val) { mSatMin = val; }
+  void setSatMax(int val) { mSatMax = val; }
+  void setValMin(int val) { mValMin = val; }
+  void setValMax(int val) { mValMax = val; }
+
+protected:
+  int mCount;
+  int mHueMin, mHueMax, mSatMin, mSatMax, mValMin, mValMax;
+  QList<QColor> mColors;
+};
+
 #endif

Modified: branches/symbology-ng-branch/src/gui/CMakeLists.txt
===================================================================
--- branches/symbology-ng-branch/src/gui/CMakeLists.txt	2009-05-15 21:15:33 UTC (rev 10801)
+++ branches/symbology-ng-branch/src/gui/CMakeLists.txt	2009-05-15 22:32:59 UTC (rev 10802)
@@ -9,6 +9,7 @@
 symbology-ng/qgsstylev2managerdialog.cpp
 symbology-ng/qgssymbolv2selectordialog.cpp
 symbology-ng/qgsvectorgradientcolorrampv2dialog.cpp
+symbology-ng/qgsvectorrandomcolorrampv2dialog.cpp
 
 qgisgui.cpp
 qgisinterface.cpp
@@ -46,6 +47,7 @@
 symbology-ng/qgsstylev2managerdialog.h
 symbology-ng/qgssymbolv2selectordialog.h
 symbology-ng/qgsvectorgradientcolorrampv2dialog.h
+symbology-ng/qgsvectorrandomcolorrampv2dialog.h
 
 qgscomposerview.h
 qgsdetaileditemdelegate.h

Modified: branches/symbology-ng-branch/src/gui/symbology-ng/qgsstylev2managerdialog.cpp
===================================================================
--- branches/symbology-ng-branch/src/gui/symbology-ng/qgsstylev2managerdialog.cpp	2009-05-15 21:15:33 UTC (rev 10801)
+++ branches/symbology-ng-branch/src/gui/symbology-ng/qgsstylev2managerdialog.cpp	2009-05-15 22:32:59 UTC (rev 10802)
@@ -8,6 +8,7 @@
 
 #include "qgssymbolv2propertiesdialog.h"
 #include "qgsvectorgradientcolorrampv2dialog.h"
+#include "qgsvectorrandomcolorrampv2dialog.h"
 
 #include <QFile>
 #include <QInputDialog>
@@ -104,9 +105,17 @@
   int itemType = currentItemType();
   
   if (itemType < 3)
+  {
     populateSymbols(itemType);
+  }
+  else if (itemType == 3)
+  {
+    populateColorRamps();
+  }
   else
-    populateColorRamps();
+  {
+    Q_ASSERT(0 && "not implemented");
+  }
 }
 
 void QgsStyleV2ManagerDialog::populateSymbols(int type)
@@ -170,11 +179,17 @@
 void QgsStyleV2ManagerDialog::addItem()
 {
   if (currentItemType() < 3)
+  {
     addSymbol();
+  }
   else if (currentItemType() == 3)
+  {
     addColorRamp();
+  }
   else
+  {
     Q_ASSERT(0 && "not implemented");
+  }
   
   populateList();
   populateTypes();
@@ -217,18 +232,15 @@
 
 bool QgsStyleV2ManagerDialog::addColorRamp()
 {
-  // TODO: random color ramp
-/*
+  // let the user choose the color ramp type
   QStringList rampTypes;
   rampTypes << "Gradient" << "Random";
   bool ok;
-  QString rampType = QInputDialog.getItem(this, "Color ramp type",
+  QString rampType = QInputDialog::getItem(this, "Color ramp type",
         "Please select color ramp type:", rampTypes, 0, false, &ok);
   if (!ok || rampType.isEmpty())
     return false;
-*/
-  QString rampType = "Gradient";
-  
+
   QgsVectorColorRampV2* ramp;
   if (rampType == "Gradient")
   {
@@ -241,22 +253,23 @@
     }
     ramp = gradRamp;
   }
-  else
+  else if (rampType == "Random")
   {
-    /*
     QgsVectorRandomColorRampV2* randRamp = new QgsVectorRandomColorRampV2();
-    DlgRandomColorRamp dlg(randRamp, this);
+    QgsVectorRandomColorRampV2Dialog dlg(randRamp, this);
     if (!dlg.exec())
     {
       delete randRamp;
       return false;
     }
     ramp = randRamp;
-    */
   }
+  else
+  {
+    Q_ASSERT(0 && "invalid ramp type");
+  }
   
   // get name
-  bool ok;
   QString name = QInputDialog::getText(this, "Color ramp name",
        "Please enter name for new color ramp:", QLineEdit::Normal, "new color ramp", &ok);
   if (!ok || name.isEmpty())
@@ -274,11 +287,17 @@
 void QgsStyleV2ManagerDialog::editItem()
 {
   if (currentItemType() < 3)
+  {
     editSymbol();
+  }
   else if (currentItemType() == 3)
+  {
     editColorRamp();
+  }
   else
+  {
     Q_ASSERT(0 && "not implemented");
+  }
   
   populateList();
 }
@@ -322,10 +341,19 @@
       return false;
     }
   }
+  else if (ramp->type() == "random")
+  {
+    QgsVectorRandomColorRampV2* randRamp = static_cast<QgsVectorRandomColorRampV2*>(ramp);
+    QgsVectorRandomColorRampV2Dialog dlg(randRamp, this);
+    if (!dlg.exec())
+    {
+      delete ramp;
+      return false;
+    }
+  }
   else
   {
-    // TODO: random color ramp
-    //dlg = DlgRandomColorRamp(ramp, self)
+    Q_ASSERT(0 && "invalid ramp type");
   }
   
   mStyle->addColorRamp(name, ramp);
@@ -336,11 +364,17 @@
 void QgsStyleV2ManagerDialog::removeItem()
 {
   if (currentItemType() < 3)
+  {
     removeSymbol();
+  }
   else if (currentItemType() == 3)
+  {
     removeColorRamp();
+  }
   else
+  {
     Q_ASSERT(0 && "not implemented");
+  }
   
   populateList();
   populateTypes();

Added: branches/symbology-ng-branch/src/gui/symbology-ng/qgsvectorrandomcolorrampv2dialog.cpp
===================================================================
--- branches/symbology-ng-branch/src/gui/symbology-ng/qgsvectorrandomcolorrampv2dialog.cpp	                        (rev 0)
+++ branches/symbology-ng-branch/src/gui/symbology-ng/qgsvectorrandomcolorrampv2dialog.cpp	2009-05-15 22:32:59 UTC (rev 10802)
@@ -0,0 +1,81 @@
+
+#include "qgsvectorrandomcolorrampv2dialog.h"
+
+#include "qgsvectorcolorrampv2.h"
+
+#include <QColorDialog>
+
+
+QgsVectorRandomColorRampV2Dialog::QgsVectorRandomColorRampV2Dialog(QgsVectorRandomColorRampV2* ramp, QWidget* parent)
+  : QDialog(parent), mRamp(ramp)
+{
+  setupUi(this);
+
+  spinCount->setValue( ramp->count() );
+  spinHue1->setValue( ramp->hueMin() );
+  spinHue2->setValue( ramp->hueMax() );
+  spinSat1->setValue( ramp->satMin() );
+  spinSat2->setValue( ramp->satMax() );
+  spinVal1->setValue( ramp->valMin() );
+  spinVal2->setValue( ramp->valMax() );
+
+  connect(spinCount, SIGNAL(valueChanged(int)), this, SLOT(setCount(int)) );
+  connect(spinHue1, SIGNAL(valueChanged(int)), this, SLOT(setHue1(int)) );
+  connect(spinHue2, SIGNAL(valueChanged(int)), this, SLOT(setHue2(int)) );
+  connect(spinSat1, SIGNAL(valueChanged(int)), this, SLOT(setSat1(int)) );
+  connect(spinSat2, SIGNAL(valueChanged(int)), this, SLOT(setSat2(int)) );
+  connect(spinVal1, SIGNAL(valueChanged(int)), this, SLOT(setVal1(int)) );
+  connect(spinVal2, SIGNAL(valueChanged(int)), this, SLOT(setVal2(int)) );
+
+  updatePreview();
+}
+
+void QgsVectorRandomColorRampV2Dialog::updatePreview()
+{
+  mRamp->updateColors();
+
+  QSize size(300,40);
+  lblPreview->setPixmap(QgsSymbolLayerV2Utils::colorRampPreviewPixmap(mRamp, size));
+}
+
+void QgsVectorRandomColorRampV2Dialog::setCount( int val )
+{
+  mRamp->setCount(val);
+  updatePreview();
+}
+
+void QgsVectorRandomColorRampV2Dialog::setHue1( int val )
+{
+  mRamp->setHueMin(val);
+  updatePreview();
+}
+
+void QgsVectorRandomColorRampV2Dialog::setHue2( int val )
+{
+  mRamp->setHueMax(val);
+  updatePreview();
+}
+
+void QgsVectorRandomColorRampV2Dialog::setSat1( int val )
+{
+  mRamp->setSatMin(val);
+  updatePreview();
+}
+
+void QgsVectorRandomColorRampV2Dialog::setSat2( int val )
+{
+  mRamp->setSatMax(val);
+  updatePreview();
+}
+
+void QgsVectorRandomColorRampV2Dialog::setVal1( int val )
+{
+  mRamp->setValMin(val);
+  updatePreview();
+}
+
+void QgsVectorRandomColorRampV2Dialog::setVal2( int val )
+{
+  mRamp->setValMax(val);
+  updatePreview();
+}

Added: branches/symbology-ng-branch/src/gui/symbology-ng/qgsvectorrandomcolorrampv2dialog.h
===================================================================
--- branches/symbology-ng-branch/src/gui/symbology-ng/qgsvectorrandomcolorrampv2dialog.h	                        (rev 0)
+++ branches/symbology-ng-branch/src/gui/symbology-ng/qgsvectorrandomcolorrampv2dialog.h	2009-05-15 22:32:59 UTC (rev 10802)
@@ -0,0 +1,34 @@
+
+#ifndef QGSVECTORRANDOMCOLORRAMPV2DIALOG_H
+#define QGSVECTORRANDOMCOLORRAMPV2DIALOG_H
+
+#include <QDialog>
+
+#include "ui_qgsvectorrandomcolorrampv2dialogbase.h"
+
+class QgsVectorRandomColorRampV2;
+
+class QgsVectorRandomColorRampV2Dialog : public QDialog, private Ui::QgsVectorRandomColorRampV2DialogBase
+{
+  Q_OBJECT
+      
+public:
+  QgsVectorRandomColorRampV2Dialog(QgsVectorRandomColorRampV2* ramp, QWidget* parent = NULL);
+  
+public slots:
+  void setCount( int val );
+  void setHue1( int val );
+  void setHue2( int val );
+  void setSat1( int val );
+  void setSat2( int val );
+  void setVal1( int val );
+  void setVal2( int val );
+
+protected:
+  
+  void updatePreview();
+  
+  QgsVectorRandomColorRampV2* mRamp;
+};
+
+#endif

Added: branches/symbology-ng-branch/src/ui/qgsvectorrandomcolorrampv2dialogbase.ui
===================================================================
--- branches/symbology-ng-branch/src/ui/qgsvectorrandomcolorrampv2dialogbase.ui	                        (rev 0)
+++ branches/symbology-ng-branch/src/ui/qgsvectorrandomcolorrampv2dialogbase.ui	2009-05-15 22:32:59 UTC (rev 10802)
@@ -0,0 +1,257 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>QgsVectorRandomColorRampV2DialogBase</class>
+ <widget class="QDialog" name="QgsVectorRandomColorRampV2DialogBase">
+  <property name="geometry">
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>429</width>
+    <height>266</height>
+   </rect>
+  </property>
+  <property name="windowTitle">
+   <string>Random color ramp</string>
+  </property>
+  <layout class="QVBoxLayout">
+   <item>
+    <layout class="QGridLayout">
+     <item row="0" column="0">
+      <widget class="QLabel" name="label_8">
+       <property name="text">
+        <string>Hue</string>
+       </property>
+      </widget>
+     </item>
+     <item row="0" column="1">
+      <widget class="QLabel" name="label">
+       <property name="text">
+        <string>from</string>
+       </property>
+      </widget>
+     </item>
+     <item row="0" column="2">
+      <widget class="QSpinBox" name="spinHue1">
+       <property name="maximum">
+        <number>359</number>
+       </property>
+      </widget>
+     </item>
+     <item row="0" column="3">
+      <widget class="QLabel" name="label_4">
+       <property name="text">
+        <string>to</string>
+       </property>
+      </widget>
+     </item>
+     <item row="0" column="4">
+      <widget class="QSpinBox" name="spinHue2">
+       <property name="maximum">
+        <number>359</number>
+       </property>
+       <property name="value">
+        <number>359</number>
+       </property>
+      </widget>
+     </item>
+     <item row="1" column="0">
+      <widget class="QLabel" name="label_9">
+       <property name="text">
+        <string>Saturation</string>
+       </property>
+      </widget>
+     </item>
+     <item row="1" column="1">
+      <widget class="QLabel" name="label_2">
+       <property name="text">
+        <string>from</string>
+       </property>
+      </widget>
+     </item>
+     <item row="1" column="2">
+      <widget class="QSpinBox" name="spinSat1">
+       <property name="maximum">
+        <number>255</number>
+       </property>
+      </widget>
+     </item>
+     <item row="1" column="3">
+      <widget class="QLabel" name="label_5">
+       <property name="text">
+        <string>to</string>
+       </property>
+      </widget>
+     </item>
+     <item row="1" column="4">
+      <widget class="QSpinBox" name="spinSat2">
+       <property name="maximum">
+        <number>255</number>
+       </property>
+       <property name="value">
+        <number>255</number>
+       </property>
+      </widget>
+     </item>
+     <item row="2" column="0">
+      <widget class="QLabel" name="label_10">
+       <property name="text">
+        <string>Value</string>
+       </property>
+      </widget>
+     </item>
+     <item row="2" column="1">
+      <widget class="QLabel" name="label_3">
+       <property name="text">
+        <string>from</string>
+       </property>
+      </widget>
+     </item>
+     <item row="2" column="2">
+      <widget class="QSpinBox" name="spinVal1">
+       <property name="maximum">
+        <number>255</number>
+       </property>
+      </widget>
+     </item>
+     <item row="2" column="3">
+      <widget class="QLabel" name="label_6">
+       <property name="text">
+        <string>to</string>
+       </property>
+      </widget>
+     </item>
+     <item row="2" column="4">
+      <widget class="QSpinBox" name="spinVal2">
+       <property name="maximum">
+        <number>255</number>
+       </property>
+       <property name="value">
+        <number>255</number>
+       </property>
+      </widget>
+     </item>
+    </layout>
+   </item>
+   <item>
+    <layout class="QHBoxLayout">
+     <item>
+      <widget class="QLabel" name="label_7">
+       <property name="text">
+        <string>Classes</string>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <widget class="QSpinBox" name="spinCount">
+       <property name="minimum">
+        <number>1</number>
+       </property>
+       <property name="maximum">
+        <number>100</number>
+       </property>
+       <property name="value">
+        <number>10</number>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <spacer>
+       <property name="orientation">
+        <enum>Qt::Horizontal</enum>
+       </property>
+       <property name="sizeType">
+        <enum>QSizePolicy::Preferred</enum>
+       </property>
+       <property name="sizeHint" stdset="0">
+        <size>
+         <width>150</width>
+         <height>20</height>
+        </size>
+       </property>
+      </spacer>
+     </item>
+    </layout>
+   </item>
+   <item>
+    <spacer>
+     <property name="orientation">
+      <enum>Qt::Vertical</enum>
+     </property>
+     <property name="sizeType">
+      <enum>QSizePolicy::Preferred</enum>
+     </property>
+     <property name="sizeHint" stdset="0">
+      <size>
+       <width>20</width>
+       <height>20</height>
+      </size>
+     </property>
+    </spacer>
+   </item>
+   <item>
+    <widget class="QGroupBox" name="groupBox">
+     <property name="title">
+      <string>Preview</string>
+     </property>
+     <layout class="QHBoxLayout">
+      <item>
+       <widget class="QLabel" name="lblPreview">
+        <property name="text">
+         <string/>
+        </property>
+        <property name="alignment">
+         <set>Qt::AlignCenter</set>
+        </property>
+       </widget>
+      </item>
+     </layout>
+    </widget>
+   </item>
+   <item>
+    <widget class="QDialogButtonBox" name="buttonBox">
+     <property name="orientation">
+      <enum>Qt::Horizontal</enum>
+     </property>
+     <property name="standardButtons">
+      <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
+     </property>
+    </widget>
+   </item>
+  </layout>
+ </widget>
+ <resources/>
+ <connections>
+  <connection>
+   <sender>buttonBox</sender>
+   <signal>accepted()</signal>
+   <receiver>QgsVectorRandomColorRampV2DialogBase</receiver>
+   <slot>accept()</slot>
+   <hints>
+    <hint type="sourcelabel">
+     <x>248</x>
+     <y>254</y>
+    </hint>
+    <hint type="destinationlabel">
+     <x>157</x>
+     <y>274</y>
+    </hint>
+   </hints>
+  </connection>
+  <connection>
+   <sender>buttonBox</sender>
+   <signal>rejected()</signal>
+   <receiver>QgsVectorRandomColorRampV2DialogBase</receiver>
+   <slot>reject()</slot>
+   <hints>
+    <hint type="sourcelabel">
+     <x>316</x>
+     <y>260</y>
+    </hint>
+    <hint type="destinationlabel">
+     <x>286</x>
+     <y>274</y>
+    </hint>
+   </hints>
+  </connection>
+ </connections>
+</ui>



More information about the QGIS-commit mailing list