Skip to content

Commit 51edf52

Browse files
committed
Add Print Composers submenu to new Composer menu in composer
- Remove QgisApp::instance() usage in favor of already available passed in pointer to QgisApp
1 parent 0e9717b commit 51edf52

File tree

2 files changed

+33
-12
lines changed

2 files changed

+33
-12
lines changed

src/app/composer/qgscomposer.cpp

+23-11
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,7 @@
8080
QgsComposer::QgsComposer( QgisApp *qgis, const QString& title )
8181
: QMainWindow()
8282
, mTitle( title )
83+
, mQgis( qgis )
8384
, mUndoView( 0 )
8485
{
8586
setupUi( this );
@@ -88,13 +89,13 @@ QgsComposer::QgsComposer( QgisApp *qgis, const QString& title )
8889
connect( mButtonBox, SIGNAL( rejected() ), this, SLOT( close() ) );
8990

9091
QSettings settings;
91-
setStyleSheet( QgisApp::instance()->styleSheet() );
92+
setStyleSheet( mQgis->styleSheet() );
9293

9394
int size = settings.value( "/IconSize", QGIS_ICON_SIZE ).toInt();
9495
setIconSize( QSize( size, size ) );
9596

9697
// ability to save parent project from composer
97-
mSaveProjectAction = QgisApp::instance()->actionSaveProject();
98+
mSaveProjectAction = mQgis->actionSaveProject();
9899
QToolButton* saveProjectToolButton = new QToolButton( this );
99100
saveProjectToolButton->addAction( mSaveProjectAction );
100101
saveProjectToolButton->setDefaultAction( mSaveProjectAction );
@@ -165,15 +166,21 @@ QgsComposer::QgsComposer( QgisApp *qgis, const QString& title )
165166

166167
#ifdef Q_WS_MAC
167168
QMenu *appMenu = menuBar()->addMenu( tr( "QGIS" ) );
168-
appMenu->addAction( QgisApp::instance()->actionAbout() );
169-
appMenu->addAction( QgisApp::instance()->actionOptions() );
169+
appMenu->addAction( mQgis->actionAbout() );
170+
appMenu->addAction( mQgis->actionOptions() );
170171
#endif
171172

172173
QMenu *composerMenu = menuBar()->addMenu( tr( "Composer" ) );
173174
composerMenu->addAction( mSaveProjectAction );
174175
composerMenu->addSeparator();
175-
composerMenu->addAction( QgisApp::instance()->actionNewPrintComposer() );
176-
composerMenu->addAction( QgisApp::instance()->actionShowComposerManager() );
176+
composerMenu->addAction( mQgis->actionNewPrintComposer() );
177+
composerMenu->addAction( mQgis->actionShowComposerManager() );
178+
179+
mPrintComposersMenu = new QMenu( tr( "Print Composers" ), this );
180+
mPrintComposersMenu->setObjectName( "mPrintComposersMenu" );
181+
QObject::connect( mPrintComposersMenu, SIGNAL( aboutToShow() ), this, SLOT( populatePrintComposersMenu() ) );
182+
composerMenu->addMenu( mPrintComposersMenu );
183+
177184
composerMenu->addSeparator();
178185
composerMenu->addAction( mActionLoadFromTemplate );
179186
composerMenu->addAction( mActionSaveAsTemplate );
@@ -233,13 +240,12 @@ QgsComposer::QgsComposer( QgisApp *qgis, const QString& title )
233240

234241
#ifdef Q_WS_MAC
235242
#ifndef Q_WS_MAC64 /* assertion failure in NSMenuItem setSubmenu (Qt 4.5.0-snapshot-20080830) */
236-
menuBar()->addMenu( QgisApp::instance()->windowMenu() );
243+
menuBar()->addMenu( mQgis->windowMenu() );
237244

238-
menuBar()->addMenu( QgisApp::instance()->helpMenu() );
245+
menuBar()->addMenu( mQgis->helpMenu() );
239246
#endif
240247
#endif
241248

242-
mQgis = qgis;
243249
mFirstTime = true;
244250

245251
// Create action to select this window
@@ -914,7 +920,7 @@ void QgsComposer::on_mActionExportAsImage_triggered()
914920
dlg.setOption( QFileDialog::ShowDirsOnly, true );
915921

916922
//
917-
// Build an augmented FialeDialog with a combo box to select the output format
923+
// Build an augmented FileDialog with a combo box to select the output format
918924
QComboBox *box = new QComboBox();
919925
QHBoxLayout* hlayout = new QHBoxLayout();
920926
QWidget* widget = new QWidget();
@@ -1547,7 +1553,7 @@ void QgsComposer::showEvent( QShowEvent* event )
15471553
// add to menu if (re)opening window (event not due to unminimize)
15481554
if ( !event->spontaneous() )
15491555
{
1550-
QgisApp::instance()->addWindow( mWindowAction );
1556+
mQgis->addWindow( mWindowAction );
15511557
}
15521558
#endif
15531559
}
@@ -1986,3 +1992,9 @@ void QgsComposer::initialiseComposerPicturePreviews()
19861992
}
19871993
mPicturePreviews.clear();
19881994
}
1995+
1996+
void QgsComposer::populatePrintComposersMenu()
1997+
{
1998+
mPrintComposersMenu->clear();
1999+
mPrintComposersMenu->addActions( mQgis->printComposersMenu()->actions() );
2000+
}

src/app/composer/qgscomposer.h

+10-1
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,6 @@ class QgsComposer: public QMainWindow, private Ui::QgsComposerBase
108108
//!Composer deletes the old composerview when loading a template
109109
void composerWillBeRemoved( QgsComposerView* v );
110110

111-
112111
public slots:
113112
//! Zoom to full extent of the paper
114113
void on_mActionZoomAll_triggered();
@@ -346,6 +345,16 @@ class QgsComposer: public QMainWindow, private Ui::QgsComposerBase
346345
//! Save parent Project action
347346
//! @note added in 1.9
348347
QAction *mSaveProjectAction;
348+
349+
//! Print Composers menu as mirror of main app's
350+
//! @note added in 1.9
351+
QMenu* mPrintComposersMenu;
352+
353+
private slots:
354+
355+
//! Populate Print Composers menu from main app's
356+
//! @note added in 1.9
357+
void populatePrintComposersMenu();
349358
};
350359

351360
#endif

0 commit comments

Comments
 (0)