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
26Indicators.BaseMenuItem {
28 property var actionsDescription: menu ? menu.ext.xCanonicalMessageActions : undefined
30 implicitHeight: contents.status == Loader.Ready ? contents.item.implicitHeight : 0
32 property var model: null
38 sourceComponent: loadMessage(actionsDescription);
44 title: menu && menu.label ? menu.label : ""
45 time: menu ? menu.ext.xCanonicalTime : 0
46 message: menu && menu.ext.xCanonicalText ? menu.ext.xCanonicalText : ""
48 avatar: menu && menu.ext.icon !== undefined ? menu.ext.icon : "qrc:/indicators/artwork/messaging/default_contact.png"
49 appIcon: menu && menu.ext.xCanonicalAppIcon !== undefined ? menu.ext.xCanonicalAppIcon : "qrc:/indicators/artwork/messaging/default_app.svg"
52 menuItem.model.activate(modelIndex, true);
53 shell.hideIndicatorMenu(UbuntuAnimation.FastDuration);
56 menuItem.model.activate(modelIndex, false);
59 menuSelected: menuItem.menuSelected
60 onSelectMenu: menuItem.selectMenu()
61 onDeselectMenu: menuItem.deselectMenu()
67 property var replyAction: QMenuModel.UnityMenuAction {
70 name: menu && actionsDescription[0].name ? actionsDescription[0].name : ""
74 title: menu && menu.label ? menu.label : ""
75 time: menu ? menu.ext.xCanonicalTime : 0
76 message: menu && menu.ext.xCanonicalText ? menu.ext.xCanonicalText : ""
77 replyButtonText: actionsDescription && actionsDescription[0].label ? actionsDescription[0].label : "Send"
79 avatar: menu && menu.ext.icon !== undefined ? menu.ext.icon : "qrc:/indicators/artwork/messaging/default_contact.png"
80 appIcon: menu && menu.ext.xCanonicalAppIcon !== undefined ? menu.ext.xCanonicalAppIcon : "qrc:/indicators/artwork/messaging/default_app.svg"
82 replyEnabled: replyAction.valid && replyAction.enabled
85 menuItem.model.activate(modelIndex, true);
86 shell.hideIndicatorMenu(UbuntuAnimation.FastDuration);
89 menuItem.model.activate(modelIndex, false);
92 replyAction.activate(value);
95 menuSelected: menuItem.menuSelected
96 onSelectMenu: menuItem.selectMenu()
97 onDeselectMenu: menuItem.deselectMenu()
103 property var activateAction: QMenuModel.UnityMenuAction {
104 model: menuItem.model
106 name: menu && actionsDescription[0].name ? actionsDescription[0].name : ""
108 property var replyAction: QMenuModel.UnityMenuAction {
109 model: menuItem.model
111 name: menu && actionsDescription[1].name ? actionsDescription[1].name : ""
115 title: menu && menu.label ? menu.label : ""
116 time: menu ? menu.ext.xCanonicalTime : ""
117 message: menu && menu.ext.xCanonicalText ? menu.ext.xCanonicalText : ""
118 actionButtonText: actionsDescription && actionsDescription[0].label ? actionsDescription[0].label : "Call back"
119 replyButtonText: actionsDescription && actionsDescription[1].label ? actionsDescription[1].label : "Send"
120 replyMessages: actionsDescription && actionsDescription[1]["parameter-hint"] ? actionsDescription[1]["parameter-hint"] : ""
122 avatar: menu && menu.ext.icon !== undefined ? menu.ext.icon : "qrc:/indicators/artwork/messaging/default_contact.png"
123 appIcon: menu && menu.ext.xCanonicalAppIcon !== undefined ? menu.ext.xCanonicalAppIcon : "qrc:/indicators/artwork/messaging/default_app.svg"
125 activateEnabled: activateAction.valid && activateAction.enabled
126 replyEnabled: replyAction.valid && replyAction.enabled
129 menuItem.model.activate(modelIndex, true);
130 shell.hideIndicatorMenu(UbuntuAnimation.FastDuration);
133 menuItem.model.activate(modelIndex, false);
136 activateAction.activate();
139 replyAction.activate(value);
142 menuSelected: menuItem.menuSelected
143 onSelectMenu: menuItem.selectMenu()
144 onDeselectMenu: menuItem.deselectMenu()
149 function loadMessage(actions)
151 var parameterType = ""
152 for (var actIndex in actions) {
153 var desc = actions[actIndex];
154 if (desc["parameter-type"] !== undefined) {
155 parameterType += desc["parameter-type"];
157 parameterType += "_";
161 if (parameterType === "") {
162 return simpleTextMessage;
163 } else if (parameterType === "s") {
165 } else if (parameterType === "_s") {
168 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