mirror of
				https://github.com/qgis/QGIS.git
				synced 2025-10-30 00:07:09 -04:00 
			
		
		
		
	Adds support for base64 encoded image decoding when the path is a HTML data URL (in addition to the existing "base64:..." format support) Allows use of eg "data:image/jpeg;base64,XXXXXXXX" formats for image paths, so that the image cache can correctly handle embedded image paths from HTML/CSS content
		
			
				
	
	
		
			153 lines
		
	
	
		
			4.5 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			153 lines
		
	
	
		
			4.5 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| /************************************************************************
 | |
|  * This file has been generated automatically from                      *
 | |
|  *                                                                      *
 | |
|  * src/core/qgsabstractcontentcache.h                                   *
 | |
|  *                                                                      *
 | |
|  * Do not edit manually ! Edit header and run scripts/sipify.py again   *
 | |
|  ************************************************************************/
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| class QgsAbstractContentCacheEntry
 | |
| {
 | |
| %Docstring(signature="appended")
 | |
| Base class for entries in a :py:class:`QgsAbstractContentCache`.
 | |
| 
 | |
| Subclasses must take care to correctly implement the :py:func:`~isEqual` method, applying their
 | |
| own logic for testing extra cache properties (e.g. image size for an image-based cache).
 | |
| 
 | |
| .. versionadded:: 3.6
 | |
| %End
 | |
| 
 | |
| %TypeHeaderCode
 | |
| #include "qgsabstractcontentcache.h"
 | |
| %End
 | |
|   public:
 | |
| 
 | |
|     QgsAbstractContentCacheEntry( const QString &path );
 | |
| %Docstring
 | |
| Constructor for QgsAbstractContentCacheEntry for an entry relating to the specified ``path``.
 | |
| %End
 | |
| 
 | |
|     virtual ~QgsAbstractContentCacheEntry();
 | |
| 
 | |
| 
 | |
|     QString path;
 | |
| 
 | |
|     QDateTime fileModified;
 | |
| 
 | |
|     QElapsedTimer fileModifiedLastCheckTimer;
 | |
| 
 | |
|     int mFileModifiedCheckTimeout;
 | |
| 
 | |
|     QgsAbstractContentCacheEntry *nextEntry;
 | |
| 
 | |
|     QgsAbstractContentCacheEntry *previousEntry;
 | |
| 
 | |
|     bool operator==( const QgsAbstractContentCacheEntry &other ) const;
 | |
| 
 | |
|     virtual int dataSize() const = 0;
 | |
| %Docstring
 | |
| Returns the memory usage in bytes for the entry.
 | |
| %End
 | |
| 
 | |
|     virtual void dump() const = 0;
 | |
| %Docstring
 | |
| Dumps debugging strings containing the item's properties. For testing purposes only.
 | |
| %End
 | |
| 
 | |
|   protected:
 | |
| 
 | |
|     virtual bool isEqual( const QgsAbstractContentCacheEntry *other ) const = 0;
 | |
| %Docstring
 | |
| Tests whether this entry matches another entry. Subclasses must take care to check
 | |
| that the type of ``other`` is of a matching class, and then test extra cache-specific
 | |
| properties, such as image size.
 | |
| %End
 | |
| 
 | |
|   private:
 | |
|     QgsAbstractContentCacheEntry( const QgsAbstractContentCacheEntry &rh );
 | |
| };
 | |
| 
 | |
| class QgsAbstractContentCacheBase: QObject
 | |
| {
 | |
| %Docstring(signature="appended")
 | |
| 
 | |
| A QObject derived base class for :py:class:`QgsAbstractContentCache`.
 | |
| 
 | |
| Required because template based class (such as :py:class:`QgsAbstractContentCache`) cannot use the Q_OBJECT macro.
 | |
| 
 | |
| .. versionadded:: 3.6
 | |
| %End
 | |
| 
 | |
| %TypeHeaderCode
 | |
| #include "qgsabstractcontentcache.h"
 | |
| %End
 | |
|   public:
 | |
| 
 | |
|     QgsAbstractContentCacheBase( QObject *parent );
 | |
| %Docstring
 | |
| Constructor for QgsAbstractContentCacheBase, with the specified ``parent`` object.
 | |
| %End
 | |
| 
 | |
|     static bool parseBase64DataUrl( const QString &path, QString *mimeType /Out/ = 0, QString *data /Out/ = 0 );
 | |
| %Docstring
 | |
| Parses a ``path`` to determine if it represents a base 64 encoded HTML data URL, and if so, extracts the components
 | |
| of the URL.
 | |
| 
 | |
| Data URLs are of the form ``data:[<mediatype>;]base64,<data>``.
 | |
| 
 | |
| :param path: path to test
 | |
| 
 | |
| :return: - ``True`` if ``path`` is a base 64 encoded data URL
 | |
|          - mimeType: the extracted mime type if the ``path`` is a data URL
 | |
|          - data: the extracted base64 data if the ``path`` is a data URL
 | |
| 
 | |
| .. versionadded:: 3.40
 | |
| %End
 | |
| 
 | |
|     static bool isBase64Data( const QString &path );
 | |
| %Docstring
 | |
| Returns ``True`` if ``path`` represents base64 encoded data.
 | |
| 
 | |
| .. versionadded:: 3.40
 | |
| %End
 | |
| 
 | |
|   signals:
 | |
| 
 | |
|     void remoteContentFetched( const QString &url );
 | |
| %Docstring
 | |
| Emitted when the cache has finished retrieving content from a remote ``url``.
 | |
| %End
 | |
| 
 | |
|   protected:
 | |
| 
 | |
|     virtual bool checkReply( QNetworkReply *reply, const QString &path ) const;
 | |
| %Docstring
 | |
| Runs additional checks on a network ``reply`` to ensure that the reply content is
 | |
| consistent with that required by the cache.
 | |
| %End
 | |
| 
 | |
|   protected slots:
 | |
| 
 | |
|     virtual void onRemoteContentFetched( const QString &url, bool success );
 | |
| %Docstring
 | |
| Triggered after remote content (i.e. HTTP linked content at the given ``url``) has been fetched.
 | |
| 
 | |
| The ``success`` argument will be ``True`` if the content was successfully fetched, or ``False`` if
 | |
| it was not fetched successfully.
 | |
| %End
 | |
| 
 | |
| };
 | |
| 
 | |
| 
 | |
| /************************************************************************
 | |
|  * This file has been generated automatically from                      *
 | |
|  *                                                                      *
 | |
|  * src/core/qgsabstractcontentcache.h                                   *
 | |
|  *                                                                      *
 | |
|  * Do not edit manually ! Edit header and run scripts/sipify.py again   *
 | |
|  ************************************************************************/
 |