[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