summaryrefslogtreecommitdiff
path: root/src/plugins/qmldesigner/designercore/instances/qprocessuniqueptr.h
blob: 5f99f370a4f652b7c2bbd7c1b574872031589ae2 (plain)
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
// Copyright (C) 2016 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0

#pragma once

#include <QProcess>

#include <memory>

namespace QmlDesigner {

class QProcessUniquePointerDeleter
{
public:
    void operator()(QProcess *process)
    {
        process->disconnect();
        QObject::connect(process, &QProcess::finished, process, &QProcess::deleteLater);
        process->kill();
    }
};

using QProcessUniquePointer = std::unique_ptr<QProcess, QProcessUniquePointerDeleter>;

} // namespace QmlDesigner