File: qmlcamera.cpp

package info (click to toggle)
qt6-multimedia 6.9.2-5
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 43,304 kB
  • sloc: cpp: 178,954; ansic: 72,398; java: 2,784; python: 262; xml: 193; sh: 136; makefile: 30
file content (39 lines) | stat: -rw-r--r-- 1,162 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
// Copyright (C) 2017 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause

#include <QGuiApplication>
#include <QQmlEngine>
#include <QQuickView>

#if QT_CONFIG(permissions)
  #include <QPermission>
#endif

int main(int argc, char *argv[])
{
    QGuiApplication app(argc, argv);
    QQuickView view;
    view.setResizeMode(QQuickView::SizeRootObjectToView);

    auto setupView = [&view](const QUrl &viewSource) {
        // Qt.quit() called in embedded .qml by default only emits
        // quit() signal, so do this (optionally use Qt.exit()).
        QObject::connect(view.engine(), &QQmlEngine::quit, qApp, &QGuiApplication::quit);
        view.setSource(viewSource);
        view.show();
    };

#if QT_CONFIG(permissions)
    QCameraPermission cameraPermission;
    qApp->requestPermission(cameraPermission, [&setupView](const QPermission &permission) {
        if (permission.status() == Qt::PermissionStatus::Denied)
            setupView(QUrl("qrc:///permission-denied.qml"));
        else
            setupView(QUrl("qrc:///declarative-camera.qml"));
    });
#else
    setupView();
#endif

    return app.exec();
}