mirror of
https://github.com/qgis/QGIS.git
synced 2025-02-25 00:58:06 -05:00
203 lines
7.5 KiB
Plaintext
203 lines
7.5 KiB
Plaintext
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 );
|
|
|
|
//should be private - fix for QGIS 3.0
|
|
QgsComposerHtml();
|
|
|
|
~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 );
|
|
//overriden 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
|
|
* @see setUrl
|
|
* @see url
|
|
*/
|
|
void loadHtml( const bool useCache = false );
|
|
|
|
/**Recalculates the frame sizes for the current viewport dimensions*/
|
|
void recalculateFrameSizes();
|
|
void refreshExpressionContext();
|
|
|
|
virtual void refreshDataDefinedProperty( const QgsComposerObject::DataDefinedProperty property = QgsComposerObject::AllProperties );
|
|
|
|
};
|