2017-07-21 18:21:34 +02:00
|
|
|
/******************************************************************************
|
2024-01-17 14:31:45 +01:00
|
|
|
* QSkinny - Copyright (C) The authors
|
2023-04-06 09:23:37 +02:00
|
|
|
* SPDX-License-Identifier: BSD-3-Clause
|
2017-07-21 18:21:34 +02:00
|
|
|
*****************************************************************************/
|
|
|
|
|
2021-08-04 10:11:12 +02:00
|
|
|
#pragma once
|
2017-07-21 18:21:34 +02:00
|
|
|
|
2025-01-03 12:52:29 +01:00
|
|
|
#include <QskGlobal.h>
|
|
|
|
#include <QskInternalMacros.h>
|
2017-07-21 18:21:34 +02:00
|
|
|
|
2022-03-20 14:22:11 +01:00
|
|
|
QSK_QT_PRIVATE_BEGIN
|
2017-07-21 18:21:34 +02:00
|
|
|
|
2022-03-20 14:22:11 +01:00
|
|
|
#ifndef emit
|
|
|
|
#define emit
|
|
|
|
#include <private/qquickimage_p.h>
|
|
|
|
#undef emit
|
2017-07-21 18:21:34 +02:00
|
|
|
#else
|
2022-03-20 14:22:11 +01:00
|
|
|
#include <private/qquickimage_p.h>
|
2017-07-21 18:21:34 +02:00
|
|
|
#endif
|
|
|
|
|
2022-03-20 14:22:11 +01:00
|
|
|
QSK_QT_PRIVATE_END
|
|
|
|
|
2022-04-11 10:12:33 +02:00
|
|
|
class ImagePrivate;
|
2017-07-21 18:21:34 +02:00
|
|
|
|
2017-07-24 07:48:36 +02:00
|
|
|
class Image : public QQuickImage
|
2017-07-21 18:21:34 +02:00
|
|
|
{
|
|
|
|
Q_OBJECT
|
|
|
|
|
|
|
|
Q_PROPERTY( bool sourceSizeAdjustment READ sourceSizeAdjustment
|
|
|
|
WRITE setSourceSizeAdjustment NOTIFY sourceSizeAdjustmentChanged FINAL )
|
|
|
|
|
|
|
|
Q_PROPERTY( bool deferredUpdates READ deferredUpdates
|
|
|
|
WRITE setDeferredUpdates NOTIFY deferredUpdatesChanged FINAL )
|
|
|
|
|
|
|
|
using Inherited = QQuickImage;
|
|
|
|
|
2018-08-03 08:15:28 +02:00
|
|
|
public:
|
2017-07-24 07:48:36 +02:00
|
|
|
Image( QQuickItem* parent = nullptr );
|
2018-07-31 17:32:25 +02:00
|
|
|
~Image() override;
|
2017-07-21 18:21:34 +02:00
|
|
|
|
|
|
|
void setSourceSizeAdjustment( bool );
|
|
|
|
bool sourceSizeAdjustment() const;
|
|
|
|
|
|
|
|
void setDeferredUpdates( bool );
|
|
|
|
bool deferredUpdates() const;
|
|
|
|
|
|
|
|
Q_INVOKABLE virtual bool hasHeightForWidth() const;
|
|
|
|
Q_INVOKABLE virtual qreal heightForWidth( qreal width ) const;
|
|
|
|
|
|
|
|
Q_INVOKABLE virtual bool hasWidthForHeight() const;
|
|
|
|
Q_INVOKABLE virtual qreal widthForHeight( qreal height ) const;
|
|
|
|
|
2020-10-31 09:58:33 +01:00
|
|
|
void setSourceSize( const QSize& ) override;
|
|
|
|
|
2018-08-03 08:15:28 +02:00
|
|
|
public Q_SLOTS:
|
2017-07-21 18:21:34 +02:00
|
|
|
void show();
|
|
|
|
void hide();
|
2022-04-11 10:12:33 +02:00
|
|
|
|
|
|
|
#ifdef Q_MOC_RUN
|
|
|
|
// methods from QQuickItem, we want to be available as string based slots
|
2017-07-21 18:21:34 +02:00
|
|
|
void setVisible( bool );
|
2022-04-11 10:12:33 +02:00
|
|
|
void setEnabled( bool );
|
|
|
|
#endif
|
2017-07-21 18:21:34 +02:00
|
|
|
|
2018-08-03 08:15:28 +02:00
|
|
|
Q_SIGNALS:
|
2017-07-21 18:21:34 +02:00
|
|
|
void sourceSizeAdjustmentChanged();
|
|
|
|
void deferredUpdatesChanged();
|
|
|
|
|
2018-08-03 08:15:28 +02:00
|
|
|
protected:
|
2020-10-26 17:51:31 +01:00
|
|
|
#if QT_VERSION >= QT_VERSION_CHECK( 6, 0, 0 )
|
|
|
|
void geometryChange( const QRectF&, const QRectF& ) override;
|
|
|
|
#else
|
2018-07-31 17:32:25 +02:00
|
|
|
void geometryChanged( const QRectF&, const QRectF& ) override;
|
2020-10-26 17:51:31 +01:00
|
|
|
#endif
|
2018-07-31 17:32:25 +02:00
|
|
|
void itemChange( ItemChange, const ItemChangeData& ) override;
|
|
|
|
void componentComplete() override;
|
2017-07-21 18:21:34 +02:00
|
|
|
|
2018-07-31 17:32:25 +02:00
|
|
|
QSGNode* updatePaintNode( QSGNode*, UpdatePaintNodeData* ) override;
|
|
|
|
void updatePolish() override;
|
2017-07-21 18:21:34 +02:00
|
|
|
|
2018-08-03 08:15:28 +02:00
|
|
|
private:
|
2020-10-26 17:51:31 +01:00
|
|
|
void adjustSourceSize( const QSizeF& );
|
|
|
|
|
2022-04-11 10:12:33 +02:00
|
|
|
Q_DECLARE_PRIVATE( Image )
|
2017-07-21 18:21:34 +02:00
|
|
|
};
|