Skip to content

Commit 429eb40

Browse files
committedAug 16, 2012
Identify selected items based on id's rather than translated text
1 parent 82c0a0a commit 429eb40

File tree

4 files changed

+37
-76
lines changed

4 files changed

+37
-76
lines changed
 

‎src/app/qgsdiagramproperties.cpp

Lines changed: 28 additions & 73 deletions
Original file line numberDiff line numberDiff line change
@@ -48,8 +48,8 @@ QgsDiagramProperties::QgsDiagramProperties( QgsVectorLayer* layer, QWidget* pare
4848
mMinimumDiagramScaleLineEdit->setValidator( new QDoubleValidator( mMinimumDiagramScaleLineEdit ) );
4949
mMaximumDiagramScaleLineEdit->setValidator( new QDoubleValidator( mMaximumDiagramScaleLineEdit ) );
5050

51-
mDiagramUnitComboBox->insertItem( 0, tr( "mm" ) );
52-
mDiagramUnitComboBox->insertItem( 1, tr( "Map units" ) );
51+
mDiagramUnitComboBox->insertItem( 0, tr( "mm" ), QgsDiagramSettings::MM );
52+
mDiagramUnitComboBox->insertItem( 1, tr( "Map units" ), QgsDiagramSettings::MapUnits );
5353

5454
QGis::GeometryType layerType = layer->geometryType();
5555
if ( layerType == QGis::UnknownGeometry || layerType == QGis::NoGeometry )
@@ -79,26 +79,26 @@ QgsDiagramProperties::QgsDiagramProperties( QgsVectorLayer* layer, QWidget* pare
7979

8080
if ( layerType == QGis::Line )
8181
{
82-
mLineOptionsComboBox->addItem( tr( "On line" ), 1 );
83-
mLineOptionsComboBox->addItem( tr( "Above line" ), 2 );
84-
mLineOptionsComboBox->addItem( tr( "Below Line" ), 4 );
85-
mLineOptionsComboBox->addItem( tr( "Map orientation" ), 8 );
82+
mLineOptionsComboBox->addItem( tr( "On line" ), QgsDiagramLayerSettings::OnLine );
83+
mLineOptionsComboBox->addItem( tr( "Above line" ), QgsDiagramLayerSettings::AboveLine );
84+
mLineOptionsComboBox->addItem( tr( "Below Line" ), QgsDiagramLayerSettings::BelowLine );
85+
mLineOptionsComboBox->addItem( tr( "Map orientation" ), QgsDiagramLayerSettings::MapOrientation );
8686
}
8787
else
8888
{
8989
mLineOptionsComboBox->setVisible( false );
9090
mLineOptionsLabel->setVisible( false );
9191
}
9292

93-
mDiagramTypeComboBox->addItem( tr( "Pie chart" ) );
94-
mDiagramTypeComboBox->addItem( tr( "Text diagram" ) );
95-
mDiagramTypeComboBox->addItem( tr( "Histogram" ) );
93+
mDiagramTypeComboBox->addItem( tr( "Pie chart" ), "Pie" );
94+
mDiagramTypeComboBox->addItem( tr( "Text diagram" ), "Text");
95+
mDiagramTypeComboBox->addItem( tr( "Histogram" ), DIAGRAM_NAME_HISTOGRAM );
9696

97-
mLabelPlacementComboBox->addItem( tr( "Height" ) );
98-
mLabelPlacementComboBox->addItem( tr( "x-height" ) );
97+
mLabelPlacementComboBox->addItem( tr( "Height" ), QgsDiagramSettings::Height );
98+
mLabelPlacementComboBox->addItem( tr( "x-height" ), QgsDiagramSettings::XHeight );
9999

100-
mScaleDependencyComboBox->addItem( tr( "Area" ) );
101-
mScaleDependencyComboBox->addItem( tr( "Diameter" ) );
100+
mScaleDependencyComboBox->addItem( tr( "Area" ), true );
101+
mScaleDependencyComboBox->addItem( tr( "Diameter" ), false );
102102

103103
//insert all attributes into the combo boxes
104104
const QgsFieldMap& layerFields = layer->pendingFields();
@@ -195,6 +195,10 @@ QgsDiagramProperties::QgsDiagramProperties( QgsVectorLayer* layer, QWidget* pare
195195
mLabelPlacementComboBox->setCurrentIndex( 1 );
196196
}
197197

198+
mOrientationLeftButton->setProperty( "direction", QgsDiagramSettings::Left );
199+
mOrientationRightButton->setProperty( "direction", QgsDiagramSettings::Right );
200+
mOrientationUpButton->setProperty( "direction", QgsDiagramSettings::Up );
201+
mOrientationDownButton->setProperty( "direction", QgsDiagramSettings::Down );
198202
switch( settingList.at( 0 ).diagramOrientation )
199203
{
200204
case QgsDiagramSettings::Left:
@@ -274,19 +278,8 @@ QgsDiagramProperties::QgsDiagramProperties( QgsVectorLayer* layer, QWidget* pare
274278
if ( dr->diagram() )
275279
{
276280
QString diagramName = dr->diagram()->diagramName();
277-
if ( diagramName == "Text" )
278-
{
279-
mDiagramTypeComboBox->setCurrentIndex( mDiagramTypeComboBox->findText( tr( "Text diagram" ) ) );
280-
}
281-
else if ( diagramName == "Pie" )
282-
{
283-
mDiagramTypeComboBox->setCurrentIndex( mDiagramTypeComboBox->findText( tr( "Pie chart" ) ) );
284-
}
285-
else if ( diagramName == "Histogram" )
286-
{
287-
mDiagramTypeComboBox->setCurrentIndex( mDiagramTypeComboBox->findText( tr( "Histogram" ) ) );
288-
}
289-
else
281+
mDiagramTypeComboBox->setCurrentIndex( mDiagramTypeComboBox->findData( diagramName ) );
282+
if ( mDiagramTypeComboBox->currentIndex() == -1 )
290283
{
291284
QMessageBox::warning( this, tr( "Unknown diagram type." ),
292285
tr( "The diagram type '%1' is unknown. A default type is selected for you." ).arg( diagramName ), QMessageBox::Ok );
@@ -468,15 +461,15 @@ void QgsDiagramProperties::apply()
468461
}
469462

470463
QgsDiagram* diagram = 0;
471-
if ( mDiagramTypeComboBox->currentText() == tr( "Text diagram" ) )
464+
if ( mDiagramTypeComboBox->itemData( mDiagramTypeComboBox->currentIndex() ) == DIAGRAM_NAME_TEXT )
472465
{
473466
diagram = new QgsTextDiagram();
474467
}
475-
else if ( mDiagramTypeComboBox->currentText() == tr( "Pie chart" ) )
468+
else if ( mDiagramTypeComboBox->itemData( mDiagramTypeComboBox->currentIndex() ) == DIAGRAM_NAME_PIE )
476469
{
477470
diagram = new QgsPieDiagram();
478471
}
479-
else if ( mDiagramTypeComboBox->currentText() == tr( "Histogram" ) )
472+
else if ( mDiagramTypeComboBox->itemData( mDiagramTypeComboBox->currentIndex() ) == DIAGRAM_NAME_HISTOGRAM )
480473
{
481474
diagram = new QgsHistogramDiagram();
482475
}
@@ -497,33 +490,10 @@ void QgsDiagramProperties::apply()
497490
ds.categoryColors = categoryColors;
498491
ds.categoryIndices = categoryAttributes;
499492
ds.size = QSizeF( mDiagramSizeSpinBox->value(), mDiagramSizeSpinBox->value() );
500-
if ( mDiagramUnitComboBox->currentText() == tr( "Map units" ) )
501-
{
502-
ds.sizeType = QgsDiagramSettings::MapUnits;
503-
}
504-
else
505-
{
506-
ds.sizeType = QgsDiagramSettings::MM;
507-
}
508-
509-
if ( tr( "Height" ) == mLabelPlacementComboBox->currentText() )
510-
{
511-
ds.labelPlacementMethod = QgsDiagramSettings::Height;
512-
}
513-
else
514-
{
515-
ds.labelPlacementMethod = QgsDiagramSettings::XHeight;
516-
}
517-
518-
if ( tr( "Area" ) == mScaleDependencyComboBox->currentText() )
519-
{
520-
ds.scaleByArea = true;
521-
}
522-
else
523-
{
524-
ds.scaleByArea = false;
525-
}
526-
493+
ds.sizeType = static_cast<QgsDiagramSettings::SizeType> ( mDiagramUnitComboBox->itemData( mDiagramUnitComboBox->currentIndex() ).toInt() );
494+
ds.labelPlacementMethod = static_cast<QgsDiagramSettings::LabelPlacementMethod>( mLabelPlacementComboBox->itemData( mLabelPlacementComboBox->currentIndex() ).toInt() );
495+
ds.scaleByArea = mScaleDependencyComboBox->itemData( mScaleDependencyComboBox->currentIndex() ).toBool();
496+
527497
if ( mIncreaseSmallDiagramsGroupBox->isChecked() )
528498
{
529499
ds.minimumSize = mIncreaseMinimumSizeSpinBox->value();
@@ -549,22 +519,7 @@ void QgsDiagramProperties::apply()
549519
}
550520

551521
// Diagram orientation (histogram)
552-
if ( tr( "Up" ) == mOrientationButtonGroup->checkedButton()->text() )
553-
{
554-
ds.diagramOrientation = QgsDiagramSettings::Up;
555-
}
556-
else if ( tr( "Down" ) == mOrientationButtonGroup->checkedButton()->text() )
557-
{
558-
ds.diagramOrientation = QgsDiagramSettings::Down;
559-
}
560-
else if ( tr( "Right" ) == mOrientationButtonGroup->checkedButton()->text() )
561-
{
562-
ds.diagramOrientation = QgsDiagramSettings::Right;
563-
}
564-
else if ( tr( "Left" ) == mOrientationButtonGroup->checkedButton()->text() )
565-
{
566-
ds.diagramOrientation = QgsDiagramSettings::Left;
567-
}
522+
ds.diagramOrientation = static_cast<QgsDiagramSettings::DiagramOrientation> ( mOrientationButtonGroup->checkedButton()->property( "direction" ).toInt() );
568523

569524
ds.barWidth = mBarWidthSpinBox->value();
570525

@@ -604,7 +559,7 @@ void QgsDiagramProperties::apply()
604559
dls.placement = ( QgsDiagramLayerSettings::Placement )mPlacementComboBox->itemData( mPlacementComboBox->currentIndex() ).toInt();
605560
if ( mLineOptionsComboBox->isEnabled() )
606561
{
607-
dls.placementFlags = ( QgsDiagramLayerSettings::LinePlacementFlags )mLineOptionsComboBox->itemData( mLineOptionsComboBox->currentIndex() ).toInt();
562+
dls.placementFlags = static_cast<QgsDiagramLayerSettings::LinePlacementFlags>( mLineOptionsComboBox->itemData( mLineOptionsComboBox->currentIndex() ).toInt() );
608563
}
609564
mLayer->setDiagramLayerSettings( dls );
610565
}

‎src/core/diagram/qgshistogramdiagram.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@
1616
#ifndef QGSHISTOGRAMDIAGRAM_H
1717
#define QGSHISTOGRAMDIAGRAM_H
1818

19+
#define DIAGRAM_NAME_HISTOGRAM "Histogram"
20+
1921
#include "qgsdiagram.h"
2022
#include "qgsfeature.h"
2123
#include <QPen>
@@ -38,7 +40,7 @@ class CORE_EXPORT QgsHistogramDiagram: public QgsDiagram
3840
void renderDiagram( const QgsAttributeMap& att, QgsRenderContext& c, const QgsDiagramSettings& s, const QPointF& position );
3941
QSizeF diagramSize( const QgsAttributeMap& attributes, const QgsRenderContext& c, const QgsDiagramSettings& s );
4042
QSizeF diagramSize( const QgsAttributeMap& attributes, const QgsRenderContext& c, const QgsDiagramSettings& s, const QgsDiagramInterpolationSettings& is );
41-
QString diagramName() const { return "Histogram"; }
43+
QString diagramName() const { return DIAGRAM_NAME_HISTOGRAM; }
4244

4345
private:
4446
QBrush mCategoryBrush;

‎src/core/diagram/qgspiediagram.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@
1515
#ifndef QGSPIEDIAGRAM_H
1616
#define QGSPIEDIAGRAM_H
1717

18+
#define DIAGRAM_NAME_PIE "Pie"
19+
1820
#include "qgsdiagram.h"
1921
#include "qgsfeature.h"
2022
#include <QPen>
@@ -36,7 +38,7 @@ class CORE_EXPORT QgsPieDiagram: public QgsDiagram
3638
void renderDiagram( const QgsAttributeMap& att, QgsRenderContext& c, const QgsDiagramSettings& s, const QPointF& position );
3739
QSizeF diagramSize( const QgsAttributeMap& attributes, const QgsRenderContext& c, const QgsDiagramSettings& s );
3840
QSizeF diagramSize( const QgsAttributeMap& attributes, const QgsRenderContext& c, const QgsDiagramSettings& s, const QgsDiagramInterpolationSettings& is );
39-
QString diagramName() const { return "Pie"; }
41+
QString diagramName() const { return DIAGRAM_NAME_PIE; }
4042

4143
private:
4244
QBrush mCategoryBrush;

‎src/core/diagram/qgstextdiagram.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@
1515
#ifndef QGSTEXTDIAGRAM_H
1616
#define QGSTEXTDIAGRAM_H
1717

18+
#define DIAGRAM_NAME_TEXT "Text"
19+
1820
#include "qgsdiagram.h"
1921
#include "qgsfeature.h"
2022
#include <QPen>
@@ -50,7 +52,7 @@ class CORE_EXPORT QgsTextDiagram: public QgsDiagram
5052
QSizeF diagramSize( const QgsAttributeMap& attributes, const QgsRenderContext& c, const QgsDiagramSettings& s );
5153
QSizeF diagramSize( const QgsAttributeMap& attributes, const QgsRenderContext& c, const QgsDiagramSettings& s, const QgsDiagramInterpolationSettings& is );
5254

53-
QString diagramName() const { return "Text"; }
55+
QString diagramName() const { return DIAGRAM_NAME_TEXT; }
5456

5557
private:
5658
Orientation mOrientation;

0 commit comments

Comments
 (0)
Please sign in to comment.