Skip to content

Commit

Permalink
- slight redesign of symbol selector dialog
Browse files Browse the repository at this point in the history
- created a new (experimental) class QgsColorButtonV2
- made all widgets in symbology-ng to use QgsColorButtonV2


git-svn-id: http://svn.osgeo.org/qgis/branches/symbology-ng-branch@12135 c8812cc2-4d05-0410-92ff-de0c093fc19c
  • Loading branch information
wonder committed Nov 16, 2009
1 parent 15c7901 commit 94c5bc2
Show file tree
Hide file tree
Showing 13 changed files with 320 additions and 175 deletions.
30 changes: 30 additions & 0 deletions src/gui/qgscolorbutton.cpp
Expand Up @@ -66,3 +66,33 @@ void QgsColorButton::setColor( const QColor &color )
mColor = color; mColor = color;
update(); update();
} }


//////////////////

QgsColorButtonV2::QgsColorButtonV2( QWidget* parent )
: QPushButton(parent)
{
}

void QgsColorButtonV2::setColor( const QColor &color )
{
mColor = color;

QPixmap pixmap(iconSize());
pixmap.fill(QColor(0,0,0,0));

QRect rect(1,1, iconSize().width() - 2, iconSize().height() - 2);

// draw a slightly rounded rectangle
QPainter p;
p.begin(&pixmap);
p.setPen(Qt::NoPen);
p.setRenderHint(QPainter::Antialiasing);
p.setBrush(color);
p.drawRoundedRect(rect, 4, 4);
p.end();

// set this pixmap as icon
setIcon(QIcon(pixmap));
}
15 changes: 15 additions & 0 deletions src/gui/qgscolorbutton.h
Expand Up @@ -17,6 +17,7 @@
#define QGSCOLORBUTTON_H #define QGSCOLORBUTTON_H


#include <QToolButton> #include <QToolButton>
#include <QPushButton>


