[QGIS Commit] r11159 - in branches/symbology-ng-branch: python/gui src/gui/symbology-ng

svn_qgis at osgeo.org svn_qgis at osgeo.org
Thu Jul 23 12:39:34 EDT 2009


Author: wonder
Date: 2009-07-23 12:39:32 -0400 (Thu, 23 Jul 2009)
New Revision: 11159

Modified:
   branches/symbology-ng-branch/python/gui/symbology-ng-gui.sip
   branches/symbology-ng-branch/src/gui/symbology-ng/qgsrendererv2propertiesdialog.cpp
   branches/symbology-ng-branch/src/gui/symbology-ng/qgsrendererv2propertiesdialog.h
   branches/symbology-ng-branch/src/gui/symbology-ng/qgssymbolv2selectordialog.cpp
   branches/symbology-ng-branch/src/gui/symbology-ng/qgssymbolv2selectordialog.h
Log:
Embedded symbol selector directly to the renderer properties dialog for single symbol renderer.


Modified: branches/symbology-ng-branch/python/gui/symbology-ng-gui.sip
===================================================================
--- branches/symbology-ng-branch/python/gui/symbology-ng-gui.sip	2009-07-23 15:55:13 UTC (rev 11158)
+++ branches/symbology-ng-branch/python/gui/symbology-ng-gui.sip	2009-07-23 16:39:32 UTC (rev 11159)
@@ -72,7 +72,7 @@
 %End
 
 public:
-  QgsSymbolV2SelectorDialog(QgsSymbolV2* symbol, QgsStyleV2* style, QWidget* parent = NULL);
+  QgsSymbolV2SelectorDialog(QgsSymbolV2* symbol, QgsStyleV2* style, QWidget* parent = NULL, bool embedded = false);
   
 protected:
   void populateSymbolView();
@@ -89,4 +89,7 @@
   void setMarkerSize(double size);
   void setLineWidth(double width);
 
+signals:
+  void symbolModified();
+
 };

Modified: branches/symbology-ng-branch/src/gui/symbology-ng/qgsrendererv2propertiesdialog.cpp
===================================================================
--- branches/symbology-ng-branch/src/gui/symbology-ng/qgsrendererv2propertiesdialog.cpp	2009-07-23 15:55:13 UTC (rev 11158)
+++ branches/symbology-ng-branch/src/gui/symbology-ng/qgsrendererv2propertiesdialog.cpp	2009-07-23 16:39:32 UTC (rev 11159)
@@ -47,11 +47,18 @@
   connect(radCategorized, SIGNAL(clicked()), this, SLOT(updateRenderer()));
   connect(radGraduated, SIGNAL(clicked()), this, SLOT(updateRenderer()));
   
-  //connect(btnSymbolLevels, SIGNAL(clicked()), this, SLOT(setSymbolLevels()));
-  
   // simple symbol page
-  connect(btnChangeSingleSymbol, SIGNAL(clicked()), this, SLOT(changeSingleSymbol()));
+  if (mRenderer->type() == QgsFeatureRendererV2::RendererSingleSymbol)
+    mSingleSymbol = ((QgsSingleSymbolRendererV2*)mRenderer)->symbol()->clone();
+  else
+    mSingleSymbol = QgsSymbolV2::defaultSymbol(mLayer->geometryType());
 
+  stackedWidget->removeWidget(pageSingleSymbol);
+  delete pageSingleSymbol;
+  pageSingleSymbol = new QgsSymbolV2SelectorDialog(mSingleSymbol, mStyle, NULL, true);
+  stackedWidget->addWidget( pageSingleSymbol );
+  connect(pageSingleSymbol, SIGNAL(symbolModified()), this, SLOT(changeSingleSymbol()));
+
   // categorized symbol page
   
   populateColumns(); // together with graduated
@@ -95,6 +102,9 @@
 {
   // delete the temporary renderer (if exists)
   delete mRenderer;
+
+  delete mSingleSymbol;
+  // TODO: delete categorized, graduated symbol?
 }
 
 void QgsRendererV2PropertiesDialog::apply()
@@ -129,26 +139,16 @@
 
 void QgsRendererV2PropertiesDialog::changeSingleSymbol()
 {
-
-  QgsSymbolV2SelectorDialog dlg(rendererSingle()->symbol(), mStyle, this);
-  if (!dlg.exec())
-    return;
-  
-  updateSingleSymbolIcon();
+  // update symbol from the GUI
+  rendererSingle()->setSymbol( mSingleSymbol->clone() );
 }
 
