136 lines
6.6 KiB
C++
136 lines
6.6 KiB
C++
#ifndef CONSTANTS_H
|
||
#define CONSTANTS_H
|
||
|
||
#include <QCoreApplication>
|
||
#include <QString>
|
||
|
||
// ============================================================================
|
||
// 项目公共常量 — 所有 URL、路径、文件名等配置集中于此,修改只需改一处
|
||
// ============================================================================
|
||
|
||
namespace Constants {
|
||
|
||
// ---------------------------------------------------------------------------
|
||
// 应用版本号(发版时只需修改此处)
|
||
// ---------------------------------------------------------------------------
|
||
namespace App {
|
||
constexpr char Version[] = "1.4.0";
|
||
}
|
||
|
||
// ---------------------------------------------------------------------------
|
||
// URL 常量
|
||
// ---------------------------------------------------------------------------
|
||
namespace Urls {
|
||
constexpr char Base[] = "http://10.20.163.105:6045";
|
||
|
||
inline QString updateInfo() { return QString::fromLatin1(Base) + "/download/uft3changecode/update_info.json"; }
|
||
inline QString downloadPage(){ return QString::fromLatin1(Base) + "/uft3changecode/下载.html"; }
|
||
inline QString helpPage() { return QString::fromLatin1(Base) + "/uft3changecode"; }
|
||
}
|
||
|
||
// ---------------------------------------------------------------------------
|
||
// 目录 / 文件路径常量(相对于 exe 目录的子路径名称)
|
||
// ---------------------------------------------------------------------------
|
||
namespace Paths {
|
||
inline const QString ToolDir = "uf2touft3"; // 工具主目录
|
||
inline const QString LogDir = "logs"; // 日志目录
|
||
inline const QString CacheDir = "cache"; // 缓存目录
|
||
inline const QString ChangeCodeDir = "change_code"; // 代码检索根目录(toolDir 下)
|
||
inline const QString FunctionOutput = "function_output"; // 调用链/文件导出目录
|
||
}
|
||
|
||
// ---------------------------------------------------------------------------
|
||
// ToolDir 下的文件名
|
||
// ---------------------------------------------------------------------------
|
||
namespace ToolFiles {
|
||
inline const QString Exe = "uf2touft3.exe";
|
||
inline const QString ConfigIni = "config.ini";
|
||
inline const QString Uf2Json = "uf2.json";
|
||
inline const QString Uft3Json = "uft3.json";
|
||
inline const QString Uft3Trans = "uft3Trans.json";
|
||
inline const QString CustJson = "cust.json";
|
||
}
|
||
|
||
// ---------------------------------------------------------------------------
|
||
// Cache 相关
|
||
// ---------------------------------------------------------------------------
|
||
namespace Cache {
|
||
inline const QString DbFile = "config_cache.db";
|
||
}
|
||
|
||
// ---------------------------------------------------------------------------
|
||
// 元数据文件相对子路径(相对于业务工程目录 dirPath 拼接)
|
||
// ---------------------------------------------------------------------------
|
||
namespace MetaPaths {
|
||
// UFT3
|
||
inline const QString Uft3StdField = "/metadata/stdfield.stdfield"; // UFT3 标准字段文件
|
||
inline const QString Uft3DataType = "/metadata/datatype.datatype"; // UFT3 数据类型文件
|
||
inline const QString Uft3StructDir = "/uftstructure"; // UFT3 表结构目录
|
||
// UF2
|
||
inline const QString Uf2StdField = "/公共资源/stdfields.xml"; // UF2 标准字段文件
|
||
inline const QString Uf2DataType = "/公共资源/datatypes.xml"; // UF2 数据类型文件
|
||
inline const QString Uf2ErrNumber = "/公共资源/errNumbers.xml"; // UF2 错误号文件
|
||
// 文件扩展名
|
||
inline const QString Uft3StructExt = ".uftstructure"; // UFT3 表结构文件扩展名
|
||
}
|
||
|
||
// ---------------------------------------------------------------------------
|
||
// 运行时路径辅助函数(基于 applicationDirPath 拼接)
|
||
// ---------------------------------------------------------------------------
|
||
inline QString toolDir() { return QCoreApplication::applicationDirPath() + "/" + Paths::ToolDir; }
|
||
inline QString toolExe() { return toolDir() + "/" + ToolFiles::Exe; }
|
||
inline QString configIni() { return toolDir() + "/" + ToolFiles::ConfigIni; }
|
||
inline QString custJson() { return toolDir() + "/" + ToolFiles::CustJson; }
|
||
inline QString logDir() { return QCoreApplication::applicationDirPath() + "/" + Paths::LogDir; }
|
||
inline QString cacheDir() { return QCoreApplication::applicationDirPath() + "/" + Paths::CacheDir; }
|
||
inline QString cacheDb() { return cacheDir() + "/" + Cache::DbFile; }
|
||
|
||
// ---------------------------------------------------------------------------
|
||
// 代码检索(CodeSearch)相关常量与路径
|
||
// ---------------------------------------------------------------------------
|
||
namespace CodeSearch {
|
||
constexpr char ChangeCodeIni[] = "change_code.ini"; // 路径持久化配置文件名
|
||
constexpr char ConvertPathKey[] = "codeSearch/convertPath"; // QSettings 键:转码业务路径
|
||
constexpr char SearchPathKey[] = "codeSearch/searchPath"; // QSettings 键:非转码业务路径
|
||
}
|
||
|
||
inline QString changeCodeDir() { return toolDir() + "/" + Paths::ChangeCodeDir; } // 默认代码检索根目录
|
||
inline QString changeCodeIni() { return toolDir() + "/" + QString::fromLatin1(CodeSearch::ChangeCodeIni); }
|
||
inline QString functionOutput() { return Paths::FunctionOutput; } // 调用链/文件导出目录名
|
||
|
||
} // namespace Constants
|
||
|
||
// ============================================================================
|
||
// 路径与规则相关的公共工具(原 pathutils.h 合并至此)
|
||
// - 反斜杠标准化(replace('\\','/'))
|
||
// - “转码接口”路径判定规则(原在 uft3interface/uf2interface 多处硬编码)
|
||
// 仅依赖 <QString>,不引入额外耦合
|
||
// ============================================================================
|
||
|
||
namespace PathUtils {
|
||
|
||
// 将 Windows 反斜杠统一为斜杠,返回标准化后的副本(不修改入参)
|
||
inline QString normPath(const QString& path)
|
||
{
|
||
QString p = path;
|
||
p.replace('\\', '/');
|
||
return p;
|
||
}
|
||
|
||
// 判断路径是否属于“转码”接口:位于 cbptrans / mgrcbptrans / converttrans / ses
|
||
// 目录下,但排除 cbptrans/cbptranspub 公共转码目录。内部先做路径标准化,
|
||
// 因此即使传入含反斜杠的原始路径也能正确判定。
|
||
inline bool isTransCodePath(const QString& filePath)
|
||
{
|
||
const QString p = normPath(filePath);
|
||
return (p.contains("/cbptrans/") ||
|
||
p.contains("/mgrcbptrans/") ||
|
||
p.contains("/converttrans/") ||
|
||
p.contains("/ses/")) &&
|
||
!p.contains("/cbptrans/cbptranspub/");
|
||
}
|
||
|
||
} // namespace PathUtils
|
||
|
||
#endif // CONSTANTS_H
|