aboutsummaryrefslogtreecommitdiffstats
path: root/src/quickdialogs/quickdialogsquickimpl/qquickdialogimplfactory.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/quickdialogs/quickdialogsquickimpl/qquickdialogimplfactory.cpp')
-rw-r--r--src/quickdialogs/quickdialogsquickimpl/qquickdialogimplfactory.cpp60
1 files changed, 60 insertions, 0 deletions
diff --git a/src/quickdialogs/quickdialogsquickimpl/qquickdialogimplfactory.cpp b/src/quickdialogs/quickdialogsquickimpl/qquickdialogimplfactory.cpp
new file mode 100644
index 0000000000..594b148528
--- /dev/null
+++ b/src/quickdialogs/quickdialogsquickimpl/qquickdialogimplfactory.cpp
@@ -0,0 +1,60 @@
+// Copyright (C) 2021 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
+
+#include "qquickdialogimplfactory_p.h"
+
+#include <QtCore/qloggingcategory.h>
+
+#include <QtQuick/private/qtquickglobal_p.h>
+#if QT_CONFIG(quick_listview)
+#include "qquickplatformfiledialog_p.h"
+#include "qquickplatformfolderdialog_p.h"
+#include "qquickplatformfontdialog_p.h"
+#endif
+#include "qquickplatformcolordialog_p.h"
+#include "qquickplatformmessagedialog_p.h"
+
+QT_BEGIN_NAMESPACE
+
+/*!
+ \internal
+
+ Creates concrete QML-based dialogs.
+*/
+
+Q_LOGGING_CATEGORY(lcQuickDialogImplFactory, "qt.quick.dialogs.quickdialogimplfactory")
+
+std::unique_ptr<QPlatformDialogHelper> QQuickDialogImplFactory::createPlatformDialogHelper(QQuickDialogType type, QObject *parent)
+{
+ std::unique_ptr<QPlatformDialogHelper> dialogHelper;
+ switch (type) {
+ case QQuickDialogType::ColorDialog: {
+ dialogHelper.reset(new QQuickPlatformColorDialog(parent));
+ break;
+ }
+#if QT_CONFIG(quick_listview)
+ case QQuickDialogType::FileDialog: {
+ dialogHelper.reset(new QQuickPlatformFileDialog(parent));
+ break;
+ }
+ case QQuickDialogType::FolderDialog: {
+ dialogHelper.reset(new QQuickPlatformFolderDialog(parent));
+ break;
+ }
+ case QQuickDialogType::FontDialog: {
+ dialogHelper.reset(new QQuickPlatformFontDialog(parent));
+ break;
+ }
+#endif
+ case QQuickDialogType::MessageDialog: {
+ dialogHelper.reset(new QQuickPlatformMessageDialog(parent));
+ break;
+ }
+ default:
+ break;
+ }
+
+ return dialogHelper;
+}
+
+QT_END_NAMESPACE