Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
qquickdialogimplfactory.cpp
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// Qt-Security score:significant reason:default
4
6
7#include <QtCore/qloggingcategory.h>
8
9#include <QtQuick/private/qtquickglobal_p.h>
10#if QT_CONFIG(quick_listview)
11#include "qquickplatformfiledialog_p.h"
12#include "qquickplatformfolderdialog_p.h"
13#include "qquickplatformfontdialog_p.h"
14#endif
17
19
20/*!
21 \internal
22
23 Creates concrete QML-based dialogs.
24*/
25
26Q_LOGGING_CATEGORY(lcQuickDialogImplFactory, "qt.quick.dialogs.quickdialogimplfactory")
27
28std::unique_ptr<QPlatformDialogHelper> QQuickDialogImplFactory::createPlatformDialogHelper(QQuickDialogType type, QObject *parent)
29{
30 std::unique_ptr<QPlatformDialogHelper> dialogHelper;
31 switch (type) {
32 case QQuickDialogType::ColorDialog: {
33 auto *quickPlatformDialog = new QQuickPlatformColorDialog(parent);
34 if (quickPlatformDialog->isValid())
35 dialogHelper.reset(quickPlatformDialog);
36 break;
37 }
38#if QT_CONFIG(quick_listview) && QT_CONFIG(quick_draganddrop)
39 case QQuickDialogType::FileDialog: {
40 auto *quickPlatformDialog = new QQuickPlatformFileDialog(parent);
41 if (quickPlatformDialog->isValid())
42 dialogHelper.reset(quickPlatformDialog);
43 break;
44 }
45 case QQuickDialogType::FolderDialog: {
46 auto *quickPlatformDialog = new QQuickPlatformFolderDialog(parent);
47 if (quickPlatformDialog->isValid())
48 dialogHelper.reset(quickPlatformDialog);
49 break;
50 }
51 case QQuickDialogType::FontDialog: {
52 auto *quickPlatformDialog = new QQuickPlatformFontDialog(parent);
53 if (quickPlatformDialog->isValid())
54 dialogHelper.reset(quickPlatformDialog);
55 break;
56 }
57#endif
58 case QQuickDialogType::MessageDialog: {
59 auto *quickPlatformDialog = new QQuickPlatformMessageDialog(parent);
60 if (quickPlatformDialog->isValid())
61 dialogHelper.reset(quickPlatformDialog);
62 break;
63 }
64 default:
65 break;
66 }
67
68 return dialogHelper;
69}
70
71QT_END_NAMESPACE