aboutsummaryrefslogtreecommitdiff
path: root/src/QMenuModel/qdbusmenumodel.cpp
blob: c5514647568b2417c4516aec34e39866785d318c (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
#include "qdbusmenumodel.h"
#include <QDebug>

QDBusMenuModel::QDBusMenuModel(QObject *parent)
    :QMenuModel(0, parent)
{
}

QDBusMenuModel::~QDBusMenuModel()
{
}

void QDBusMenuModel::start()
{
    QDbusObject::connect();
}

void QDBusMenuModel::stop()
{
    QDbusObject::disconnect();
}

void QDBusMenuModel::serviceVanish(GDBusConnection *)
{
    setMenuModel(NULL);
}

void QDBusMenuModel::serviceAppear(GDBusConnection *connection)
{
    GMenuModel *model = reinterpret_cast<GMenuModel*>(g_dbus_menu_model_get(connection,
                                                                            busName().toLatin1(),
                                                                            objectPath().toLatin1()));
    setMenuModel(model);
    if (model == NULL) {
        stop();
    }
}

void QDBusMenuModel::busTypeChanged(BusType)
{
    busTypeChanged();
}

void QDBusMenuModel::busNameChanged(const QString &)
{
    busNameChanged();
}

void QDBusMenuModel::objectPathChanged(const QString &objectPath)
{
    objectPathChanged();
}

void QDBusMenuModel::statusChanged(ConnectionStatus status)
{
    statusChanged();
}

void QDBusMenuModel::setIntBusType(int busType)
{
    if ((busType > None) && (busType < LastBusType)) {
        setBusType(static_cast<BusType>(busType));
    }
}