aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/qmldesigner/designercore/instances/qprocessuniqueptr.h
blob: 10a9134fd29973d1f5260f882355c5a79cc430fe (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+ OR GPL-3.0 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