// Copyright (C) 2024 The Qt Company Ltd. // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only #ifndef QQUICKSIDEBAR_P_H #define QQUICKSIDEBAR_P_H // // W A R N I N G // ------------- // // This file is not part of the Qt API. It exists purely as an // implementation detail. This header file may change from version to // version without notice, or even be removed. // // We mean it. // #include #include #include #include "qquickfiledialogimpl_p.h" QT_BEGIN_NAMESPACE class QQuickSideBarPrivate; class Q_QUICKDIALOGS2QUICKIMPL_EXPORT QQuickSideBar : public QQuickContainer { Q_OBJECT Q_PROPERTY(QQuickDialog *dialog READ dialog WRITE setDialog NOTIFY dialogChanged FINAL) Q_PROPERTY(QList folderPaths READ folderPaths WRITE setFolderPaths NOTIFY folderPathsChanged FINAL) Q_PROPERTY(QList effectiveFolderPaths READ effectiveFolderPaths NOTIFY effectiveFolderPathsChanged FINAL) Q_PROPERTY(QList favoritePaths READ favoritePaths NOTIFY favoritePathsChanged FINAL) Q_PROPERTY(QQmlComponent *buttonDelegate READ buttonDelegate WRITE setButtonDelegate NOTIFY buttonDelegateChanged FINAL) Q_PROPERTY(QQmlComponent *separatorDelegate READ separatorDelegate WRITE setSeparatorDelegate NOTIFY separatorDelegateChanged FINAL) Q_PROPERTY(QQmlComponent *addFavoriteDelegate READ addFavoriteDelegate WRITE setAddFavoriteDelegate NOTIFY addFavoriteDelegateChanged FINAL) QML_NAMED_ELEMENT(SideBar) QML_ADDED_IN_VERSION(6, 9) public: explicit QQuickSideBar(QQuickItem *parent = nullptr); ~QQuickSideBar(); QQuickDialog *dialog() const; void setDialog(QQuickDialog *dialog); QList folderPaths() const; void setFolderPaths(const QList& folderPaths); QList effectiveFolderPaths() const; QList favoritePaths() const; QQmlComponent *buttonDelegate() const; void setButtonDelegate(QQmlComponent *delegate); QQmlComponent *separatorDelegate() const; void setSeparatorDelegate(QQmlComponent *delegate); QQmlComponent *addFavoriteDelegate() const; void setAddFavoriteDelegate(QQmlComponent *delegate); Q_SIGNALS: void dialogChanged(); void folderPathsChanged(); void effectiveFolderPathsChanged(); void favoritePathsChanged(); void buttonDelegateChanged(); void separatorDelegateChanged(); void addFavoriteDelegateChanged(); protected: void componentComplete() override; private: void setFavoritePaths(const QList& favoritePaths); Q_DISABLE_COPY(QQuickSideBar) Q_DECLARE_PRIVATE(QQuickSideBar) }; QT_END_NAMESPACE #endif // QQUICKSIDEBAR_P_H