File indexing completed on 2024-05-19 04:29:25

0001 // SPDX-FileCopyrightText: 2023 L. E. Segovia <amy@amyspark.me>
0002 // SPDX-License-Ref: LGPL-2.0-or-later
0003 
0004 #ifndef KIS_STACKED_WIDGET_H
0005 #define KIS_STACKED_WIDGET_H
0006 
0007 #include <QStackedWidget>
0008 
0009 #include "kritawidgets_export.h"
0010 
0011 /** This class enables a @ref QStackedWidget to resize itself to its current
0012  * visible member's @ref sizeHint, instead of staying with the maximum of all
0013  * children's sizes.
0014  * This class is intended to be used in place of @ref QStackedWidget, whenever
0015  * the latter is meant to be the main widget.
0016  */
0017 class KRITAWIDGETS_EXPORT KisStackedWidget : public QStackedWidget
0018 {
0019 public:
0020     KisStackedWidget(QWidget *parent = nullptr);
0021 
0022 #if (QT_VERSION >= QT_VERSION_CHECK(5, 13, 0))
0023     Q_DISABLE_COPY_MOVE(KisStackedWidget);
0024 #else
0025     //Q_DISABLE_MOVE(KisStackedWidget);
0026     Q_DISABLE_COPY(KisStackedWidget)
0027     KisStackedWidget(KisStackedWidget&&) = delete;
0028     KisStackedWidget& operator=(KisStackedWidget &&) = delete;
0029 #endif
0030 
0031     ~KisStackedWidget() override = default;
0032 
0033     QSize sizeHint() const override;
0034     QSize minimumSizeHint() const override;
0035 };
0036 
0037 #endif