From ebe237cd407e5a108e1eb96be9a1e0bef702d88d Mon Sep 17 00:00:00 2001 From: David Sansome Date: Sun, 29 Aug 2010 19:50:06 +0000 Subject: [PATCH] Codereview comments from r1844 --- src/core/organise.cpp | 10 ++++++++-- src/core/organise.h | 4 +++- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/src/core/organise.cpp b/src/core/organise.cpp index 1adbb6b47..4d2961bf5 100644 --- a/src/core/organise.cpp +++ b/src/core/organise.cpp @@ -140,8 +140,8 @@ void Organise::ProcessSomeFiles() { song.set_filetype(task.new_filetype_); // Fiddle the filename extension as well to match the new type - song.set_filename(song.filename().section('.', 0, -2) + "." + task.new_extension_); - song.set_basefilename(song.basefilename().section('.', 0, -2) + "." + task.new_extension_); + song.set_filename(FiddleFileExtension(song.filename(), task.new_extension_)); + song.set_basefilename(FiddleFileExtension(song.basefilename(), task.new_extension_)); // Have to set this to the size of the new file or else funny stuff happens song.set_filesize(QFileInfo(task.transcoded_filename_).size()); @@ -248,3 +248,9 @@ void Organise::FileTranscoded(const QString& filename, bool success) { } QTimer::singleShot(0, this, SLOT(ProcessSomeFiles())); } + +QString Organise::FiddleFileExtension(const QString& filename, const QString& new_extension) { + if (filename.section('/', -1, -1).contains('.')) + return filename.section('.', 0, -2) + "." + new_extension; + return filename + "." + new_extension; +} diff --git a/src/core/organise.h b/src/core/organise.h index ad4e950b1..f2d050672 100644 --- a/src/core/organise.h +++ b/src/core/organise.h @@ -53,9 +53,11 @@ private: void UpdateProgress(); Song::FileType CheckTranscode(Song::FileType original_type) const; + static QString FiddleFileExtension(const QString& filename, const QString& new_extension); + private: struct Task { - Task(const QString& filename = QString()) : filename_(filename) {} + explicit Task(const QString& filename = QString()) : filename_(filename) {} QString filename_; QString transcoded_filename_;