MTP Fix rename in Windows

Change-Id: Ieef2fc16aac1da3d03908cfb285895954b42a14a
diff --git a/mtp/MtpStorage.cpp b/mtp/MtpStorage.cpp
index 4c1f456..7531ac4 100755
--- a/mtp/MtpStorage.cpp
+++ b/mtp/MtpStorage.cpp
@@ -644,7 +644,7 @@
 				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 d6bd0c3..1fa8d28 100755
--- a/mtp/btree.hpp
+++ b/mtp/btree.hpp
@@ -36,6 +36,7 @@
 	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 a9c1f9b..79936c4 100755
--- a/mtp/node.cpp
+++ b/mtp/node.cpp
@@ -44,6 +44,12 @@
 
 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; }