- Fix folder renaming (would misbehave under certain conditions)

This commit is contained in:
Christophe Dumez 2010-01-19 22:35:54 +00:00
parent d5da8a6277
commit 7f576ccc82
2 changed files with 14 additions and 8 deletions

View file

@ -409,7 +409,7 @@ QPushButton* PropertiesWidget::getButtonFromIndex(int index) {
return url_seeds_button; return url_seeds_button;
case FILES_TAB: case FILES_TAB:
return files_button; return files_button;
default: default:
return main_infos_button; return main_infos_button;
} }
} }
@ -613,9 +613,12 @@ void PropertiesWidget::renameSelectedFile() {
// Replace path in all files // Replace path in all files
for(int i=0; i<num_files; ++i) { for(int i=0; i<num_files; ++i) {
QString current_name = misc::toQString(h.get_torrent_info().file_at(i).path.string()); QString current_name = misc::toQString(h.get_torrent_info().file_at(i).path.string());
QString new_name = current_name.replace(old_path, new_path); if(current_name.startsWith(old_path)) {
qDebug("Rename %s to %s", current_name.toLocal8Bit().data(), new_name.toLocal8Bit().data()); QString new_name = current_name;
h.rename_file(i, new_name); new_name.replace(0, old_path.length(), new_path);
qDebug("Rename %s to %s", current_name.toLocal8Bit().data(), new_name.toLocal8Bit().data());
h.rename_file(i, new_name);
}
} }
// Rename folder in torrent files model too // Rename folder in torrent files model too
PropListModel->setData(index, new_name_last); PropListModel->setData(index, new_name_last);

View file

@ -350,10 +350,13 @@ public slots:
// Replace path in all files // Replace path in all files
for(uint i=0; i<nbFiles; ++i) { for(uint i=0; i<nbFiles; ++i) {
QString current_name = files_path.at(i); QString current_name = files_path.at(i);
QString new_name = current_name.replace(old_path, new_path); if(current_name.startsWith(old_path)) {
qDebug("Rename %s to %s", current_name.toLocal8Bit().data(), new_name.toLocal8Bit().data()); QString new_name = current_name;
// Rename in files_path new_name.replace(0, old_path.length(), new_path);
files_path.replace(i, new_name); qDebug("Rename %s to %s", current_name.toLocal8Bit().data(), new_name.toLocal8Bit().data());
// Rename in files_path
files_path.replace(i, new_name);
}
} }
// Rename folder in torrent files model too // Rename folder in torrent files model too
PropListModel->setData(index, new_name_last); PropListModel->setData(index, new_name_last);