1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200
|
class QgsComposerHtml: QgsComposerMultiFrame
{
%TypeHeaderCode
#include "qgscomposerhtml.h"
%End
public:
/** Source modes for the HTML content to render in the item
*/
enum ContentMode
{
Url, /*!< Using this mode item fetches its content via a url*/
ManualHtml /*!< HTML content is manually set for the item*/
};
QgsComposerHtml( QgsComposition* c /TransferThis/, bool createUndoCommands );
~QgsComposerHtml();
/** Sets the source mode for item's HTML content.
* @param mode ContentMode for the item's source
* @see contentMode
* @see setUrl
* @see setHtml
* @note added in 2.5
*/
void setContentMode( ContentMode mode );
/** Returns the source mode for item's HTML content.
* @returns ContentMode for the item's source
* @see setContentMode
* @see url
* @see html
* @note added in 2.5
*/
ContentMode contentMode() const;
/** Sets the URL for content to display in the item when the item is using
* the QgsComposerHtml::Url mode. Content is automatically fetched and the
* HTML item refreshed after calling this function.
* @param url URL of content to display in the item
* @see url
* @see contentMode
*/
void setUrl( const QUrl& url );
/** Returns the URL of the content displayed in the item if the item is using
* the QgsComposerHtml::Url mode.
* @returns url for content displayed in item
* @see setUrl
* @see contentMode
*/
const QUrl& url() const;
/** Sets the HTML to display in the item when the item is using
* the QgsComposerHtml::ManualHtml mode. Setting the HTML using this function
* does not automatically refresh the item's contents. Call loadHtml to trigger
* a refresh of the item after setting the HTML content.
* @param html HTML to display in item
* @see html
* @see contentMode
* @see loadHtml
* @note added in 2.5
*/
void setHtml( const QString& html );
/** Returns the HTML source displayed in the item if the item is using
* the QgsComposerHtml::ManualHtml mode.
* @returns HTML displayed in item
* @see setHtml
* @see contentMode
* @note added in 2.5
*/
QString html() const;
/** Returns whether html item will evaluate QGIS expressions prior to rendering
* the HTML content. If set, any content inside [% %] tags will be
* treated as a QGIS expression and evaluated against the current atlas
* feature.
* @returns true if html item will evaluate expressions in the content
* @see setEvaluateExpressions
* @note added in QGIS 2.5
*/
bool evaluateExpressions() const;
/** Sets whether the html item will evaluate QGIS expressions prior to rendering
* the HTML content. If set, any content inside [% %] tags will be
* treated as a QGIS expression and evaluated against the current atlas
* feature.
* @param evaluateExpressions set to true to evaluate expressions in the HTML content
* @see evaluateExpressions
* @note added in QGIS 2.5
*/
void setEvaluateExpressions( bool evaluateExpressions );
/** Returns whether html item is using smart breaks. Smart breaks prevent
* the html frame contents from breaking mid-way though a line of text.
* @returns true if html item is using smart breaks
* @see setUseSmartBreaks
*/
bool useSmartBreaks() const;
/** Sets whether the html item should use smart breaks. Smart breaks prevent
* the html frame contents from breaking mid-way though a line of text.
* @param useSmartBreaks set to true to prevent content from breaking
* mid-way through a line of text
* @see useSmartBreaks
*/
void setUseSmartBreaks( bool useSmartBreaks );
/** Sets the maximum distance allowed when calculating where to place page breaks
* in the html. This distance is the maximum amount of empty space allowed
* at the bottom of a frame after calculating the optimum break location. Setting
* a larger value will result in better choice of page break location, but more
* wasted space at the bottom of frames. This setting is only effective if
* useSmartBreaks is true.
* @param maxBreakDistance maximum amount of empty space to leave when calculating
* page break locations
* @note added in 2.3
* @see maxBreakDistance
* @see setUseSmartBreaks
*/
void setMaxBreakDistance( double maxBreakDistance );
/** Returns the maximum distance allowed when calculating where to place page breaks
* in the html. This distance is the maximum amount of empty space allowed
* at the bottom of a frame after calculating the optimum break location. This setting
* is only effective if useSmartBreaks is true.
* @returns maximum amount of empty space to leave when calculating page break locations
* @note added in 2.3
* @see setMaxBreakDistance
* @see useSmartBreaks
*/
double maxBreakDistance() const;
/** Sets the user stylesheet CSS rules to use while rendering the HTML content. These
* allow for overriding the styles specified within the HTML source. Setting the stylesheet
* using this function does not automatically refresh the item's contents. Call loadHtml
* to trigger a refresh of the item after setting the stylesheet rules.
* @param stylesheet CSS rules for user stylesheet
* @see userStylesheet
* @see setUserStylesheetEnabled
* @see loadHtml
* @note added in 2.5
*/
void setUserStylesheet( const QString& stylesheet );
/** Returns the user stylesheet CSS rules used while rendering the HTML content. These
* overriding the styles specified within the HTML source.
* @returns CSS rules for user stylesheet
* @see setUserStylesheet
* @see userStylesheetEnabled
* @note added in 2.5
*/
QString userStylesheet() const;
/** Sets whether user stylesheets are enabled for the HTML content.
* @param stylesheetEnabled set to true to enable user stylesheets
* @see userStylesheetEnabled
* @see setUserStylesheet
* @note added in 2.5
*/
void setUserStylesheetEnabled( const bool stylesheetEnabled );
/** Returns whether user stylesheets are enabled for the HTML content.
* @returns true if user stylesheets are enabled
* @see setUserStylesheetEnabled
* @see userStylesheet
* @note added in 2.5
*/
bool userStylesheetEnabled() const;
virtual QString displayName() const;
QSizeF totalSize() const;
void render( QPainter* p, const QRectF& renderExtent, const int frameIndex );
bool writeXML( QDomElement& elem, QDomDocument & doc, bool ignoreFrames = false ) const;
bool readXML( const QDomElement& itemElem, const QDomDocument& doc, bool ignoreFrames = false );
void addFrame( QgsComposerFrame* frame /Transfer/, bool recalcFrameSizes = true );
//overridden to break frames without dividing lines of text
double findNearbyPageBreak( double yPos );
public slots:
/** Reloads the html source from the url and redraws the item.
* @param useCache set to true to use a cached copy of remote html
* content
* @param context expression context for evaluating data defined urls and expressions in html
* @see setUrl
* @see url
*/
void loadHtml( const bool useCache = false, const QgsExpressionContext* context = 0 );
/** Recalculates the frame sizes for the current viewport dimensions*/
void recalculateFrameSizes();
void refreshExpressionContext();
virtual void refreshDataDefinedProperty( const QgsComposerObject::DataDefinedProperty property = QgsComposerObject::AllProperties, const QgsExpressionContext* context = 0 );
};
|