on daae0cf help sign in
96 lines 3.0 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 property variant actionsDescription: menu ? menu.extra.canonical_message_actions : undefined
28 onActionGroupChanged: loadItem()
29 onActionsDescriptionChanged: loadItem()
30 implicitHeight: contents.status == Loader.Ready ? contents.item.implicitHeight : 0
32 Loader {
33 id: contents
35 anchors.fill: parent
36 // Binding all properties for the item, to make sure that any change in the
37 // property will be propagated to the contents.item at any time
38 Binding {
39 target: contents.item
40 property: "menuActivated"
41 value: menuActivated
42 when: (contents.status == Loader.Ready)
43 }
45 Binding {
46 target: contents.item
47 property: "actionGroup"
48 value: actionGroup
49 when: (contents.status == Loader.Ready)
50 }
52 Binding {
53 target: contents.item
54 property: "menu"
55 value: menu
56 when: (contents.status == Loader.Ready)
57 }
59 Binding {
60 target: contents.item
61 property: "actionsDescription"
62 value: actionsDescription
63 when: (contents.status == Loader.Ready)
64 }
66 Connections {
67 target: contents.item ? contents.item : null
68 onActivateMenu: activateMenu()
69 onDeactivateMenu: deactivateMenu()
70 }
71 }
74 function loadItem()
75 {
76 var parameterType = ""
77 for (var actIndex in actionsDescription) {
78 var desc = actionsDescription[actIndex];
79 if (desc["parameter-type"] !== undefined) {
80 parameterType += desc["parameter-type"];
81 } else {
82 parameterType += "_";
83 }
84 }
86 if (parameterType === "") {
87 contents.source = "SimpleTextMessage.qml";
88 } else if (parameterType === "s") {
89 contents.source = "TextMessage.qml";
90 } else if (parameterType === "_s") {
91 contents.source = "SnapDecision.qml";
92 } else {
93 console.debug("Unknown paramater type: " + parameterType);
94 }
95 }