diff options
Diffstat (limited to 'mtp')
-rwxr-xr-x | mtp/MtpStorage.cpp | 2 | ||||
-rwxr-xr-x | mtp/btree.hpp | 1 | ||||
-rwxr-xr-x | mtp/node.cpp | 6 |
3 files changed, 8 insertions, 1 deletions
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; } |