LAMPCAE/src/Settings/BusAPI.h

292 lines
7.1 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

/**
* @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