mirror of
				https://github.com/qgis/QGIS.git
				synced 2025-11-04 00:04:25 -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 );
 | 
						|
 | 
						|
};
 |