# 关于`SA`

`SA`当时命名是指`Signal Analysis`，当时专门想编写一个程序能快速的进行频谱分析，因为当时感觉市面上的相关软件都比较弱，强大的如matlab也不是随便一个人能使用的，origin给人的感觉是非常的古老，在研究生阶段写了`SA`的初步版本，当时还是用MFC写的，后来果断替换到Qt上面
后来随着实验数据处理越来越多的特殊需求，`SA`的功能也逐渐扩展，为了适应各种的需求，后来我对`SA`进行了重构，使它成为一个程序框架，功能通过插件来添加。

`SA`的定位并不是像Excel那样强大综合的软件，也不是像Origin专注于绘图的软件，而是定位为可视化的数据模型编辑工具，其实就是想作为数据里的`Photoshop`,让`SA`修改数据可以和`Photoshop`修改图片一样简单

# 关于`SA`的框架

最好的程序只是提供一个框架，内容可以由外部人员填充，这种程序有极度丰富的扩展，像现在各种新兴的编辑器如`vscode`就做的很好，在游戏编程方面，一个框架更是重中之重，游戏的内容千变万化，但可能都是用着一个框架

但是，越是自由，也越是不可控，往往有时候太过自由并无法起到很好的效果，如foobar这种非常靠定制的播放器，最后也杆不过后面那些用户拿了就能用的软件。

`SA`也是提供了一个轻度扩展的框架，但不会有太过于丰富的扩展，目前思路是，程序提供可视化和数据模型的操作框架，功能函数通过插件扩展。

目前`SA`支持的扩展有：数据导入扩展，界面功能扩展

后续可能还会有表格样式的扩展等

# 当前进度
- （完成）子图移动操作\子图的redo/undo(更改SACHart的redo/undo，转移到SAFigureWindow中，目前SAChart::appendCommand会删除无法加入的cmd，此操作有危险，建议返回false，在append后判断进行删除)
- （完成）（在图层加一个combox来选择）figure添加鼠标点击切换currentChart
- （完成）SAFigureLayoutWidget 在图表参数标题改变时，通知SAFigureLayoutWidget的current chart改变
- （完成）图表参数编辑dock的图表选择去掉，只留SAFigureLayoutWidget的图表选择
- （完成）variant table 的编辑，目前variant无法直接编辑
- （完成）figure的图层界面进行修改，支持子图
- （完成）添加数据操作标签，主要功能有，数据操作面板 ： 新加数据(新建序列，新建表)
- （完成）添加数据打包功能，向量序列打包为点序列等功能
- （完成）绘图数据视图的导出csv功能、ctrl+c复制数值功能、ctrl+v添加数据功能、数据修改功能、导出为变量功能等
- 完善目前支持的绘图
- （完成）完善subplot编辑模式
- （完成）把绘图参数计算功能调整为非实时，而需要用户交互，修改进程传输协议
- （完成）去除实时数据计算功能，改为手动计算

# 热修补
- 删除数据时，打开的数据列表应该删除显示
- 数据显示列表删除tab标签时会出现异常
- 区域数据移动功能，有时会跑偏
- 新打开的项目，需要清空所有的回退栈

# 已完成
- 添加数据表格的数据插入功能
