@@ -177,6 +177,8 @@ QgsComposer::QgsComposer( QgisApp *qgis, const QString& title )
177
177
mActionSmartGuides ->setCheckable ( true );
178
178
mActionShowRulers ->setCheckable ( true );
179
179
180
+ mActionAtlasPreview ->setCheckable ( true );
181
+
180
182
#ifdef Q_WS_MAC
181
183
mActionQuit ->setText ( tr ( " Close" ) );
182
184
mActionQuit ->setShortcut ( QKeySequence::Close );
@@ -467,6 +469,14 @@ QgsComposer::QgsComposer( QgisApp *qgis, const QString& title )
467
469
468
470
mGeneralDock ->raise ();
469
471
472
+ // set initial state of atlas controls
473
+ mActionAtlasPreview ->setEnabled ( false );
474
+ mActionAtlasPreview ->setChecked ( false );
475
+ mActionAtlasFirst ->setEnabled ( false );
476
+ mActionAtlasLast ->setEnabled ( false );
477
+ mActionAtlasNext ->setEnabled ( false );
478
+ mActionAtlasPrev ->setEnabled ( false );
479
+
470
480
// Create size grip (needed by Mac OS X for QMainWindow if QStatusBar is not visible)
471
481
// should not be needed now that composer has a status bar?
472
482
#if 0
@@ -754,6 +764,92 @@ void QgsComposer::on_mActionOptions_triggered()
754
764
mQgis ->showOptionsDialog ( this , QString ( " mOptionsPageComposer" ) );
755
765
}
756
766
767
+ void QgsComposer::toggleAtlasControls ( bool atlasEnabled )
768
+ {
769
+ // preview defaults to unchecked
770
+ mActionAtlasPreview ->setChecked ( false );
771
+ mActionAtlasPreview ->setEnabled ( atlasEnabled );
772
+ }
773
+
774
+ void QgsComposer::on_mActionAtlasPreview_triggered ( bool checked )
775
+ {
776
+ QgsAtlasComposition* atlasMap = &mComposition ->atlasComposition ();
777
+
778
+ // check if composition has an atlas map enabled
779
+ if ( checked && !atlasMap->enabled () )
780
+ {
781
+ // no atlas current enabled
782
+ QMessageBox::warning ( 0 , tr ( " Enable atlas preview" ),
783
+ tr ( " Atlas in not currently enabled for this composition!" ),
784
+ QMessageBox::Ok,
785
+ QMessageBox::Ok );
786
+ mActionAtlasPreview ->blockSignals ( true );
787
+ mActionAtlasPreview ->setChecked ( false );
788
+ mActionAtlasPreview ->blockSignals ( false );
789
+ return ;
790
+ }
791
+
792
+ // toggle other controls depending on whether atlas preview is active
793
+ mActionAtlasFirst ->setEnabled ( checked );
794
+ mActionAtlasLast ->setEnabled ( checked );
795
+ mActionAtlasNext ->setEnabled ( checked );
796
+ mActionAtlasPrev ->setEnabled ( checked );
797
+
798
+ mComposition ->setAtlasPreviewEnabled ( checked );
799
+ if ( checked )
800
+ {
801
+ atlasMap->firstFeature ();
802
+ }
803
+
804
+ }
805
+
806
+
807
+ void QgsComposer::on_mActionAtlasNext_triggered ()
808
+ {
809
+ QgsAtlasComposition* atlasMap = &mComposition ->atlasComposition ();
810
+ if ( !atlasMap->enabled () )
811
+ {
812
+ return ;
813
+ }
814
+
815
+ atlasMap->nextFeature ();
816
+
817
+ }
818
+
819
+ void QgsComposer::on_mActionAtlasPrev_triggered ()
820
+ {
821
+ QgsAtlasComposition* atlasMap = &mComposition ->atlasComposition ();
822
+ if ( !atlasMap->enabled () )
823
+ {
824
+ return ;
825
+ }
826
+
827
+ atlasMap->prevFeature ();
828
+
829
+ }
830
+
831
+ void QgsComposer::on_mActionAtlasFirst_triggered ()
832
+ {
833
+ QgsAtlasComposition* atlasMap = &mComposition ->atlasComposition ();
834
+ if ( !atlasMap->enabled () )
835
+ {
836
+ return ;
837
+ }
838
+
839
+ atlasMap->firstFeature ();
840
+ }
841
+
842
+ void QgsComposer::on_mActionAtlasLast_triggered ()
843
+ {
844
+ QgsAtlasComposition* atlasMap = &mComposition ->atlasComposition ();
845
+ if ( !atlasMap->enabled () )
846
+ {
847
+ return ;
848
+ }
849
+
850
+ atlasMap->lastFeature ();
851
+ }
852
+
757
853
QgsMapCanvas *QgsComposer::mapCanvas ( void )
758
854
{
759
855
return mQgis ->mapCanvas ();
@@ -2356,6 +2452,16 @@ void QgsComposer::readXML( const QDomElement& composerElem, const QDomDocument&
2356
2452
2357
2453
mComposition ->atlasComposition ().readXML ( atlasNodeList.at ( 0 ).toElement (), doc );
2358
2454
2455
+ // set state of atlas controls
2456
+ QgsAtlasComposition* atlasMap = &mComposition ->atlasComposition ();
2457
+ mActionAtlasPreview ->setEnabled ( atlasMap->enabled () );
2458
+ mActionAtlasPreview ->setChecked ( false );
2459
+ mActionAtlasFirst ->setEnabled ( false );
2460
+ mActionAtlasLast ->setEnabled ( false );
2461
+ mActionAtlasNext ->setEnabled ( false );
2462
+ mActionAtlasPrev ->setEnabled ( false );
2463
+ connect ( atlasMap, SIGNAL ( toggled ( bool ) ), this , SLOT ( toggleAtlasControls ( bool ) ) );
2464
+
2359
2465
setSelectionTool ();
2360
2466
}
2361
2467
0 commit comments