Skip to content

Commit f7ada81

Browse files
committedJul 24, 2017
Port conditional formatting symbol button to QgsSymbolButton
1 parent 67b2724 commit f7ada81

File tree

3 files changed

+11
-48
lines changed

3 files changed

+11
-48
lines changed
 

‎src/gui/attributetable/qgsfieldconditionalformatwidget.cpp

Lines changed: 5 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@ QgsFieldConditionalFormatWidget::QgsFieldConditionalFormatWidget( QWidget *paren
2626
, mLayer( nullptr )
2727
, mEditIndex( 0 )
2828
, mEditing( false )
29-
, mSymbol( nullptr )
3029
{
3130
setupUi( this );
3231
mDeleteButton->hide();
@@ -38,7 +37,6 @@ QgsFieldConditionalFormatWidget::QgsFieldConditionalFormatWidget( QWidget *paren
3837
connect( mCancelButton, &QAbstractButton::clicked, this, &QgsFieldConditionalFormatWidget::cancelRule );
3938
connect( mDeleteButton, &QAbstractButton::clicked, this, &QgsFieldConditionalFormatWidget::deleteRule );
4039
connect( listView, &QAbstractItemView::clicked, this, &QgsFieldConditionalFormatWidget::ruleClicked );
41-
connect( btnChangeIcon, &QAbstractButton::clicked, this, &QgsFieldConditionalFormatWidget::updateIcon );
4240
connect( btnBuildExpression, &QAbstractButton::clicked, this, &QgsFieldConditionalFormatWidget::setExpression );
4341
connect( mPresetsList, static_cast<void ( QComboBox::* )( int )>( &QComboBox::currentIndexChanged ), this, &QgsFieldConditionalFormatWidget::presetSet );
4442
btnBackgroundColor->setAllowOpacity( true );
@@ -49,27 +47,13 @@ QgsFieldConditionalFormatWidget::QgsFieldConditionalFormatWidget( QWidget *paren
4947
mModel = new QStandardItemModel( listView );
5048
listView->setModel( mModel );
5149
mPresetsList->setModel( mPresetsModel );
50+
btnChangeIcon->setSymbol( QgsSymbol::defaultSymbol( QgsWkbTypes::PointGeometry ) );
5251

5352
setPresets( defaultPresets() );
5453
}
5554

5655
QgsFieldConditionalFormatWidget::~QgsFieldConditionalFormatWidget()
5756
{
58-
delete mSymbol;
59-
}
60-
61-
void QgsFieldConditionalFormatWidget::updateIcon()
62-
{
63-
mSymbol = QgsSymbol::defaultSymbol( QgsWkbTypes::PointGeometry );
64-
65-
QgsSymbolSelectorDialog dlg( mSymbol, QgsStyle::defaultStyle(), nullptr, this );
66-
if ( !dlg.exec() )
67-
{
68-
return;
69-
}
70-
71-
QIcon icon = QgsSymbolLayerUtils::symbolPreviewIcon( mSymbol, btnChangeIcon->iconSize() );
72-
btnChangeIcon->setIcon( icon );
7357
}
7458

7559
void QgsFieldConditionalFormatWidget::setExpression()
@@ -130,24 +114,14 @@ void QgsFieldConditionalFormatWidget::setFormattingFromStyle( const QgsCondition
130114
{
131115
btnBackgroundColor->setColor( style.backgroundColor() );
132116
btnTextColor->setColor( style.textColor() );
133-
if ( !style.icon().isNull() )
117+
if ( style.symbol() )
134118
{
119+
btnChangeIcon->setSymbol( style.symbol()->clone() );
135120
checkIcon->setChecked( true );
136-
QIcon icon( style.icon() );
137-
btnChangeIcon->setIcon( icon );
138121
}
139122
else
140123
{
141124
checkIcon->setChecked( false );
142-
btnChangeIcon->setIcon( QIcon() );
143-
}
144-
if ( style.symbol() )
145-
{
146-
mSymbol = style.symbol()->clone();
147-
}
148-
else
149-
{
150-
mSymbol = nullptr;
151125
}
152126
QFont font = style.font();
153127
mFontBoldBtn->setChecked( font.bold() );
@@ -206,7 +180,6 @@ void QgsFieldConditionalFormatWidget::addNewRule()
206180

207181
void QgsFieldConditionalFormatWidget::reset()
208182
{
209-
mSymbol = nullptr;
210183
mNameEdit->clear();
211184
mRuleEdit->clear();
212185
if ( fieldRadio->isChecked() )
@@ -297,9 +270,9 @@ void QgsFieldConditionalFormatWidget::saveRule()
297270
style.setFont( font );
298271
style.setBackgroundColor( backColor );
299272
style.setTextColor( fontColor );
300-
if ( mSymbol && checkIcon->isChecked() )
273+
if ( checkIcon->isChecked() )
301274
{
302-
style.setSymbol( mSymbol );
275+
style.setSymbol( btnChangeIcon->clonedSymbol< QgsMarkerSymbol >() );
303276
}
304277
else
305278
{

‎src/gui/attributetable/qgsfieldconditionalformatwidget.h

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,6 @@ class GUI_EXPORT QgsFieldConditionalFormatWidget : public QWidget, private Ui::Q
9696
bool mEditing;
9797
QStandardItemModel *mModel = nullptr;
9898
QStandardItemModel *mPresetsModel = nullptr;
99-
QgsSymbol *mSymbol = nullptr;
10099
QList<QgsConditionalStyle> mPresets;
101100

102101
QList<QgsConditionalStyle> getStyles();
@@ -105,7 +104,6 @@ class GUI_EXPORT QgsFieldConditionalFormatWidget : public QWidget, private Ui::Q
105104

106105
private slots:
107106
void setExpression();
108-
void updateIcon();
109107
void presetSet( int index );
110108
bool isCustomSet();
111109
void ruleClicked( const QModelIndex &index );

‎src/ui/qgsfieldconditionalformatwidget.ui

Lines changed: 6 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -357,7 +357,7 @@
357357
</widget>
358358
</item>
359359
<item>
360-
<widget class="QToolButton" name="btnChangeIcon">
360+
<widget class="QgsSymbolButton" name="btnChangeIcon">
361361
<property name="enabled">
362362
<bool>false</bool>
363363
</property>
@@ -384,19 +384,6 @@
384384
</property>
385385
</widget>
386386
</item>
387-
<item>
388-
<spacer name="horizontalSpacer_2">
389-
<property name="orientation">
390-
<enum>Qt::Horizontal</enum>
391-
</property>
392-
<property name="sizeHint" stdset="0">
393-
<size>
394-
<width>40</width>
395-
<height>20</height>
396-
</size>
397-
</property>
398-
</spacer>
399-
</item>
400387
</layout>
401388
</item>
402389
<item>
@@ -599,6 +586,11 @@
599586
</layout>
600587
</widget>
601588
<customwidgets>
589+
<customwidget>
590+
<class>QgsSymbolButton</class>
591+
<extends>QToolButton</extends>
592+
<header>qgssymbolbutton.h</header>
593+
</customwidget>
602594
<customwidget>
603595
<class>QgsColorButton</class>
604596
<extends>QToolButton</extends>

0 commit comments

Comments
 (0)
Please sign in to comment.