-void QgsRendererV2PropertiesDialog::updateSingleSymbolIcon()
-{
-  QIcon icon = QgsSymbolLayerV2Utils::symbolPreviewIcon(rendererSingle()->symbol(), btnChangeSingleSymbol->iconSize());
-  btnChangeSingleSymbol->setIcon(icon);
-}
-
 void QgsRendererV2PropertiesDialog::updateRenderer()
 {
   delete mRenderer;
 
   if (radSingleSymbol->isChecked())
-    mRenderer = new QgsSingleSymbolRendererV2( QgsSymbolV2::defaultSymbol(mLayer->geometryType()) );
+    mRenderer = new QgsSingleSymbolRendererV2( mSingleSymbol->clone() );
   else if (radCategorized->isChecked())
     mRenderer = new QgsCategorizedSymbolRendererV2(-1, QgsCategoryList());
   else if (radGraduated->isChecked())
@@ -167,7 +167,7 @@
       radSingleSymbol->setChecked(true);
     
       stackedWidget->setCurrentWidget(pageSingleSymbol);
-      updateSingleSymbolIcon();
+      //updateSingleSymbolIcon();
       break;
       
     case QgsFeatureRendererV2::RendererCategorizedSymbol:

Modified: branches/symbology-ng-branch/src/gui/symbology-ng/qgsrendererv2propertiesdialog.h
===================================================================
--- branches/symbology-ng-branch/src/gui/symbology-ng/qgsrendererv2propertiesdialog.h	2009-07-23 15:55:13 UTC (rev 11158)
+++ branches/symbology-ng-branch/src/gui/symbology-ng/qgsrendererv2propertiesdialog.h	2009-07-23 16:39:32 UTC (rev 11159)
@@ -46,7 +46,6 @@
   //! update UI to reflect changes in renderer
   void updateUiFromRenderer();
   
-  void updateSingleSymbolIcon();
   void updateCategorizedSymbolIcon();
   void updateGraduatedSymbolIcon();
  
@@ -82,6 +81,7 @@
   
   QgsStyleV2* mStyle;
   
+  QgsSymbolV2* mSingleSymbol;
   QgsSymbolV2* mGraduatedSymbol;
   QgsSymbolV2* mCategorizedSymbol;
 };

Modified: branches/symbology-ng-branch/src/gui/symbology-ng/qgssymbolv2selectordialog.cpp
===================================================================
--- branches/symbology-ng-branch/src/gui/symbology-ng/qgssymbolv2selectordialog.cpp	2009-07-23 15:55:13 UTC (rev 11158)
+++ branches/symbology-ng-branch/src/gui/symbology-ng/qgssymbolv2selectordialog.cpp	2009-07-23 16:39:32 UTC (rev 11159)
@@ -11,13 +11,19 @@
 #include <QPainter>
 #include <QStandardItemModel>
 
-QgsSymbolV2SelectorDialog::QgsSymbolV2SelectorDialog(QgsSymbolV2* symbol, QgsStyleV2* style, QWidget* parent)
+QgsSymbolV2SelectorDialog::QgsSymbolV2SelectorDialog(QgsSymbolV2* symbol, QgsStyleV2* style, QWidget* parent, bool embedded)
   : QDialog(parent)
 {
   mStyle = style;
   mSymbol = symbol;
   
   setupUi(this);
+
+  // can be embedded in renderer properties dialog
+  if (embedded)
+  {
+    buttonBox->hide();
+  }
   
   connect(btnSymbolProperties, SIGNAL(clicked()), this, SLOT(changeSymbolProperties()));
 
@@ -91,6 +97,7 @@
   
   updateSymbolPreview();
   updateSymbolInfo();
+  emit symbolModified();
 }
 
 void QgsSymbolV2SelectorDialog::updateSymbolPreview()
@@ -131,6 +138,7 @@
   
   updateSymbolPreview();
   updateSymbolInfo();
+  emit symbolModified();
 }
 
 
@@ -143,6 +151,7 @@
   mSymbol->setColor(color);
   updateSymbolColor();
   updateSymbolPreview();
+  emit symbolModified();
 }
  
 void QgsSymbolV2SelectorDialog::setMarkerAngle(double angle)
@@ -152,6 +161,7 @@
     return;
   markerSymbol->setAngle(angle);
   updateSymbolPreview();
+  emit symbolModified();
 }
 
 void QgsSymbolV2SelectorDialog::setMarkerSize(double size)
@@ -161,6 +171,7 @@
     return;
   markerSymbol->setSize(size);
   updateSymbolPreview();
+  emit symbolModified();
 }
 
 void QgsSymbolV2SelectorDialog::setLineWidth(double width)
@@ -170,4 +181,5 @@
     return;
   lineSymbol->setWidth(width);
   updateSymbolPreview();
+  emit symbolModified();
 }

Modified: branches/symbology-ng-branch/src/gui/symbology-ng/qgssymbolv2selectordialog.h
===================================================================
--- branches/symbology-ng-branch/src/gui/symbology-ng/qgssymbolv2selectordialog.h	2009-07-23 15:55:13 UTC (rev 11158)
+++ branches/symbology-ng-branch/src/gui/symbology-ng/qgssymbolv2selectordialog.h	2009-07-23 16:39:32 UTC (rev 11159)
@@ -14,7 +14,7 @@
   Q_OBJECT
 
 public:
-  QgsSymbolV2SelectorDialog(QgsSymbolV2* symbol, QgsStyleV2* style, QWidget* parent = NULL);
+  QgsSymbolV2SelectorDialog(QgsSymbolV2* symbol, QgsStyleV2* style, QWidget* parent = NULL, bool embedded = false);
   
 protected:
   void populateSymbolView();
@@ -31,6 +31,9 @@
   void setMarkerSize(double size);
   void setLineWidth(double width);
 
+signals:
+  void symbolModified();
+
 protected:
   QgsStyleV2* mStyle;
   QgsSymbolV2* mSymbol;



More information about the QGIS-commit mailing list