/** \ingroup gui /** \ingroup gui
* A cross platform button subclass for selecting colors. * A cross platform button subclass for selecting colors.
Expand All @@ -37,4 +38,18 @@ class GUI_EXPORT QgsColorButton: public QToolButton
QColor mColor; QColor mColor;
}; };



class QgsColorButtonV2 : public QPushButton
{
public:
QgsColorButtonV2( QWidget* parent = 0 );

void setColor( const QColor &color );
QColor color() const { return mColor; }

private:
QColor mColor;
};


#endif #endif
1 change: 1 addition & 0 deletions src/gui/symbology-ng/qgsrendererv2propertiesdialog.cpp
Expand Up @@ -27,6 +27,7 @@ QgsRendererV2PropertiesDialog::QgsRendererV2PropertiesDialog(QgsVectorLayer* lay
if (embedded) if (embedded)
{ {
buttonBox->hide(); buttonBox->hide();
layout()->setContentsMargins(0,0,0,0);
} }


connect(buttonBox, SIGNAL(accepted()), this, SLOT(onOK())); connect(buttonBox, SIGNAL(accepted()), this, SLOT(onOK()));
Expand Down
31 changes: 12 additions & 19 deletions src/gui/symbology-ng/qgssymbollayerv2widget.cpp
Expand Up @@ -16,14 +16,7 @@
#include <QStandardItemModel> #include <QStandardItemModel>
#include <QSvgRenderer> #include <QSvgRenderer>


static void updateColorButton(QAbstractButton* button, QColor color)
{
QPixmap p(20,20);
p.fill(color);
button->setIcon(QIcon(p));
}


//////////


QgsSimpleLineSymbolLayerV2Widget::QgsSimpleLineSymbolLayerV2Widget(QWidget* parent) QgsSimpleLineSymbolLayerV2Widget::QgsSimpleLineSymbolLayerV2Widget(QWidget* parent)
: QgsSymbolLayerV2Widget(parent) : QgsSymbolLayerV2Widget(parent)
Expand Down Expand Up @@ -51,7 +44,7 @@ void QgsSimpleLineSymbolLayerV2Widget::setSymbolLayer(QgsSymbolLayerV2* layer)


// set values // set values
spinWidth->setValue(mLayer->width()); spinWidth->setValue(mLayer->width());
updateColorButton(btnChangeColor, mLayer->color()); btnChangeColor->setColor(mLayer->color());
cboPenStyle->setPenStyle(mLayer->penStyle()); cboPenStyle->setPenStyle(mLayer->penStyle());
spinOffset->setValue(mLayer->offset()); spinOffset->setValue(mLayer->offset());
cboJoinStyle->setPenJoinStyle(mLayer->penJoinStyle()); cboJoinStyle->setPenJoinStyle(mLayer->penJoinStyle());
Expand All @@ -75,7 +68,7 @@ void QgsSimpleLineSymbolLayerV2Widget::colorChanged()
if (!color.isValid()) if (!color.isValid())
return; return;
mLayer->setColor(color); mLayer->setColor(color);
updateColorButton(btnChangeColor, mLayer->color()); btnChangeColor->setColor(mLayer->color());
emit changed(); emit changed();
} }


Expand Down Expand Up @@ -145,8 +138,8 @@ void QgsSimpleMarkerSymbolLayerV2Widget::setSymbolLayer(QgsSymbolLayerV2* layer)
break; break;
} }
} }
updateColorButton(btnChangeColorBorder, mLayer->borderColor()); btnChangeColorBorder->setColor(mLayer->borderColor());
updateColorButton(btnChangeColorFill, mLayer->color()); btnChangeColorFill->setColor(mLayer->color());
spinSize->setValue(mLayer->size()); spinSize->setValue(mLayer->size());
spinAngle->setValue(mLayer->angle()); spinAngle->setValue(mLayer->angle());


Expand Down Expand Up @@ -176,7 +169,7 @@ void QgsSimpleMarkerSymbolLayerV2Widget::setColorBorder()
if (!borderColor.isValid()) if (!borderColor.isValid())
return; return;
mLayer->setBorderColor(borderColor); mLayer->setBorderColor(borderColor);
updateColorButton(btnChangeColorBorder, mLayer->borderColor()); btnChangeColorBorder->setColor(mLayer->borderColor());
emit changed(); emit changed();
} }


Expand All @@ -186,7 +179,7 @@ void QgsSimpleMarkerSymbolLayerV2Widget::setColorFill()
if (!color.isValid()) if (!color.isValid())
return; return;
mLayer->setColor(color); mLayer->setColor(color);
updateColorButton(btnChangeColorFill, mLayer->color()); btnChangeColorFill->setColor(mLayer->color());
emit changed(); emit changed();
} }


Expand Down Expand Up @@ -232,8 +225,8 @@ void QgsSimpleFillSymbolLayerV2Widget::setSymbolLayer(QgsSymbolLayerV2* layer)
mLayer = static_cast<QgsSimpleFillSymbolLayerV2*>(layer); mLayer = static_cast<QgsSimpleFillSymbolLayerV2*>(layer);


// set values // set values
updateColorButton(btnChangeColor, mLayer->color()); btnChangeColor->setColor(mLayer->color());
updateColorButton(btnChangeBorderColor, mLayer->borderColor()); btnChangeBorderColor->setColor(mLayer->borderColor());
cboFillStyle->setBrushStyle(mLayer->brushStyle()); cboFillStyle->setBrushStyle(mLayer->brushStyle());
} }


Expand All @@ -248,7 +241,7 @@ void QgsSimpleFillSymbolLayerV2Widget::setColor()
if (!color.isValid()) if (!color.isValid())
return; return;
mLayer->setColor(color); mLayer->setColor(color);
updateColorButton(btnChangeColor, mLayer->color()); btnChangeColor->setColor(mLayer->color());
emit changed(); emit changed();
} }


Expand All @@ -258,7 +251,7 @@ void QgsSimpleFillSymbolLayerV2Widget::setBorderColor()
if (!color.isValid()) if (!color.isValid())
return; return;
mLayer->setBorderColor(color); mLayer->setBorderColor(color);
updateColorButton(btnChangeBorderColor, mLayer->borderColor()); btnChangeBorderColor->setColor(mLayer->borderColor());
emit changed(); emit changed();
} }


Expand Down Expand Up @@ -482,7 +475,7 @@ void QgsLineDecorationSymbolLayerV2Widget::setSymbolLayer(QgsSymbolLayerV2* laye
mLayer = static_cast<QgsLineDecorationSymbolLayerV2*>(layer); mLayer = static_cast<QgsLineDecorationSymbolLayerV2*>(layer);


// set values // set values
updateColorButton(btnChangeColor, mLayer->color()); btnChangeColor->setColor(mLayer->color());
} }


QgsSymbolLayerV2* QgsLineDecorationSymbolLayerV2Widget::symbolLayer() QgsSymbolLayerV2* QgsLineDecorationSymbolLayerV2Widget::symbolLayer()
Expand All @@ -496,6 +489,6 @@ void QgsLineDecorationSymbolLayerV2Widget::colorChanged()
if (!color.isValid()) if (!color.isValid())
return; return;
mLayer->setColor(color); mLayer->setColor(color);
updateColorButton(btnChangeColor, mLayer->color()); btnChangeColor->setColor(mLayer->color());
emit changed(); emit changed();
} }
13 changes: 9 additions & 4 deletions src/gui/symbology-ng/qgssymbolv2selectordialog.cpp
Expand Up @@ -27,6 +27,7 @@ QgsSymbolV2SelectorDialog::QgsSymbolV2SelectorDialog(QgsSymbolV2* symbol, QgsSty
if (embedded) if (embedded)
{ {
buttonBox->hide(); buttonBox->hide();
layout()->setContentsMargins(0,0,0,0);
} }


connect(btnSymbolProperties, SIGNAL(clicked()), this, SLOT(changeSymbolProperties())); connect(btnSymbolProperties, SIGNAL(clicked()), this, SLOT(changeSymbolProperties()));
Expand All @@ -44,12 +45,15 @@ QgsSymbolV2SelectorDialog::QgsSymbolV2SelectorDialog(QgsSymbolV2* symbol, QgsSty
// there's a correspondence between symbol type number and page numbering => exploit it! // there's a correspondence between symbol type number and page numbering => exploit it!
stackedWidget->setCurrentIndex(symbol->type()); stackedWidget->setCurrentIndex(symbol->type());


connect(btnSetColor, SIGNAL(clicked()), this, SLOT(setSymbolColor())); connect(btnColorMarker, SIGNAL(clicked()), this, SLOT(setSymbolColor()));
connect(btnColorLine, SIGNAL(clicked()), this, SLOT(setSymbolColor()));
connect(btnColorFill, SIGNAL(clicked()), this, SLOT(setSymbolColor()));
connect(spinAngle, SIGNAL(valueChanged(double)), this, SLOT(setMarkerAngle(double))); connect(spinAngle, SIGNAL(valueChanged(double)), this, SLOT(setMarkerAngle(double)));
connect(spinSize, SIGNAL(valueChanged(double)), this, SLOT(setMarkerSize(double))); connect(spinSize, SIGNAL(valueChanged(double)), this, SLOT(setMarkerSize(double)));
connect(spinWidth, SIGNAL(valueChanged(double)), this, SLOT(setLineWidth(double))); connect(spinWidth, SIGNAL(valueChanged(double)), this, SLOT(setLineWidth(double)));


connect(btnAddToStyle, SIGNAL(clicked()), this, SLOT(addSymbolToStyle())); connect(btnAddToStyle, SIGNAL(clicked()), this, SLOT(addSymbolToStyle()));
btnSymbolProperties->setIcon( QIcon( QgsApplication::defaultThemePath() + "mActionOptions.png" ) );
btnAddToStyle->setIcon( QIcon( QgsApplication::defaultThemePath() + "symbologyAdd.png" ) ); btnAddToStyle->setIcon( QIcon( QgsApplication::defaultThemePath() + "symbologyAdd.png" ) );
} }


Expand Down Expand Up @@ -114,9 +118,10 @@ void QgsSymbolV2SelectorDialog::updateSymbolPreview()


void QgsSymbolV2SelectorDialog::updateSymbolColor() void QgsSymbolV2SelectorDialog::updateSymbolColor()
{ {
QPixmap p(20,20); QColor c = mSymbol->color();
p.fill(mSymbol->color()); btnColorMarker->setColor(c);
btnSetColor->setIcon(QIcon(p)); btnColorLine->setColor(c);
btnColorFill->setColor(c);
} }


void QgsSymbolV2SelectorDialog::updateSymbolInfo() void QgsSymbolV2SelectorDialog::updateSymbolInfo()
Expand Down
13 changes: 2 additions & 11 deletions src/gui/symbology-ng/qgsvectorgradientcolorrampv2dialog.cpp
Expand Up @@ -5,15 +5,6 @@


#include <QColorDialog> #include <QColorDialog>


static void updateColorButton(QAbstractButton* button, QColor color)
{
QPixmap p(20,20);
p.fill(color);
button->setIcon(QIcon(p));
}

/////////



QgsVectorGradientColorRampV2Dialog::QgsVectorGradientColorRampV2Dialog(QgsVectorGradientColorRampV2* ramp, QWidget* parent) QgsVectorGradientColorRampV2Dialog::QgsVectorGradientColorRampV2Dialog(QgsVectorGradientColorRampV2* ramp, QWidget* parent)
: QDialog(parent), mRamp(ramp) : QDialog(parent), mRamp(ramp)
Expand All @@ -32,8 +23,8 @@ void QgsVectorGradientColorRampV2Dialog::updatePreview()
QSize size(300,40); QSize size(300,40);
lblPreview->setPixmap(QgsSymbolLayerV2Utils::colorRampPreviewPixmap(mRamp, size)); lblPreview->setPixmap(QgsSymbolLayerV2Utils::colorRampPreviewPixmap(mRamp, size));


updateColorButton(btnColor1, mRamp->color1()); btnColor1->setColor(mRamp->color1());
updateColorButton(btnColor2, mRamp->color2()); btnColor2->setColor(mRamp->color2());
} }


void QgsVectorGradientColorRampV2Dialog::setColor1() void QgsVectorGradientColorRampV2Dialog::setColor1()
Expand Down

0 comments on commit 94c5bc2

Please sign in to comment.