66 lines
1.7 KiB
C++
66 lines
1.7 KiB
C++
#include "PathManager.h"
|
||
#include <QtCore/QCoreApplication>
|
||
#include <QtCore/QFileInfo>
|
||
#include <QtCore/QDir>
|
||
#include <QtCore/QStandardPaths>
|
||
#include <QtCore/QFile>
|
||
#include "VrLog.h"
|
||
|
||
QString PathManager::GetConfigFilePath()
|
||
{
|
||
// 确保目标目录存在
|
||
EnsureConfigDirectoryExists();
|
||
return GetAppConfigDirectory() + "/config.xml";
|
||
}
|
||
|
||
QString PathManager::GetCalibrationFilePath()
|
||
{
|
||
// 确保目标目录存在
|
||
EnsureConfigDirectoryExists();
|
||
return GetAppConfigDirectory() + "/EyeHandCalibMatrixInfo.ini";
|
||
}
|
||
|
||
QString PathManager::GetAppConfigDirectory()
|
||
{
|
||
QString configDir = "";
|
||
#ifdef _WIN32
|
||
// Windows系统:使用程序目录
|
||
configDir = GetProgramDirectory();
|
||
#else
|
||
// Linux系统:使用用户配置目录
|
||
configDir = GetUserConfigDirectory();
|
||
#endif
|
||
return configDir + "/../GrabBagApp/Config";
|
||
}
|
||
|
||
bool PathManager::EnsureConfigDirectoryExists()
|
||
{
|
||
QString configDir = GetAppConfigDirectory();
|
||
|
||
if (QDir().exists(configDir)) {
|
||
return true;
|
||
}
|
||
|
||
LOG_INFO("Creating configuration directory: %s\n", configDir.toStdString().c_str());
|
||
|
||
bool success = QDir().mkpath(configDir);
|
||
if (success) {
|
||
LOG_INFO("Configuration directory created successfully\n");
|
||
} else {
|
||
LOG_ERROR("Failed to create configuration directory: %s\n", configDir.toStdString().c_str());
|
||
}
|
||
|
||
return success;
|
||
}
|
||
|
||
|
||
QString PathManager::GetProgramDirectory()
|
||
{
|
||
QString exePath = QCoreApplication::applicationFilePath();
|
||
return QFileInfo(exePath).absoluteDir().path();
|
||
}
|
||
|
||
QString PathManager::GetUserConfigDirectory()
|
||
{
|
||
return QStandardPaths::writableLocation(QStandardPaths::ConfigLocation);
|
||
}
|