2 * Copyright 2013 Canonical Ltd.
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.
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.
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/>.
17 * Renato Araujo Oliveira Filho <renato@canonical.com>
18 * Olivier Tilloy <olivier.tilloy@canonical.com>
22import Ubuntu.Components 0.1
23import Unity.Indicators 0.1 as Indicators
24import QMenuModel 0.1 as QMenuModel
25import "utils.js" as Utils
27Indicators.BaseMenuItem {
29 property var actionsDescription: menu ? menu.ext.xCanonicalMessageActions : undefined
31 implicitHeight: contents.status == Loader.Ready ? contents.item.implicitHeight : 0
33 property var model: null
39 sourceComponent: loadMessage(actionsDescription);
41 // Binding all properties for the item, to make sure that any change in the
42 // property will be propagated to the contents.item at any time
45 property: "menuSelected"
47 when: (contents.status == Loader.Ready)
54 when: (contents.status == Loader.Ready)
58 target: contents.item ? contents.item : null
59 onSelectMenu: selectMenu()
60 onDeselectMenu: deselectMenu()
67 title: menu && menu.label ? menu.label : ""
68 time: menu ? Utils.formatDate(menu.ext.xCanonicalTime) : ""
69 message: menu && menu.ext.xCanonicalText ? menu.ext.xCanonicalText : ""
71 avatar: menu && menu.ext.icon !== undefined ? menu.ext.icon : "qrc:/indicators/artwork/messaging/default_contact.png"
72 appIcon: menu && menu.ext.xCanonicalAppIcon !== undefined ? menu.ext.xCanonicalAppIcon : "qrc:/indicators/artwork/messaging/default_app.svg"
75 menuItem.model.activate(modelIndex, true);
78 menuItem.model.activate(modelIndex, false);
85 property var replyAction: QMenuModel.UnityMenuAction {
88 name: menu && actionsDescription[0].name ? actionsDescription[0].name : ""
92 title: menu && menu.label ? menu.label : ""
93 time: menu ? Utils.formatDate(menu.ext.xCanonicalTime) : ""
94 message: menu && menu.ext.xCanonicalText ? menu.ext.xCanonicalText : ""
95 replyButtonText: actionsDescription && actionsDescription[0].label ? actionsDescription[0].label : "Send"
97 avatar: menu && menu.ext.icon !== undefined ? menu.ext.icon : "qrc:/indicators/artwork/messaging/default_contact.png"
98 appIcon: menu && menu.ext.xCanonicalAppIcon !== undefined ? menu.ext.xCanonicalAppIcon : "qrc:/indicators/artwork/messaging/default_app.svg"
100 replyEnabled: replyAction.valid && replyAction.enabled
103 menuItem.model.activate(modelIndex, true);
106 menuItem.model.activate(modelIndex, false);
109 replyAction.activate(value);
116 property var activateAction: QMenuModel.UnityMenuAction {
117 model: menuItem.model
119 name: menu && actionsDescription[0].name ? actionsDescription[0].name : ""
121 property var replyAction: QMenuModel.UnityMenuAction {
122 model: menuItem.model
124 name: menu && actionsDescription[1].name ? actionsDescription[1].name : ""
128 title: menu && menu.label ? menu.label : ""
129 time: menu ? Utils.formatDate(menu.ext.xCanonicalTime) : ""
130 message: menu && menu.ext.xCanonicalText ? menu.ext.xCanonicalText : ""
131 actionButtonText: actionsDescription && actionsDescription[0].label ? actionsDescription[0].label : "Call back"
132 replyButtonText: actionsDescription && actionsDescription[1].label ? actionsDescription[1].label : "Send"
133 replyMessages: actionsDescription && actionsDescription[1]["parameter-hint"] ? actionsDescription[1]["parameter-hint"] : ""
135 avatar: menu && menu.ext.icon !== undefined ? menu.ext.icon : "qrc:/indicators/artwork/messaging/default_contact.png"
136 appIcon: menu && menu.ext.xCanonicalAppIcon !== undefined ? menu.ext.xCanonicalAppIcon : "qrc:/indicators/artwork/messaging/default_app.svg"
138 activateEnabled: activateAction.valid && activateAction.enabled
139 replyEnabled: replyAction.valid && replyAction.enabled
142 menuItem.model.activate(modelIndex, true);
145 menuItem.model.activate(modelIndex, false);
148 activateAction.activate();
151 replyAction.activate(value);
157 function loadMessage(actions)
159 var parameterType = ""
160 for (var actIndex in actions) {
161 var desc = actions[actIndex];
162 if (desc["parameter-type"] !== undefined) {
163 parameterType += desc["parameter-type"];
165 parameterType += "_";
169 if (parameterType === "") {
170 return simpleTextMessage;
171 } else if (parameterType === "s") {
173 } else if (parameterType === "_s") {
176 console.debug("Unknown paramater type: " + parameterType);
keysesc to close
- j k
- move down, up
- enter
- open
- esc
- back, or up a level
- 1 2 3 4
- readme, files, commits, refs
- /
- filter
- y
- copy the clone command
- c
- compare the chosen commit with another (or shift-click both)
- ?
- show or hide this list