@@ -61,6 +61,7 @@ QgsComposerMapWidget::QgsComposerMapWidget( QgsComposerMap* composerMap ): QgsCo
61
61
62
62
mGridTypeComboBox ->insertItem ( 0 , tr ( " Solid" ) );
63
63
mGridTypeComboBox ->insertItem ( 1 , tr ( " Cross" ) );
64
+ mGridTypeComboBox ->insertItem ( 2 , tr ( " Markers" ) );
64
65
65
66
mAnnotationFormatComboBox ->insertItem ( 0 , tr ( " Decimal" ) );
66
67
mAnnotationFormatComboBox ->insertItem ( 1 , tr ( " DegreeMinute" ) );
@@ -1006,15 +1007,6 @@ void QgsComposerMapWidget::updateOverviewSymbolMarker()
1006
1007
}
1007
1008
}
1008
1009
1009
- void QgsComposerMapWidget::updateLineSymbolMarker ()
1010
- {
1011
- if ( mComposerMap )
1012
- {
1013
- QIcon icon = QgsSymbolLayerV2Utils::symbolPreviewIcon ( mComposerMap ->gridLineSymbol (), mGridLineStyleButton ->iconSize () );
1014
- mGridLineStyleButton ->setIcon ( icon );
1015
- }
1016
- }
1017
-
1018
1010
void QgsComposerMapWidget::refreshMapComboBox ()
1019
1011
{
1020
1012
if ( !mComposerMap )
@@ -1287,17 +1279,35 @@ void QgsComposerMapWidget::setGridItems( const QgsComposerMapGrid* grid )
1287
1279
mGridFrameFill2ColorButton ->setColor ( grid->gridFrameFillColor2 () );
1288
1280
1289
1281
QgsComposerMap::GridStyle gridStyle = grid->gridStyle ();
1290
- if ( gridStyle == QgsComposerMap::Cross )
1291
- {
1292
- mGridTypeComboBox ->setCurrentIndex ( mGridTypeComboBox ->findText ( tr ( " Cross" ) ) );
1293
- mCrossWidthSpinBox ->setEnabled ( true );
1294
- mCrossWidthLabel ->setEnabled ( true );
1295
- }
1296
- else
1297
- {
1298
- mGridTypeComboBox ->setCurrentIndex ( mGridTypeComboBox ->findText ( tr ( " Solid" ) ) );
1299
- mCrossWidthSpinBox ->setEnabled ( false );
1300
- mCrossWidthLabel ->setEnabled ( false );
1282
+ switch ( gridStyle )
1283
+ {
1284
+ case QgsComposerMap::Cross:
1285
+ mGridTypeComboBox ->setCurrentIndex ( mGridTypeComboBox ->findText ( tr ( " Cross" ) ) );
1286
+ mCrossWidthSpinBox ->setVisible ( true );
1287
+ mCrossWidthLabel ->setVisible ( true );
1288
+ mGridLineStyleButton ->setVisible ( true );
1289
+ mLineStyleLabel ->setVisible ( true );
1290
+ mGridMarkerStyleButton ->setVisible ( false );
1291
+ mMarkerStyleLabel ->setVisible ( false );
1292
+ break ;
1293
+ case QgsComposerMap::Markers:
1294
+ mGridTypeComboBox ->setCurrentIndex ( mGridTypeComboBox ->findText ( tr ( " Markers" ) ) );
1295
+ mCrossWidthSpinBox ->setVisible ( false );
1296
+ mCrossWidthLabel ->setVisible ( false );
1297
+ mGridLineStyleButton ->setVisible ( false );
1298
+ mLineStyleLabel ->setVisible ( false );
1299
+ mGridMarkerStyleButton ->setVisible ( true );
1300
+ mMarkerStyleLabel ->setVisible ( true );
1301
+ break ;
1302
+ case QgsComposerMap::Solid:
1303
+ mGridTypeComboBox ->setCurrentIndex ( mGridTypeComboBox ->findText ( tr ( " Solid" ) ) );
1304
+ mCrossWidthSpinBox ->setVisible ( false );
1305
+ mCrossWidthLabel ->setVisible ( false );
1306
+ mGridLineStyleButton ->setVisible ( true );
1307
+ mLineStyleLabel ->setVisible ( true );
1308
+ mGridMarkerStyleButton ->setVisible ( false );
1309
+ mMarkerStyleLabel ->setVisible ( false );
1310
+ break ;
1301
1311
}
1302
1312
1303
1313
// grid frame
@@ -1315,7 +1325,9 @@ void QgsComposerMapWidget::setGridItems( const QgsComposerMapGrid* grid )
1315
1325
}
1316
1326
1317
1327
// line style
1318
- updateLineSymbolMarker ( grid );
1328
+ updateGridLineSymbolMarker ( grid );
1329
+ // marker style
1330
+ updateGridMarkerSymbolMarker ( grid );
1319
1331
1320
1332
mGridBlendComboBox ->setBlendMode ( grid->blendMode () );
1321
1333
@@ -1361,7 +1373,7 @@ void QgsComposerMapWidget::setGridItems( const QgsComposerMapGrid* grid )
1361
1373
blockGridItemsSignals ( false );
1362
1374
}
1363
1375
1364
- void QgsComposerMapWidget::updateLineSymbolMarker ( const QgsComposerMapGrid* grid )
1376
+ void QgsComposerMapWidget::updateGridLineSymbolMarker ( const QgsComposerMapGrid* grid )
1365
1377
{
1366
1378
if ( grid )
1367
1379
{
@@ -1371,6 +1383,16 @@ void QgsComposerMapWidget::updateLineSymbolMarker( const QgsComposerMapGrid* gri
1371
1383
}
1372
1384
}
1373
1385
1386
+ void QgsComposerMapWidget::updateGridMarkerSymbolMarker ( const QgsComposerMapGrid *grid )
1387
+ {
1388
+ if ( grid )
1389
+ {
1390
+ QgsMarkerSymbolV2* nonConstSymbol = const_cast <QgsMarkerSymbolV2*>( grid->gridMarkerSymbol () ); // bad
1391
+ QIcon icon = QgsSymbolLayerV2Utils::symbolPreviewIcon ( nonConstSymbol, mGridMarkerStyleButton ->iconSize () );
1392
+ mGridMarkerStyleButton ->setIcon ( icon );
1393
+ }
1394
+ }
1395
+
1374
1396
void QgsComposerMapWidget::on_mGridLineStyleButton_clicked ()
1375
1397
{
1376
1398
QgsComposerMapGrid* grid = currentGrid ();
@@ -1386,7 +1408,32 @@ void QgsComposerMapWidget::on_mGridLineStyleButton_clicked()
1386
1408
{
1387
1409
mComposerMap ->beginCommand ( tr ( " Grid line style changed" ) );
1388
1410
grid->setGridLineSymbol ( newSymbol );
1389
- updateLineSymbolMarker ();
1411
+ updateGridLineSymbolMarker ( grid );
1412
+ mComposerMap ->endCommand ();
1413
+ mComposerMap ->update ();
1414
+ }
1415
+ else
1416
+ {
1417
+ delete newSymbol;
1418
+ }
1419
+ }
1420
+
1421
+ void QgsComposerMapWidget::on_mGridMarkerStyleButton_clicked ()
1422
+ {
1423
+ QgsComposerMapGrid* grid = currentGrid ();
1424
+ if ( !grid )
1425
+ {
1426
+ return ;
1427
+ }
1428
+
1429
+ QgsMarkerSymbolV2* newSymbol = dynamic_cast <QgsMarkerSymbolV2*>( grid->gridMarkerSymbol ()->clone () );
1430
+ QgsSymbolV2SelectorDialog d ( newSymbol, QgsStyleV2::defaultStyle (), 0 );
1431
+
1432
+ if ( d.exec () == QDialog::Accepted )
1433
+ {
1434
+ mComposerMap ->beginCommand ( tr ( " Grid markers style changed" ) );
1435
+ grid->setGridMarkerSymbol ( newSymbol );
1436
+ updateGridMarkerSymbolMarker ( grid );
1390
1437
mComposerMap ->endCommand ();
1391
1438
mComposerMap ->update ();
1392
1439
}
@@ -1617,14 +1664,32 @@ void QgsComposerMapWidget::on_mGridTypeComboBox_currentIndexChanged( const QStri
1617
1664
if ( text == tr ( " Cross" ) )
1618
1665
{
1619
1666
grid->setGridStyle ( QgsComposerMap::Cross );
1620
- mCrossWidthSpinBox ->setEnabled ( true );
1621
- mCrossWidthLabel ->setEnabled ( true );
1667
+ mCrossWidthSpinBox ->setVisible ( true );
1668
+ mCrossWidthLabel ->setVisible ( true );
1669
+ mGridLineStyleButton ->setVisible ( true );
1670
+ mLineStyleLabel ->setVisible ( true );
1671
+ mGridMarkerStyleButton ->setVisible ( false );
1672
+ mMarkerStyleLabel ->setVisible ( false );
1673
+ }
1674
+ else if ( text == tr ( " Markers" ) )
1675
+ {
1676
+ grid->setGridStyle ( QgsComposerMap::Markers );
1677
+ mCrossWidthSpinBox ->setVisible ( false );
1678
+ mCrossWidthLabel ->setVisible ( false );
1679
+ mGridLineStyleButton ->setVisible ( false );
1680
+ mLineStyleLabel ->setVisible ( false );
1681
+ mGridMarkerStyleButton ->setVisible ( true );
1682
+ mMarkerStyleLabel ->setVisible ( true );
1622
1683
}
1623
1684
else
1624
1685
{
1625
1686
grid->setGridStyle ( QgsComposerMap::Solid );
1626
- mCrossWidthSpinBox ->setEnabled ( false );
1627
- mCrossWidthLabel ->setEnabled ( false );
1687
+ mCrossWidthSpinBox ->setVisible ( false );
1688
+ mCrossWidthLabel ->setVisible ( false );
1689
+ mGridLineStyleButton ->setVisible ( true );
1690
+ mLineStyleLabel ->setVisible ( true );
1691
+ mGridMarkerStyleButton ->setVisible ( false );
1692
+ mMarkerStyleLabel ->setVisible ( false );
1628
1693
}
1629
1694
mComposerMap ->update ();
1630
1695
mComposerMap ->endCommand ();
0 commit comments