Showing with 24 additions and 0 deletions.
  1. +15 −0 src/app/composer/qgscomposer.cpp
  2. +4 −0 src/app/composer/qgscomposer.h
  3. +5 −0 src/app/composer/qgscomposermanager.cpp
15 changes: 15 additions & 0 deletions src/app/composer/qgscomposer.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,14 @@ QgsComposer::QgsComposer( QgisApp *qgis, const QString& title )
int size = settings.value( "/IconSize", QGIS_ICON_SIZE ).toInt();
setIconSize( QSize( size, size ) );

// ability to save parent project from composer
mSaveProjectAction = QgisApp::instance()->actionSaveProject();
QToolButton* saveProjectToolButton = new QToolButton( this );
saveProjectToolButton->addAction( mSaveProjectAction );
saveProjectToolButton->setDefaultAction( mSaveProjectAction );
toolBar->insertWidget( mActionLoadFromTemplate, saveProjectToolButton );
toolBar->insertSeparator( mActionLoadFromTemplate );

QToolButton* orderingToolButton = new QToolButton( this );
orderingToolButton->setPopupMode( QToolButton::InstantPopup );
orderingToolButton->setAutoRaise( true );
Expand Down Expand Up @@ -162,6 +170,8 @@ QgsComposer::QgsComposer( QgisApp *qgis, const QString& title )
#endif

QMenu *fileMenu = menuBar()->addMenu( tr( "File" ) );
fileMenu->addAction( mSaveProjectAction );
fileMenu->addSeparator();
fileMenu->addAction( mActionLoadFromTemplate );
fileMenu->addAction( mActionSaveAsTemplate );
fileMenu->addSeparator();
Expand Down Expand Up @@ -435,10 +445,15 @@ void QgsComposer::open( void )

void QgsComposer::activate()
{
bool shown = isVisible();
show();
raise();
setWindowState( windowState() & ~Qt::WindowMinimized );
activateWindow();
if ( !shown )
{
on_mActionZoomAll_triggered();
}
}

#ifdef Q_WS_MAC
Expand Down
4 changes: 4 additions & 0 deletions src/app/composer/qgscomposer.h
Original file line number Diff line number Diff line change
Expand Up @@ -346,6 +346,10 @@ class QgsComposer: public QMainWindow, private Ui::QgsComposerBase

QMenu* mPanelMenu;
QMenu* mToolbarMenu;

//! Save parent Project action
//! @note added in 1.9
QAction *mSaveProjectAction;
};

#endif
5 changes: 5 additions & 0 deletions src/app/composer/qgscomposermanager.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -172,11 +172,16 @@ void QgsComposerManager::show_clicked()
c = it.value();
if ( c )
{
bool shown = isVisible();
c->show();
c->activate();
c->stackUnder( this );
raise();
activateWindow();
if ( !shown )
{
c->on_mActionZoomAll_triggered();
}
}
}
}
Expand Down