summaryrefslogtreecommitdiffstats
path: root/src/shared-main-lib/applicationmanagerwindowimpl.cpp
blob: 70e0211d8efea7c409764f3b58753481c8f4e690 (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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
// Copyright (C) 2023 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only

#include "applicationmanagerwindowimpl.h"
#include "applicationmanagerwindow.h"

QT_BEGIN_NAMESPACE_AM

std::function<ApplicationManagerWindowImpl *(ApplicationManagerWindow *)> ApplicationManagerWindowImpl::s_factory;

ApplicationManagerWindowImpl::ApplicationManagerWindowImpl(ApplicationManagerWindow *window)
    : m_amwindow(window)
{ }

void ApplicationManagerWindowImpl::setFactory(const std::function<ApplicationManagerWindowImpl *(ApplicationManagerWindow *)> &factory)
{
    s_factory = factory;
}

ApplicationManagerWindowImpl *ApplicationManagerWindowImpl::create(ApplicationManagerWindow *window)
{
    return s_factory ? s_factory(window) : nullptr;
}

ApplicationManagerWindow *ApplicationManagerWindowImpl::amWindow()
{
    return m_amwindow;
}


///////////////////////////////////////////////////////////////////////////////////////////////////
// ApplicationManagerWindowAttachedImpl
///////////////////////////////////////////////////////////////////////////////////////////////////


std::function<ApplicationManagerWindowAttachedImpl *(ApplicationManagerWindowAttached *, QQuickItem *)> ApplicationManagerWindowAttachedImpl::s_factory;

ApplicationManagerWindowAttachedImpl::ApplicationManagerWindowAttachedImpl(ApplicationManagerWindowAttached *windowAttached,
                                                                           QQuickItem *attacheeItem)
    : m_amWindowAttached(windowAttached)
    , m_attacheeItem(attacheeItem)
{ }

void ApplicationManagerWindowAttachedImpl::setFactory(const std::function<ApplicationManagerWindowAttachedImpl *(ApplicationManagerWindowAttached *, QQuickItem *)> &factory)
{
    s_factory = factory;
}

ApplicationManagerWindowAttachedImpl *ApplicationManagerWindowAttachedImpl::create(ApplicationManagerWindowAttached *windowAttached, QQuickItem *attacheeItem)
{
    return s_factory ? s_factory(windowAttached, attacheeItem) : nullptr;
}

ApplicationManagerWindowAttached *ApplicationManagerWindowAttachedImpl::amWindowAttached() const
{
    return m_amWindowAttached;
}

QQuickItem *ApplicationManagerWindowAttachedImpl::attacheeItem() const
{
    return m_attacheeItem;
}

void ApplicationManagerWindowAttachedImpl::onWindowChanged(ApplicationManagerWindow *newWin)
{
    m_amWindowAttached->reconnect(newWin);
}


QT_END_NAMESPACE_AM