Skip to content

Commit bcb2211

Browse files
author
mhugent
committed
Notify plugins if a composer has been added or removed
git-svn-id: http://svn.osgeo.org/qgis/trunk@12372 c8812cc2-4d05-0410-92ff-de0c093fc19c
1 parent 71cf0ac commit bcb2211

File tree

5 files changed

+28
-3
lines changed

5 files changed

+28
-3
lines changed

python/gui/qgisinterface.sip

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -246,5 +246,13 @@ class QgisInterface : QObject
246246
*/
247247
void currentLayerChanged ( QgsMapLayer * layer );
248248

249+
/**This signal is emitted when a new composer instance has been created
250+
@note added in version 1.4*/
251+
void composerAdded( QgsComposerView* v );
252+
253+
/**This signal is emitted before a new composer instance is going to be removed
254+
@note added in version 1.4*/
255+
void composerWillBeRemoved( QgsComposerView* v );
256+
249257
};
250258

src/app/qgisapp.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3633,11 +3633,13 @@ QgsComposer* QgisApp::createNewComposer()
36333633
//and place action into print composers menu
36343634
mPrintComposersMenu->addAction( newComposerObject->windowAction() );
36353635
newComposerObject->open();
3636+
emit composerAdded(newComposerObject->view());
36363637
return newComposerObject;
36373638
}
36383639

36393640
void QgisApp::deleteComposer( QgsComposer* c )
36403641
{
3642+
emit composerWillBeRemoved(c->view());
36413643
mPrintComposers.remove( c );
36423644
mPrintComposersMenu->removeAction( c->windowAction() );
36433645
delete c;

src/app/qgisapp.h

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ class QValidator;
4141
class QgisAppInterface;
4242
class QgsClipboard;
4343
class QgsComposer;
44+
class QgsComposerView;
4445
class QgsGeometry;
4546
class QgsHelpViewer;
4647
class QgsFeature;
@@ -669,6 +670,15 @@ class QgisApp : public QMainWindow
669670
*/
670671
void currentThemeChanged( QString );
671672

673+
/**This signal is emitted when a new composer instance has been created
674+
@note added in version 1.4*/
675+
void composerAdded( QgsComposerView* v );
676+
677+
/**This signal is emitted before a new composer instance is going to be removed
678+
@note added in version 1.4*/
679+
void composerWillBeRemoved( QgsComposerView* v );
680+
681+
672682
private:
673683
/** This method will open a dialog so the user can select the sublayers
674684
* to load

src/app/qgisappinterface.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,8 @@ QgisAppInterface::QgisAppInterface( QgisApp * _qgis )
3939
this, SIGNAL( currentLayerChanged( QgsMapLayer * ) ) );
4040
connect( qgis, SIGNAL( currentThemeChanged( QString ) ),
4141
this, SIGNAL( currentThemeChanged( QString ) ) );
42-
42+
connect( qgis, SIGNAL(composerAdded(QgsComposerView*)), this, SIGNAL(composerAdded( QgsComposerView* )));
43+
connect( qgis, SIGNAL(composerWillBeRemoved(QgsComposerView*)), this, SIGNAL(composerWillBeRemoved(QgsComposerView*)));
4344
}
4445

4546
QgisAppInterface::~QgisAppInterface()
@@ -211,7 +212,6 @@ bool QgisAppInterface::unregisterMainWindowAction( QAction* action )
211212
return QgsShortcutsManager::instance()->unregisterAction( action );
212213
}
213214

214-
215215
//! Menus
216216
QMenu *QgisAppInterface::fileMenu() { return qgis->fileMenu(); }
217217
QMenu *QgisAppInterface::editMenu() { return qgis->editMenu(); }

src/gui/qgisinterface.h

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -292,7 +292,12 @@ class GUI_EXPORT QgisInterface : public QObject
292292
* The pointer to layer can be null if no layer is selected
293293
*/
294294
void currentLayerChanged( QgsMapLayer * layer );
295-
295+
/**This signal is emitted when a new composer instance has been created
296+
@note added in version 1.4*/
297+
void composerAdded( QgsComposerView* v );
298+
/**This signal is emitted before a new composer instance is going to be removed
299+
@note added in version 1.4*/
300+
void composerWillBeRemoved( QgsComposerView* v );
296301
};
297302

298303
// FIXME: also in core/qgis.h

0 commit comments

Comments
 (0)