qskinny/src/layouts/QskIndexedLayoutBox.h

45 lines
1.1 KiB
C
Raw Normal View History

2017-07-21 18:21:34 +02:00
/******************************************************************************
* QSkinny - Copyright (C) 2016 Uwe Rathmann
2023-04-06 09:23:37 +02:00
* SPDX-License-Identifier: BSD-3-Clause
2017-07-21 18:21:34 +02:00
*****************************************************************************/
#ifndef QSK_INDEXED_LAYOUT_BOX_H
#define QSK_INDEXED_LAYOUT_BOX_H
#include "QskBox.h"
2017-07-21 18:21:34 +02:00
class QSK_EXPORT QskIndexedLayoutBox : public QskBox
2017-07-21 18:21:34 +02:00
{
Q_OBJECT
Q_PROPERTY( bool autoAddChildren READ autoAddChildren
WRITE setAutoAddChildren NOTIFY autoAddChildrenChanged )
using Inherited = QskBox;
2017-07-21 18:21:34 +02:00
2018-08-03 08:15:28 +02:00
public:
2017-07-21 18:21:34 +02:00
explicit QskIndexedLayoutBox( QQuickItem* parent = nullptr );
2018-07-31 17:32:25 +02:00
~QskIndexedLayoutBox() override;
2017-07-21 18:21:34 +02:00
2020-12-10 09:46:50 +01:00
void setAutoAddChildren( bool on = true );
2017-07-21 18:21:34 +02:00
bool autoAddChildren() const;
2018-08-03 08:15:28 +02:00
Q_SIGNALS:
2017-07-21 18:21:34 +02:00
void autoAddChildrenChanged();
2018-08-03 08:15:28 +02:00
protected:
2018-07-31 17:32:25 +02:00
void itemChange( ItemChange, const ItemChangeData& ) override;
2019-12-03 17:21:56 +01:00
void reparentItem( QQuickItem* );
2019-12-03 17:21:56 +01:00
void unparentItem( QQuickItem* );
2019-11-29 17:33:26 +01:00
private:
virtual void autoAddItem( QQuickItem* ) = 0;
virtual void autoRemoveItem( QQuickItem* ) = 0;
2017-07-21 18:21:34 +02:00
class PrivateData;
std::unique_ptr< PrivateData > m_data;
};
#endif