From 2e07c0493e76f16b021d53280ee4fa49586bde46 Mon Sep 17 00:00:00 2001 From: Dees Troy Date: Thu, 4 Sep 2014 15:00:57 +0000 Subject: MTP Fix rename in Windows Change-Id: Ieef2fc16aac1da3d03908cfb285895954b42a14a --- mtp/MtpStorage.cpp | 2 +- mtp/btree.hpp | 1 + mtp/node.cpp | 6 ++++++ 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/mtp/MtpStorage.cpp b/mtp/MtpStorage.cpp index 4c1f45642..7531ac44d 100755 --- a/mtp/MtpStorage.cpp +++ b/mtp/MtpStorage.cpp @@ -644,7 +644,7 @@ int MtpStorage::renameObject(MtpObjectHandle handle, std::string newName) { std::string newFullName = parentdir + "/" + newName; MTPD("old: '%s', new: '%s'\n", oldName.c_str(), newFullName.c_str()); if (rename(oldName.c_str(), newFullName.c_str()) == 0) { - node->setPath(newFullName); + node->rename(newFullName); return 0; } else { MTPE("MtpStorage::renameObject failed, handle: %d, new name: '%s'\n", handle, newName.c_str()); diff --git a/mtp/btree.hpp b/mtp/btree.hpp index d6bd0c380..1fa8d2800 100755 --- a/mtp/btree.hpp +++ b/mtp/btree.hpp @@ -36,6 +36,7 @@ public: Node(); void setMtpid(int aMtpid); void setPath(std::string aPath); + void rename(std::string aPath); void setLeft(Node* aLeft); void setRight(Node* aRight); void setParent(Node* aParent); diff --git a/mtp/node.cpp b/mtp/node.cpp index a9c1f9bae..79936c4a4 100755 --- a/mtp/node.cpp +++ b/mtp/node.cpp @@ -44,6 +44,12 @@ Node::Node() { void Node::setMtpid(int aMtpid) { mtpid = aMtpid; } void Node::setPath(std::string aPath) { path = aPath; } +void Node::rename(std::string aPath) { + path = aPath; + updateProperty(MTP_PROPERTY_OBJECT_FILE_NAME, 0, basename(aPath.c_str()), MTP_TYPE_STR); + updateProperty(MTP_PROPERTY_NAME, 0, basename(aPath.c_str()), MTP_TYPE_STR); + updateProperty(MTP_PROPERTY_DISPLAY_NAME, 0, basename(aPath.c_str()), MTP_TYPE_STR); +} void Node::setLeft(Node* aLeft) { left = aLeft; } void Node::setRight(Node* aRight) { right = aRight; } void Node::setParent(Node* aParent) { parent = aParent; } -- cgit v1.2.3