aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/modeleditor/pxnodeutilities.h
blob: 104dc702eae163dcb9f5c5597dd6e27d11838af6 (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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
// Copyright (C) 2016 Jochen Becher
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0+ OR GPL-3.0 WITH Qt-GPL-exception-1.0

#pragma once

#include <QObject>

namespace ProjectExplorer { class Node; }

namespace qmt {
class MObject;
class MPackage;
class DiagramSceneController;
}

namespace ModelEditor {
namespace Internal {

class PxNodeUtilities :
        public QObject
{
    Q_OBJECT
    class PxNodeUtilitiesPrivate;

public:
    explicit PxNodeUtilities(QObject *parent = nullptr);
    ~PxNodeUtilities();

    void setDiagramSceneController(qmt::DiagramSceneController *diagramSceneController);

    QString calcRelativePath(const ProjectExplorer::Node *node, const QString &anchorFolder);
    QString calcRelativePath(const QString &filePath, const QString &anchorFolder);
    qmt::MPackage *createBestMatchingPackagePath(qmt::MPackage *suggestedParentPackage,
                                                 const QStringList &relativeElements);
    qmt::MObject *findSameObject(const QStringList &relativeElements,
                                 const qmt::MObject *object);
    bool isProxyHeader(const QString &file) const;

private:
    PxNodeUtilitiesPrivate *d;
};

} // namespace Internal
} // namespace ModelEditor