From 590929dfac2a93024d8d039d365e7713d9ddee26 Mon Sep 17 00:00:00 2001 From: Marco Hugentobler Date: Thu, 26 Jul 2012 11:37:48 +0200 Subject: [PATCH] Add signal / slot for adding composer html --- src/app/composer/qgscomposer.cpp | 10 ++++++++++ src/app/composer/qgscomposer.h | 3 +++ src/core/composer/qgscomposermultiframe.cpp | 13 ++++++++++++- src/core/composer/qgscomposermultiframe.h | 1 + src/core/composer/qgscomposition.cpp | 6 ++++++ src/core/composer/qgscomposition.h | 5 +++++ 6 files changed, 37 insertions(+), 1 deletion(-) diff --git a/src/app/composer/qgscomposer.cpp b/src/app/composer/qgscomposer.cpp index c99ae6fe8a1..381d1f62c06 100644 --- a/src/app/composer/qgscomposer.cpp +++ b/src/app/composer/qgscomposer.cpp @@ -1337,6 +1337,16 @@ void QgsComposer::addComposerTable( QgsComposerAttributeTable* table ) mItemWidgetMap.insert( table, tWidget ); } +void QgsComposer::addComposerHtml( QgsComposerHtml* html ) +{ + if ( !html ) + { + return; + } + + //todo: create html widget and create entry for each frame in the item/widget map +} + void QgsComposer::deleteItem( QgsComposerItem* item ) { QMap::iterator it = mItemWidgetMap.find( item ); diff --git a/src/app/composer/qgscomposer.h b/src/app/composer/qgscomposer.h index d77ba3c3bbf..9c78a8f6980 100644 --- a/src/app/composer/qgscomposer.h +++ b/src/app/composer/qgscomposer.h @@ -246,6 +246,9 @@ class QgsComposer: public QMainWindow, private Ui::QgsComposerBase /**Adds a composer table to the item/widget map and creates a configuration widget*/ void addComposerTable( QgsComposerAttributeTable* table ); + /**Adds composer html and creates a configuration widget*/ + void addComposerHtml( QgsComposerHtml* html ); + /**Removes item from the item/widget map and deletes the configuration widget. Does not delete the item itself*/ void deleteItem( QgsComposerItem* item ); diff --git a/src/core/composer/qgscomposermultiframe.cpp b/src/core/composer/qgscomposermultiframe.cpp index ba12f7ef572..e68e6e438fc 100644 --- a/src/core/composer/qgscomposermultiframe.cpp +++ b/src/core/composer/qgscomposermultiframe.cpp @@ -93,7 +93,7 @@ void QgsComposerMultiFrame::addFrame( QgsComposerFrame* frame ) { mFrameItems.push_back( frame ); QObject::connect( frame, SIGNAL( sizeChanged() ), this, SLOT( recalculateFrameSizes() ) ); - QObject::connect( frame, SIGNAL( destroyed() ), this, SLOT( recalculateFrameSizes() ) ); +// QObject::connect( frame, SIGNAL( destroyed( QObject* ) ), this, SLOT( removeFrame( QObject* ) ) ); if ( mComposition ) { mComposition->addItem( frame ); @@ -109,3 +109,14 @@ void QgsComposerMultiFrame::removeFrame( int i ) } mFrameItems.removeAt( i ); } + +/* +void QgsComposerMultiFrame::removeFrame( QObject* frame ) +{ + QgsComposerFrame* composerFrame = dynamic_cast( frame ); + if( composerFrame ) + { + removeFrame( mFrameItems.indexOf( composerFrame ) ); + recalculateFrameSizes(); + } +}*/ diff --git a/src/core/composer/qgscomposermultiframe.h b/src/core/composer/qgscomposermultiframe.h index 8f5b63f351f..ee41e8ebb93 100644 --- a/src/core/composer/qgscomposermultiframe.h +++ b/src/core/composer/qgscomposermultiframe.h @@ -54,6 +54,7 @@ class QgsComposerMultiFrame: public QObject protected slots: void recalculateFrameSizes(); + //void removeFrame( QObject* frame ); private: QgsComposerMultiFrame(); //forbidden diff --git a/src/core/composer/qgscomposition.cpp b/src/core/composer/qgscomposition.cpp index 64a71461f27..d3ea5b74c6b 100644 --- a/src/core/composer/qgscomposition.cpp +++ b/src/core/composer/qgscomposition.cpp @@ -1096,6 +1096,12 @@ void QgsComposition::addComposerTable( QgsComposerAttributeTable* table ) emit selectedItemChanged( table ); } +void QgsComposition::addComposerHtml( QgsComposerHtml* html ) +{ + emit composerHtmlAdded( html ); + clearSelection(); +} + void QgsComposition::removeComposerItem( QgsComposerItem* item ) { QgsComposerMap* map = dynamic_cast( item ); diff --git a/src/core/composer/qgscomposition.h b/src/core/composer/qgscomposition.h index 6bff95491a6..39c1a314a8e 100644 --- a/src/core/composer/qgscomposition.h +++ b/src/core/composer/qgscomposition.h @@ -31,6 +31,7 @@ class QGraphicsRectItem; class QgsMapRenderer; class QDomElement; class QgsComposerArrow; +class QgsComposerHtml; class QgsComposerItem; class QgsComposerLabel; class QgsComposerLegend; @@ -214,6 +215,8 @@ class CORE_EXPORT QgsComposition: public QGraphicsScene void addComposerShape( QgsComposerShape* shape ); /**Adds a composer table to the graphics scene and advices composer to create a widget for it (through signal)*/ void addComposerTable( QgsComposerAttributeTable* table ); + /**Adds composer html and advices composer to create a widget for it (through signal)*/ + void addComposerHtml( QgsComposerHtml* html ); /**Remove item from the graphics scene. Additionally to QGraphicsScene::removeItem, this function considers undo/redo command*/ void removeComposerItem( QgsComposerItem* item ); @@ -298,6 +301,8 @@ class CORE_EXPORT QgsComposition: public QGraphicsScene void selectedItemChanged( QgsComposerItem* selected ); /**Is emitted when new composer arrow has been added to the view*/ void composerArrowAdded( QgsComposerArrow* arrow ); + /**Is emitted when a new composer html has been added to the view*/ + void composerHtmlAdded( QgsComposerHtml* html ); /**Is emitted when new composer label has been added to the view*/ void composerLabelAdded( QgsComposerLabel* label ); /**Is emitted when new composer map has been added to the view*/