292 lines
7.1 KiB
C++
292 lines
7.1 KiB
C++
/**
|
||
* @file BusAPI.h
|
||
* @brief 设置信息管理单例类头(.h)文件
|
||
* @author LAMPCAE研发小组(LAMPCAE@diso.cn)
|
||
* @version 2.5.0
|
||
* @date 2022-02-13 16:40
|
||
* @copyright Copyright (c) Since 2020 青岛数智船海科技有限公司 All rights reserved.
|
||
*
|
||
* ============================================================================
|
||
* Program: LAMPCAE
|
||
*
|
||
* Copyright (c) Since 2020 青岛数智船海科技有限公司 All rights reserved.
|
||
* See License or http://www.LAMPCAE.com/ for details.
|
||
*
|
||
* BSD 3-Clause License
|
||
*
|
||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||
* DISCLAIMED.
|
||
* ==================================================================================
|
||
*/
|
||
#ifndef _SETTINGBUSAPI_H_
|
||
#define _SETTINGBUSAPI_H_
|
||
|
||
#include <QString>
|
||
#include <QStringList>
|
||
#include <QColor>
|
||
#include "SettingAPI.h"
|
||
#include "TaskListClass.h"
|
||
|
||
|
||
namespace GUI
|
||
{
|
||
class MainWindow;
|
||
}
|
||
|
||
/**
|
||
* @brief 跟设置有关的命名空间
|
||
* @since 2.5.0
|
||
*/
|
||
namespace Setting
|
||
{
|
||
|
||
|
||
|
||
class MainSetting;
|
||
// class SolverManager;
|
||
// class SolveOption;
|
||
class GraphOption;
|
||
class MessageSetting;
|
||
|
||
class SETTINGAPI BusAPI
|
||
{
|
||
public:
|
||
/**
|
||
* @brief 获取设置信息管理类的实例对象
|
||
* @return BusAPI* 返回设置信息管理类的单例对象
|
||
* @since 2.5.0
|
||
*/
|
||
static BusAPI *instance();
|
||
/**
|
||
* @brief 将设置信息写出ini配置文件
|
||
* @since 2.5.0
|
||
*/
|
||
void writeINI();
|
||
/**
|
||
* @brief 获取应用程序的exe文件路径
|
||
* @since 2.5.0
|
||
*/
|
||
QString getApplicationExePath();
|
||
|
||
QString getTemperturePath();
|
||
/**
|
||
* @brief 设置工作空间
|
||
* @since 2.5.0
|
||
*/
|
||
void setWorkingDir();
|
||
// void setDesignModel(bool m);
|
||
// bool isDesignModel();
|
||
/**
|
||
* @brief 获取工作空间
|
||
* @return QString 返回工作空间的路径
|
||
* @since 2.5.0
|
||
*/
|
||
QString getWorkingDir();
|
||
// void setSolver();
|
||
/**
|
||
* @brief 设置本地化语言(“Chinese”或者“English”)
|
||
* @param lang 要设置的本地化语言
|
||
* @since 2.5.0
|
||
*/
|
||
void setLanguage(const QString lang);
|
||
/**
|
||
* @brief 获取本地化语言
|
||
* @return QString 返回本地化语言的值(“Chinese”或者“English”)
|
||
* @since 2.5.0
|
||
*/
|
||
QString getLanguage();
|
||
// SolverManager* getSolverManager();
|
||
// void setSolverOptions();
|
||
// SolveOption* getSolveOptions();
|
||
/**
|
||
* @brief 打开绘图选项对话框
|
||
* @deprecated 该函数名语义不明确,请使用showGraphOptionsDialog()代替
|
||
* @since 2.5.0
|
||
*/
|
||
void setGraphOptions();
|
||
/**
|
||
* @brief 打开绘图选项对话框
|
||
* @since 2.5.0
|
||
*/
|
||
void showGraphOptionsDialog();
|
||
/**
|
||
* @brief 获取绘图选项设置对象
|
||
* @return GraphOption* 返回绘图选项设置对象
|
||
* @since 2.5.0
|
||
*/
|
||
GraphOption *getGraphOption();
|
||
/**
|
||
* @brief 获取最近打开文件的列表
|
||
* @return QStringList 返回最近打开文件的列表
|
||
* @since 2.5.0
|
||
*/
|
||
QStringList getRencetFiles();
|
||
/**
|
||
* @brief 添加文件到最近打开的文件列表
|
||
* @param f 要添加到最近打开文件列表的文件
|
||
* @since 2.5.0
|
||
*/
|
||
void appendRecentFile(QString f);
|
||
/**
|
||
* @brief 设置已经加载的插件列表
|
||
* @param p 已经加载的插件列表
|
||
* @since 2.5.0
|
||
*/
|
||
void setPlugins(QStringList p);
|
||
/**
|
||
* @brief 获取已经加载的插件列表
|
||
* @return QStringList 返回已经加载的插件列表
|
||
* @since 2.5.0
|
||
*/
|
||
QStringList getPlugins();
|
||
/**
|
||
* @brief 设置是否显示用户引导页面
|
||
* @param s 是否显示用户引导页面的布尔值
|
||
* @since 2.5.0
|
||
*/
|
||
void isEnableUserGuidence(bool s);
|
||
/**
|
||
* @brief 获取是否显示用户引导页面
|
||
* @return bool 返回是否显示用户引导页面的布尔值
|
||
* @since 2.5.0
|
||
*/
|
||
bool isEnableUserGuidence();
|
||
/**
|
||
* @brief 设置是否使用Ribbon风格
|
||
* @param on 是否使用Ribbon风格的布尔值
|
||
* @since 2.5.0
|
||
*/
|
||
void isUseRibbon(bool on);
|
||
/**
|
||
* @brief 获取是否使用Ribbon风格
|
||
* @return bool 返回是否使用Ribbon风格的布尔值
|
||
* @since 2.5.0
|
||
*/
|
||
bool isUseRibbon();
|
||
/**
|
||
* @brief 获取License文件的路径
|
||
* @return QString 返回License文件的路径
|
||
* @since 2.5.0
|
||
*/
|
||
QString getLicensePath() const;
|
||
/**
|
||
* @brief 设置License文件
|
||
* @param licensePath License文件的路径
|
||
* @since 2.5.0
|
||
*/
|
||
void setLicensePath(const QString &licensePath);
|
||
/**
|
||
* @brief 获取主窗口对象
|
||
* @return GUI::MainWindow* 返回主窗口对象
|
||
* @since 2.5.0
|
||
*/
|
||
GUI::MainWindow *getMainWindow();
|
||
/**
|
||
* @brief 设置主窗口对象
|
||
* @param mw 主窗口对象
|
||
* @since 2.5.0
|
||
*/
|
||
void setMainWindow(GUI::MainWindow *mw);
|
||
|
||
int getMessageShowMode() const;
|
||
|
||
void setMessageShowMode(int showMode);
|
||
|
||
bool getMessageShowType() const;
|
||
|
||
void setMessageShowType(bool showType);
|
||
|
||
bool getMessageShowTime() const;
|
||
|
||
void setMessageShowTime(bool showTime);
|
||
|
||
int getMessageFontPts() const;
|
||
|
||
void setMessageFontPts(int fontPts);
|
||
|
||
QColor getMessageBkColor() const;
|
||
|
||
void setMessageBkColor(const QColor &bkColor);
|
||
|
||
// FEKO
|
||
const QString& getFekoInstallPath() const;
|
||
void setFekoInstallPath(const QString& fekoInstallPath);
|
||
const QString& getFekocadPath() const;
|
||
void setFekocadPath(const QString& fekocadPath);
|
||
const QString& getRunFekoPath() const;
|
||
void setRunFekoPath(const QString& runFekoPath);
|
||
const QString& getPreFekoPath() const;
|
||
void setPreFekoPath(const QString& preFekoPath);
|
||
|
||
//RCSDB
|
||
void setRcsdbFoler(const QString& rcsdbFoler);
|
||
void setRcsdbFilePath(const QString& rcsdbFilePath);
|
||
void setRcsProjectPath(const QString& rcsProjectPath);
|
||
const QString& getRcsdbFoler() const;
|
||
const QString& getRcsdbFilePath() const;
|
||
const QString& getRcsProjectPath() const;
|
||
|
||
// 上个选择的文件地址
|
||
const QString &getLastSelectPath() const;
|
||
void setLastSelectPath(const QString &_LastSelectPath);
|
||
|
||
// 任务描述管理
|
||
TaskDescManager* getTaskDescManager();
|
||
TaskDesc* getNewTask();
|
||
TaskDesc* findTask(int taskID);
|
||
void removeTask(TaskDesc* task);
|
||
|
||
private:
|
||
/**
|
||
* @brief 构造函数
|
||
* @since 2.5.0
|
||
*/
|
||
BusAPI();
|
||
/**
|
||
* @brief 析构函数
|
||
* @since 2.5.0
|
||
*/
|
||
~BusAPI();
|
||
/**
|
||
* @brief 从ini文件读取配置信息
|
||
* @since 2.5.0
|
||
*/
|
||
void readINI();
|
||
|
||
private:
|
||
/**
|
||
* @brief 配置信息管理类的单例对象
|
||
* @since 2.5.0
|
||
*/
|
||
static BusAPI *_ins;
|
||
/**
|
||
* @brief 主窗口配置信息类对象
|
||
* @since 2.5.0
|
||
*/
|
||
MainSetting *_mainSetting{};
|
||
// SolverManager* _solvers{};
|
||
// SolveOption* _solveOption{};
|
||
/**
|
||
* @brief 绘图选项配置信息类对象
|
||
* @since 2.5.0
|
||
*/
|
||
GraphOption *_graphOption{};
|
||
/**
|
||
* @brief 输出消息配置信息类对象
|
||
* @since 2.5.0
|
||
*/
|
||
MessageSetting *_messageSetting{};
|
||
/**
|
||
* @brief 主窗口对象
|
||
* @since 2.5.0
|
||
*/
|
||
GUI::MainWindow *_mainWindow{};
|
||
// bool _isDesignModel{ false };
|
||
private:
|
||
TaskDescManager* _taskDescManager{};
|
||
};
|
||
}
|
||
|
||
#endif |