From 730ad812c876f61ea93e7cc5269ed739c08e5bcd Mon Sep 17 00:00:00 2001 From: mhugent Date: Fri, 19 Jun 2009 05:00:09 +0000 Subject: [PATCH] [FEATURE] possibility to display current date in composer label by typing (d 'June' yyyy) or similar git-svn-id: http://svn.osgeo.org/qgis/trunk@10956 c8812cc2-4d05-0410-92ff-de0c093fc19c --- src/core/composer/qgscomposerlabel.cpp | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/src/core/composer/qgscomposerlabel.cpp b/src/core/composer/qgscomposerlabel.cpp index cc6ba85408f7..b2f2c1b472be 100644 --- a/src/core/composer/qgscomposerlabel.cpp +++ b/src/core/composer/qgscomposerlabel.cpp @@ -16,6 +16,7 @@ ***************************************************************************/ #include "qgscomposerlabel.h" +#include #include #include @@ -58,7 +59,26 @@ void QgsComposerLabel::paint( QPainter* painter, const QStyleOptionGraphicsItem* void QgsComposerLabel::setText( const QString& text ) { + //replace '$CURRENT_DATE<(FORMAT)>' with the current date + //e.g. $CURRENT_DATE(d 'June' yyyy) mText = text; + int currentDatePos = mText.indexOf("$CURRENT_DATE"); + if(currentDatePos != -1) + { + //check if there is a bracket just after $CURRENT_DATE + QString formatText; + int openingBracketPos = mText.indexOf("(", currentDatePos); + int closingBracketPos = mText.indexOf(")", openingBracket + 1); + if(openingBracketPos != -1 && closingBracketPos != -1 && (closingBracketPos - openingBracketPos) > 1 ) + { + formatText = mText.mid(openingBracketPos + 1, closingBracketPos - openingBracketPos - 1); + mText.replace(currentDatePos, closingBracketPos - currentDatePos + 1, QDate::currentDate().toString(formatText)); + } + else //no bracket + { + mText.replace("$CURRENT_DATE", QDate::currentDate().toString()); + } + } } void QgsComposerLabel::setFont( const QFont& f )