Skip to content

Commit 6f3032a

Browse files
committedApr 27, 2016
Fix tests, fixes after rebase
1 parent ad82ac0 commit 6f3032a

File tree

5 files changed

+20
-17
lines changed

5 files changed

+20
-17
lines changed
 

‎src/app/qgsmaptoollabel.cpp

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -548,7 +548,7 @@ bool QgsMapToolLabel::dataDefinedShowHide( QgsVectorLayer* vlayer, QgsFeatureId
548548
return false;
549549
}
550550

551-
if ( mCurrentLabelPos.isDiagram )
551+
if ( mCurrentLabel.pos.isDiagram )
552552
{
553553
if ( ! diagramCanShowHide( vlayer, showCol ) )
554554
{
@@ -661,12 +661,10 @@ bool QgsMapToolLabel::isPinned()
661661
return rc;
662662
}
663663

664-
bool QgsMapToolLabel::diagramCanShowHide( QgsMapLayer* ml, int& showCol ) const
664+
bool QgsMapToolLabel::diagramCanShowHide( QgsVectorLayer* vlayer, int& showCol ) const
665665
{
666666
bool rc = false;
667667

668-
QgsVectorLayer* vlayer = qobject_cast<QgsVectorLayer*>( ml );
669-
670668
if ( vlayer && vlayer->isEditable() && vlayer->diagramsEnabled() )
671669
{
672670
const QgsDiagramLayerSettings *dls = vlayer->diagramLayerSettings();

‎src/app/qgsmaptoollabel.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ class APP_EXPORT QgsMapToolLabel: public QgsMapTool
5252
/** Returns true if layer has attribute field set up for diagrams
5353
@param showCol out: attribute column for data defined diagram showing
5454
@note added in QGIS 2.16 */
55-
bool diagramCanShowHide( QgsMapLayer* layer, int& showCol ) const;
55+
bool diagramCanShowHide( QgsVectorLayer* vlayer, int& showCol ) const;
5656
/** Returns true if layer has attribute field set up
5757
@param showCol out: attribute column for data defined label showing*/
5858
bool labelCanShowHide( QgsVectorLayer* vlayer, int& showCol ) const;

‎src/app/qgsmaptoolpinlabels.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -187,6 +187,8 @@ void QgsMapToolPinLabels::highlightPinnedLabels()
187187
{
188188
const QgsLabelPosition& pos = *it;
189189

190+
mCurrentLabel = LabelDetails( pos );
191+
190192
if ( isPinned() )
191193
{
192194
QString labelStringID = QString( "%0|%1|%2" ).arg( QString::number( pos.isDiagram ), pos.layerID, QString::number( pos.featureId ) );
@@ -445,6 +447,7 @@ bool QgsMapToolPinLabels::pinUnpinCurrentDiagram( bool pin )
445447
return false;
446448

447449
// edit attribute table
450+
QgsVectorLayer* vlayer = mCurrentLabel.layer;
448451
int fid = mCurrentLabel.pos.featureId;
449452

450453
bool writeFailed = false;

‎src/app/qgsmaptoolshowhidelabels.cpp

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -130,24 +130,26 @@ void QgsMapToolShowHideLabels::showHideLabels( QMouseEvent * e )
130130
QgsFeatureIds selectedFeatIds;
131131
if ( !selectedFeatures( vlayer, selectedFeatIds ) )
132132
{
133+
vlayer->destroyEditCommand();
133134
return;
134135
}
135136

136137
QgsDebugMsg( "Number of selected labels or features: " + QString::number( selectedFeatIds.size() ) );
137138

138139
if ( selectedFeatIds.isEmpty() )
139140
{
141+
vlayer->destroyEditCommand();
140142
return;
141143
}
142144

143145
Q_FOREACH ( QgsFeatureId fid, selectedFeatIds )
144146
{
145-
mCurrentLabelPos.featureId = fid;
147+
mCurrentLabel.pos.featureId = fid;
146148

147-
mCurrentLabelPos.isDiagram = false;
149+
mCurrentLabel.pos.isDiagram = false;
148150
bool labChanged = showHide( vlayer, true );
149151

150-
mCurrentLabelPos.isDiagram = true;
152+
mCurrentLabel.pos.isDiagram = true;
151153
bool diagChanged = showHide( vlayer, true );
152154

153155
if ( labChanged || diagChanged )
@@ -166,7 +168,7 @@ void QgsMapToolShowHideLabels::showHideLabels( QMouseEvent * e )
166168
{
167169
Q_FOREACH ( QgsLabelPosition pos, positions )
168170
{
169-
mCurrentLabelPos = pos;
171+
mCurrentLabel.pos = pos;
170172

171173
if ( showHide( vlayer, false ) )
172174
labelChanged = labelChanged || true;
@@ -280,7 +282,7 @@ bool QgsMapToolShowHideLabels::showHide( QgsVectorLayer *vl, const bool show )
280282
int showCol;
281283
int showVal;
282284

283-
if ( !dataDefinedShowHide( vl, mCurrentLabelPos.featureId, showVal,
285+
if ( !dataDefinedShowHide( vl, mCurrentLabel.pos.featureId, showVal,
284286
showSuccess, showCol ) )
285287
{
286288
return false;
@@ -300,7 +302,7 @@ bool QgsMapToolShowHideLabels::showHide( QgsVectorLayer *vl, const bool show )
300302
}
301303

302304
// different attribute value, edit table
303-
if ( ! vl->changeAttributeValue( mCurrentLabelPos.featureId, showCol, show ) )
305+
if ( ! vl->changeAttributeValue( mCurrentLabel.pos.featureId, showCol, show ) )
304306
{
305307
QgsDebugMsg( "Failed write to attribute table" );
306308
return false;

‎tests/src/core/testqgslabelingenginev2.cpp

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,7 @@ void TestQgsLabelingEngineV2::testBasic()
127127

128128
QgsLabelingEngineV2 engine;
129129
engine.setMapSettings( mapSettings );
130-
engine.addProvider( new QgsVectorLayerLabelProvider( vl ) );
130+
engine.addProvider( new QgsVectorLayerLabelProvider( vl, QString() ) );
131131
//engine.setFlags( QgsLabelingEngineV2::RenderOutlineLabels | QgsLabelingEngineV2::DrawLabelRectOnly );
132132
engine.run( context );
133133

@@ -302,7 +302,7 @@ void TestQgsLabelingEngineV2::zOrder()
302302
pls1.setDataDefinedProperty( QgsPalLayerSettings::Color, true, true, "case when \"Class\"='Jet' then '#ff5500' when \"Class\"='B52' then '#00ffff' else '#ff00ff' end", QString() );
303303
pls1.setDataDefinedProperty( QgsPalLayerSettings::Size, true, true, "case when \"Class\"='Jet' then 100 when \"Class\"='B52' then 30 else 50 end", QString() );
304304

305-
QgsVectorLayerLabelProvider* provider1 = new QgsVectorLayerLabelProvider( vl, true, &pls1 );
305+
QgsVectorLayerLabelProvider* provider1 = new QgsVectorLayerLabelProvider( vl, QString(), true, &pls1 );
306306
QgsLabelingEngineV2 engine;
307307
engine.setMapSettings( mapSettings );
308308
engine.addProvider( provider1 );
@@ -318,7 +318,7 @@ void TestQgsLabelingEngineV2::zOrder()
318318

319319
//test data defined z-index
320320
pls1.setDataDefinedProperty( QgsPalLayerSettings::ZIndex, true, true, "case when \"Class\"='Jet' then 3 when \"Class\"='B52' then 1 else 2 end", QString() );
321-
provider1 = new QgsVectorLayerLabelProvider( vl, true, &pls1 );
321+
provider1 = new QgsVectorLayerLabelProvider( vl, QString(), true, &pls1 );
322322
engine.addProvider( provider1 );
323323
p.begin( &img );
324324
engine.run( context );
@@ -332,7 +332,7 @@ void TestQgsLabelingEngineV2::zOrder()
332332
pls1.removeAllDataDefinedProperties();
333333
pls1.textColor = QColor( 255, 50, 100 );
334334
pls1.textFont.setPointSizeF( 30 );
335-
provider1 = new QgsVectorLayerLabelProvider( vl, true, &pls1 );
335+
provider1 = new QgsVectorLayerLabelProvider( vl, QString(), true, &pls1 );
336336
engine.addProvider( provider1 );
337337

338338
//add a second layer
@@ -343,7 +343,7 @@ void TestQgsLabelingEngineV2::zOrder()
343343

344344
QgsPalLayerSettings pls2( pls1 );
345345
pls2.textColor = QColor( 0, 0, 0 );
346-
QgsVectorLayerLabelProvider* provider2 = new QgsVectorLayerLabelProvider( vl2, true, &pls2 );
346+
QgsVectorLayerLabelProvider* provider2 = new QgsVectorLayerLabelProvider( vl2, QString(), true, &pls2 );
347347
engine.addProvider( provider2 );
348348

349349
mapSettings.setLayers( QStringList() << vl->id() << vl2->id() );
@@ -371,7 +371,7 @@ void TestQgsLabelingEngineV2::zOrder()
371371
//try mixing layer order and z-index
372372
engine.removeProvider( provider1 );
373373
pls1.setDataDefinedProperty( QgsPalLayerSettings::ZIndex, true, true, "if(\"Class\"='Jet',3,0)", QString() );
374-
provider1 = new QgsVectorLayerLabelProvider( vl, true, &pls1 );
374+
provider1 = new QgsVectorLayerLabelProvider( vl, QString(), true, &pls1 );
375375
engine.addProvider( provider1 );
376376

377377
p.begin( &img );

0 commit comments

Comments
 (0)
Please sign in to comment.