Skip to content

Commit dd9c563

Browse files
committedMay 7, 2013
Add help text in data defined dialog
1 parent 469fb25 commit dd9c563

File tree

4 files changed

+94
-3
lines changed

4 files changed

+94
-3
lines changed
 

‎src/gui/symbology-ng/qgsdatadefinedsymboldialog.cpp

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,68 @@ QgsDataDefinedSymbolDialog::QgsDataDefinedSymbolDialog( const QMap< QString, QPa
6363
}
6464
}
6565

66+
QgsDataDefinedSymbolDialog::QgsDataDefinedSymbolDialog( const QList< DataDefinedSymbolEntry >& entries, const QgsVectorLayer* vl, QWidget * parent, Qt::WindowFlags f ): QDialog( parent, f ), mVectorLayer( vl )
67+
{
68+
setupUi( this );
69+
70+
QgsFields attributeFields;
71+
if ( mVectorLayer )
72+
{
73+
attributeFields = mVectorLayer->pendingFields();
74+
}
75+
76+
mTableWidget->setRowCount( entries.size() );
77+
78+
int i = 0;
79+
QList< DataDefinedSymbolEntry >::const_iterator entryIt = entries.constBegin();
80+
for ( ; entryIt != entries.constEnd(); ++entryIt )
81+
{
82+
//check box
83+
QCheckBox* cb = new QCheckBox( this );
84+
cb->setChecked( !entryIt->initialValue.isEmpty() );
85+
mTableWidget->setCellWidget( i, 0, cb );
86+
mTableWidget->setColumnWidth( 0, cb->width() );
87+
88+
89+
//property name
90+
QTableWidgetItem* propertyItem = new QTableWidgetItem( entryIt->title );
91+
propertyItem->setData( Qt::UserRole, entryIt->property );
92+
mTableWidget->setItem( i, 1, propertyItem );
93+
94+
//attribute list
95+
QString expressionString = entryIt->initialValue;
96+
QComboBox* attributeComboBox = new QComboBox( this );
97+
attributeComboBox->addItem( QString() );
98+
for ( int j = 0; j < attributeFields.count(); ++j )
99+
{
100+
attributeComboBox->addItem( attributeFields.at( j ).name() );
101+
}
102+
103+
int attrComboIndex = comboIndexForExpressionString( expressionString, attributeComboBox );
104+
if ( attrComboIndex >= 0 )
105+
{
106+
attributeComboBox->setCurrentIndex( attrComboIndex );
107+
}
108+
else
109+
{
110+
attributeComboBox->setItemText( 0, expressionString );
111+
}
112+
113+
mTableWidget->setCellWidget( i, 2, attributeComboBox );
114+
115+
//expression button
116+
QPushButton* expressionButton = new QPushButton( "...", this );
117+
QObject::connect( expressionButton, SIGNAL( clicked() ), this, SLOT( expressionButtonClicked() ) );
118+
mTableWidget->setCellWidget( i, 3, expressionButton );
119+
120+
//help text
121+
QTableWidgetItem* helpItem = new QTableWidgetItem( entryIt->helpText );
122+
mTableWidget->setItem( i, 4, helpItem );
123+
124+
++i;
125+
}
126+
}
127+
66128
QgsDataDefinedSymbolDialog::~QgsDataDefinedSymbolDialog()
67129
{
68130

‎src/gui/symbology-ng/qgsdatadefinedsymboldialog.h

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,25 @@
77
class QgsVectorLayer;
88
class QComboBox;
99

10+
11+
1012
class GUI_EXPORT QgsDataDefinedSymbolDialog: public QDialog, private Ui::QgsDataDefinedSymbolDialog
1113
{
1214
Q_OBJECT
1315
public:
16+
17+
struct DataDefinedSymbolEntry
18+
{
19+
DataDefinedSymbolEntry( const QString& p, const QString& t, const QString& v, const QString& h ):
20+
property( p ), title( t ), initialValue( v ), helpText( h ) {}
21+
QString property;
22+
QString title;
23+
QString initialValue;
24+
QString helpText;
25+
};
26+
1427
QgsDataDefinedSymbolDialog( const QMap< QString, QPair< QString, QString > >& properties, const QgsVectorLayer* vl, QWidget * parent = 0, Qt::WindowFlags f = 0 );
28+
QgsDataDefinedSymbolDialog( const QList< DataDefinedSymbolEntry >& entries, const QgsVectorLayer* vl, QWidget * parent = 0, Qt::WindowFlags f = 0 );
1529
~QgsDataDefinedSymbolDialog();
1630
QMap< QString, QString > dataDefinedProperties() const;
1731

‎src/gui/symbology-ng/qgssymbollayerv2widget.cpp

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -196,15 +196,25 @@ void QgsSimpleLineSymbolLayerV2Widget::on_mDataDefinedPropertiesButton_clicked()
196196
return;
197197
}
198198

199-
QMap<QString, QPair< QString, QString> > dataDefinedProperties;
199+
/*QMap<QString, QPair< QString, QString> > dataDefinedProperties;
200200
dataDefinedProperties.insert( "color", qMakePair( tr( "Color" ), mLayer->dataDefinedPropertyString( "color" ) ) );
201201
dataDefinedProperties.insert( "width", qMakePair( tr( "Pen width" ), mLayer->dataDefinedPropertyString( "width" ) ) );
202202
dataDefinedProperties.insert( "offset", qMakePair( tr( "Offset" ), mLayer->dataDefinedPropertyString( "offset" ) ) );
203203
dataDefinedProperties.insert( "customdash", qMakePair( tr( "Dash pattern" ), mLayer->dataDefinedPropertyString( "customdash" ) ) );
204204
dataDefinedProperties.insert( "joinstyle", qMakePair( tr( "Join style" ), mLayer->dataDefinedPropertyString( "joinstyle" ) ) );
205205
dataDefinedProperties.insert( "capstyle", qMakePair( tr( "Cap style" ), mLayer->dataDefinedPropertyString( "capstyle" ) ) );
206206
207+
QgsDataDefinedSymbolDialog d( dataDefinedProperties, mVectorLayer );*/
208+
209+
QList< QgsDataDefinedSymbolDialog::DataDefinedSymbolEntry > dataDefinedProperties;
210+
dataDefinedProperties << QgsDataDefinedSymbolDialog::DataDefinedSymbolEntry( "color", tr( "Color" ), mLayer->dataDefinedPropertyString( "color" ), tr( "'<red>,<green>,<blue>,<alpha>'" ) );
211+
dataDefinedProperties << QgsDataDefinedSymbolDialog::DataDefinedSymbolEntry( "width", tr( "Pen width" ), mLayer->dataDefinedPropertyString( "width" ), tr( "double" ) );
212+
dataDefinedProperties << QgsDataDefinedSymbolDialog::DataDefinedSymbolEntry( "offset", tr( "Offset" ), mLayer->dataDefinedPropertyString( "offset" ), tr( "double" ) );
213+
dataDefinedProperties << QgsDataDefinedSymbolDialog::DataDefinedSymbolEntry( "customdash", tr( "Dash pattern" ), mLayer->dataDefinedPropertyString( "customdash" ), "" );
214+
dataDefinedProperties << QgsDataDefinedSymbolDialog::DataDefinedSymbolEntry( "joinstyle", tr( "Join style" ), mLayer->dataDefinedPropertyString( "joinstyle" ), "" );
215+
dataDefinedProperties << QgsDataDefinedSymbolDialog::DataDefinedSymbolEntry( "capstyle", tr( "Cap style" ), mLayer->dataDefinedPropertyString( "capstyle" ), "" );
207216
QgsDataDefinedSymbolDialog d( dataDefinedProperties, mVectorLayer );
217+
208218
if ( d.exec() == QDialog::Accepted )
209219
{
210220
//empty all existing properties first

‎src/ui/qgsdatadefinedsymboldialogbase.ui

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@
66
<rect>
77
<x>0</x>
88
<y>0</y>
9-
<width>406</width>
10-
<height>282</height>
9+
<width>409</width>
10+
<height>299</height>
1111
</rect>
1212
</property>
1313
<property name="windowTitle">
@@ -87,6 +87,11 @@
8787
<string>Expression</string>
8888
</property>
8989
</column>
90+
<column>
91+
<property name="text">
92+
<string>Help</string>
93+
</property>
94+
</column>
9095
</widget>
9196
</item>
9297
</layout>

0 commit comments

Comments
 (0)
Please sign in to comment.