diff --git a/python/core/composer/qgscomposerframe.sip b/python/core/composer/qgscomposerframe.sip index 52a6e8d2248..2827ad1618d 100644 --- a/python/core/composer/qgscomposerframe.sip +++ b/python/core/composer/qgscomposerframe.sip @@ -23,4 +23,7 @@ class QgsComposerFrame: QgsComposerItem int type() const; QgsComposerMultiFrame* multiFrame() const; + + //Overriden to allow multiframe to set display name + virtual QString displayName() const; }; diff --git a/python/core/composer/qgscomposerhtml.sip b/python/core/composer/qgscomposerhtml.sip index 1c2bf2bc415..feaf89f595c 100644 --- a/python/core/composer/qgscomposerhtml.sip +++ b/python/core/composer/qgscomposerhtml.sip @@ -181,6 +181,8 @@ class QgsComposerHtml: QgsComposerMultiFrame * @note added in 2.5 */ bool userStylesheetEnabled() const; + + virtual QString displayName() const; public slots: diff --git a/python/core/composer/qgscomposermap.sip b/python/core/composer/qgscomposermap.sip index 2340bd57a02..10fae4df504 100644 --- a/python/core/composer/qgscomposermap.sip +++ b/python/core/composer/qgscomposermap.sip @@ -494,6 +494,9 @@ class QgsComposerMap : QgsComposerItem * @see currentMapExtent */ QPolygonF visibleExtentPolygon() const; + + //overriden to show "Map 1" type names + virtual QString displayName() const; signals: void extentChanged(); diff --git a/python/core/composer/qgscomposermultiframe.sip b/python/core/composer/qgscomposermultiframe.sip index afb55172a37..49438d64c06 100644 --- a/python/core/composer/qgscomposermultiframe.sip +++ b/python/core/composer/qgscomposermultiframe.sip @@ -67,6 +67,12 @@ class QgsComposerMultiFrame: QgsComposerObject */ QgsComposerFrame* createNewFrame( QgsComposerFrame* currentFrame, QPointF pos, QSizeF size ); + /**Get multiframe display name. + * @returns display name for item + * @note added in version 2.5 + */ + virtual QString displayName() const; + public slots: /**Recalculates the portion of the multiframe item which is shown in each of it's diff --git a/src/core/composer/qgscomposerframe.cpp b/src/core/composer/qgscomposerframe.cpp index 895d335d3da..7214ae4f16f 100644 --- a/src/core/composer/qgscomposerframe.cpp +++ b/src/core/composer/qgscomposerframe.cpp @@ -62,6 +62,21 @@ bool QgsComposerFrame::readXML( const QDomElement& itemElem, const QDomDocument& return _readXML( composerItem, doc ); } +QString QgsComposerFrame::displayName() const +{ + if ( !id().isEmpty() ) + { + return id(); + } + + if ( mMultiFrame ) + { + return mMultiFrame->displayName(); + } + + return tr( "" ); +} + void QgsComposerFrame::paint( QPainter* painter, const QStyleOptionGraphicsItem* itemStyle, QWidget* pWidget ) { Q_UNUSED( itemStyle ); diff --git a/src/core/composer/qgscomposerframe.h b/src/core/composer/qgscomposerframe.h index 22af290301f..6a466e06a23 100644 --- a/src/core/composer/qgscomposerframe.h +++ b/src/core/composer/qgscomposerframe.h @@ -43,6 +43,9 @@ class CORE_EXPORT QgsComposerFrame: public QgsComposerItem QgsComposerMultiFrame* multiFrame() const { return mMultiFrame; } + //Overriden to allow multiframe to set display name + virtual QString displayName() const; + private: QgsComposerFrame(); //forbidden QgsComposerMultiFrame* mMultiFrame; diff --git a/src/core/composer/qgscomposerhtml.cpp b/src/core/composer/qgscomposerhtml.cpp index 02208594722..17b4c4c8a69 100644 --- a/src/core/composer/qgscomposerhtml.cpp +++ b/src/core/composer/qgscomposerhtml.cpp @@ -441,6 +441,11 @@ void QgsComposerHtml::setUserStylesheetEnabled( const bool stylesheetEnabled ) } } +QString QgsComposerHtml::displayName() const +{ + return tr( "" ); +} + bool QgsComposerHtml::writeXML( QDomElement& elem, QDomDocument & doc, bool ignoreFrames ) const { QDomElement htmlElem = doc.createElement( "ComposerHtml" ); diff --git a/src/core/composer/qgscomposerhtml.h b/src/core/composer/qgscomposerhtml.h index b2213d1e130..21b2881c548 100644 --- a/src/core/composer/qgscomposerhtml.h +++ b/src/core/composer/qgscomposerhtml.h @@ -205,6 +205,8 @@ class CORE_EXPORT QgsComposerHtml: public QgsComposerMultiFrame */ bool userStylesheetEnabled() const { return mEnableUserStylesheet; } + virtual QString displayName() const; + public slots: /**Reloads the html source from the url and redraws the item. diff --git a/src/core/composer/qgscomposerlabel.cpp b/src/core/composer/qgscomposerlabel.cpp index 933cac1b228..4c55efc4459 100644 --- a/src/core/composer/qgscomposerlabel.cpp +++ b/src/core/composer/qgscomposerlabel.cpp @@ -391,6 +391,10 @@ QString QgsComposerLabel::displayName() const //if no id, default to portion of label text QString text = displayText(); + if ( text.isEmpty() || mHtmlState ) + { + return tr( "