32 #include <QStringList>
35 #include <QStandardItemModel>
36 #include <QColorDialog>
37 #include <QInputDialog>
38 #include <QMessageBox>
40 #include <QScopedPointer>
48 , mClipFeaturesAction( 0 )
64 btnAdvanced->setMenu(
new QMenu(
this ) );
71 groupsCombo->addItem(
"" );
74 foreach (
QString group, groups )
76 groupsCombo->addItem( group,
QVariant(
"smart" ) );
80 viewSymbols->setModel( model );
86 lblSymbolName->setText(
"" );
96 stackedWidget->setCurrentIndex( symbol->
type() );
100 connect( spinWidth, SIGNAL( valueChanged(
double ) ),
this, SLOT(
setLineWidth(
double ) ) );
113 btnColor->setAcceptLiveUpdates(
false );
114 btnColor->setAllowAlpha(
true );
115 btnColor->setColorDialogTitle(
tr(
"Select color" ) );
116 btnColor->setContext(
"symbology" );
119 void QgsSymbolsListWidget::populateGroups(
QString parent,
QString prepend )
128 text = prepend +
"/" + i.
value();
135 populateGroups( i.
value(), text );
147 QSize previewSize = viewSymbols->iconSize();
158 for (
int i = 0; i < names.
count(); i++ )
167 item->
setData( names[i], Qt::UserRole );
170 item->
setFlags( Qt::ItemIsEnabled | Qt::ItemIsSelectable );
221 spinAngle->setEnabled( !mRotationDDBtn->isActive() );
249 spinSize->setEnabled( !mSizeDDBtn->isActive() );
277 spinWidth->setEnabled( !mWidthDDBtn->isActive() );
302 tr(
"Please enter name for the symbol:" ), QLineEdit::Normal,
tr(
"New symbol" ), &ok );
310 tr(
"Symbol with name '%1' already exists. Overwrite?" )
312 QMessageBox::Yes | QMessageBox::No );
313 if ( res != QMessageBox::Yes )
343 double alpha = 1 - ( value / 255.0 );
345 displayTransparency( alpha );
350 void QgsSymbolsListWidget::displayTransparency(
double alpha )
352 double transparencyPercent = ( 1 - alpha ) * 100;
353 mTransparencyLabel->setText(
tr(
"Transparency %1%" ).arg((
int ) transparencyPercent ) );
358 btnColor->blockSignals(
true );
360 btnColor->blockSignals(
false );
370 spinSize->setValue( markerSymbol->
size() );
371 spinAngle->setValue( markerSymbol->
angle() );
377 spinSize->setEnabled( !mSizeDDBtn->isActive() );
380 spinAngle->setEnabled( !mRotationDDBtn->isActive() );
384 mSizeDDBtn->setEnabled(
false );
385 mRotationDDBtn->setEnabled(
false );
391 spinWidth->setValue( lineSymbol->
width() );
397 spinWidth->setEnabled( !mWidthDDBtn->isActive() );
401 mWidthDDBtn->setEnabled(
false );
405 mSymbolUnitWidget->blockSignals(
true );
408 mSymbolUnitWidget->blockSignals(
false );
410 mTransparencySlider->blockSignals(
true );
412 mTransparencySlider->setValue( transparency * 255 );
414 mTransparencySlider->blockSignals(
false );
435 lblSymbolName->setText( symbolName );
460 QString text = groupsCombo->itemText( index );
469 if ( groupsCombo->itemData( index ).toString() ==
"smart" )
476 groupid = groupsCombo->itemData( index ).toInt();
bool deleteSymbolLayer(int index)
delete symbol layer at specified index
void setPointSize(int pointSize)
void setClipFeaturesToExtent(bool clipFeaturesToExtent)
Sets whether features drawn by the symbol should be clipped to the render context's extent...
bool saveSymbol(QString name, QgsSymbolV2 *symbol, int groupid, QStringList tags)
add the symbol to the DB with the tags
void setIcon(const QIcon &icon)
void setDataDefinedAngle(const QgsDataDefined &dd)
Set data defined angle for whole symbol (including all symbol layers).
A container class for data source field mapping or expression.
void setDataDefinedSize(const QgsDataDefined &dd)
Set data defined size for whole symbol (including all symbol layers).
virtual QgsSymbolV2 * clone() const =0
QgsDataDefined dataDefinedSize() const
Returns data defined size for whole symbol (including all symbol layers).
const_iterator constBegin() const
QStringList symbolsOfGroup(StyleEntity type, int groupid)
returns the symbolnames of a given groupid
double clipFeaturesToExtent() const
Returns whether features drawn by the symbol will be clipped to the render context's extent...
bool contains(const QString &str, Qt::CaseSensitivity cs) const
QgsMapUnitScale mapUnitScale() const
QgsSymbolV2 * symbol(QString name)
return a NEW copy of symbol
QString tr(const char *sourceText, const char *disambiguation, int n)
void setWidth(double width)
QgsDataDefined dataDefinedWidth() const
Returns data defined size for whole symbol (including all symbol layers).
virtual void setData(const QVariant &value, int role)
void setMapUnitScale(const QgsMapUnitScale &scale)
QgsSymbolGroupMap childGroupNames(QString parent="")
return a map of groupid and names for the given parent group
bool addSymbol(QString name, QgsSymbolV2 *symbol, bool update=false)
add symbol to style. takes symbol's ownership
void setColor(const QColor &color)
const char * name() const
static QIcon symbolPreviewIcon(QgsSymbolV2 *symbol, QSize size)
int count(const T &value) const
bool appendSymbolLayer(QgsSymbolLayerV2 *layer)
append symbol layer at the end of the list
qreal alpha() const
Get alpha transparency 1 for opaque, 0 for invisible.
void setFlags(QFlags< Qt::ItemFlag > flags)
const_iterator constEnd() const
void setAngle(double angle)
int symbolLayerCount()
Returns total number of symbol layers contained in the symbol.
void setSize(double size)
QStringList symbolsOfSmartgroup(StyleEntity type, int id)
returns the symbols for the smartgroup
QStringList symbolNames()
return a list of names of symbols
void setFont(const QFont &font)
QString getText(QWidget *parent, const QString &title, const QString &label, QLineEdit::EchoMode mode, const QString &text, bool *ok, QFlags< Qt::WindowType > flags, QFlags< Qt::InputMethodHint > inputMethodHints)
double ANALYSIS_EXPORT angle(Point3D *p1, Point3D *p2, Point3D *p3, Point3D *p4)
Calculates the angle between two segments (in 2 dimension, z-values are ignored)
bool blockSignals(bool block)
void setText(const QString &text)
void setDataDefinedWidth(const QgsDataDefined &dd)
Set data defined width for whole symbol (including all symbol layers).
QStringList smartgroupNames()
returns the smart groups list
QgsDataDefined dataDefinedAngle() const
Returns data defined angle for whole symbol (including all symbol layers).
QVariant data(int role) const
QgsSymbolV2::OutputUnit outputUnit() const
StandardButton warning(QWidget *parent, const QString &title, const QString &text, QFlags< QMessageBox::StandardButton > buttons, StandardButton defaultButton)
QgsSymbolLayerV2 * takeSymbolLayer(int index)
remove symbol layer from the list and return pointer to it
bool hasDefaultValues() const
Returns whether the data defined container is set to all the default values, ie, disabled, with empty expression and no assigned field.
bool connect(const QObject *sender, const char *signal, const QObject *receiver, const char *method, Qt::ConnectionType type)
QStringList findSymbols(StyleEntity type, QString qword)
return the names of the symbols which have a matching 'substring' in its defintion ...
Represents a vector layer which manages a vector based data sets.
int smartgroupId(QString smartgroup)
return the DB id for the given smartgroup name
void setOutputUnit(QgsSymbolV2::OutputUnit u)
void appendRow(const QList< QStandardItem * > &items)
void setAlpha(qreal alpha)
Set alpha transparency 1 for opaque, 0 for invisible.