MacAddressDatabase: Update default loations for the mac-addresses.db to be more generic.

This commit is contained in:
Simon Stürz 2026-01-29 21:24:36 +01:00
parent abd8dd2d97
commit 53b00a950f
2 changed files with 21 additions and 8 deletions

View File

@ -30,6 +30,7 @@
#include <QFileInfo> #include <QFileInfo>
#include <QTimer> #include <QTimer>
#include <QSqlDatabase> #include <QSqlDatabase>
#include <QDir>
#include <QStandardPaths> #include <QStandardPaths>
#include <QtConcurrent/QtConcurrent> #include <QtConcurrent/QtConcurrent>
@ -41,18 +42,30 @@ MacAddressDatabase::MacAddressDatabase(QObject *parent) : QObject(parent)
{ {
// Find database in system data locations // Find database in system data locations
QString databaseFileName; QString databaseFileName;
foreach (const QString &dataLocation, QStandardPaths::standardLocations(QStandardPaths::GenericDataLocation)) { const QStringList dataLocations = QStandardPaths::standardLocations(QStandardPaths::GenericDataLocation);
QFileInfo databaseFileInfo(dataLocation + QDir::separator() + "mac-addresses.db"); foreach (const QString &dataLocation, dataLocations) {
if (!databaseFileInfo.exists()) { const QStringList candidateFiles = {
continue; dataLocation + QDir::separator() + "nymea" + QDir::separator() + "nymead" + QDir::separator() + "mac-addresses.db",
dataLocation + QDir::separator() + "nymea" + QDir::separator() + "mac-addresses.db",
dataLocation + QDir::separator() + "mac-addresses.db"
};
foreach (const QString &candidate, candidateFiles) {
QFileInfo databaseFileInfo(candidate);
if (!databaseFileInfo.exists())
continue;
databaseFileName = databaseFileInfo.absoluteFilePath();
break;
} }
databaseFileName = databaseFileInfo.absoluteFilePath(); if (!databaseFileName.isEmpty())
break; break;
} }
if (databaseFileName.isEmpty()) { if (databaseFileName.isEmpty()) {
qCWarning(dcMacAddressDatabase()) << "Could not find the mac address database in any system data location paths" << QStandardPaths::standardLocations(QStandardPaths::GenericDataLocation); qCWarning(dcMacAddressDatabase()) << "Could not find the mac address database in any system data location paths" << dataLocations;
qCWarning(dcMacAddressDatabase()) << "The mac address database lookup feature will not be available."; qCWarning(dcMacAddressDatabase()) << "The mac address database lookup feature will not be available.";
return; return;
} }

View File

@ -50,7 +50,7 @@ private:
QSqlDatabase m_db; QSqlDatabase m_db;
bool m_available = false; bool m_available = false;
QString m_connectionName; QString m_connectionName;
QString m_databaseName = "/usr/share/nymea/mac-addresses.db"; QString m_databaseName = "/usr/share/nymea/nymead/mac-addresses.db";
MacAddressDatabaseReplyImpl *m_currentReply = nullptr; MacAddressDatabaseReplyImpl *m_currentReply = nullptr;
QFutureWatcher<QString> *m_futureWatcher = nullptr; QFutureWatcher<QString> *m_futureWatcher = nullptr;