Qt 6.x
The Qt SDK
Loading...
Searching...
No Matches
qquickfiledialogimpl_p.h
Go to the documentation of this file.
1// Copyright (C) 2021 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
3
4#ifndef QQUICKFILEDIALOGIMPL_P_H
5#define QQUICKFILEDIALOGIMPL_P_H
6
7//
8// W A R N I N G
9// -------------
10//
11// This file is not part of the Qt API. It exists purely as an
12// implementation detail. This header file may change from version to
13// version without notice, or even be removed.
14//
15// We mean it.
16//
17
18#include <QtQuick/private/qquicklistview_p.h>
19#include <QtQuickTemplates2/private/qquickdialog_p.h>
20
22
24
25class QQuickComboBox;
27class QQuickTextField;
28class QQuickLabel;
29
35
36class Q_QUICKDIALOGS2QUICKIMPL_PRIVATE_EXPORT QQuickFileDialogImpl : public QQuickDialog
37{
39 Q_PROPERTY(QUrl currentFolder READ currentFolder WRITE setCurrentFolder NOTIFY currentFolderChanged FINAL)
40 Q_PROPERTY(QUrl selectedFile READ selectedFile WRITE setSelectedFile NOTIFY selectedFileChanged FINAL)
41 Q_PROPERTY(QStringList nameFilters READ nameFilters NOTIFY nameFiltersChanged FINAL)
42 Q_PROPERTY(QQuickFileNameFilter *selectedNameFilter READ selectedNameFilter CONSTANT)
43 Q_PROPERTY(QString fileName READ fileName WRITE setFileName NOTIFY selectedFileChanged FINAL)
44 QML_NAMED_ELEMENT(FileDialogImpl)
47 Q_MOC_INCLUDE(<QtQuickDialogs2Utils/private/qquickfilenamefilter_p.h>)
48 Q_MOC_INCLUDE(<QtQuickDialogs2QuickImpl/private/qquickfolderbreadcrumbbar_p.h>)
49
50public:
51 explicit QQuickFileDialogImpl(QObject *parent = nullptr);
52
53 static QQuickFileDialogImplAttached *qmlAttachedProperties(QObject *object);
54
55 enum class SetReason {
56 // Either user interaction or e.g. a change in ListView's currentIndex after changing its model.
57 External,
58 // As a result of the user setting an initial selectedFile.
59 Internal
60 };
61
62 QUrl currentFolder() const;
63 void setCurrentFolder(const QUrl &currentFolder, SetReason setReason = SetReason::External);
64
65 QUrl selectedFile() const;
66 void setSelectedFile(const QUrl &file);
67 void setInitialCurrentFolderAndSelectedFile(const QUrl &file);
68
70 void setOptions(const QSharedPointer<QFileDialogOptions> &options);
71
72 QStringList nameFilters() const;
73 void resetNameFilters();
74
75 QQuickFileNameFilter *selectedNameFilter() const;
76
77 void setAcceptLabel(const QString &label);
78 void setRejectLabel(const QString &label);
79
80 QString fileName() const;
81 void setFileName(const QString &fileName);
82
83public Q_SLOTS:
84 void selectNameFilter(const QString &filter);
85
87 void currentFolderChanged(const QUrl &folderUrl);
88 void selectedFileChanged(const QUrl &selectedFileUrl);
90 void fileSelected(const QUrl &fileUrl);
92
93private:
94 void componentComplete() override;
96
97 Q_DISABLE_COPY(QQuickFileDialogImpl)
98 Q_DECLARE_PRIVATE(QQuickFileDialogImpl)
99};
100
101class Q_QUICKDIALOGS2QUICKIMPL_PRIVATE_EXPORT QQuickFileDialogImplAttached : public QObject
102{
104 Q_PROPERTY(QQuickDialogButtonBox *buttonBox READ buttonBox WRITE setButtonBox NOTIFY buttonBoxChanged FINAL)
105 Q_PROPERTY(QQuickComboBox *nameFiltersComboBox READ nameFiltersComboBox WRITE setNameFiltersComboBox NOTIFY nameFiltersComboBoxChanged)
106 Q_PROPERTY(QQuickListView *fileDialogListView READ fileDialogListView WRITE setFileDialogListView NOTIFY fileDialogListViewChanged)
107 Q_PROPERTY(QQuickFolderBreadcrumbBar *breadcrumbBar READ breadcrumbBar WRITE setBreadcrumbBar NOTIFY breadcrumbBarChanged)
108 Q_PROPERTY(QQuickLabel *fileNameLabel READ fileNameLabel WRITE setFileNameLabel NOTIFY fileNameLabelChanged FINAL)
109 Q_PROPERTY(QQuickTextField *fileNameTextField READ fileNameTextField WRITE setFileNameTextField NOTIFY fileNameTextFieldChanged FINAL)
110 Q_MOC_INCLUDE(<QtQuickTemplates2/private/qquickdialogbuttonbox_p.h>)
111 Q_MOC_INCLUDE(<QtQuickTemplates2/private/qquickcombobox_p.h>)
112 Q_MOC_INCLUDE(<QtQuickTemplates2/private/qquicktextfield_p.h>)
113 Q_MOC_INCLUDE(<QtQuickTemplates2/private/qquicklabel_p.h>)
114
115public:
116 explicit QQuickFileDialogImplAttached(QObject *parent = nullptr);
117
118 QQuickDialogButtonBox *buttonBox() const;
119 void setButtonBox(QQuickDialogButtonBox *buttonBox);
120
121 QQuickComboBox *nameFiltersComboBox() const;
122 void setNameFiltersComboBox(QQuickComboBox *nameFiltersComboBox);
123
124 QString selectedNameFilter() const;
125 void selectNameFilter(const QString &filter);
126
127 QQuickListView *fileDialogListView() const;
128 void setFileDialogListView(QQuickListView *fileDialogListView);
129
130 QQuickFolderBreadcrumbBar *breadcrumbBar() const;
131 void setBreadcrumbBar(QQuickFolderBreadcrumbBar *breadcrumbBar);
132
133 QQuickLabel *fileNameLabel() const;
134 void setFileNameLabel(QQuickLabel *fileNameLabel);
135
136 QQuickTextField *fileNameTextField() const;
137 void setFileNameTextField(QQuickTextField *fileNameTextField);
138
146
147private:
148 Q_DISABLE_COPY(QQuickFileDialogImplAttached)
149 Q_DECLARE_PRIVATE(QQuickFileDialogImplAttached)
150};
151
153
155
156#endif // QQUICKFILEDIALOGIMPL_P_H
\inmodule QtCore
Definition qobject.h:90
void filterSelected(const QString &filter)
void fileSelected(const QUrl &fileUrl)
void selectedFileChanged(const QUrl &selectedFileUrl)
void currentFolderChanged(const QUrl &folderUrl)
ItemChange
Used in conjunction with QQuickItem::itemChange() to notify the item about certain types of changes.
Definition qquickitem.h:143
void componentComplete() override
Invoked after the root component that caused this instantiation has completed construction.
virtual void itemChange(QQuickItem::ItemChange change, const QQuickItem::ItemChangeData &data)
\inmodule QtCore
\inmodule QtCore
\macro QT_RESTRICTED_CAST_FROM_ASCII
Definition qstring.h:127
\inmodule QtCore
Definition qurl.h:94
Combined button and popup list for selecting options.
GLuint GLsizei const GLchar * label
[43]
GLint GLint GLint GLint GLint GLint GLint GLbitfield GLenum filter
GLint GLsizei GLsizei GLenum GLenum GLsizei void * data
#define QML_DECLARE_TYPE(TYPE)
Definition qqml.h:19
#define QML_NAMED_ELEMENT(NAME)
#define QML_ADDED_IN_VERSION(MAJOR, MINOR)
#define QML_ATTACHED(ATTACHED_TYPE)
#define Q_PROPERTY(...)
#define Q_OBJECT
#define Q_SLOTS
#define Q_MOC_INCLUDE(...)
#define Q_SIGNALS
QFile file
[0]
file setFileName("readme.txt")
IUIAutomationTreeWalker __RPC__deref_out_opt IUIAutomationElement ** parent
\inmodule QtQuick
Definition qquickitem.h:158