From 2e970666e5f1f77f54a104e9c90ea78bbf175d36 Mon Sep 17 00:00:00 2001 From: Scott Klum Date: Wed, 16 Jan 2013 17:14:49 -0500 Subject: [PATCH] Fixed FileList::sort --- sdk/openbr_plugin.cpp | 27 +++++++++++---------------- share/openbr/doc | 2 +- 2 files changed, 12 insertions(+), 17 deletions(-) diff --git a/sdk/openbr_plugin.cpp b/sdk/openbr_plugin.cpp index 0908a21..8a344a8 100644 --- a/sdk/openbr_plugin.cpp +++ b/sdk/openbr_plugin.cpp @@ -359,36 +359,31 @@ QStringList FileList::names() const return names; } -typedef std::pair metadataPair; -bool comparator( const metadataPair &l, const metadataPair &r) +typedef std::pair MetadataPair; +static bool comparator( const MetadataPair &l, const MetadataPair &r) { return l.first < r.first; } void FileList::sort(const QString& key) { - std::vector metadata; + if (this->size() <= 1) return; - int i = 0; + QList metadata; - foreach (const File &file, *this) - { - metadataPair pair = std::make_pair(file.get(key).toString().toStdString().c_str(), i); - metadata.push_back(pair); - i++; + for (int i = 0; i < this->size(); i++) { + MetadataPair pair = std::make_pair(this->at(i).get(key).toString(), i); + metadata.append(pair); } std::sort(metadata.begin(), metadata.end(), comparator); - for (int j = 0; j < metadata.size(); j++) - { - this->push_back(this->at(metadata[j].second)); - } + FileList newList; - iterator half = this->begin(); - half += metadata.size(); + for (int i = 0; i < metadata.size(); i++) + newList.append(this->at(metadata[i].second)); - this->erase(this->begin(), half); + *this = newList; } QList FileList::labels() const diff --git a/share/openbr/doc b/share/openbr/doc index 504960d..1031e9e 160000 --- a/share/openbr/doc +++ b/share/openbr/doc @@ -1 +1 @@ -Subproject commit 504960df12db25e09c39ab098fb8614c1db51617 +Subproject commit 1031e9e416427f5dd8e9f4e7ff4dd74632626c22 -- libgit2 0.21.4