Skip to content

Commit

Permalink
Embedded symbol selector directly to the renderer properties dialog f…
Browse files Browse the repository at this point in the history
…or single symbol renderer.

git-svn-id: http://svn.osgeo.org/qgis/branches/symbology-ng-branch@11159 c8812cc2-4d05-0410-92ff-de0c093fc19c
  • Loading branch information
wonder committed Jul 23, 2009
1 parent cac0f15 commit 019e73f
Show file tree
Hide file tree
Showing 5 changed files with 39 additions and 21 deletions.
5 changes: 4 additions & 1 deletion python/gui/symbology-ng-gui.sip
Expand Up @@ -72,7 +72,7 @@ class QgsSymbolV2SelectorDialog : QDialog //, private Ui::QgsSymbolV2SelectorDia
%End

public:
QgsSymbolV2SelectorDialog(QgsSymbolV2* symbol, QgsStyleV2* style, QWidget* parent = NULL);
QgsSymbolV2SelectorDialog(QgsSymbolV2* symbol, QgsStyleV2* style, QWidget* parent = NULL, bool embedded = false);

protected:
void populateSymbolView();
Expand All @@ -89,4 +89,7 @@ public slots:
void setMarkerSize(double size);
void setLineWidth(double width);

signals:
void symbolModified();

};
34 changes: 17 additions & 17 deletions src/gui/symbology-ng/qgsrendererv2propertiesdialog.cpp
Expand Up @@ -47,10 +47,17 @@ QgsRendererV2PropertiesDialog::QgsRendererV2PropertiesDialog(QgsVectorLayer* lay
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

Expand Down Expand Up @@ -95,6 +102,9 @@ QgsRendererV2PropertiesDialog::~QgsRendererV2PropertiesDialog()
{
// delete the temporary renderer (if exists)
delete mRenderer;

delete mSingleSymbol;
// TODO: delete categorized, graduated symbol?
}

void QgsRendererV2PropertiesDialog::apply()
Expand Down Expand Up @@ -129,26 +139,16 @@ QgsGraduatedSymbolRendererV2* QgsRendererV2PropertiesDialog::rendererGraduated()

void QgsRendererV2PropertiesDialog::changeSingleSymbol()
{

QgsSymbolV2SelectorDialog dlg(rendererSingle()->symbol(), mStyle, this);
if (!dlg.exec())
return;

updateSingleSymbolIcon();
}

void QgsRendererV2PropertiesDialog::updateSingleSymbolIcon()
{
QIcon icon = QgsSymbolLayerV2Utils::symbolPreviewIcon(rendererSingle()->symbol(), btnChangeSingleSymbol->iconSize());
btnChangeSingleSymbol->setIcon(icon);
// update symbol from the GUI
rendererSingle()->setSymbol( mSingleSymbol->clone() );
}

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())
Expand All @@ -167,7 +167,7 @@ void QgsRendererV2PropertiesDialog::updateUiFromRenderer()
radSingleSymbol->setChecked(true);

stackedWidget->setCurrentWidget(pageSingleSymbol);
updateSingleSymbolIcon();
//updateSingleSymbolIcon();
break;

case QgsFeatureRendererV2::RendererCategorizedSymbol:
Expand Down
2 changes: 1 addition & 1 deletion src/gui/symbology-ng/qgsrendererv2propertiesdialog.h
Expand Up @@ -46,7 +46,6 @@ public slots:
//! update UI to reflect changes in renderer
void updateUiFromRenderer();

void updateSingleSymbolIcon();
void updateCategorizedSymbolIcon();
void updateGraduatedSymbolIcon();

Expand Down Expand Up @@ -82,6 +81,7 @@ public slots:

QgsStyleV2* mStyle;

QgsSymbolV2* mSingleSymbol;
QgsSymbolV2* mGraduatedSymbol;
QgsSymbolV2* mCategorizedSymbol;
};
Expand Down
14 changes: 13 additions & 1 deletion src/gui/symbology-ng/qgssymbolv2selectordialog.cpp
Expand Up @@ -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()));

Expand Down Expand Up @@ -91,6 +97,7 @@ void QgsSymbolV2SelectorDialog::setSymbolFromStyle(const QModelIndex & index)

updateSymbolPreview();
updateSymbolInfo();
emit symbolModified();
}

void QgsSymbolV2SelectorDialog::updateSymbolPreview()
Expand Down Expand Up @@ -131,6 +138,7 @@ void QgsSymbolV2SelectorDialog::changeSymbolProperties()

updateSymbolPreview();
updateSymbolInfo();
emit symbolModified();
}


Expand All @@ -143,6 +151,7 @@ void QgsSymbolV2SelectorDialog::setSymbolColor()
mSymbol->setColor(color);
updateSymbolColor();
updateSymbolPreview();
emit symbolModified();
}

void QgsSymbolV2SelectorDialog::setMarkerAngle(double angle)
Expand All @@ -152,6 +161,7 @@ void QgsSymbolV2SelectorDialog::setMarkerAngle(double angle)
return;
markerSymbol->setAngle(angle);
updateSymbolPreview();
emit symbolModified();
}

void QgsSymbolV2SelectorDialog::setMarkerSize(double size)
Expand All @@ -161,6 +171,7 @@ void QgsSymbolV2SelectorDialog::setMarkerSize(double size)
return;
markerSymbol->setSize(size);
updateSymbolPreview();
emit symbolModified();
}

void QgsSymbolV2SelectorDialog::setLineWidth(double width)
Expand All @@ -170,4 +181,5 @@ void QgsSymbolV2SelectorDialog::setLineWidth(double width)
return;
lineSymbol->setWidth(width);
updateSymbolPreview();
emit symbolModified();
}
5 changes: 4 additions & 1 deletion src/gui/symbology-ng/qgssymbolv2selectordialog.h
Expand Up @@ -14,7 +14,7 @@ class QgsSymbolV2SelectorDialog : public QDialog, private Ui::QgsSymbolV2Selecto
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();
Expand All @@ -31,6 +31,9 @@ public slots:
void setMarkerSize(double size);
void setLineWidth(double width);

signals:
void symbolModified();

protected:
QgsStyleV2* mStyle;
QgsSymbolV2* mSymbol;
Expand Down

0 comments on commit 019e73f

Please sign in to comment.