@@ -44,6 +44,7 @@ Item {
4444 "com.canonical.indicator.alarm" : alarmMenu,
4545 "com.canonical.indicator.appointment" : appointmentMenu,
4646 "com.canonical.indicator.transfer" : transferMenu,
47+ "com.canonical.indicator.transfer-bulk-action" : bulkTransferMenu,
4748
4849 "com.canonical.indicator.messages.messageitem" : messageItem,
4950 "com.canonical.indicator.messages.sourceitem" : groupedMessage,
@@ -520,18 +521,18 @@ Item {
520521 property QtObject cancelAction: action("cancel-transfer")
521522 property QtObject pauseAction: action("pause-transfer")
522523 property QtObject resumeAction: action("resume-transfer")
523− property QtObject transferStates: action("transfer-states")
524+ property QtObject transferStateAction: uid !== undefined ? action("transfer-state."+uid) : null
524525
525526 Component.onCompleted: actionGroup.start()
526527 }
527528
528− property var transferStateProperties: uid !== undefined && actionGroup.transferStates.valid && actionGroup.transferStates.state[uid] || undefined
529+ property var transferState: actionGroup.transferStateAction !== null && actionGroup.transferStateAction.valid && actionGroup.transferStateAction.state || undefined
529530
530− property var transferState : transferStateProperties !== undefined && transferStateProperties["state"] || undefined
531− property var secondsLeft : transferStateProperties !== undefined && transferStateProperties["seconds-left"]
531+ property var runningState : transferState !== undefined ? transferState["state"] : undefined
532+ property var secondsLeft : transferState !== undefined ? transferState["seconds-left"] : undefined
532533
533− active: transferStateProperties !== undefined && transferState !== Menus.TransferState.FINISHED
534− progress : transferStateProperties !== undefined && transferStateProperties["percent"] || 0.0
534+ active: runningState !== undefined && runningState !== Menus.TransferState.FINISHED
535+ progress : transferState !== undefined ? transferState["percent"] : 0.0
535536
536537 property var timeRemaining: {
537538 if (secondsLeft === undefined) return undefined;
@@ -558,7 +559,7 @@ Item {
558559 }
559560
560561 stateText: {
561− switch (transferState) {
562+ switch (runningState) {
562563 case Menus.TransferState.QUEUED:
563564 return i18n.tr("In queue...");
564565 case Menus.TransferState.HASHING:
@@ -587,22 +588,35 @@ Item {
587588 actionGroup.activateAction.activate(uid);
588589 shell.hideIndicatorMenu(UbuntuAnimation.BriskDuration);
589590 }
591+ onItemRemoved: {
592+ actionGroup.cancelAction.activate(uid);
593+ }
590594
591595 function loadAttributes() {
592596 if (!menuModel || menuIndex == -1) return;
593597 menuModel.loadExtendedAttributes(menuIndex, {'x-canonical-uid': 'string'});
594598 }
599+ }
600+ }
595601
596− function cancel() {
597− actionGroup.cancelAction.activate(uid);
598− }
602+ Component {
603+ id: bulkTransferMenu;
604+ ListItems.Standard {
605+ objectName: "bulkTransferMenu"
606+ property QtObject menuData: null
607+ property int menuIndex: -1
608+ showDivider: false
599609
600− function pause() {
601− actionGroup.pauseAction.activate(uid);
602− }
610+ iconSource: menuData && menuData.icon || ""
611+ enabled: menuData && menuData.sensitive || false
612+
613+ control: Button {
614+ text: menuData && menuData.label || ""
603615
604− function resume() {
605− actionGroup.resumeAction.activate(uid);
616+ onClicked: {
617+ menuModel.activate(menuIndex);
618+ shell.hideIndicatorMenu(UbuntuAnimation.BriskDuration);
619+ }
606620 }
607621 }
608622 }