aboutsummaryrefslogtreecommitdiff
path: root/src/common/qdbusmenumodel.cpp
blob: cae1288efa3aea12d74b8641936528d70bec5f32 (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
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
/*
 * Copyright 2012 Canonical Ltd.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU Lesser General Public License as published by
 * the Free Software Foundation; version 3.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 *
 * Authors:
 *      Renato Araujo Oliveira Filho <renato@canonical.com>
 */

#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));
    }
}