summaryrefslogtreecommitdiffstats
path: root/src/library/traktor/traktorfeature.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/library/traktor/traktorfeature.cpp')
-rw-r--r--src/library/traktor/traktorfeature.cpp29
1 files changed, 7 insertions, 22 deletions
diff --git a/src/library/traktor/traktorfeature.cpp b/src/library/traktor/traktorfeature.cpp
index 10f367f7cb..35f77ab003 100644
--- a/src/library/traktor/traktorfeature.cpp
+++ b/src/library/traktor/traktorfeature.cpp
@@ -8,7 +8,6 @@
#include <QStandardPaths>
#include <QXmlStreamReader>
#include <QtDebug>
-#include <tuple>
#include "library/library.h"
#include "library/librarytablemodel.h"
@@ -19,6 +18,7 @@
#include "library/treeitem.h"
#include "moc_traktorfeature.cpp"
#include "util/sandbox.h"
+#include "util/semanticversion.h"
namespace {
@@ -27,16 +27,6 @@ QString fromTraktorSeparators(QString path) {
return path.replace("/:", "/");
}
-struct SemanticVersion {
- uint major{0},
- minor{0},
- patch{0};
-};
-
-bool operator<(const SemanticVersion& a, const SemanticVersion& b) {
- return std::tie(a.major, a.minor, a.patch) < std::tie(b.major, b.minor, b.patch);
-}
-
} // anonymous namespace
@@ -584,7 +574,7 @@ QString TraktorFeature::getTraktorMusicDatabase() {
//Iterate over the subfolders
QFileInfoList list = ni_directory.entryInfoList();
- QMap<SemanticVersion, QString> installed_ts_map;
+ QMap<mixxx::SemanticVersion, QString> installed_ts_map;
for (int i = 0; i < list.size(); ++i) {
QFileInfo fileInfo = list.at(i);
@@ -592,19 +582,14 @@ QString TraktorFeature::getTraktorMusicDatabase() {
if (folder_name == "Traktor") {
//We found a Traktor 1 installation
- installed_ts_map.insert({1, 0, 0}, fileInfo.absoluteFilePath());
+ installed_ts_map.insert(mixxx::SemanticVersion(1, 0, 0), fileInfo.absoluteFilePath());
continue;
}
if (folder_name.contains("Traktor")) {
qDebug() << "Found " << folder_name;
- QRegularExpression re("(?<major>\\d+)\\.(?<minor>\\d+)\\.(?<patch>\\d+)");
- QRegularExpressionMatch match = re.match(folder_name);
- if (match.hasMatch()) {
- const auto version = SemanticVersion{
- match.captured("major").toUInt(),
- match.captured("minor").toUInt(),
- match.captured("patch").toUInt()};
- installed_ts_map.insert(version, fileInfo.absoluteFilePath());
+ auto semver = mixxx::SemanticVersion(folder_name);
+ if (semver.isValid()) {
+ installed_ts_map.insert(semver, fileInfo.absoluteFilePath());
}
}
}
@@ -612,7 +597,7 @@ QString TraktorFeature::getTraktorMusicDatabase() {
if (installed_ts_map.isEmpty()) {
musicFolder = QDir::homePath() + "/collection.nml";
} else { //Select the folder with the highest version as default Traktor folder
- QList<SemanticVersion> versions = installed_ts_map.keys();
+ QList<mixxx::SemanticVersion> versions = installed_ts_map.keys();
std::sort(versions.begin(), versions.end());
musicFolder = installed_ts_map.value(versions.last()) + "/collection.nml";
}