summaryrefslogtreecommitdiffstats
path: root/application/palemoon/components/places/PlacesUIUtils.jsm
diff options
context:
space:
mode:
authorwolfbeast <mcwerewolf@gmail.com>2018-12-18 11:39:00 +0100
committerwolfbeast <mcwerewolf@gmail.com>2018-12-18 11:39:00 +0100
commit76fe52eb81db323ceaa8396de39b76efbce1c25e (patch)
tree061c409281374d893f9730f89e6a4ef32d0b53f9 /application/palemoon/components/places/PlacesUIUtils.jsm
parent63635e38ff9341c02fae7f4557d230ec710947b6 (diff)
parent680c3eadb6aaec1f3653636db081a519e0f62ef5 (diff)
downloadUXP-76fe52eb81db323ceaa8396de39b76efbce1c25e.tar
UXP-76fe52eb81db323ceaa8396de39b76efbce1c25e.tar.gz
UXP-76fe52eb81db323ceaa8396de39b76efbce1c25e.tar.lz
UXP-76fe52eb81db323ceaa8396de39b76efbce1c25e.tar.xz
UXP-76fe52eb81db323ceaa8396de39b76efbce1c25e.zip
Merge branch 'master' into Basilisk-releasev2018.12.18
Diffstat (limited to 'application/palemoon/components/places/PlacesUIUtils.jsm')
-rw-r--r--application/palemoon/components/places/PlacesUIUtils.jsm40
1 files changed, 26 insertions, 14 deletions
diff --git a/application/palemoon/components/places/PlacesUIUtils.jsm b/application/palemoon/components/places/PlacesUIUtils.jsm
index f62535613..05d79241c 100644
--- a/application/palemoon/components/places/PlacesUIUtils.jsm
+++ b/application/palemoon/components/places/PlacesUIUtils.jsm
@@ -146,14 +146,21 @@ this.PlacesUIUtils = {
* annotations are synced from the old one.
* @see this._copyableAnnotations for the list of copyable annotations.
*/
- _getFolderCopyTransaction:
- function PUIU__getFolderCopyTransaction(aData, aContainer, aIndex)
- {
- function getChildItemsTransactions(aChildren)
- {
+ _getFolderCopyTransaction(aData, aContainer, aIndex) {
+ function getChildItemsTransactions(aRoot) {
let transactions = [];
let index = aIndex;
- aChildren.forEach(function (node, i) {
+ for (let i = 0; i < aRoot.childCount; ++i) {
+ let child = aRoot.getChild(i);
+ // Temporary hacks until we switch to PlacesTransactions.jsm.
+ let isLivemark =
+ PlacesUtils.annotations.itemHasAnnotation(child.itemId,
+ PlacesUtils.LMANNO_FEEDURI);
+ let [node] = PlacesUtils.unwrapNodes(
+ PlacesUtils.wrapNode(child, PlacesUtils.TYPE_X_MOZ_PLACE, isLivemark),
+ PlacesUtils.TYPE_X_MOZ_PLACE
+ );
+
// Make sure that items are given the correct index, this will be
// passed by the transaction manager to the backend for the insertion.
// Insertion behaves differently for DEFAULT_INDEX (append).
@@ -184,19 +191,21 @@ this.PlacesUIUtils = {
else {
throw new Error("Unexpected item under a bookmarks folder");
}
- });
+ }
return transactions;
}
- if (aContainer == PlacesUtils.tagsFolderId) { // Copying a tag folder.
+ if (aContainer == PlacesUtils.tagsFolderId) { // Copying into a tag folder.
let transactions = [];
- if (aData.children) {
- aData.children.forEach(function(aChild) {
+ if (!aData.livemark && aData.type == PlacesUtils.TYPE_X_MOZ_PLACE_CONTAINER) {
+ let {root} = PlacesUtils.getFolderContents(aData.id, false, false);
+ let urls = PlacesUtils.getURLsForContainerNode(root);
+ root.containerOpen = false;
+ for (let { uri } of urls) {
transactions.push(
- new PlacesTagURITransaction(PlacesUtils._uri(aChild.uri),
- [aData.title])
+ new PlacesTagURITransaction(NetUtil.newURI(uri), [aData.title])
);
- });
+ }
}
return new PlacesAggregatedTransaction("addTags", transactions);
}
@@ -205,7 +214,10 @@ this.PlacesUIUtils = {
return this._getLivemarkCopyTransaction(aData, aContainer, aIndex);
}
- let transactions = getChildItemsTransactions(aData.children);
+ let {root} = PlacesUtils.getFolderContents(aData.id, false, false);
+ let transactions = getChildItemsTransactions(root);
+ root.containerOpen = false;
+
if (aData.dateAdded) {
transactions.push(
new PlacesEditItemDateAddedTransaction(null, aData.dateAdded)