on 23ed9de help sign in
98 lines 3.1 kB history raw
1/*
2 * Copyright 2013 Canonical Ltd.
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU Lesser General Public License as published by
6 * the Free Software Foundation; version 3.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU Lesser General Public License for more details.
12 *
13 * You should have received a copy of the GNU Lesser General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 *
16 * Authors:
17 * Renato Araujo Oliveira Filho <renato@canonical.com>
18 * Olivier Tilloy <olivier.tilloy@canonical.com>
19 */
21import QtQuick 2.0
22import Ubuntu.Components 0.1
23import Unity.Indicators 0.1 as Indicators
25Indicators.BasicMenuItem {
26 id: __messageItem
28 property variant actionsDescription: menu ? menu.extra.canonical_message_actions : undefined
30 onActionGroupChanged: loadItem()
31 onActionsDescriptionChanged: loadItem()
32 implicitHeight: __contents.status == Loader.Ready ? __contents.item.implicitHeight : 0
34 Loader {
35 id: __contents
37 anchors.fill: parent
38 // Binding all properties for the item, to make sure that any change in the
39 // property will be propagated to the __contents.item at any time
40 Binding {
41 target: __contents.item
42 property: "menuActivated"
43 value: menuActivated
44 when: (__contents.status == Loader.Ready)
45 }
47 Binding {
48 target: __contents.item
49 property: "actionGroup"
50 value: actionGroup
51 when: (__contents.status == Loader.Ready)
52 }
54 Binding {
55 target: __contents.item
56 property: "menu"
57 value: menu
58 when: (__contents.status == Loader.Ready)
59 }
61 Binding {
62 target: __contents.item
63 property: "actionsDescription"
64 value: actionsDescription
65 when: (__contents.status == Loader.Ready)
66 }
68 Connections {
69 target: __contents.item ? __contents.item : null
70 onActivateMenu: activateMenu()
71 onDeactivateMenu: deactivateMenu()
72 }
73 }
76 function loadItem()
77 {
78 var parameterType = ""
79 for (var actIndex in actionsDescription) {
80 var desc = actionsDescription[actIndex];
81 if (desc["parameter-type"] !== undefined) {
82 parameterType += desc["parameter-type"];
83 } else {
84 parameterType += "_";
85 }
86 }
88 if (parameterType === "") {
89 __contents.source = "SimpleTextMessage.qml";
90 } else if (parameterType === "s") {
91 __contents.source = "TextMessage.qml";
92 } else if (parameterType === "_s") {
93 __contents.source = "SnapDecision.qml";
94 } else {
95 console.debug("Unknown paramater type: " + parameterType);
96 }
97 }