diff --git a/TestManager/testmanager.h b/TestManager/testmanager.h
index 8459d5a..821ec7f 100644
--- a/TestManager/testmanager.h
+++ b/TestManager/testmanager.h
@@ -72,19 +72,13 @@ private:
// SettingInterface interface
public:
- virtual void apply() override { _isDisabled = _cbblk->isChecked(); }
- virtual void reset() override {
- _isDisabled = false;
- _cbblk->setChecked(false);
- }
- virtual void cancel() override { _cbblk->setChecked(_isDisabled); }
+ virtual void restore() override { _cbblk->setChecked(false); }
public:
- bool isDisableMsg() const { return _isDisabled; }
+ bool isDisableMsg() const { return _cbblk->isChecked(); }
private:
QCheckBox *_cbblk;
- bool _isDisabled = false;
};
public slots:
diff --git a/TestPlugin/testsettingpage.cpp b/TestPlugin/testsettingpage.cpp
index 0b4b2ea..6921441 100644
--- a/TestPlugin/testsettingpage.cpp
+++ b/TestPlugin/testsettingpage.cpp
@@ -41,8 +41,4 @@ QString TestSettingPage::id() const { return _id; }
bool TestSettingPage::showInRibbon() const { return _isShownInRibbton; }
-void TestSettingPage::apply() {}
-
-void TestSettingPage::reset() {}
-
-void TestSettingPage::cancel() {}
+void TestSettingPage::restore() {}
diff --git a/TestPlugin/testsettingpage.h b/TestPlugin/testsettingpage.h
index a5892c9..7e0e4db 100644
--- a/TestPlugin/testsettingpage.h
+++ b/TestPlugin/testsettingpage.h
@@ -41,9 +41,7 @@ public:
// SettingPage interface
public:
- virtual void apply() override;
- virtual void reset() override;
- virtual void cancel() override;
+ virtual void restore() override;
private:
QLabel *_lbl = nullptr;
diff --git a/WingPlugin b/WingPlugin
index 3fa9d2b..ab94fca 160000
--- a/WingPlugin
+++ b/WingPlugin
@@ -1 +1 @@
-Subproject commit 3fa9d2ba9d7dd78f719c43b482a5e7f49f135f1c
+Subproject commit ab94fca27d23da495fa743dd15ccb01ca6a431fc
diff --git a/lang/zh_CN/winghex_zh_CN.ts b/lang/zh_CN/winghex_zh_CN.ts
index bc37fa7..558e3c7 100644
--- a/lang/zh_CN/winghex_zh_CN.ts
+++ b/lang/zh_CN/winghex_zh_CN.ts
@@ -226,19 +226,19 @@
保存时自动格式化
-
-
-
+
+
+
ClangFormat
Clang Format
-
+
PleaseInputFmt
请输入样式
-
+
ErrInCustomClangFormat
代码格式化样式出现错误,你确认继续修改吗?
@@ -442,7 +442,7 @@
显示/隐藏解码文本
-
+
Editor
编辑器
@@ -676,7 +676,7 @@
GeneralSettingDialog
-
+
General
基本
@@ -895,24 +895,24 @@
MainWindow
-
+
File
文件
-
-
+
+
View
视图
-
+
About
关于
-
+
WingHexExplorer
羽云十六进制编辑器
@@ -927,322 +927,322 @@
选长:
-
+
Edit
编辑
-
+
Script
脚本
-
-
-
+
+
+
Plugin
插件
-
+
Setting
设置
-
-
+
+
Log
日志
-
+
ExportFindResult
导出搜索结果
-
+
ClearFindResult
清空记录
-
-
+
+
FindResult
搜索结果
-
-
-
-
-
-
-
+
+
+
+
+
+
+
Copy
复制
-
-
-
-
-
+
+
+
+
+
CopyToClipBoard
数据已拷贝到粘贴板
-
+
LittleEndian
小端
-
+
BigEndian
大端
-
+
Number
数值
-
-
+
+
CheckSum
校验和
-
-
+
+
DeleteBookMark
删除书签
-
-
+
+
ClearBookMark
清空书签
-
-
-
-
+
+
+
+
BookMark
书签
-
-
+
+
DecodeText
解码字符串
-
+
ScriptConsole
脚本控制台
-
-
+
+
Basic
基础
-
+
New
新建
-
+
OpenF
打开文件
-
+
OpenWorkSpace
打开工作区
-
+
RecentFiles
最近打开
-
-
-
+
+
+
Reload
重新加载
-
-
+
+
Save
保存
-
+
SaveAs
另存为
-
+
ConvertWS
转为工作区
-
+
Export
导出
-
+
SaveSel
保存选区字节
-
-
-
-
+
+
+
+
General
基本
-
+
Undo
撤销
-
+
Redo
恢复
-
+
Cut
剪切
-
+
Paste
粘贴
-
+
Delete
删除
-
+
Clone
克隆
-
+
Lookup
查询
-
+
Find
查找
-
+
Goto
跳转
-
-
+
+
Encoding
编码
-
+
FileInfo
文件信息
-
-
+
+
Hex
十六进制
-
+
CutHex
剪切(十六进制)
-
+
CopyHex
复制(十六进制)
-
+
PasteHex
粘贴(十六进制)
-
-
+
+
Fill
填充
-
+
FillZero
填充零
-
-
-
-
-
+
+
+
+
+
MetaData
标注
-
+
DeleteMetadata
删除标注
-
+
ClearMetadata
清空标注
-
+
MetaDataEdit
编辑标注
-
+
DeleteMetaData
删除标注
-
+
ClearMetaData
清空标注
-
+
Display
显示
-
+
ViewText
文本预览
-
+
Scale
缩放
@@ -1297,112 +1297,112 @@
构建脚本编辑器
-
+
SetupSetDialog
构建设置窗体
-
+
SetupPlgWidgets
启动插件组件
-
+
SetupDockingLayout
恢复 Dock 布局
-
+
SetupWaiting
启动即将完成
-
+
SetupFinished
启动完毕
-
+
NoExtension
无扩展
-
-
+
+
ExportResult
导出结果
-
+
NothingToSave
没有保存的数据
-
+
OpenExt
打开 - 拓展
-
+
ResetScale
重置缩放
-
+
ShowMetafg
标注前景色
-
+
ShowMetabg
标注背景色
-
+
ShowMetaComment
批注
-
+
MetaShowAll
显示所有标注
-
+
MetaHideAll
隐藏所有标注
-
+
FileStatus
文件状态
-
+
InfoSave
是否保存
-
+
ReadOnly
可读写
-
+
SetLocked
启用/禁用锁定编辑
-
+
ErrUnLock
锁定编辑失败
-
+
SetOver
启用/禁用改变大小
@@ -1417,198 +1417,198 @@
脚本引擎启动失败,将自动禁用该功能。
-
+
UnsignedHex
无符号 Hex
-
+
BgScriptOutputHere
后台脚本执行将会在这里输出
-
+
SelectAll
全选
-
-
+
+
Clear
清空
-
+
AbortScript
终止脚本
-
+
BgScriptOutput
后台脚本输出
-
+
ErrUnOver
锁定文件大小失败
-
+
Window
窗体
-
+
Editor
编辑器
-
+
Tools
工具
-
+
HexEditorLayout
编辑器布局
-
+
SetBaseAddr
设置基址
-
+
addressBase
基址
-
+
inputAddressBase
请输入基址
-
+
WarnBigBaseAddress
基址过大,你得到的地址将会不正确!
-
+
ErrBaseAddress
非法基址输入
-
+
SetColInfo
显示/隐藏地址栏
-
+
SetHeaderInfo
显示/隐藏表头
-
+
SetAsciiString
显示/隐藏解码字符串
-
+
Layout
布局
-
+
Fullscreen
全屏
-
+
Default
默认
-
-
-
+
+
+
LayoutRestoring...
恢复布局中...
-
+
RestoreLayout
恢复布局
-
-
+
+
SaveLayout
保存布局
-
-
+
+
ExportLog
导出日志
-
-
+
+
ClearLog
清空日志
-
+
InsepctQt
监视 Qt
-
+
ScriptEditor
脚本编辑器
-
+
Scripts
脚本仓库
-
+
PluginFunctions
插件功能
-
+
ScriptSetting
脚本设置
-
+
PluginSettings
插件设置
-
+
Info
信息
-
+
Software
软件
-
+
Sponsor
赞助
-
+
CheckUpdate
检查更新
-
+
Wiki
网页 Wiki
@@ -1618,506 +1618,506 @@
-
+
UndoStack
-
+
AboutQT
关于 QT
-
+
SetPageIDEmptyTryUseName
设置页 ID 为空,尝试使用名称作为 ID
-
+
SetPageDupNameIgnored
设置页重复的 ID 名称,已忽略加载
-
+
Plugin %1 contains a duplicate ID (%2) that is already registered by plugin %3
插件 %1 包含重复 ID (%2),该 ID 已被插件 %3 注册
-
-
+
+
ChooseFile
选择文件
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Error
错误
-
-
+
+
FileNotExist
文件不存在!
-
-
-
-
-
+
+
+
+
+
FilePermission
因文件权限无法继续!
-
+
ProjectFile (*.wingpro)
项目文件 (*.wingpro)
-
+
ReloadSuccessfully
文件重新加载成功!
-
+
ReloadUnSuccessfully
文件重新加载失败!
-
-
-
-
+
+
+
+
ChooseSaveFile
请选择保存文件路径:
-
+
PasteFailedNote
粘贴失败,请注意权限或者内容长度
-
+
NoMoreClone
克隆已到上限,无法继续操作!
-
+
FindFininishBusy
查找任务繁忙,请勿重复查找!
-
+
MayTooMuchFindResult
搜索数量已到达上限,结果可能不全,建议请按区段搜索。
-
+
SaveLayoutSuccess
保存布局成功
-
+
SaveLayoutError
保存布局失败
-
+
HasClonedView
该编辑页已被克隆编辑,如果关闭,相关联的页也会被关闭,你确认继续吗?
-
+
[MetaAdd]
-
+
FileCloseBigFile
大文件读取模式下目标文件被关闭,该标签将会被关闭。
-
-
+
+
ReloadNeededYesOrNo
目标文件被修改,是否重新加载?
-
+
SaveWorkSpace
保存工作区
-
+
WingHexWorkSpace (*.wingpro)
羽云十六进制工作区 (*.wingpro)
-
+
ConfirmSave
正在关闭未保存的文件或工作区,你确定保存吗?
-
+
[Info]
【信息】
-
+
[Warn]
【警告】
-
+
[Error]
【错误】
-
+
ConfirmAPPSave
你尝试关闭程序,但仍存在未保存的文件或工作区,你确定保存这些更改吗?
-
-
-
+
+
+
SaveSuccessfully
保存成功!
-
-
+
+
SaveWSError
保存工作区错误!
-
-
+
+
Warn
警告
-
+
Opening...
打开文件中...
-
+
WorkSpaceOpening...
打开工作区中...
-
+
Reloading...
重载文件中...
-
+
Saving...
保存中...
-
+
SaveNewFirst
请首先保存新建的文件
-
+
AlreadyWorkSpace
已经是工作区,无需转化
-
+
ConvWorkSpaceFailed
转化为工作区失败
-
+
ConvWorkSpaceSuccess
转化为工作区成功
-
+
SavingAs...
另存为中...
-
+
SaveUnSuccessfully
保存失败!
-
+
Exporting...
导出中...
-
+
ChooseExportFile
请选择导出文件路径:
-
+
ExportSuccessfully
导出成功!
-
+
ExportUnSuccessfully
导出失败!
-
+
SavingSel...
保存选中字节中...
-
+
SaveSelSuccess
保存选区字节成功!
-
+
SaveSelError
保存选区字节失败,因文件不具有可写权限!
-
-
+
+
CutToClipBoard
数据已剪切到粘贴板!
-
-
+
+
UnCutToClipBoard
由于保持大小限制,数据剪切到粘贴板失败!
-
-
+
+
UnCopyToClipBoard
由于保持大小限制,数据剪切到复制板失败!
-
-
+
+
Finding...
查找中...
-
+
DeleteSuccess
删除成功
-
+
DeleteFailed
删除失败
-
+
FindFininish
查找结果完毕!
-
+
PleaseInputFill
请输入填充字节值
-
+
FillInputTruncWarn
填充输入数值过大,将会被截断填充
-
+
FillInputError
填充字节输入错误
-
-
+
+
InputComment
请输入批注:
-
-
+
+
BookmarkDelSuccess
删除书签成功
-
+
BookmarkDelNoItem
无书签可删除
-
+
BookmarkClearSuccess
书签清空完毕
-
-
-
+
+
+
NoSelection
没有选区,无法继续的操作!
-
+
NoMetaData
无可编辑标记
-
+
PleaseClearSel
请清空选择
-
+
MetaDelSuccess
元数据删除成功
-
+
MetaDelNoItem
无元数据可删除
-
+
MetaClearSuccess
元数据清空完毕
-
+
FindResultExporting...
查找结果导出中...
-
-
+
+
EmptyFindResult
没有可导出的搜索结果!
-
+
SaveFindResult
导出搜索结果成功!
-
+
SaveFindResultError
导出结果失败!
-
+
TooManyBytesDecode
超出解码字节限制……
-
+
NoTextFileMayInvalid
该文件不是文本文件,以文本方式预览并不是一个好的方式,你确认继续吗?
-
+
LayoutSaving...
布局保存中...
-
+
PleaseInput
请输入
-
+
LogExporting...
日志导出中...
-
+
ExportLogError
导出日志失败!
-
+
ExportLogSuccess
导出日志成功,路径:
-
+
ClearLogSuccess
清空日志成功!
-
+
BadNetwork
无法与远程服务器的更新检查建立连接,请检查网络。
-
+
NewestVersion
当前软件为最新版本
-
-
+
+
OlderVersion
你使用的软件为老版本,建议到 Github 和 Gitee 的仓库发行版下载更新。
-
+
CheckingUpdate
检查更新中……
-
+
Too much opened files
打开的文件过多,无法继续操作!
-
+
FilePermissionSure2Quit
因文件权限无法保存,你确认要退出吗?
-
+
UnknownErrorSure2Quit
因未知错误无法保存,你确认要退出吗?
-
+
WorkSpaceUnSavedSure2Quit
工作区文件无法保存,你确认要退出吗?
-
+
CopyLimit
拷贝字节超出限制
-
+
ErrOpenFileBelow
打开文件出现错误(由于权限不足),如下为打开错误的文件:
@@ -2229,52 +2229,52 @@
OtherSettingsDialog
-
+
System
系统
-
+
UseNativeFileDialog
使用系统文件通用对话框
-
+
UseNativeTitleBar
使用系统标题栏
-
+
Log
日志
-
+
Level
级别
-
+
Count
数量
-
+
Update
更新
-
+
CheckWhenStartup
启动检查更新
-
+
DontShowSplash
不显示启动窗体
-
+
Others
杂项
@@ -2322,48 +2322,48 @@
-
+
Plugin
插件
-
-
+
+
ID
ID
-
-
+
+
Name
名称
-
-
+
+
License
协议
-
-
+
+
Author
作者
-
-
+
+
Vendor
厂家
-
-
+
+
Version
版本
@@ -2374,30 +2374,30 @@
-
-
+
+
Comment
说明
-
-
+
+
URL
网址
-
+
pluginDependencies:
插件依赖
-
+
PUID:
插件唯一标志符:
-
+
Version:
版本:
@@ -2602,97 +2602,97 @@
QEditConfig
-
+
Preference
设置
-
+
Theme
主题
-
+
FontSize
字体大小
-
+
Font
字体
-
+
Indentation
缩进
-
+
Options
选项
-
+
LineNumber
行号
-
+
WordWrap
换行
-
+
AutoIden
自动缩进
-
+
Whitespace
空格可见
-
+
AutoCloseChar
匹配填充
-
+
MatchBraces
高亮括号
-
+
Folding
代码折叠
-
+
LongLineEdge
长线边缘
-
+
IndentGuides
缩进线
-
+
Tab width
制表符宽度
-
+
Default
默认
-
+
IndentMixed
混合缩进
-
+
IndentSpaces
空格缩进
@@ -2702,7 +2702,7 @@
控制台
-
+
IndentTabs
制表符缩进
@@ -4562,72 +4562,72 @@
ScriptSettingDialog
-
+
Script
脚本
-
+
RawName:
源名称:
-
+
Name:
名称:
-
+
Author:
作者:
-
+
License:
协议:
-
+
ContextMenu:
是否为右键菜单:
-
+
HomePage:
主页:
-
+
Comment:
说明:
-
+
Control
控制
-
+
Enable
启用
-
+
AllowRunUsrSciptInRoot
允许在管理员权限下执行用户仓库脚本
-
+
Timeout
超时
-
+
DataBase
仓库
-
+
Refresh
刷新
@@ -4712,7 +4712,7 @@
ScriptingDialog
-
+
ScriptEditor
脚本编辑器
@@ -4722,331 +4722,331 @@
因权限无法打开脚本
-
+
File
文件
-
+
Edit
编辑
-
+
Debugger
调试器
-
+
Setting
设置
-
+
About
关于
-
+
InvalidSourceFile
非法代码文件
-
+
Basic
基础
-
+
New
新建
-
+
OpenF
打开文件
-
+
RecentFiles
最近打开
-
-
+
+
Reload
重新加载
-
-
+
+
Save
保存
-
+
SaveAs
另存为
-
+
General
基本
-
+
Undo
撤销
-
+
Redo
恢复
-
+
Cut
剪切
-
+
Copy
复制
-
+
Paste
粘贴
-
+
Delete
删除
-
+
Lookup
查询
-
+
Find
查找
-
+
Replace
替换
-
+
Goto
跳转
-
+
Format
代码样式
-
+
CodeFormat
代码格式化
-
+
Window
窗体
-
-
+
+
Editor
编辑器
-
+
Tools
工具
-
+
Layout
布局
-
+
Fullscreen
全屏
-
+
RestoreLayout
恢复默认布局
-
+
BreakPoint
断点
-
+
ToggleBreakPoint
切换断点
-
+
AddBreakPoint
添加断点
-
+
Settings
设置
-
+
ClangFormat
Clang Format
-
+
Console
控制台
-
+
Local
本地
-
+
Global
全局
-
+
Variables
变量
-
+
ConsoleOutput
输出
-
+
StackTrace
栈跟踪
-
+
Symbol
符号
-
-
-
-
-
-
+
+
+
+
+
+
Error
错误
-
+
Too much opened files
打开的文件过多,无法继续操作!
-
+
ConfirmSave
正在关闭未保存的脚本文件,你确定保存吗?
-
+
ScriptSaveFailedClose
脚本保存失败,你仍确认关闭吗?
-
+
ReloadNeededYesOrNo
目标文件被修改,是否重新加载?
-
+
Debuging...
调试中...
-
+
Running...
运行中...
-
+
Line %1, Col %2
行 %1, 列 %2
-
+
(Selected: %1)
(选中: %1)
-
-
+
+
ChooseFile
选择文件
-
-
-
+
+
+
FilePermission
因文件权限无法继续!
-
+
ReloadSuccessfully
文件重新加载成功!
-
+
ReloadUnSuccessfully
文件重新加载失败!
-
+
ChooseSaveFile
请选择保存文件路径:
-
-
+
+
SaveSuccessfully
保存成功!
-
+
SaveUnSuccessfully
保存失败!
-
+
FormatCodeFailed
代码格式化失败
-
-
+
+
CannotSave2RunScript
无法保存,故无法继续运行脚本。
-
-
+
+
ScriptStillRunning
脚本仍在运行,你确定要退出吗?
@@ -5056,87 +5056,87 @@
你尝试关闭程序,但仍存在未保存的脚本文件,你确定保存这些更改吗?
-
+
View
视图
-
+
Debug
调试
-
+
Run
运行
-
+
RunWithDbg
调试运行
-
+
Pause
暂停
-
+
Continue
继续
-
+
Stop
停止
-
+
Restart
重启
-
+
StepInto
单步步入
-
+
StepOver
单步步过
-
+
StepOut
单步跳出
-
+
RemoveBreakPoint
删除断点
-
+
Info
信息
-
+
Software
软件
-
+
Sponsor
赞助
-
+
Wiki
网页 Wiki
-
+
AboutQT
关于 QT
@@ -5233,20 +5233,52 @@
设置
-
- TakeEffectRestart
- 该选项重启软件生效
+
+
+
+ Restore
+
-
- This will reset all settings. Are you sure to continue?
- 这将会重置所有设置。你确认继续吗?
+
+ UnsavedChanges
+
+
+
+
+ SaveChangesDiscardLeave?
+
+
+
+
+ Restore current
+
+
+
+
+ RestoreCurPageSets?
+
+
+
+
+ Restore all
+
+
+
+
+ RestoreAllSets?
+
+
+
+
+ TakeEffectRestart
+ 该选项重启软件生效
SettingManager
-
+
ConfigUnableSave
程序将无法保存配置,请检查配置文件权限。
diff --git a/lang/zh_TW/winghex_zh_TW.ts b/lang/zh_TW/winghex_zh_TW.ts
index 28a901c..947dec0 100644
--- a/lang/zh_TW/winghex_zh_TW.ts
+++ b/lang/zh_TW/winghex_zh_TW.ts
@@ -226,19 +226,19 @@
保存時自動格式化
-
-
-
+
+
+
ClangFormat
Clang Format
-
+
PleaseInputFmt
請輸入樣式
-
+
ErrInCustomClangFormat
代碼格式化樣式出現錯誤,你確認繼續修改嗎?
@@ -442,7 +442,7 @@
顯示/隱藏解碼文本
-
+
Editor
編輯器
@@ -676,7 +676,7 @@
GeneralSettingDialog
-
+
General
基本
@@ -895,24 +895,24 @@
MainWindow
-
+
File
檔
-
-
+
+
View
視圖
-
+
About
關於
-
+
WingHexExplorer
羽雲十六進制編輯器
@@ -927,322 +927,322 @@
選長:
-
+
Edit
編輯
-
+
Script
腳本
-
-
-
+
+
+
Plugin
插件
-
+
Setting
設置
-
-
+
+
Log
日誌
-
+
ExportFindResult
導出搜索結果
-
+
ClearFindResult
清空記錄
-
-
+
+
FindResult
搜索結果
-
-
-
-
-
-
-
+
+
+
+
+
+
+
Copy
複製
-
-
-
-
-
+
+
+
+
+
CopyToClipBoard
數據已拷貝到粘貼板
-
+
LittleEndian
小端
-
+
BigEndian
大端
-
+
Number
數值
-
-
+
+
CheckSum
校驗和
-
-
+
+
DeleteBookMark
刪除書簽
-
-
+
+
ClearBookMark
清空書簽
-
-
-
-
+
+
+
+
BookMark
書簽
-
-
+
+
DecodeText
解碼字串
-
+
ScriptConsole
腳本控制臺
-
-
+
+
Basic
基礎
-
+
New
新建
-
+
OpenF
打開檔
-
+
OpenWorkSpace
打開工作區
-
+
RecentFiles
最近打開
-
-
-
+
+
+
Reload
重新加載
-
-
+
+
Save
保存
-
+
SaveAs
另存為
-
+
ConvertWS
轉為工作區
-
+
Export
導出
-
+
SaveSel
保存選區位元組
-
-
-
-
+
+
+
+
General
基本
-
+
Undo
撤銷
-
+
Redo
恢復
-
+
Cut
剪切
-
+
Paste
粘貼
-
+
Delete
刪除
-
+
Clone
克隆
-
+
Lookup
查詢
-
+
Find
查找
-
+
Goto
跳轉
-
-
+
+
Encoding
編碼
-
+
FileInfo
檔資訊
-
-
+
+
Hex
十六進制
-
+
CutHex
剪切(十六進制)
-
+
CopyHex
複製(十六進制)
-
+
PasteHex
粘貼(十六進制)
-
-
+
+
Fill
填充
-
+
FillZero
填充零
-
-
-
-
-
+
+
+
+
+
MetaData
標注
-
+
DeleteMetadata
刪除標注
-
+
ClearMetadata
清空標注
-
+
MetaDataEdit
編輯標注
-
+
DeleteMetaData
刪除標注
-
+
ClearMetaData
清空標注
-
+
Display
顯示
-
+
ViewText
文本預覽
-
+
Scale
縮放
@@ -1297,112 +1297,112 @@
構建腳本編輯器
-
+
SetupSetDialog
構建設置窗體
-
+
SetupPlgWidgets
啟動插件組件
-
+
SetupDockingLayout
恢復 Dock 佈局
-
+
SetupWaiting
啟動即將完成
-
+
SetupFinished
啟動完畢
-
+
NoExtension
無擴展
-
-
+
+
ExportResult
導出結果
-
+
NothingToSave
沒有保存的數據
-
+
OpenExt
打開 - 拓展
-
+
ResetScale
重置縮放
-
+
ShowMetafg
標注前景色
-
+
ShowMetabg
標注背景色
-
+
ShowMetaComment
批註
-
+
MetaShowAll
顯示所有標注
-
+
MetaHideAll
隱藏所有標注
-
+
FileStatus
檔狀態
-
+
InfoSave
是否保存
-
+
ReadOnly
可讀寫
-
+
SetLocked
啟用/禁用鎖定編輯
-
+
ErrUnLock
鎖定編輯失敗
-
+
SetOver
啟用/禁用改變大小
@@ -1417,198 +1417,198 @@
腳本引擎啟動失敗,將自動禁用該功能。
-
+
UnsignedHex
無符號 Hex
-
+
BgScriptOutputHere
後臺腳本執行將會在這裏輸出
-
+
SelectAll
全選
-
-
+
+
Clear
清空
-
+
AbortScript
終止腳本
-
+
BgScriptOutput
後臺腳本輸出
-
+
ErrUnOver
鎖定檔大小失敗
-
+
Window
窗體
-
+
Editor
編輯器
-
+
Tools
工具
-
+
HexEditorLayout
編輯器佈局
-
+
SetBaseAddr
設置基址
-
+
addressBase
基址
-
+
inputAddressBase
請輸入基址
-
+
WarnBigBaseAddress
基址過大,你得到的地址將會不正確!
-
+
ErrBaseAddress
非法基址輸入
-
+
SetColInfo
顯示/隱藏地址欄
-
+
SetHeaderInfo
顯示/隱藏表頭
-
+
SetAsciiString
顯示/隱藏解碼字串
-
+
Layout
佈局
-
+
Fullscreen
全屏
-
+
Default
默認
-
-
-
+
+
+
LayoutRestoring...
恢復佈局中...
-
+
RestoreLayout
恢復佈局
-
-
+
+
SaveLayout
保存佈局
-
-
+
+
ExportLog
導出日誌
-
-
+
+
ClearLog
清空日誌
-
+
InsepctQt
監視 Qt
-
+
ScriptEditor
腳本編輯器
-
+
Scripts
腳本倉庫
-
+
PluginFunctions
插件功能
-
+
ScriptSetting
腳本設置
-
+
PluginSettings
插件設置
-
+
Info
資訊
-
+
Software
軟體
-
+
Sponsor
贊助
-
+
CheckUpdate
檢查更新
-
+
Wiki
網頁 Wiki
@@ -1618,506 +1618,506 @@
-
+
UndoStack
-
+
AboutQT
關於 QT
-
+
SetPageIDEmptyTryUseName
設置頁 ID 為空,嘗試使用名稱作為 ID
-
+
SetPageDupNameIgnored
設置頁重複的 ID 名稱,已忽略加載
-
+
Plugin %1 contains a duplicate ID (%2) that is already registered by plugin %3
插件 %1 包含重複 ID (%2),該 ID 已被插件 %3 註冊
-
-
+
+
ChooseFile
選擇檔
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Error
錯誤
-
-
+
+
FileNotExist
檔不存在!
-
-
-
-
-
+
+
+
+
+
FilePermission
因檔許可權無法繼續!
-
+
ProjectFile (*.wingpro)
專案檔 (*.wingpro)
-
+
ReloadSuccessfully
檔重新加載成功!
-
+
ReloadUnSuccessfully
檔重新加載失敗!
-
-
-
-
+
+
+
+
ChooseSaveFile
請選擇保存檔路徑:
-
+
PasteFailedNote
粘貼失敗,請注意許可權或者內容長度
-
+
NoMoreClone
克隆已到上限,無法繼續操作!
-
+
FindFininishBusy
查找任務繁忙,請勿重複查找!
-
+
MayTooMuchFindResult
搜索數量已到達上限,結果可能不全,建議請按區段搜索。
-
+
SaveLayoutSuccess
保存佈局成功
-
+
SaveLayoutError
保存佈局失敗
-
+
HasClonedView
該編輯頁已被克隆編輯,如果關閉,相關聯的頁也會被關閉,你確認繼續嗎?
-
+
[MetaAdd]
-
+
FileCloseBigFile
大檔讀取模式下目的檔案被關閉,該標籤將會被關閉。
-
-
+
+
ReloadNeededYesOrNo
目的檔案被修改,是否重新載入?
-
+
SaveWorkSpace
保存工作區
-
+
WingHexWorkSpace (*.wingpro)
羽雲十六進制工作區 (*.wingpro)
-
+
ConfirmSave
正在關閉未保存的檔或工作區,你確定保存嗎?
-
+
[Info]
【資訊】
-
+
[Warn]
【警告】
-
+
[Error]
【錯誤】
-
+
ConfirmAPPSave
你嘗試關閉程式,但仍存在未保存的檔或工作區,你確定保存這些更改嗎?
-
-
-
+
+
+
SaveSuccessfully
保存成功!
-
-
+
+
SaveWSError
保存工作區錯誤!
-
-
+
+
Warn
警告
-
+
Opening...
打開檔中...
-
+
WorkSpaceOpening...
打開工作區中...
-
+
Reloading...
重載檔中...
-
+
Saving...
保存中...
-
+
SaveNewFirst
請首先保存新建的檔
-
+
AlreadyWorkSpace
已經是工作區,無需轉化
-
+
ConvWorkSpaceFailed
轉化為工作區失敗
-
+
ConvWorkSpaceSuccess
轉化為工作區成功
-
+
SavingAs...
另存為中...
-
+
SaveUnSuccessfully
保存失敗!
-
+
Exporting...
導出中...
-
+
ChooseExportFile
請選擇導出檔路徑:
-
+
ExportSuccessfully
導出成功!
-
+
ExportUnSuccessfully
導出失敗!
-
+
SavingSel...
保存選中位元組中...
-
+
SaveSelSuccess
保存選區位元組成功!
-
+
SaveSelError
保存選區位元組失敗,因檔不具有可寫許可權!
-
-
+
+
CutToClipBoard
數據已剪切到粘貼板!
-
-
+
+
UnCutToClipBoard
由於保持大小限制,數據剪切到粘貼板失敗!
-
-
+
+
UnCopyToClipBoard
由於保持大小限制,數據剪切到複製板失敗!
-
-
+
+
Finding...
查找中...
-
+
DeleteSuccess
刪除成功
-
+
DeleteFailed
刪除失敗
-
+
FindFininish
查找結果完畢!
-
+
PleaseInputFill
請輸入填充位元組值
-
+
FillInputTruncWarn
填充輸入數值過大,將會被截斷填充
-
+
FillInputError
填充位元組輸入錯誤
-
-
+
+
InputComment
請輸入批註:
-
-
+
+
BookmarkDelSuccess
刪除書簽成功
-
+
BookmarkDelNoItem
無書簽可刪除
-
+
BookmarkClearSuccess
書簽清空完畢
-
-
-
+
+
+
NoSelection
沒有選區,無法繼續的操作!
-
+
NoMetaData
無可編輯標記
-
+
PleaseClearSel
請清空選擇
-
+
MetaDelSuccess
元數據刪除成功
-
+
MetaDelNoItem
無元數據可刪除
-
+
MetaClearSuccess
元數據清空完畢
-
+
FindResultExporting...
查找結果導出中...
-
-
+
+
EmptyFindResult
沒有可導出的搜索結果!
-
+
SaveFindResult
導出搜索結果成功!
-
+
SaveFindResultError
導出結果失敗!
-
+
TooManyBytesDecode
超出解碼位元組限制……
-
+
NoTextFileMayInvalid
該檔不是文本檔,以文本方式預覽並不是一個好的方式,你確認繼續嗎?
-
+
LayoutSaving...
佈局保存中...
-
+
PleaseInput
請輸入
-
+
LogExporting...
日誌導出中...
-
+
ExportLogError
導出日誌失敗!
-
+
ExportLogSuccess
導出日誌成功,路徑:
-
+
ClearLogSuccess
清空日誌成功!
-
+
BadNetwork
無法與遠程伺服器的更新檢查建立連接,請檢查網路。
-
+
NewestVersion
當前軟體為最新版本
-
-
+
+
OlderVersion
你使用的軟體為老版本,建議到 Github 和 Gitee 的倉庫發行版下載更新。
-
+
CheckingUpdate
檢查更新中……
-
+
Too much opened files
打開的檔過多,無法繼續操作!
-
+
FilePermissionSure2Quit
因檔許可權無法保存,你確認要退出嗎?
-
+
UnknownErrorSure2Quit
因未知錯誤無法保存,你確認要退出嗎?
-
+
WorkSpaceUnSavedSure2Quit
工作區檔無法保存,你確認要退出嗎?
-
+
CopyLimit
拷貝位元組超出限制
-
+
ErrOpenFileBelow
打開檔出現錯誤(由於許可權不足),如下為打開錯誤的檔:
@@ -2229,52 +2229,52 @@
OtherSettingsDialog
-
+
System
系統
-
+
UseNativeFileDialog
使用系統檔通用對話框
-
+
UseNativeTitleBar
使用系統標題欄
-
+
Log
日誌
-
+
Level
級別
-
+
Count
數量
-
+
Update
更新
-
+
CheckWhenStartup
啟動檢查更新
-
+
DontShowSplash
不顯示啟動窗體
-
+
Others
雜項
@@ -2322,48 +2322,48 @@
-
+
Plugin
插件
-
-
+
+
ID
ID
-
-
+
+
Name
名稱
-
-
+
+
License
協議
-
-
+
+
Author
作者
-
-
+
+
Vendor
廠家
-
-
+
+
Version
版本
@@ -2374,30 +2374,30 @@
-
-
+
+
Comment
說明
-
-
+
+
URL
網址
-
+
pluginDependencies:
插件依賴
-
+
PUID:
插件唯一標誌符:
-
+
Version:
版本:
@@ -2602,97 +2602,97 @@
QEditConfig
-
+
Preference
設置
-
+
Theme
主題
-
+
FontSize
字體大小
-
+
Font
字體
-
+
Indentation
縮進
-
+
Options
選項
-
+
LineNumber
行號
-
+
WordWrap
換行
-
+
AutoIden
自動縮進
-
+
Whitespace
空格可見
-
+
AutoCloseChar
匹配填充
-
+
MatchBraces
括號匹配
-
+
Folding
代碼折疊
-
+
LongLineEdge
長線邊緣
-
+
IndentGuides
縮進線
-
+
Tab width
跳位字元寬度
-
+
Default
默認
-
+
IndentMixed
混合縮進
-
+
IndentSpaces
空格縮進
@@ -2702,7 +2702,7 @@
控制台
-
+
IndentTabs
定位字元縮進
@@ -4562,72 +4562,72 @@
ScriptSettingDialog
-
+
Script
腳本
-
+
RawName:
源名稱:
-
+
Name:
名稱:
-
+
Author:
作者:
-
+
License:
協議:
-
+
ContextMenu:
是否為右鍵菜單:
-
+
HomePage:
主頁:
-
+
Comment:
說明:
-
+
Control
控制
-
+
Enable
啟用
-
+
AllowRunUsrSciptInRoot
允許在管理員許可權下執行用戶倉庫腳本
-
+
Timeout
超時
-
+
DataBase
倉庫
-
+
Refresh
刷新
@@ -4712,7 +4712,7 @@
ScriptingDialog
-
+
ScriptEditor
腳本編輯器
@@ -4722,331 +4722,331 @@
因許可權無法打開腳本
-
+
File
檔
-
+
Edit
編輯
-
+
Debugger
調試器
-
+
Setting
設置
-
+
About
關於
-
+
InvalidSourceFile
非法代碼檔
-
+
Basic
基礎
-
+
New
新建
-
+
OpenF
打開檔
-
+
RecentFiles
最近打開
-
-
+
+
Reload
重新加載
-
-
+
+
Save
保存
-
+
SaveAs
另存為
-
+
General
基本
-
+
Undo
撤銷
-
+
Redo
恢復
-
+
Cut
剪切
-
+
Copy
複製
-
+
Paste
粘貼
-
+
Delete
刪除
-
+
Lookup
查詢
-
+
Find
查找
-
+
Replace
替換
-
+
Goto
跳轉
-
+
Format
代碼樣式
-
+
CodeFormat
代碼格式化
-
+
Window
窗體
-
-
+
+
Editor
編輯器
-
+
Tools
工具
-
+
Layout
佈局
-
+
Fullscreen
全屏
-
+
RestoreLayout
恢復默認佈局
-
+
BreakPoint
中斷點
-
+
ToggleBreakPoint
切換中斷點
-
+
AddBreakPoint
添加中斷點
-
+
Settings
設置
-
+
ClangFormat
Clang Format
-
+
Console
控制台
-
+
Local
本地
-
+
Global
全局
-
+
Variables
變數
-
+
ConsoleOutput
輸出
-
+
StackTrace
棧跟蹤
-
+
Symbol
符號
-
-
-
-
-
-
+
+
+
+
+
+
Error
錯誤
-
+
Too much opened files
打開的檔過多,無法繼續操作!
-
+
ConfirmSave
正在關閉未保存的腳本檔,你確定保存嗎?
-
+
ScriptSaveFailedClose
腳本保存失敗,你仍確認關閉嗎?
-
+
ReloadNeededYesOrNo
目的檔案被修改,是否重新載入?
-
+
Debuging...
調試中...
-
+
Running...
運行中...
-
+
Line %1, Col %2
行 %1, 列 %2
-
+
(Selected: %1)
(選中: %1)
-
-
+
+
ChooseFile
選擇檔
-
-
-
+
+
+
FilePermission
因檔許可權無法繼續!
-
+
ReloadSuccessfully
檔重新加載成功!
-
+
ReloadUnSuccessfully
檔重新加載失敗!
-
+
ChooseSaveFile
請選擇保存檔路徑:
-
-
+
+
SaveSuccessfully
保存成功!
-
+
SaveUnSuccessfully
保存失敗!
-
+
FormatCodeFailed
代碼格式化失敗
-
-
+
+
CannotSave2RunScript
無法保存,故無法繼續運行腳本。
-
-
+
+
ScriptStillRunning
腳本仍在運行,你確定要退出嗎?
@@ -5056,87 +5056,87 @@
你嘗試關閉程式,但仍存在未保存的腳本檔,你確定保存這些更改嗎?
-
+
View
視圖
-
+
Debug
調試
-
+
Run
運行
-
+
RunWithDbg
調試運行
-
+
Pause
暫停
-
+
Continue
繼續
-
+
Stop
停止
-
+
Restart
重啟
-
+
StepInto
單步步入
-
+
StepOver
單步步過
-
+
StepOut
單步跳出
-
+
RemoveBreakPoint
刪除中斷點
-
+
Info
資訊
-
+
Software
軟體
-
+
Sponsor
贊助
-
+
Wiki
網頁 Wiki
-
+
AboutQT
關於 QT
@@ -5233,20 +5233,52 @@
設置
-
- TakeEffectRestart
- 該選項重啟軟體生效
+
+
+
+ Restore
+
-
- This will reset all settings. Are you sure to continue?
- 這將會重置所有設置。你確認繼續嗎?
+
+ UnsavedChanges
+
+
+
+
+ SaveChangesDiscardLeave?
+
+
+
+
+ Restore current
+
+
+
+
+ RestoreCurPageSets?
+
+
+
+
+ Restore all
+
+
+
+
+ RestoreAllSets?
+
+
+
+
+ TakeEffectRestart
+ 該選項重啟軟體生效
SettingManager
-
+
ConfigUnableSave
程式將無法保存配置,請檢查配置檔許可權。
diff --git a/src/class/clangformatmanager.cpp b/src/class/clangformatmanager.cpp
index ccb68ac..d7b24a9 100644
--- a/src/class/clangformatmanager.cpp
+++ b/src/class/clangformatmanager.cpp
@@ -32,7 +32,7 @@ Q_GLOBAL_STATIC_WITH_ARGS(QString, CLANG_CUSTOM_STYLE, ("clang.customStyle"))
Q_GLOBAL_STATIC_WITH_ARGS(QString, CLANG_DEFAULT_CUSTOM,
("BasedOnStyle: llvm, IndentWidth: 4"))
-ClangFormatManager::ClangFormatManager() {
+ClangFormatManager::ClangFormatManager() : QObject() {
ASSERT_SINGLETON;
// load config
diff --git a/src/class/clangformatmanager.h b/src/class/clangformatmanager.h
index 997b38e..8e242ce 100644
--- a/src/class/clangformatmanager.h
+++ b/src/class/clangformatmanager.h
@@ -18,9 +18,12 @@
#ifndef CLANGFORMATMANAGER_H
#define CLANGFORMATMANAGER_H
+#include
#include
-class ClangFormatManager {
+class ClangFormatManager : public QObject {
+ Q_OBJECT
+
public:
static ClangFormatManager &instance();
diff --git a/src/class/scriptsettings.cpp b/src/class/scriptsettings.cpp
index 1fd056d..b571ca0 100644
--- a/src/class/scriptsettings.cpp
+++ b/src/class/scriptsettings.cpp
@@ -27,30 +27,6 @@
#include
#include
-#define WRITE_CONFIG_EDITOR_SET(config, flag, dvalue) \
- if (this->_setUnsavedEditor.testFlag(flag)) { \
- WRITE_CONFIG(config, dvalue); \
- _setUnsavedEditor.setFlag(flag, false); \
- }
-
-#define WRITE_CONFIG_EDITOR_RESET(config, flag, dvalue) \
- do { \
- WRITE_CONFIG(config, dvalue); \
- _setUnsavedEditor.setFlag(flag, false); \
- } while (0);
-
-#define WRITE_CONFIG_CONSOLE_SET(config, flag, dvalue) \
- if (this->_setUnsavedConsole.testFlag(flag)) { \
- WRITE_CONFIG(config, dvalue); \
- _setUnsavedConsole.setFlag(flag, false); \
- }
-
-#define WRITE_CONFIG_CONSOLE_RESET(config, flag, dvalue) \
- do { \
- WRITE_CONFIG(config, dvalue); \
- _setUnsavedConsole.setFlag(flag, false); \
- } while (0);
-
Q_GLOBAL_STATIC_WITH_ARGS(QString, CODEEDIT_FONT, ("codeedit.font"))
Q_GLOBAL_STATIC_WITH_ARGS(QString, CODEEDIT_FONT_SIZE, ("codeedit.fontsize"))
Q_GLOBAL_STATIC_WITH_ARGS(QString, CODEEDIT_THEME, ("codeedit.theme"))
@@ -147,70 +123,6 @@ void ScriptSettings::load() {
READ_CONFIG_BOOL(m_consoleAutoCloseChar, CONSOLE_AUTO_CLOSE_CHAR, true);
}
-void ScriptSettings::save(SETTINGS cat) {
- HANDLE_CONFIG;
- if (cat.testFlag(SETTING::EDITOR)) {
- WRITE_CONFIG_EDITOR_SET(CODEEDIT_FONT, SETTING_ITEM::FONT,
- m_editorFontFamily);
- WRITE_CONFIG_EDITOR_SET(CODEEDIT_FONT_SIZE, SETTING_ITEM::FONT_SIZE,
- m_editorfontSize);
- WRITE_CONFIG_EDITOR_SET(CODEEDIT_THEME, SETTING_ITEM::THEME,
- m_editorTheme);
- WRITE_CONFIG_EDITOR_SET(CODEEDIT_TABS_WIDTH, SETTING_ITEM::TAB_WIDTH,
- m_editorTabWidth);
- WRITE_CONFIG_EDITOR_SET(CODEEDIT_INDENTATION, SETTING_ITEM::INDENTATION,
- m_editorInden);
- WRITE_CONFIG_EDITOR_SET(CODEEDIT_MATCH_BRACES,
- SETTING_ITEM::MATCH_BRACES,
- m_editorMatchBraces);
- WRITE_CONFIG_EDITOR_SET(CODEEDIT_WORD_WRAP, SETTING_ITEM::WORD_WRAP,
- m_editorWordWrap);
- WRITE_CONFIG_EDITOR_SET(CODEEDIT_SHOW_LINENUMBER,
- SETTING_ITEM::SHOW_LINENUMBER,
- m_editorShowLineNumber);
- WRITE_CONFIG_EDITOR_SET(CODEEDIT_SHOW_FOLDING,
- SETTING_ITEM::SHOW_FOLDING, m_editorFolding);
- WRITE_CONFIG_EDITOR_SET(CODEEDIT_SHOW_INDENTGUIDES,
- SETTING_ITEM::SHOW_INDENTGUIDES,
- m_editorShowGuideLine);
- WRITE_CONFIG_EDITOR_SET(CODEEDIT_SHOW_LONGLINEEDGE,
- SETTING_ITEM::SHOW_LONGLINEEDGE,
- m_editorShowLineEdges);
- WRITE_CONFIG_EDITOR_SET(CODEEDIT_SHOW_WHITESPACE,
- SETTING_ITEM::SHOW_WHITESPACE,
- m_editorShowWhiteSpace);
- WRITE_CONFIG_EDITOR_SET(CODEEDIT_AUTO_CLOSE_CHAR,
- SETTING_ITEM::AUTO_CLOSE_CHAR,
- m_editorAutoCloseChar);
- WRITE_CONFIG_EDITOR_SET(CODEEDIT_AUTO_IDEN, SETTING_ITEM::AUTO_IDEN,
- m_editorAutoIden);
- Q_EMIT editorSettingsUpdate();
- }
-
- if (cat.testFlag(SETTING::CONSOLE)) {
- WRITE_CONFIG_CONSOLE_SET(CONSOLE_FONT, SETTING_ITEM::FONT,
- m_consoleFontFamily);
- WRITE_CONFIG_CONSOLE_SET(CONSOLE_FONT_SIZE, SETTING_ITEM::FONT_SIZE,
- m_consolefontSize);
- WRITE_CONFIG_CONSOLE_SET(CONSOLE_THEME, SETTING_ITEM::THEME,
- m_consoleTheme);
- WRITE_CONFIG_CONSOLE_SET(CONSOLE_TABS_WIDTH, SETTING_ITEM::TAB_WIDTH,
- m_consoleTabWidth);
- WRITE_CONFIG_CONSOLE_SET(CONSOLE_INDENTATION, SETTING_ITEM::INDENTATION,
- m_consoleInden);
- WRITE_CONFIG_CONSOLE_SET(CONSOLE_MATCH_BRACES,
- SETTING_ITEM::MATCH_BRACES,
- m_consoleMatchBraces);
- WRITE_CONFIG_CONSOLE_SET(CONSOLE_SHOW_WHITESPACE,
- SETTING_ITEM::SHOW_WHITESPACE,
- m_consoleShowWhiteSpace);
- WRITE_CONFIG_CONSOLE_SET(CONSOLE_AUTO_CLOSE_CHAR,
- SETTING_ITEM::AUTO_CLOSE_CHAR,
- m_consoleAutoCloseChar);
- Q_EMIT consoleSettingUpdate();
- }
-}
-
void ScriptSettings::reset(SETTINGS cat) {
__reset(cat);
load();
@@ -219,51 +131,31 @@ void ScriptSettings::reset(SETTINGS cat) {
void ScriptSettings::__reset(SETTINGS cat) {
HANDLE_CONFIG;
if (cat.testFlag(SETTING::EDITOR)) {
- WRITE_CONFIG_EDITOR_RESET(CODEEDIT_FONT, SETTING_ITEM::FONT,
- _defaultFont.defaultFamily());
- WRITE_CONFIG_EDITOR_RESET(CODEEDIT_FONT_SIZE, SETTING_ITEM::FONT_SIZE,
- 10);
- WRITE_CONFIG_EDITOR_RESET(CODEEDIT_THEME, SETTING_ITEM::THEME, {});
- WRITE_CONFIG_EDITOR_RESET(CODEEDIT_TABS_WIDTH, SETTING_ITEM::TAB_WIDTH,
- 4);
- WRITE_CONFIG_EDITOR_RESET(CODEEDIT_INDENTATION,
- SETTING_ITEM::INDENTATION, 0);
- WRITE_CONFIG_EDITOR_RESET(CODEEDIT_MATCH_BRACES,
- SETTING_ITEM::MATCH_BRACES, true);
- WRITE_CONFIG_EDITOR_RESET(CODEEDIT_WORD_WRAP, SETTING_ITEM::WORD_WRAP,
- false);
- WRITE_CONFIG_EDITOR_RESET(CODEEDIT_SHOW_LINENUMBER,
- SETTING_ITEM::SHOW_LINENUMBER, true);
- WRITE_CONFIG_EDITOR_RESET(CODEEDIT_SHOW_FOLDING,
- SETTING_ITEM::SHOW_FOLDING, true);
- WRITE_CONFIG_EDITOR_RESET(CODEEDIT_SHOW_INDENTGUIDES,
- SETTING_ITEM::SHOW_INDENTGUIDES, true);
- WRITE_CONFIG_EDITOR_RESET(CODEEDIT_SHOW_LONGLINEEDGE,
- SETTING_ITEM::SHOW_LONGLINEEDGE, false);
- WRITE_CONFIG_EDITOR_RESET(CODEEDIT_SHOW_WHITESPACE,
- SETTING_ITEM::SHOW_WHITESPACE, false);
- WRITE_CONFIG_EDITOR_RESET(CODEEDIT_AUTO_CLOSE_CHAR,
- SETTING_ITEM::AUTO_CLOSE_CHAR, true);
- WRITE_CONFIG_EDITOR_RESET(CODEEDIT_AUTO_IDEN, SETTING_ITEM::AUTO_IDEN,
- true);
+ WRITE_CONFIG(CODEEDIT_FONT, _defaultFont.defaultFamily());
+ WRITE_CONFIG(CODEEDIT_FONT_SIZE, 10);
+ WRITE_CONFIG(CODEEDIT_THEME, {});
+ WRITE_CONFIG(CODEEDIT_TABS_WIDTH, 4);
+ WRITE_CONFIG(CODEEDIT_INDENTATION, 0);
+ WRITE_CONFIG(CODEEDIT_MATCH_BRACES, true);
+ WRITE_CONFIG(CODEEDIT_WORD_WRAP, false);
+ WRITE_CONFIG(CODEEDIT_SHOW_LINENUMBER, true);
+ WRITE_CONFIG(CODEEDIT_SHOW_FOLDING, true);
+ WRITE_CONFIG(CODEEDIT_SHOW_INDENTGUIDES, true);
+ WRITE_CONFIG(CODEEDIT_SHOW_LONGLINEEDGE, false);
+ WRITE_CONFIG(CODEEDIT_SHOW_WHITESPACE, false);
+ WRITE_CONFIG(CODEEDIT_AUTO_CLOSE_CHAR, true);
+ WRITE_CONFIG(CODEEDIT_AUTO_IDEN, true);
}
if (cat.testFlag(SETTING::CONSOLE)) {
- WRITE_CONFIG_CONSOLE_RESET(CONSOLE_FONT, SETTING_ITEM::FONT,
- _defaultFont.defaultFamily());
- WRITE_CONFIG_CONSOLE_RESET(CONSOLE_FONT_SIZE, SETTING_ITEM::FONT_SIZE,
- 10);
- WRITE_CONFIG_CONSOLE_RESET(CONSOLE_THEME, SETTING_ITEM::THEME, {});
- WRITE_CONFIG_CONSOLE_RESET(CONSOLE_TABS_WIDTH, SETTING_ITEM::TAB_WIDTH,
- 4);
- WRITE_CONFIG_CONSOLE_RESET(CONSOLE_INDENTATION,
- SETTING_ITEM::INDENTATION, 0);
- WRITE_CONFIG_CONSOLE_RESET(CONSOLE_MATCH_BRACES,
- SETTING_ITEM::MATCH_BRACES, true);
- WRITE_CONFIG_CONSOLE_RESET(CONSOLE_SHOW_WHITESPACE,
- SETTING_ITEM::SHOW_WHITESPACE, false);
- WRITE_CONFIG_CONSOLE_RESET(CONSOLE_AUTO_CLOSE_CHAR,
- SETTING_ITEM::AUTO_CLOSE_CHAR, true);
+ WRITE_CONFIG(CONSOLE_FONT, _defaultFont.defaultFamily());
+ WRITE_CONFIG(CONSOLE_FONT_SIZE, 10);
+ WRITE_CONFIG(CONSOLE_THEME, {});
+ WRITE_CONFIG(CONSOLE_TABS_WIDTH, 4);
+ WRITE_CONFIG(CONSOLE_INDENTATION, 0);
+ WRITE_CONFIG(CONSOLE_MATCH_BRACES, true);
+ WRITE_CONFIG(CONSOLE_SHOW_WHITESPACE, false);
+ WRITE_CONFIG(CONSOLE_AUTO_CLOSE_CHAR, true);
}
}
@@ -275,7 +167,11 @@ ScriptSettings::ScriptSettings() : QObject() {
bool ScriptSettings::editorAutoIden() const { return m_editorAutoIden; }
void ScriptSettings::setEditorAutoIden(bool newEditorAutoIden) {
- m_editorAutoIden = newEditorAutoIden;
+ if (m_editorAutoIden != newEditorAutoIden) {
+ HANDLE_CONFIG;
+ WRITE_CONFIG(CODEEDIT_AUTO_IDEN, newEditorAutoIden);
+ m_editorAutoIden = newEditorAutoIden;
+ }
}
bool ScriptSettings::consoleAutoCloseChar() const {
@@ -284,8 +180,9 @@ bool ScriptSettings::consoleAutoCloseChar() const {
void ScriptSettings::setConsoleAutoCloseChar(bool newConsoleAutoCloseChar) {
if (m_consoleAutoCloseChar != newConsoleAutoCloseChar) {
+ HANDLE_CONFIG;
+ WRITE_CONFIG(CONSOLE_AUTO_CLOSE_CHAR, newConsoleAutoCloseChar);
m_consoleAutoCloseChar = newConsoleAutoCloseChar;
- _setUnsavedConsole.setFlag(SETTING_ITEM::AUTO_CLOSE_CHAR);
}
}
@@ -295,8 +192,9 @@ bool ScriptSettings::editorAutoCloseChar() const {
void ScriptSettings::setEditorAutoCloseChar(bool newEditorAutoCloseChar) {
if (m_editorAutoCloseChar != newEditorAutoCloseChar) {
+ HANDLE_CONFIG;
+ WRITE_CONFIG(CODEEDIT_AUTO_CLOSE_CHAR, newEditorAutoCloseChar);
m_editorAutoCloseChar = newEditorAutoCloseChar;
- _setUnsavedEditor.setFlag(SETTING_ITEM::AUTO_CLOSE_CHAR);
}
}
@@ -306,8 +204,9 @@ bool ScriptSettings::consoleShowWhiteSpace() const {
void ScriptSettings::setConsoleShowWhiteSpace(bool newConsoleShowWhiteSpace) {
if (m_consoleShowWhiteSpace != newConsoleShowWhiteSpace) {
+ HANDLE_CONFIG;
+ WRITE_CONFIG(CONSOLE_SHOW_WHITESPACE, newConsoleShowWhiteSpace);
m_consoleShowWhiteSpace = newConsoleShowWhiteSpace;
- _setUnsavedConsole.setFlag(SETTING_ITEM::SHOW_WHITESPACE);
}
}
@@ -317,8 +216,9 @@ bool ScriptSettings::editorShowWhiteSpace() const {
void ScriptSettings::setEditorShowWhiteSpace(bool newEditorShowWhiteSpace) {
if (m_editorShowWhiteSpace != newEditorShowWhiteSpace) {
+ HANDLE_CONFIG;
+ WRITE_CONFIG(CODEEDIT_SHOW_WHITESPACE, newEditorShowWhiteSpace);
m_editorShowWhiteSpace = newEditorShowWhiteSpace;
- _setUnsavedEditor.setFlag(SETTING_ITEM::SHOW_WHITESPACE);
}
}
@@ -328,8 +228,9 @@ bool ScriptSettings::editorShowLineEdges() const {
void ScriptSettings::setEditorShowLineEdges(bool newEditorShowLineEdges) {
if (m_editorShowLineEdges != newEditorShowLineEdges) {
+ HANDLE_CONFIG;
+ WRITE_CONFIG(CODEEDIT_SHOW_LONGLINEEDGE, newEditorShowLineEdges);
m_editorShowLineEdges = newEditorShowLineEdges;
- _setUnsavedEditor.setFlag(SETTING_ITEM::SHOW_LONGLINEEDGE);
}
}
@@ -339,8 +240,9 @@ bool ScriptSettings::editorShowGuideLine() const {
void ScriptSettings::setEditorShowGuideLine(bool newEditorShowGuidLine) {
if (m_editorShowGuideLine != newEditorShowGuidLine) {
+ HANDLE_CONFIG;
+ WRITE_CONFIG(CODEEDIT_SHOW_INDENTGUIDES, newEditorShowGuidLine);
m_editorShowGuideLine = newEditorShowGuidLine;
- _setUnsavedEditor.setFlag(SETTING_ITEM::SHOW_INDENTGUIDES);
}
}
@@ -348,8 +250,9 @@ bool ScriptSettings::editorFolding() const { return m_editorFolding; }
void ScriptSettings::setEditorFolding(bool newEditorFolding) {
if (m_editorFolding != newEditorFolding) {
+ HANDLE_CONFIG;
+ WRITE_CONFIG(CODEEDIT_SHOW_FOLDING, newEditorFolding);
m_editorFolding = newEditorFolding;
- _setUnsavedEditor.setFlag(SETTING_ITEM::SHOW_FOLDING);
}
}
@@ -359,8 +262,9 @@ bool ScriptSettings::editorShowLineNumber() const {
void ScriptSettings::setEditorShowLineNumber(bool newEditorShowLineNumber) {
if (m_editorShowLineNumber != newEditorShowLineNumber) {
+ HANDLE_CONFIG;
+ WRITE_CONFIG(CODEEDIT_SHOW_LINENUMBER, newEditorShowLineNumber);
m_editorShowLineNumber = newEditorShowLineNumber;
- _setUnsavedEditor.setFlag(SETTING_ITEM::SHOW_LINENUMBER);
}
}
@@ -368,8 +272,9 @@ bool ScriptSettings::editorWordWrap() const { return m_editorWordWrap; }
void ScriptSettings::setEditorWordWrap(bool newEditorWordWrap) {
if (m_editorWordWrap != newEditorWordWrap) {
+ HANDLE_CONFIG;
+ WRITE_CONFIG(CODEEDIT_WORD_WRAP, newEditorWordWrap);
m_editorWordWrap = newEditorWordWrap;
- _setUnsavedEditor.setFlag(SETTING_ITEM::WORD_WRAP);
}
}
@@ -377,8 +282,9 @@ bool ScriptSettings::consoleMatchBraces() const { return m_consoleMatchBraces; }
void ScriptSettings::setConsoleMatchBraces(bool newConsoleMatchBraces) {
if (m_consoleMatchBraces != newConsoleMatchBraces) {
+ HANDLE_CONFIG;
+ WRITE_CONFIG(CONSOLE_MATCH_BRACES, newConsoleMatchBraces);
m_consoleMatchBraces = newConsoleMatchBraces;
- _setUnsavedConsole.setFlag(SETTING_ITEM::MATCH_BRACES);
}
}
@@ -386,8 +292,9 @@ bool ScriptSettings::editorMatchBraces() const { return m_editorMatchBraces; }
void ScriptSettings::setEditorMatchBraces(bool newEditorMatchBraces) {
if (m_editorMatchBraces != newEditorMatchBraces) {
+ HANDLE_CONFIG;
+ WRITE_CONFIG(CODEEDIT_MATCH_BRACES, newEditorMatchBraces);
m_editorMatchBraces = newEditorMatchBraces;
- _setUnsavedEditor.setFlag(SETTING_ITEM::MATCH_BRACES);
}
}
@@ -395,8 +302,9 @@ int ScriptSettings::consoleInden() const { return m_consoleInden; }
void ScriptSettings::setConsoleInden(int newConsoleInden) {
if (m_consoleInden != newConsoleInden) {
+ HANDLE_CONFIG;
+ WRITE_CONFIG(CONSOLE_INDENTATION, newConsoleInden);
m_consoleInden = newConsoleInden;
- _setUnsavedConsole.setFlag(SETTING_ITEM::INDENTATION);
}
}
@@ -404,8 +312,9 @@ int ScriptSettings::editorInden() const { return m_editorInden; }
void ScriptSettings::setEditorInden(int newEditorInden) {
if (m_editorInden != newEditorInden) {
+ HANDLE_CONFIG;
+ WRITE_CONFIG(CODEEDIT_INDENTATION, newEditorInden);
m_editorInden = newEditorInden;
- _setUnsavedEditor.setFlag(SETTING_ITEM::INDENTATION);
}
}
@@ -413,8 +322,9 @@ int ScriptSettings::consoleTabWidth() const { return m_consoleTabWidth; }
void ScriptSettings::setConsoleTabWidth(int newConsoleTabWidth) {
if (m_consoleTabWidth != newConsoleTabWidth) {
+ HANDLE_CONFIG;
+ WRITE_CONFIG(CONSOLE_TABS_WIDTH, newConsoleTabWidth);
m_consoleTabWidth = newConsoleTabWidth;
- _setUnsavedConsole.setFlag(SETTING_ITEM::TAB_WIDTH);
}
}
@@ -422,8 +332,9 @@ int ScriptSettings::editorTabWidth() const { return m_editorTabWidth; }
void ScriptSettings::setEditorTabWidth(int newEditorTabWidth) {
if (m_editorTabWidth != newEditorTabWidth) {
+ HANDLE_CONFIG;
+ WRITE_CONFIG(CODEEDIT_TABS_WIDTH, newEditorTabWidth);
m_editorTabWidth = newEditorTabWidth;
- _setUnsavedEditor.setFlag(SETTING_ITEM::TAB_WIDTH);
}
}
@@ -431,8 +342,9 @@ QString ScriptSettings::consoleTheme() const { return m_consoleTheme; }
void ScriptSettings::setConsoleTheme(const QString &newConsoleTheme) {
if (m_consoleTheme != newConsoleTheme) {
+ HANDLE_CONFIG;
+ WRITE_CONFIG(CONSOLE_THEME, newConsoleTheme);
m_consoleTheme = newConsoleTheme;
- _setUnsavedConsole.setFlag(SETTING_ITEM::THEME);
}
}
@@ -440,8 +352,9 @@ QString ScriptSettings::editorTheme() const { return m_editorTheme; }
void ScriptSettings::setEditorTheme(const QString &newEditorTheme) {
if (m_editorTheme != newEditorTheme) {
+ HANDLE_CONFIG;
+ WRITE_CONFIG(CODEEDIT_THEME, newEditorTheme);
m_editorTheme = newEditorTheme;
- _setUnsavedEditor.setFlag(SETTING_ITEM::THEME);
}
}
@@ -449,8 +362,9 @@ int ScriptSettings::consoleFontSize() const { return m_consolefontSize; }
void ScriptSettings::setConsoleFontSize(int newConsolefontSize) {
if (m_consolefontSize != newConsolefontSize) {
+ HANDLE_CONFIG;
+ WRITE_CONFIG(CONSOLE_FONT_SIZE, newConsolefontSize);
m_consolefontSize = newConsolefontSize;
- _setUnsavedConsole.setFlag(SETTING_ITEM::FONT_SIZE);
}
}
@@ -458,8 +372,9 @@ int ScriptSettings::editorFontSize() const { return m_editorfontSize; }
void ScriptSettings::setEditorFontSize(int newEditorfontSize) {
if (m_editorfontSize != newEditorfontSize) {
+ HANDLE_CONFIG;
+ WRITE_CONFIG(CODEEDIT_FONT_SIZE, newEditorfontSize);
m_editorfontSize = newEditorfontSize;
- _setUnsavedEditor.setFlag(SETTING_ITEM::FONT_SIZE);
}
}
@@ -469,8 +384,9 @@ QString ScriptSettings::consoleFontFamily() const {
void ScriptSettings::setConsoleFontFamily(const QString &newConsoleFontFamily) {
if (m_consoleFontFamily != newConsoleFontFamily) {
+ HANDLE_CONFIG;
+ WRITE_CONFIG(CONSOLE_FONT, newConsoleFontFamily);
m_consoleFontFamily = newConsoleFontFamily;
- _setUnsavedConsole.setFlag(SETTING_ITEM::FONT);
}
}
@@ -478,7 +394,8 @@ QString ScriptSettings::editorFontFamily() const { return m_editorFontFamily; }
void ScriptSettings::setEditorFontFamily(const QString &newEditorFontFamily) {
if (m_editorFontFamily != newEditorFontFamily) {
+ HANDLE_CONFIG;
+ WRITE_CONFIG(CODEEDIT_FONT, newEditorFontFamily);
m_editorFontFamily = newEditorFontFamily;
- _setUnsavedEditor.setFlag(SETTING_ITEM::FONT);
}
}
diff --git a/src/class/scriptsettings.h b/src/class/scriptsettings.h
index aecf05d..154a4b1 100644
--- a/src/class/scriptsettings.h
+++ b/src/class/scriptsettings.h
@@ -28,102 +28,60 @@ public:
enum SETTING { EDITOR = 1, CONSOLE = 2, ALL = EDITOR | CONSOLE };
Q_DECLARE_FLAGS(SETTINGS, SETTING)
-private:
- // Flags to indicate whether the modification has been made.
- // There are a maximum of 32 flags,
- // but it is impossible to have more than this.
- enum class SETTING_ITEM : quint32 {
- FONT = 1u,
- FONT_SIZE = 1u << 1,
- THEME = 1u << 2,
- TAB_WIDTH = 1u << 3,
- INDENTATION = 1u << 4,
- WORD_WRAP = 1u << 5,
- MATCH_BRACES = 1u << 6,
- SHOW_LINENUMBER = 1u << 7,
- SHOW_FOLDING = 1u << 8,
- SHOW_INDENTGUIDES = 1u << 9,
- SHOW_LONGLINEEDGE = 1u << 10,
- SHOW_WHITESPACE = 1u << 11,
- AUTO_CLOSE_CHAR = 1u << 12,
- AUTO_IDEN = 1u << 13
- };
- Q_DECLARE_FLAGS(SETTING_ITEMS, SETTING_ITEM)
-
public:
static ScriptSettings &instance();
void load();
- void save(SETTINGS cat = SETTING::ALL);
void reset(SETTINGS cat = SETTING::ALL);
void __reset(SETTINGS cat);
public:
QString editorFontFamily() const;
- void setEditorFontFamily(const QString &newEditorFontFamily);
-
QString consoleFontFamily() const;
- void setConsoleFontFamily(const QString &newConsoleFontFamily);
-
int editorFontSize() const;
- void setEditorFontSize(int newEditorfontSize);
-
int consoleFontSize() const;
- void setConsoleFontSize(int newConsolefontSize);
-
QString editorTheme() const;
- void setEditorTheme(const QString &newEditorTheme);
-
QString consoleTheme() const;
- void setConsoleTheme(const QString &newConsoleTheme);
-
int editorTabWidth() const;
- void setEditorTabWidth(int newEditorTabWidth);
-
int consoleTabWidth() const;
- void setConsoleTabWidth(int newConsoleTabWidth);
-
int editorInden() const;
- void setEditorInden(int newEditorInden);
-
int consoleInden() const;
- void setConsoleInden(int newConsoleInden);
-
bool editorMatchBraces() const;
- void setEditorMatchBraces(bool newEditorMatchBraces);
-
bool consoleMatchBraces() const;
- void setConsoleMatchBraces(bool newConsoleMatchBraces);
-
bool editorWordWrap() const;
- void setEditorWordWrap(bool newEditorWordWrap);
-
bool editorShowLineNumber() const;
- void setEditorShowLineNumber(bool newEditorShowLineNumber);
-
bool editorFolding() const;
- void setEditorFolding(bool newEditorFolding);
-
bool editorShowGuideLine() const;
- void setEditorShowGuideLine(bool newEditorShowGuidLine);
-
bool editorShowLineEdges() const;
- void setEditorShowLineEdges(bool newEditorShowLineEdges);
-
bool editorShowWhiteSpace() const;
- void setEditorShowWhiteSpace(bool newEditorShowWhiteSpace);
-
bool consoleShowWhiteSpace() const;
- void setConsoleShowWhiteSpace(bool newConsoleShowWhiteSpace);
-
bool editorAutoCloseChar() const;
- void setEditorAutoCloseChar(bool newEditorAutoCloseChar);
-
bool consoleAutoCloseChar() const;
- void setConsoleAutoCloseChar(bool newConsoleAutoCloseChar);
-
bool editorAutoIden() const;
+
+public slots:
+ void setEditorFontFamily(const QString &newEditorFontFamily);
+ void setConsoleFontFamily(const QString &newConsoleFontFamily);
+ void setEditorFontSize(int newEditorfontSize);
+ void setConsoleFontSize(int newConsolefontSize);
+ void setEditorTheme(const QString &newEditorTheme);
+ void setConsoleTheme(const QString &newConsoleTheme);
+ void setEditorTabWidth(int newEditorTabWidth);
+ void setConsoleTabWidth(int newConsoleTabWidth);
+ void setEditorInden(int newEditorInden);
+ void setConsoleInden(int newConsoleInden);
+ void setEditorMatchBraces(bool newEditorMatchBraces);
+ void setConsoleMatchBraces(bool newConsoleMatchBraces);
+ void setEditorWordWrap(bool newEditorWordWrap);
+ void setEditorShowLineNumber(bool newEditorShowLineNumber);
+ void setEditorFolding(bool newEditorFolding);
+ void setEditorShowGuideLine(bool newEditorShowGuidLine);
+ void setEditorShowLineEdges(bool newEditorShowLineEdges);
+ void setEditorShowWhiteSpace(bool newEditorShowWhiteSpace);
+ void setConsoleShowWhiteSpace(bool newConsoleShowWhiteSpace);
+ void setEditorAutoCloseChar(bool newEditorAutoCloseChar);
+ void setConsoleAutoCloseChar(bool newConsoleAutoCloseChar);
void setEditorAutoIden(bool newEditorAutoIden);
private:
@@ -167,10 +125,6 @@ private:
bool m_editorAutoCloseChar = true;
bool m_consoleAutoCloseChar = true;
-private:
- SETTING_ITEMS _setUnsavedEditor;
- SETTING_ITEMS _setUnsavedConsole;
-
private:
Q_DISABLE_COPY_MOVE(ScriptSettings)
};
diff --git a/src/class/settingmanager.cpp b/src/class/settingmanager.cpp
index 3dbac4a..24649b2 100644
--- a/src/class/settingmanager.cpp
+++ b/src/class/settingmanager.cpp
@@ -25,18 +25,6 @@
#include
#include
-#define WRITE_CONFIG_SET(config, dvalue) \
- if (this->_setUnsaved.testFlag(SETTING_ITEM::config)) { \
- WRITE_CONFIG(config, dvalue); \
- _setUnsaved.setFlag(SettingManager::SETTING_ITEM::config, false); \
- }
-
-#define WRITE_CONFIG_RESET(config, dvalue) \
- do { \
- WRITE_CONFIG(config, dvalue); \
- _setUnsaved.setFlag(SettingManager::SETTING_ITEM::config, false); \
- } while (0);
-
Q_GLOBAL_STATIC_WITH_ARGS(QString, DOCK_LAYOUT, ("dock.layout"))
Q_GLOBAL_STATIC_WITH_ARGS(QString, SCRIPT_DOCK_LAYOUT, ("script.layout"))
Q_GLOBAL_STATIC_WITH_ARGS(QString, APP_LASTUSED_PATH, ("app.lastusedpath"))
@@ -89,7 +77,11 @@ SettingManager::SettingManager() {
QString SettingManager::lastUsedPath() const { return m_lastUsedPath; }
void SettingManager::setLastUsedPath(const QString &newLastUsedPath) {
- m_lastUsedPath = newLastUsedPath;
+ if (m_lastUsedPath != newLastUsedPath) {
+ HANDLE_CONFIG;
+ WRITE_CONFIG(APP_LASTUSED_PATH, newLastUsedPath);
+ m_lastUsedPath = newLastUsedPath;
+ }
}
void SettingManager::load() {
@@ -200,15 +192,20 @@ int SettingManager::scriptTimeout() const { return m_scriptTimeout; }
void SettingManager::setScriptTimeout(int newScriptTimeout) {
newScriptTimeout = qBound(0, newScriptTimeout, 312480);
if (m_scriptTimeout != newScriptTimeout) {
+ HANDLE_CONFIG;
+ WRITE_CONFIG(SCRIPT_TIMEOUT, newScriptTimeout);
m_scriptTimeout = newScriptTimeout;
- _setUnsaved.setFlag(SETTING_ITEM::SCRIPT_TIMEOUT);
}
}
qsizetype SettingManager::logCount() const { return m_logCount; }
void SettingManager::setLogCount(qsizetype newLogCount) {
- m_logCount = newLogCount;
+ if (m_logCount != newLogCount) {
+ HANDLE_CONFIG;
+ WRITE_CONFIG(OTHER_LOG_COUNT, newLogCount);
+ m_logCount = newLogCount;
+ }
}
void SettingManager::checkWriteableAndWarn() {
@@ -222,15 +219,20 @@ void SettingManager::checkWriteableAndWarn() {
bool SettingManager::checkUpdate() const { return m_checkUpdate; }
void SettingManager::setCheckUpdate(bool newCheckUpdate) {
- m_checkUpdate = newCheckUpdate;
+ if (m_checkUpdate != newCheckUpdate) {
+ HANDLE_CONFIG;
+ WRITE_CONFIG(OTHER_CHECK_UPDATE, newCheckUpdate);
+ m_checkUpdate = newCheckUpdate;
+ }
}
bool SettingManager::dontUseSplash() const { return m_dontUseSplash; }
void SettingManager::setDontUseSplash(bool newDontUseSplash) {
if (m_dontUseSplash != newDontUseSplash) {
+ HANDLE_CONFIG;
+ WRITE_CONFIG(OTHER_DONT_USE_SPLASH, newDontUseSplash);
m_dontUseSplash = newDontUseSplash;
- _setUnsaved.setFlag(SETTING_ITEM::OTHER_DONT_USE_SPLASH);
}
}
@@ -238,8 +240,9 @@ bool SettingManager::scriptEnabled() const { return m_scriptEnabled; }
void SettingManager::setScriptEnabled(bool newScriptEnabled) {
if (m_scriptEnabled != newScriptEnabled) {
+ HANDLE_CONFIG;
+ WRITE_CONFIG(SCRIPT_ENABLE, newScriptEnabled);
m_scriptEnabled = newScriptEnabled;
- _setUnsaved.setFlag(SETTING_ITEM::SCRIPT_ENABLE);
}
}
@@ -249,22 +252,25 @@ bool SettingManager::allowUsrScriptInRoot() const {
void SettingManager::setAllowUsrScriptInRoot(bool newAllowUsrScriptInRoot) {
if (m_allowUsrScriptInRoot != newAllowUsrScriptInRoot) {
+ HANDLE_CONFIG;
+ WRITE_CONFIG(SCRIPT_ALLOW_USRSCRIPT_INROOT, newAllowUsrScriptInRoot);
m_allowUsrScriptInRoot = newAllowUsrScriptInRoot;
- _setUnsaved.setFlag(SETTING_ITEM::SCRIPT_ALLOW_USRSCRIPT_INROOT);
}
}
void SettingManager::setUsrHideCats(const QStringList &newUsrHideCats) {
if (m_usrHideCats != newUsrHideCats) {
+ HANDLE_CONFIG;
+ WRITE_CONFIG(SCRIPT_USRHIDECATS, newUsrHideCats);
m_usrHideCats = newUsrHideCats;
- _setUnsaved.setFlag(SETTING_ITEM::SCRIPT_USRHIDECATS);
}
}
void SettingManager::setSysHideCats(const QStringList &newSysHideCats) {
if (m_sysHideCats != newSysHideCats) {
+ HANDLE_CONFIG;
+ WRITE_CONFIG(SCRIPT_SYSHIDECATS, newSysHideCats);
m_sysHideCats = newSysHideCats;
- _setUnsaved.setFlag(SETTING_ITEM::SCRIPT_SYSHIDECATS);
}
}
@@ -272,8 +278,9 @@ int SettingManager::logLevel() const { return m_logLevel; }
void SettingManager::setLogLevel(int newLogLevel) {
if (m_logLevel != newLogLevel) {
+ HANDLE_CONFIG;
+ WRITE_CONFIG(OTHER_LOG_LEVEL, newLogLevel);
m_logLevel = newLogLevel;
- _setUnsaved.setFlag(SETTING_ITEM::OTHER_LOG_LEVEL);
}
}
@@ -281,8 +288,9 @@ bool SettingManager::useNativeTitleBar() const { return m_useNativeTitleBar; }
void SettingManager::setUseNativeTitleBar(bool newUseNativeTitleBar) {
if (m_useNativeTitleBar != newUseNativeTitleBar) {
+ HANDLE_CONFIG;
+ WRITE_CONFIG(OTHER_USE_NATIVE_TITLEBAR, newUseNativeTitleBar);
m_useNativeTitleBar = newUseNativeTitleBar;
- _setUnsaved.setFlag(SETTING_ITEM::OTHER_USE_NATIVE_TITLEBAR);
}
}
@@ -292,8 +300,9 @@ bool SettingManager::useNativeFileDialog() const {
void SettingManager::setUseNativeFileDialog(bool newUseNativeFileDialog) {
if (m_useNativeFileDialog != newUseNativeFileDialog) {
+ HANDLE_CONFIG;
+ WRITE_CONFIG(OTHER_USESYS_FILEDIALOG, newUseNativeFileDialog);
m_useNativeFileDialog = newUseNativeFileDialog;
- _setUnsaved.setFlag(SETTING_ITEM::OTHER_USESYS_FILEDIALOG);
}
}
@@ -304,8 +313,9 @@ QByteArray SettingManager::scriptDockLayout() const {
void SettingManager::setScriptDockLayout(
const QByteArray &newScriptDockLayout) {
if (m_scriptDockLayout != newScriptDockLayout) {
+ HANDLE_CONFIG;
+ WRITE_CONFIG(SCRIPT_DOCK_LAYOUT, newScriptDockLayout);
m_scriptDockLayout = newScriptDockLayout;
- _setUnsaved.setFlag(SETTING_ITEM::SCRIPT_DOCK_LAYOUT);
}
}
@@ -320,8 +330,9 @@ QList SettingManager::recentScriptFiles() const {
void SettingManager::setRecentScriptFiles(
const QList &newRecentScriptFiles) {
if (m_recentScriptFiles != newRecentScriptFiles) {
+ HANDLE_CONFIG;
+ WRITE_CONFIG(SCRIPT_RECENTFILES, getVarList(newRecentScriptFiles));
m_recentScriptFiles = newRecentScriptFiles;
- _setUnsaved.setFlag(SETTING_ITEM::SCRIPT_RECENTFILES);
}
}
@@ -329,8 +340,9 @@ QString SettingManager::appFontFamily() const { return m_appFontFamily; }
void SettingManager::setAppFontFamily(const QString &newAppFontFamily) {
if (m_appFontFamily != newAppFontFamily) {
+ HANDLE_CONFIG;
+ WRITE_CONFIG(APP_FONTFAMILY, newAppFontFamily);
m_appFontFamily = newAppFontFamily;
- _setUnsaved.setFlag(SETTING_ITEM::APP_FONTFAMILY);
}
}
@@ -338,8 +350,9 @@ bool SettingManager::editorShowHeader() const { return m_editorShowHeader; }
void SettingManager::setEditorShowHeader(bool newEditorShowAddr) {
if (m_editorShowHeader != newEditorShowAddr) {
+ HANDLE_CONFIG;
+ WRITE_CONFIG(EDITOR_SHOW_ADDR, newEditorShowAddr);
m_editorShowHeader = newEditorShowAddr;
- _setUnsaved.setFlag(SETTING_ITEM::EDITOR_SHOW_ADDR);
}
}
@@ -347,8 +360,9 @@ bool SettingManager::enablePlugin() const { return m_enablePlugin; }
void SettingManager::setEnablePlugin(bool newEnablePlugin) {
if (m_enablePlugin != newEnablePlugin) {
+ HANDLE_CONFIG;
+ WRITE_CONFIG(PLUGIN_ENABLE, newEnablePlugin);
m_enablePlugin = newEnablePlugin;
- _setUnsaved.setFlag(SETTING_ITEM::PLUGIN_ENABLE);
}
}
@@ -359,8 +373,9 @@ QList SettingManager::recentHexFiles() const {
void SettingManager::setRecentFiles(
const QList &newRecentFiles) {
if (m_recentHexFiles != newRecentFiles) {
+ HANDLE_CONFIG;
+ WRITE_CONFIG(EDITOR_RECENTFILES, getVarList(newRecentFiles));
m_recentHexFiles = newRecentFiles;
- _setUnsaved.setFlag(SETTING_ITEM::EDITOR_RECENTFILES);
}
}
@@ -379,53 +394,9 @@ void SettingManager::setDefaultWinState(Qt::WindowState newDefaultWinState) {
break;
}
if (m_defaultWinState != newDefaultWinState) {
+ HANDLE_CONFIG;
+ WRITE_CONFIG(APP_WINDOWSIZE, newDefaultWinState);
m_defaultWinState = newDefaultWinState;
- _setUnsaved.setFlag(SETTING_ITEM::APP_WINDOWSIZE);
- }
-}
-
-void SettingManager::save(SETTINGS cat) {
- HANDLE_CONFIG;
- WRITE_CONFIG_SET(DOCK_LAYOUT, m_dockLayout);
- WRITE_CONFIG_SET(SCRIPT_DOCK_LAYOUT, m_scriptDockLayout);
- WRITE_CONFIG_SET(EDITOR_RECENTFILES, getVarList(m_recentHexFiles));
- WRITE_CONFIG_SET(SCRIPT_RECENTFILES, getVarList(m_recentScriptFiles));
- WRITE_CONFIG_SET(APP_LASTUSED_PATH, m_lastUsedPath);
- if (cat.testFlag(SETTING::APP)) {
- WRITE_CONFIG_SET(SKIN_THEME, m_themeID);
- WRITE_CONFIG_SET(APP_LANGUAGE, m_defaultLang);
- WRITE_CONFIG_SET(APP_FONTFAMILY, m_appFontFamily);
- WRITE_CONFIG_SET(APP_FONTSIZE, m_appfontSize);
- WRITE_CONFIG_SET(APP_WINDOWSIZE, m_defaultWinState);
- }
- if (cat.testFlag(SETTING::PLUGIN)) {
- WRITE_CONFIG_SET(PLUGIN_ENABLE, m_enablePlugin);
- WRITE_CONFIG_SET(PLUGIN_ENABLE_ROOT, m_enablePlgInRoot);
- }
- if (cat.testFlag(SETTING::EDITOR)) {
- WRITE_CONFIG_SET(EDITOR_FONTSIZE, m_editorfontSize);
- WRITE_CONFIG_SET(EDITOR_SHOW_ADDR, m_editorShowHeader);
- WRITE_CONFIG_SET(EDITOR_SHOW_COL, m_editorShowcol);
- WRITE_CONFIG_SET(EDITOR_SHOW_TEXT, m_editorShowtext);
- WRITE_CONFIG_SET(EDITOR_COPY_LIMIT, m_copylimit);
- WRITE_CONFIG_SET(EDITOR_DECSTRLIMIT, m_decodeStrlimit);
- }
- if (cat.testFlag(SETTING::SCRIPT)) {
- WRITE_CONFIG_SET(SCRIPT_ENABLE, m_scriptEnabled);
- WRITE_CONFIG_SET(SCRIPT_TIMEOUT, m_scriptTimeout);
- WRITE_CONFIG_SET(SCRIPT_ALLOW_USRSCRIPT_INROOT, m_allowUsrScriptInRoot);
- WRITE_CONFIG_SET(SCRIPT_USRHIDECATS, m_usrHideCats);
- WRITE_CONFIG_SET(SCRIPT_SYSHIDECATS, m_sysHideCats);
- }
- if (cat.testFlag(SETTING::OTHER)) {
- WRITE_CONFIG_SET(OTHER_USESYS_FILEDIALOG, m_useNativeFileDialog);
-#ifdef WINGHEX_USE_FRAMELESS
- WRITE_CONFIG_SET(OTHER_USE_NATIVE_TITLEBAR, m_useNativeTitleBar);
-#endif
- WRITE_CONFIG_SET(OTHER_DONT_USE_SPLASH, m_dontUseSplash);
- WRITE_CONFIG_SET(OTHER_CHECK_UPDATE, m_checkUpdate);
- WRITE_CONFIG_SET(OTHER_LOG_LEVEL, m_logLevel);
- WRITE_CONFIG_SET(OTHER_LOG_COUNT, m_logCount);
}
}
@@ -437,41 +408,41 @@ void SettingManager::reset(SETTINGS cat) {
void SettingManager::__reset(SETTINGS cat) {
HANDLE_CONFIG;
if (cat.testFlag(SETTING::APP)) {
- WRITE_CONFIG_RESET(SKIN_THEME, 0);
- WRITE_CONFIG_RESET(APP_LANGUAGE, QString());
- WRITE_CONFIG_RESET(APP_FONTFAMILY, _defaultFont.family());
- WRITE_CONFIG_RESET(APP_FONTSIZE, _defaultFont.pointSize());
- WRITE_CONFIG_RESET(APP_WINDOWSIZE, Qt::WindowMaximized);
+ WRITE_CONFIG(SKIN_THEME, 0);
+ WRITE_CONFIG(APP_LANGUAGE, QString());
+ WRITE_CONFIG(APP_FONTFAMILY, _defaultFont.family());
+ WRITE_CONFIG(APP_FONTSIZE, _defaultFont.pointSize());
+ WRITE_CONFIG(APP_WINDOWSIZE, Qt::WindowMaximized);
}
if (cat.testFlag(SETTING::PLUGIN)) {
- WRITE_CONFIG_RESET(PLUGIN_ENABLE, true);
- WRITE_CONFIG_RESET(PLUGIN_ENABLE_ROOT, false);
+ WRITE_CONFIG(PLUGIN_ENABLE, true);
+ WRITE_CONFIG(PLUGIN_ENABLE_ROOT, false);
}
if (cat.testFlag(SETTING::EDITOR)) {
- WRITE_CONFIG_RESET(EDITOR_FONTSIZE, _defaultFont.pointSize());
- WRITE_CONFIG_RESET(EDITOR_SHOW_ADDR, true);
- WRITE_CONFIG_RESET(EDITOR_SHOW_COL, true);
- WRITE_CONFIG_RESET(EDITOR_SHOW_TEXT, true);
- WRITE_CONFIG_RESET(EDITOR_FIND_MAXCOUNT, 100);
- WRITE_CONFIG_RESET(EDITOR_COPY_LIMIT, 100);
- WRITE_CONFIG_RESET(EDITOR_DECSTRLIMIT, 10);
+ WRITE_CONFIG(EDITOR_FONTSIZE, _defaultFont.pointSize());
+ WRITE_CONFIG(EDITOR_SHOW_ADDR, true);
+ WRITE_CONFIG(EDITOR_SHOW_COL, true);
+ WRITE_CONFIG(EDITOR_SHOW_TEXT, true);
+ WRITE_CONFIG(EDITOR_FIND_MAXCOUNT, 100);
+ WRITE_CONFIG(EDITOR_COPY_LIMIT, 100);
+ WRITE_CONFIG(EDITOR_DECSTRLIMIT, 10);
}
if (cat.testFlag(SETTING::SCRIPT)) {
- WRITE_CONFIG_RESET(SCRIPT_ENABLE, true);
- WRITE_CONFIG_RESET(SCRIPT_TIMEOUT, 10);
- WRITE_CONFIG_RESET(SCRIPT_ALLOW_USRSCRIPT_INROOT, false);
- WRITE_CONFIG_RESET(SCRIPT_USRHIDECATS, QStringList());
- WRITE_CONFIG_RESET(SCRIPT_SYSHIDECATS, QStringList());
+ WRITE_CONFIG(SCRIPT_ENABLE, true);
+ WRITE_CONFIG(SCRIPT_TIMEOUT, 10);
+ WRITE_CONFIG(SCRIPT_ALLOW_USRSCRIPT_INROOT, false);
+ WRITE_CONFIG(SCRIPT_USRHIDECATS, QStringList());
+ WRITE_CONFIG(SCRIPT_SYSHIDECATS, QStringList());
}
if (cat.testFlag(SETTING::OTHER)) {
- WRITE_CONFIG_RESET(OTHER_USESYS_FILEDIALOG, true);
+ WRITE_CONFIG(OTHER_USESYS_FILEDIALOG, true);
#ifdef WINGHEX_USE_FRAMELESS
- WRITE_CONFIG_RESET(OTHER_USE_NATIVE_TITLEBAR, false);
+ WRITE_CONFIG(OTHER_USE_NATIVE_TITLEBAR, false);
#endif
- WRITE_CONFIG_RESET(OTHER_DONT_USE_SPLASH, false);
- WRITE_CONFIG_RESET(OTHER_CHECK_UPDATE, false);
- WRITE_CONFIG_RESET(OTHER_LOG_LEVEL, Logger::defaultLevel());
- WRITE_CONFIG_RESET(OTHER_LOG_COUNT, 20);
+ WRITE_CONFIG(OTHER_DONT_USE_SPLASH, false);
+ WRITE_CONFIG(OTHER_CHECK_UPDATE, false);
+ WRITE_CONFIG(OTHER_LOG_LEVEL, Logger::defaultLevel());
+ WRITE_CONFIG(OTHER_LOG_COUNT, 20);
}
}
@@ -481,8 +452,9 @@ void SettingManager::setDecodeStrlimit(qsizetype newDecodeStrlimit) {
newDecodeStrlimit =
qBound(qsizetype(100), newDecodeStrlimit, qsizetype(1024));
if (m_decodeStrlimit != newDecodeStrlimit) {
+ HANDLE_CONFIG;
+ WRITE_CONFIG(EDITOR_DECSTRLIMIT, newDecodeStrlimit);
m_decodeStrlimit = newDecodeStrlimit;
- _setUnsaved.setFlag(SETTING_ITEM::EDITOR_DECSTRLIMIT);
Q_EMIT sigDecodeStrlimitChanged(m_decodeStrlimit);
}
}
@@ -492,8 +464,9 @@ qsizetype SettingManager::copylimit() const { return m_copylimit; }
void SettingManager::setCopylimit(qsizetype newCopylimit) {
newCopylimit = qBound(qsizetype(100), newCopylimit, qsizetype(1024));
if (m_copylimit != newCopylimit) {
+ HANDLE_CONFIG;
+ WRITE_CONFIG(EDITOR_COPY_LIMIT, newCopylimit);
m_copylimit = newCopylimit;
- _setUnsaved.setFlag(SETTING_ITEM::EDITOR_COPY_LIMIT);
Q_EMIT sigDecodeStrlimitChanged(m_copylimit);
}
}
@@ -502,8 +475,9 @@ bool SettingManager::editorShowtext() const { return m_editorShowtext; }
void SettingManager::setEditorShowtext(bool newEditorShowtext) {
if (m_editorShowtext != newEditorShowtext) {
+ HANDLE_CONFIG;
+ WRITE_CONFIG(EDITOR_SHOW_TEXT, newEditorShowtext);
m_editorShowtext = newEditorShowtext;
- _setUnsaved.setFlag(SETTING_ITEM::EDITOR_SHOW_TEXT);
}
}
@@ -511,8 +485,9 @@ bool SettingManager::editorShowcol() const { return m_editorShowcol; }
void SettingManager::setEditorShowcol(bool newEditorShowcol) {
if (m_editorShowcol != newEditorShowcol) {
+ HANDLE_CONFIG;
+ WRITE_CONFIG(EDITOR_SHOW_COL, newEditorShowcol);
m_editorShowcol = newEditorShowcol;
- _setUnsaved.setFlag(SETTING_ITEM::EDITOR_SHOW_COL);
}
}
@@ -520,8 +495,9 @@ int SettingManager::editorfontSize() const { return m_editorfontSize; }
void SettingManager::setEditorfontSize(int newEditorfontSize) {
if (m_editorfontSize != newEditorfontSize) {
+ HANDLE_CONFIG;
+ WRITE_CONFIG(EDITOR_FONTSIZE, newEditorfontSize);
m_editorfontSize = newEditorfontSize;
- _setUnsaved.setFlag(SETTING_ITEM::EDITOR_FONTSIZE);
Q_EMIT sigEditorfontSizeChanged(newEditorfontSize);
}
}
@@ -530,8 +506,9 @@ int SettingManager::appfontSize() const { return m_appfontSize; }
void SettingManager::setAppfontSize(int newAppfontSize) {
if (m_appfontSize != newAppfontSize) {
+ HANDLE_CONFIG;
+ WRITE_CONFIG(APP_FONTSIZE, newAppfontSize);
m_appfontSize = newAppfontSize;
- _setUnsaved.setFlag(SETTING_ITEM::APP_FONTSIZE);
}
}
@@ -539,8 +516,9 @@ bool SettingManager::enablePlgInRoot() const { return m_enablePlgInRoot; }
void SettingManager::setEnablePlgInRoot(bool newEnablePlgInRoot) {
if (m_enablePlgInRoot != newEnablePlgInRoot) {
+ HANDLE_CONFIG;
+ WRITE_CONFIG(PLUGIN_ENABLE_ROOT, newEnablePlgInRoot);
m_enablePlgInRoot = newEnablePlgInRoot;
- _setUnsaved.setFlag(SETTING_ITEM::PLUGIN_ENABLE_ROOT);
}
}
@@ -548,8 +526,9 @@ QString SettingManager::defaultLang() const { return m_defaultLang; }
void SettingManager::setDefaultLang(const QString &newDefaultLang) {
if (m_defaultLang != newDefaultLang) {
+ HANDLE_CONFIG;
+ WRITE_CONFIG(APP_LANGUAGE, newDefaultLang);
m_defaultLang = newDefaultLang;
- _setUnsaved.setFlag(SETTING_ITEM::APP_LANGUAGE);
}
}
@@ -564,8 +543,9 @@ QByteArray SettingManager::dockLayout() const { return m_dockLayout; }
void SettingManager::setDockLayout(const QByteArray &newDockLayout) {
if (m_dockLayout != newDockLayout) {
+ HANDLE_CONFIG;
+ WRITE_CONFIG(DOCK_LAYOUT, newDockLayout);
m_dockLayout = newDockLayout;
- _setUnsaved.setFlag(SETTING_ITEM::DOCK_LAYOUT);
}
}
@@ -573,7 +553,8 @@ int SettingManager::themeID() const { return m_themeID; }
void SettingManager::setThemeID(int newThemeID) {
if (m_themeID != newThemeID) {
+ HANDLE_CONFIG;
+ WRITE_CONFIG(SKIN_THEME, newThemeID);
m_themeID = newThemeID;
- _setUnsaved.setFlag(SETTING_ITEM::SKIN_THEME);
}
}
diff --git a/src/class/settingmanager.h b/src/class/settingmanager.h
index a88c2a4..03fb704 100644
--- a/src/class/settingmanager.h
+++ b/src/class/settingmanager.h
@@ -40,141 +40,78 @@ public:
ALL = APP | PLUGIN | EDITOR | SCRIPT | OTHER
};
Q_DECLARE_FLAGS(SETTINGS, SETTING)
-private:
- // Flags to indicate whether the modification has been made.
- // There are a maximum of 32 flags,
- // but it is impossible to have more than this.
- enum class SETTING_ITEM : quint32 {
- DOCK_LAYOUT = 1u,
- SCRIPT_DOCK_LAYOUT = 1u << 1,
- APP_LASTUSED_PATH = 1u << 2,
- SKIN_THEME = 1u << 3,
- APP_FONTFAMILY = 1u << 4,
- APP_FONTSIZE = 1u << 5,
- APP_WINDOWSIZE = 1u << 6,
- APP_LANGUAGE = 1u << 7,
- PLUGIN_ENABLE = 1u << 8,
- PLUGIN_ENABLE_ROOT = 1u << 9,
- EDITOR_FONTSIZE = 1u << 10,
- EDITOR_SHOW_ADDR = 1u << 11,
- EDITOR_SHOW_COL = 1u << 12,
- EDITOR_SHOW_TEXT = 1u << 13,
- SCRIPT_TIMEOUT = 1u << 14,
- EDITOR_FIND_MAXCOUNT = 1u << 15,
- EDITOR_COPY_LIMIT = 1u << 16,
- EDITOR_DECSTRLIMIT = 1u << 17,
- EDITOR_RECENTFILES = 1u << 18,
- SCRIPT_RECENTFILES = 1u << 19,
- SCRIPT_ENABLE = 1u << 20,
- SCRIPT_ALLOW_USRSCRIPT_INROOT = 1u << 21,
- SCRIPT_USRHIDECATS = 1u << 22,
- SCRIPT_SYSHIDECATS = 1u << 23,
- OTHER_USESYS_FILEDIALOG = 1u << 24,
- OTHER_USE_NATIVE_TITLEBAR = 1u << 25,
- OTHER_DONT_USE_SPLASH = 1u << 26,
- OTHER_LOG_LEVEL = 1u << 27,
- OTHER_CHECK_UPDATE = 1u << 28,
- OTHER_LOG_COUNT = 1u << 29,
- };
- Q_DECLARE_FLAGS(SETTING_ITEMS, SETTING_ITEM)
public:
static SettingManager &instance();
-
- ~SettingManager();
+ virtual ~SettingManager();
QByteArray dockLayout() const;
- void setDockLayout(const QByteArray &newDockLayout);
-
int themeID() const;
- void setThemeID(int newThemeID);
-
QString defaultLang() const;
- void setDefaultLang(const QString &newDefaultLang);
-
bool enablePlgInRoot() const;
- void setEnablePlgInRoot(bool newEnablePlgInRoot);
-
int appfontSize() const;
- void setAppfontSize(int newAppfontSize);
-
int editorfontSize() const;
- void setEditorfontSize(int newEditorfontSize);
-
bool editorShowcol() const;
- void setEditorShowcol(bool newEditorShowcol);
-
bool editorShowtext() const;
- void setEditorShowtext(bool newEditorShowtext);
-
qsizetype copylimit() const;
- void setCopylimit(qsizetype newCopylimit);
-
qsizetype decodeStrlimit() const;
- void setDecodeStrlimit(qsizetype newDecodeStrlimit);
-
Qt::WindowState defaultWinState() const;
- void setDefaultWinState(Qt::WindowState newDefaultWinState);
- void save(SETTINGS cat = SETTING::ALL);
void reset(SETTINGS cat);
-
void __reset(SETTINGS cat);
QList recentHexFiles() const;
- void
- setRecentFiles(const QList &newRecentFiles);
-
bool enablePlugin() const;
- void setEnablePlugin(bool newEnablePlugin);
-
bool editorShowHeader() const;
- void setEditorShowHeader(bool newEditorShowAddr);
-
QString appFontFamily() const;
- void setAppFontFamily(const QString &newAppFontFamily);
-
QList recentScriptFiles() const;
- void setRecentScriptFiles(
- const QList &newRecentScriptFiles);
QStringList usrHideCats() const;
QStringList sysHideCats() const;
+ QString lastUsedPath() const;
+ QByteArray scriptDockLayout() const;
+ bool useNativeFileDialog() const;
+ bool useNativeTitleBar() const;
+ int logLevel() const;
+ bool allowUsrScriptInRoot() const;
+ bool scriptEnabled() const;
+ bool dontUseSplash() const;
+ bool checkUpdate() const;
+ qsizetype logCount() const;
+ int scriptTimeout() const;
+
+public slots:
+ void setThemeID(int newThemeID);
+ void setDockLayout(const QByteArray &newDockLayout);
+ void setDefaultLang(const QString &newDefaultLang);
+ void setEnablePlgInRoot(bool newEnablePlgInRoot);
+ void setAppfontSize(int newAppfontSize);
+ void setEditorfontSize(int newEditorfontSize);
+ void setEditorShowcol(bool newEditorShowcol);
+ void setEditorShowtext(bool newEditorShowtext);
+ void setCopylimit(qsizetype newCopylimit);
+ void setDecodeStrlimit(qsizetype newDecodeStrlimit);
+ void setDefaultWinState(Qt::WindowState newDefaultWinState);
+ void
+ setRecentFiles(const QList &newRecentFiles);
+ void setEnablePlugin(bool newEnablePlugin);
+ void setEditorShowHeader(bool newEditorShowAddr);
+ void setAppFontFamily(const QString &newAppFontFamily);
+ void setRecentScriptFiles(
+ const QList &newRecentScriptFiles);
void setSysHideCats(const QStringList &newSysHideCats);
void setUsrHideCats(const QStringList &newUsrHideCats);
-
- QString lastUsedPath() const;
void setLastUsedPath(const QString &newLastUsedPath);
-
- QByteArray scriptDockLayout() const;
void setScriptDockLayout(const QByteArray &newScriptDockLayout);
-
- bool useNativeFileDialog() const;
void setUseNativeFileDialog(bool newUseNativeFileDialog);
-
- bool useNativeTitleBar() const;
void setUseNativeTitleBar(bool newUseNativeTitleBar);
-
- int logLevel() const;
void setLogLevel(int newLogLevel);
-
- bool allowUsrScriptInRoot() const;
void setAllowUsrScriptInRoot(bool newAllowUsrScriptInRoot);
-
- bool scriptEnabled() const;
void setScriptEnabled(bool newScriptEnabled);
-
- bool dontUseSplash() const;
void setDontUseSplash(bool newDontUseSplash);
-
- bool checkUpdate() const;
void setCheckUpdate(bool newCheckUpdate);
-
- qsizetype logCount() const;
void setLogCount(qsizetype newLogCount);
-
- int scriptTimeout() const;
void setScriptTimeout(int newScriptTimeout);
public:
@@ -238,7 +175,6 @@ private:
private:
QFont _defaultFont;
- SETTING_ITEMS _setUnsaved;
};
#endif // SETTINGMANAGER_H
diff --git a/src/dialog/mainwindow.cpp b/src/dialog/mainwindow.cpp
index b309e84..7cf0090 100644
--- a/src/dialog/mainwindow.cpp
+++ b/src/dialog/mainwindow.cpp
@@ -293,7 +293,6 @@ MainWindow::MainWindow(SplashDialog *splash) : FramelessMainWindow() {
QMessageBox::critical(this, qAppName(),
tr("ScriptEngineInitFailed"));
set.setScriptEnabled(false);
- set.save(SettingManager::SCRIPT);
throw CrashCode::ScriptInitFailed;
}
}
@@ -4030,7 +4029,6 @@ void MainWindow::closeEvent(QCloseEvent *event) {
if (m_scriptDialog) {
m_scriptDialog->saveDockLayout();
set.setRecentFiles(m_recentmanager->saveRecent());
- set.save();
}
PluginSystem::instance().destory();
diff --git a/src/dialog/scriptingdialog.cpp b/src/dialog/scriptingdialog.cpp
index 13230c6..c54d9fd 100644
--- a/src/dialog/scriptingdialog.cpp
+++ b/src/dialog/scriptingdialog.cpp
@@ -278,7 +278,6 @@ bool ScriptingDialog::about2Close() {
void ScriptingDialog::saveDockLayout() {
auto &set = SettingManager::instance();
set.setScriptDockLayout(_savedLayout);
- set.save(SettingManager::NONE);
}
void ScriptingDialog::buildUpRibbonBar() {
diff --git a/src/dialog/settingdialog.cpp b/src/dialog/settingdialog.cpp
index 3bfe140..dcb378f 100644
--- a/src/dialog/settingdialog.cpp
+++ b/src/dialog/settingdialog.cpp
@@ -23,21 +23,80 @@
#include "utilities.h"
#include
+#include
#include
SettingDialog::SettingDialog(QWidget *parent)
: QWidget(parent), ui(new Ui::SettingDialog) {
ui->setupUi(this);
+ connect(ui->listWidget, &QListWidget::currentItemChanged, this,
+ [this](QListWidgetItem *current, QListWidgetItem *previous) {
+ if (previous) {
+ auto page = m_pages.at(
+ ui->listWidget->indexFromItem(current).row());
+ if (page->containUnsavedChanges()) {
+ auto ret = WingMessageBox::question(
+ this, tr("UnsavedChanges"),
+ tr("SaveChangesDiscardLeave?"));
+ if (ret == QMessageBox::Yes) {
+ page->discard();
+ } else {
+ ui->listWidget->setCurrentItem(previous);
+ return;
+ }
+ }
+ }
+ if (current) {
+ auto curpage = m_pages.at(
+ ui->listWidget->indexFromItem(current).row());
+ ui->stackedWidget->setCurrentWidget(curpage);
+ }
+ });
+ connect(ui->btnRestore, &QPushButton::clicked, this, [this]() {
+ auto idx = ui->listWidget->currentRow();
+ auto page = m_pages.at(idx);
+ page->restore();
+ });
+
_dialog = new FramelessDialogBase(parent);
_dialog->buildUpContent(this);
_dialog->setWindowTitle(this->windowTitle());
- connect(_dialog, &FramelessDialogBase::rejected, this, [=] {
- for (auto &page : m_pages) {
- page->cancel();
+
+ ui->btnRestore->setStyleSheet(
+ QStringLiteral("QToolButton::down-arrow { width:10px; height:10px; "
+ "subcontrol-position:right center; "
+ "subcontrol-origin:content; left: -2px;"));
+ auto menu = new QMenu(ui->btnRestore);
+ auto a = menu->addAction(tr("Restore current"));
+ connect(a, &QAction::triggered, this, [this]() {
+ auto ret = WingMessageBox::warning(this, tr("Restore"),
+ tr("RestoreCurPageSets?"),
+ QMessageBox::Yes | QMessageBox::No);
+ if (ret == QMessageBox::No) {
+ return;
+ }
+ auto idx = ui->listWidget->currentRow();
+ if (idx > 0) {
+ auto page = m_pages.at(idx);
+ page->restore();
}
});
+ a = menu->addAction(tr("Restore all"));
+ connect(a, &QAction::triggered, this, [this]() {
+ auto ret =
+ WingMessageBox::critical(this, tr("Restore"), tr("RestoreAllSets?"),
+ QMessageBox::Yes | QMessageBox::No);
+ if (ret == QMessageBox::No) {
+ return;
+ }
+ for (auto &p : m_pages) {
+ p->restore();
+ }
+ });
+ ui->btnRestore->setMenu(menu);
+
Utilities::moveToCenter(this);
}
@@ -100,47 +159,3 @@ void SettingDialog::toastTakeEffectReboot() {
tr("TakeEffectRestart"));
}
}
-
-void SettingDialog::on_buttonBox_clicked(QAbstractButton *button) {
- auto btnbox = ui->buttonBox;
- if (button == btnbox->button(QDialogButtonBox::Ok)) {
- for (auto &page : m_pages) {
- page->apply();
- }
- _dialog->done(1);
- } else if (button == btnbox->button(QDialogButtonBox::Apply)) {
- for (auto &page : m_pages) {
- page->apply();
- }
- } else if (button == btnbox->button(QDialogButtonBox::RestoreDefaults)) {
- auto index = ui->listWidget->currentRow();
- if (index >= 0) {
- m_pages.at(index)->reset();
- }
- toastTakeEffectReboot();
- } else if (button == btnbox->button(QDialogButtonBox::Reset)) {
- auto res = WingMessageBox::warning(
- this, qAppName(),
- tr("This will reset all settings. Are you sure to continue?"),
- QMessageBox::Yes | QMessageBox::No);
-
- if (res == QMessageBox::No) {
- return;
- }
-
- for (auto &page : m_pages) {
- page->reset();
- }
-
- toastTakeEffectReboot();
- } else if (button == btnbox->button(QDialogButtonBox::Cancel)) {
- for (auto &page : m_pages) {
- page->cancel();
- }
- _dialog->done(0);
- }
-}
-
-void SettingDialog::on_listWidget_currentRowChanged(int currentRow) {
- ui->stackedWidget->setCurrentWidget(m_pages.at(currentRow));
-}
diff --git a/src/dialog/settingdialog.h b/src/dialog/settingdialog.h
index e79f232..86d7510 100644
--- a/src/dialog/settingdialog.h
+++ b/src/dialog/settingdialog.h
@@ -31,8 +31,9 @@ class SettingDialog : public QWidget {
public:
explicit SettingDialog(QWidget *parent = nullptr);
- ~SettingDialog();
+ virtual ~SettingDialog();
+public:
void addPage(WingHex::SettingPage *page);
void build(); // you can only call once
void showConfig(int index = -1);
@@ -41,11 +42,6 @@ public:
public slots:
void toastTakeEffectReboot();
-private slots:
- void on_buttonBox_clicked(QAbstractButton *button);
-
- void on_listWidget_currentRowChanged(int currentRow);
-
private:
Ui::SettingDialog *ui;
QList m_pages;
diff --git a/src/dialog/settingdialog.ui b/src/dialog/settingdialog.ui
index 3146ef0..5997dec 100644
--- a/src/dialog/settingdialog.ui
+++ b/src/dialog/settingdialog.ui
@@ -6,8 +6,8 @@
0
0
- 750
- 800
+ 700
+ 750
@@ -23,45 +23,69 @@
:/img/general.png:/img/general.png
-
-
+
+
+ 10
+
+
+ 10
+
+
+ 10
+
+
10
-
- Qt::Horizontal
+ Qt::Orientation::Horizontal
-
- false
-
-
-
-
- 200
- 0
-
-
-
- QAbstractItemView::NoEditTriggers
-
-
- false
-
+
+
+
-
+
+
+
+ 200
+ 0
+
+
+
+ QAbstractItemView::EditTrigger::NoEditTriggers
+
+
+ false
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+ Restore
+
+
+ QToolButton::ToolButtonPopupMode::InstantPopup
+
+
+ Qt::ToolButtonStyle::ToolButtonTextOnly
+
+
+ Qt::ArrowType::DownArrow
+
+
+
+
- -
-
-
- Qt::Horizontal
-
-
- QDialogButtonBox::Apply|QDialogButtonBox::Cancel|QDialogButtonBox::Ok|QDialogButtonBox::Reset|QDialogButtonBox::RestoreDefaults
-
-
-
diff --git a/src/settings/clangformatsetdialog.cpp b/src/settings/clangformatsetdialog.cpp
index a97b332..0051706 100644
--- a/src/settings/clangformatsetdialog.cpp
+++ b/src/settings/clangformatsetdialog.cpp
@@ -10,20 +10,27 @@ ClangFormatSetDialog::ClangFormatSetDialog(QWidget *parent)
: WingHex::SettingPage(parent), ui(new Ui::ClangFormatSetDialog) {
ui->setupUi(this);
- auto &clang = ClangFormatManager::instance();
- ui->cbStyle->addItems(clang.supportedStyles());
+ auto clang = &ClangFormatManager::instance();
+ ui->cbStyle->addItems(clang->supportedStyles());
ui->leLocation->setText(ClangFormatManager::getProgramName());
- if (clang.exists()) {
- ui->lblClangPath->setText(clang.path());
- ui->lblClangPath->setToolTip(clang.path());
- ui->lblClangVersion->setText(clang.version());
+ if (clang->exists()) {
+ ui->lblClangPath->setText(clang->path());
+ ui->lblClangPath->setToolTip(clang->path());
+ ui->lblClangVersion->setText(clang->version());
} else {
ui->lblClangPath->setStyleSheet(QStringLiteral("color:red"));
}
reload();
+
+ connect(ui->cbEnabled, &QCheckBox::toggled, clang,
+ &ClangFormatManager::setEnabled);
+ connect(ui->cbAutoFmt, &QCheckBox::toggled, clang,
+ &ClangFormatManager::setAutoFormat);
+ connect(ui->cbStyle, &QComboBox::currentTextChanged, clang,
+ &ClangFormatManager::setClangStyle);
}
ClangFormatSetDialog::~ClangFormatSetDialog() { delete ui; }
@@ -59,21 +66,12 @@ QString ClangFormatSetDialog::id() const {
return QStringLiteral("ClangFormat");
}
-void ClangFormatSetDialog::apply() {
- auto &clang = ClangFormatManager::instance();
- clang.setEnabled(ui->cbEnabled->isChecked());
- clang.setAutoFormat(ui->cbAutoFmt->isChecked());
- clang.setClangStyle(ui->cbStyle->currentText());
-}
-
-void ClangFormatSetDialog::reset() {
+void ClangFormatSetDialog::restore() {
auto &clang = ClangFormatManager::instance();
clang.reset();
reload();
}
-void ClangFormatSetDialog::cancel() { reload(); }
-
void ClangFormatSetDialog::on_cbStyle_currentTextChanged(const QString &arg1) {
ui->btnStyleCustom->setEnabled(arg1 == QStringLiteral("Custom"));
}
diff --git a/src/settings/clangformatsetdialog.h b/src/settings/clangformatsetdialog.h
index b73154b..cc846ed 100644
--- a/src/settings/clangformatsetdialog.h
+++ b/src/settings/clangformatsetdialog.h
@@ -30,9 +30,7 @@ public:
// SettingPage interface
public:
- virtual void apply() override;
- virtual void reset() override;
- virtual void cancel() override;
+ virtual void restore() override;
private slots:
void on_cbStyle_currentTextChanged(const QString &arg1);
diff --git a/src/settings/clangformatsetdialog.ui b/src/settings/clangformatsetdialog.ui
index eb1b406..821310c 100644
--- a/src/settings/clangformatsetdialog.ui
+++ b/src/settings/clangformatsetdialog.ui
@@ -18,16 +18,16 @@
8
- 10
+ 0
- 10
+ 0
- 10
+ 0
- 10
+ 0
-
@@ -58,7 +58,7 @@
-
- Qt::AlignCenter
+ Qt::AlignmentFlag::AlignCenter
@@ -75,7 +75,7 @@
-
- Qt::AlignCenter
+ Qt::AlignmentFlag::AlignCenter
@@ -184,7 +184,7 @@
-
- Qt::Vertical
+ Qt::Orientation::Vertical
diff --git a/src/settings/editorsettingdialog.cpp b/src/settings/editorsettingdialog.cpp
index e3c3fef..0f7f81b 100644
--- a/src/settings/editorsettingdialog.cpp
+++ b/src/settings/editorsettingdialog.cpp
@@ -25,6 +25,20 @@ EditorSettingDialog::EditorSettingDialog(QWidget *parent)
: WingHex::SettingPage(parent), ui(new Ui::EditorSettingDialog) {
ui->setupUi(this);
reload();
+
+ auto sm = &SettingManager::instance();
+ connect(ui->cbShowaddr, &QCheckBox::toggled, sm,
+ &SettingManager::setEditorShowHeader);
+ connect(ui->cbShowcol, &QCheckBox::toggled, sm,
+ &SettingManager::setEditorShowcol);
+ connect(ui->cbShowtext, &QCheckBox::toggled, sm,
+ &SettingManager::setEditorShowtext);
+ connect(ui->sbFontSize, &QSpinBox::valueChanged, sm,
+ &SettingManager::setEditorfontSize);
+ connect(ui->sbDecStrLimit, &QSpinBox::valueChanged, sm,
+ &SettingManager::setDecodeStrlimit);
+ connect(ui->sbCopyLimit, &QSpinBox::valueChanged, sm,
+ &SettingManager::setCopylimit);
}
EditorSettingDialog::~EditorSettingDialog() { delete ui; }
@@ -45,20 +59,7 @@ QString EditorSettingDialog::name() const { return tr("Editor"); }
QString EditorSettingDialog::id() const { return QStringLiteral("Editor"); }
-void EditorSettingDialog::apply() {
- auto &set = SettingManager::instance();
- set.setEditorShowHeader(ui->cbShowaddr->isChecked());
- set.setEditorShowcol(ui->cbShowcol->isChecked());
- set.setEditorShowtext(ui->cbShowtext->isChecked());
- set.setEditorfontSize(ui->sbFontSize->value());
- set.setDecodeStrlimit(ui->sbDecStrLimit->value());
- set.setCopylimit(ui->sbCopyLimit->value());
- set.save(SettingManager::SETTING::EDITOR);
-}
-
-void EditorSettingDialog::reset() {
+void EditorSettingDialog::restore() {
SettingManager::instance().reset(SettingManager::SETTING::EDITOR);
reload();
}
-
-void EditorSettingDialog::cancel() { reload(); }
diff --git a/src/settings/editorsettingdialog.h b/src/settings/editorsettingdialog.h
index 4485af2..1044470 100644
--- a/src/settings/editorsettingdialog.h
+++ b/src/settings/editorsettingdialog.h
@@ -42,9 +42,8 @@ public:
virtual QIcon categoryIcon() const override;
virtual QString name() const override;
virtual QString id() const override;
- virtual void apply() override;
- virtual void reset() override;
- virtual void cancel() override;
+
+ virtual void restore() override;
};
#endif // EDITORSETTINGDIALOG_H
diff --git a/src/settings/editorsettingdialog.ui b/src/settings/editorsettingdialog.ui
index e3f1781..6750bf2 100644
--- a/src/settings/editorsettingdialog.ui
+++ b/src/settings/editorsettingdialog.ui
@@ -21,16 +21,16 @@
- 10
+ 0
- 10
+ 0
- 10
+ 0
- 10
+ 0
-
@@ -185,7 +185,7 @@
-
- Qt::Vertical
+ Qt::Orientation::Vertical
diff --git a/src/settings/generalsettingdialog.cpp b/src/settings/generalsettingdialog.cpp
index f13b782..7f0d8ef 100644
--- a/src/settings/generalsettingdialog.cpp
+++ b/src/settings/generalsettingdialog.cpp
@@ -65,6 +65,34 @@ GeneralSettingDialog::GeneralSettingDialog(QWidget *parent)
this, &GeneralSettingDialog::optionNeedRestartChanged);
reload();
+
+ auto sm = &SettingManager::instance();
+ connect(ui->cbLanguage, &QComboBox::currentIndexChanged, sm,
+ [this](int index) {
+ auto data = ui->cbLanguage->itemData(index).toString();
+ SettingManager::instance().setDefaultLang(data);
+ });
+ connect(ui->sbFontSize, &QSpinBox::valueChanged, sm,
+ &SettingManager::setAppfontSize);
+ connect(ui->cbFont, &QFontComboBox::currentTextChanged, sm,
+ &SettingManager::setAppFontFamily);
+ connect(ui->cbTheme, &QComboBox::currentIndexChanged, sm,
+ &SettingManager::setThemeID);
+ connect(ui->cbWinState, &QComboBox::currentIndexChanged, sm, [](int index) {
+ Qt::WindowState state;
+ switch (index) {
+ case 0:
+ state = Qt::WindowState::WindowNoState;
+ break;
+ case 1:
+ state = Qt::WindowState::WindowMaximized;
+ break;
+ default:
+ state = Qt::WindowState::WindowFullScreen;
+ break;
+ }
+ SettingManager::instance().setDefaultWinState(state);
+ });
}
GeneralSettingDialog::~GeneralSettingDialog() { delete ui; }
@@ -117,32 +145,7 @@ QString GeneralSettingDialog::name() const { return tr("General"); }
QString GeneralSettingDialog::id() const { return QStringLiteral("General"); }
-void GeneralSettingDialog::apply() {
- auto &set = SettingManager::instance();
- set.setDefaultLang(ui->cbLanguage->currentData().toString());
- set.setAppfontSize(ui->sbFontSize->value());
- set.setAppFontFamily(ui->cbFont->currentText());
- set.setThemeID(ui->cbTheme->currentIndex());
- auto s = ui->cbWinState->currentIndex();
- Qt::WindowState state;
- switch (s) {
- case 0:
- state = Qt::WindowState::WindowNoState;
- break;
- case 1:
- state = Qt::WindowState::WindowMaximized;
- break;
- default:
- state = Qt::WindowState::WindowFullScreen;
- break;
- }
- set.setDefaultWinState(state);
- set.save(SettingManager::SETTING::APP);
-}
-
-void GeneralSettingDialog::reset() {
+void GeneralSettingDialog::restore() {
SettingManager::instance().reset(SettingManager::SETTING::APP);
reload();
}
-
-void GeneralSettingDialog::cancel() { reload(); }
diff --git a/src/settings/generalsettingdialog.h b/src/settings/generalsettingdialog.h
index 9732f4f..59d4926 100644
--- a/src/settings/generalsettingdialog.h
+++ b/src/settings/generalsettingdialog.h
@@ -42,9 +42,8 @@ public:
virtual QIcon categoryIcon() const override;
virtual QString name() const override;
virtual QString id() const override;
- virtual void apply() override;
- virtual void reset() override;
- virtual void cancel() override;
+
+ virtual void restore() override;
};
#endif // GENERALSETTINGDIALOG_H
diff --git a/src/settings/generalsettingdialog.ui b/src/settings/generalsettingdialog.ui
index 0dbaa5c..fb39889 100644
--- a/src/settings/generalsettingdialog.ui
+++ b/src/settings/generalsettingdialog.ui
@@ -15,16 +15,16 @@
- 10
+ 0
- 10
+ 0
- 10
+ 0
- 10
+ 0
-
diff --git a/src/settings/othersettingsdialog.cpp b/src/settings/othersettingsdialog.cpp
index a367bdf..50dde8a 100644
--- a/src/settings/othersettingsdialog.cpp
+++ b/src/settings/othersettingsdialog.cpp
@@ -64,6 +64,20 @@ OtherSettingsDialog::OtherSettingsDialog(QWidget *parent)
this, &OtherSettingsDialog::optionNeedRestartChanged);
reload();
+
+ auto set = &SettingManager::instance();
+ connect(ui->cbDontShowSplash, &QCheckBox::toggled, set,
+ &SettingManager::setDontUseSplash);
+ connect(ui->cbNativeFileDialog, &QCheckBox::toggled, set,
+ &SettingManager::setUseNativeFileDialog);
+#ifdef WINGHEX_USE_FRAMELESS
+ connect(ui->cbNativeTitile, &QCheckBox::toggled, set,
+ &SettingManager::setUseNativeTitleBar);
+#endif
+ connect(ui->cbCheckWhenStartup, &QCheckBox::toggled, set,
+ &SettingManager::setCheckUpdate);
+ connect(ui->cbLogLevel, &QComboBox::currentIndexChanged, set,
+ &SettingManager::setLogLevel);
}
OtherSettingsDialog::~OtherSettingsDialog() { delete ui; }
@@ -86,21 +100,7 @@ QString OtherSettingsDialog::name() const { return tr("Others"); }
QString OtherSettingsDialog::id() const { return QStringLiteral("Others"); }
-void OtherSettingsDialog::apply() {
- auto &set = SettingManager::instance();
- set.setDontUseSplash(ui->cbDontShowSplash->isChecked());
- set.setUseNativeFileDialog(ui->cbNativeFileDialog->isChecked());
-#ifdef WINGHEX_USE_FRAMELESS
- set.setUseNativeTitleBar(ui->cbNativeTitile->isChecked());
-#endif
- set.setCheckUpdate(ui->cbCheckWhenStartup->isChecked());
- set.setLogLevel(ui->cbLogLevel->currentIndex());
- set.save(SettingManager::OTHER);
-}
-
-void OtherSettingsDialog::reset() {
+void OtherSettingsDialog::restore() {
SettingManager::instance().reset(SettingManager::SETTING::OTHER);
reload();
}
-
-void OtherSettingsDialog::cancel() { reload(); }
diff --git a/src/settings/othersettingsdialog.h b/src/settings/othersettingsdialog.h
index b26b3b9..a893365 100644
--- a/src/settings/othersettingsdialog.h
+++ b/src/settings/othersettingsdialog.h
@@ -42,9 +42,8 @@ public:
virtual QIcon categoryIcon() const override;
virtual QString name() const override;
virtual QString id() const override;
- virtual void apply() override;
- virtual void reset() override;
- virtual void cancel() override;
+
+ virtual void restore() override;
};
#endif // OTHERSETTINGSDIALOG_H
diff --git a/src/settings/othersettingsdialog.ui b/src/settings/othersettingsdialog.ui
index c4f7392..f9836b9 100644
--- a/src/settings/othersettingsdialog.ui
+++ b/src/settings/othersettingsdialog.ui
@@ -14,6 +14,18 @@
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
-
@@ -117,7 +129,7 @@
-
- Qt::Vertical
+ Qt::Orientation::Vertical
diff --git a/src/settings/pluginsettingdialog.cpp b/src/settings/pluginsettingdialog.cpp
index 0d219db..5710d8e 100644
--- a/src/settings/pluginsettingdialog.cpp
+++ b/src/settings/pluginsettingdialog.cpp
@@ -85,6 +85,12 @@ PluginSettingDialog::PluginSettingDialog(QWidget *parent)
} else {
ui->txtm->setText(tr("NoMonitorPlugin"));
}
+
+ auto set = &SettingManager::instance();
+ connect(ui->cbEnablePlugin, &QCheckBox::toggled, set,
+ &SettingManager::setEnablePlugin);
+ connect(ui->cbEnablePluginRoot, &QCheckBox::toggled, set,
+ &SettingManager::setEnablePlgInRoot);
}
PluginSettingDialog::~PluginSettingDialog() { delete ui; }
@@ -103,20 +109,11 @@ QString PluginSettingDialog::name() const { return tr("Plugin"); }
QString PluginSettingDialog::id() const { return QStringLiteral("Plugin"); }
-void PluginSettingDialog::apply() {
- auto &set = SettingManager::instance();
- set.setEnablePlugin(ui->cbEnablePlugin->isChecked());
- set.setEnablePlgInRoot(ui->cbEnablePluginRoot->isChecked());
- set.save(SettingManager::SETTING::PLUGIN);
-}
-
-void PluginSettingDialog::reset() {
+void PluginSettingDialog::restore() {
SettingManager::instance().reset(SettingManager::SETTING::PLUGIN);
reload();
}
-void PluginSettingDialog::cancel() { reload(); }
-
void PluginSettingDialog::on_devlist_currentRowChanged(int currentRow) {
if (currentRow < 0) {
return;
diff --git a/src/settings/pluginsettingdialog.h b/src/settings/pluginsettingdialog.h
index ff1ac3b..0517293 100644
--- a/src/settings/pluginsettingdialog.h
+++ b/src/settings/pluginsettingdialog.h
@@ -42,9 +42,8 @@ public:
virtual QIcon categoryIcon() const override;
virtual QString name() const override;
virtual QString id() const override;
- virtual void apply() override;
- virtual void reset() override;
- virtual void cancel() override;
+
+ virtual void restore() override;
private slots:
void on_devlist_currentRowChanged(int currentRow);
diff --git a/src/settings/pluginsettingdialog.ui b/src/settings/pluginsettingdialog.ui
index f9cd276..9111f8b 100644
--- a/src/settings/pluginsettingdialog.ui
+++ b/src/settings/pluginsettingdialog.ui
@@ -15,16 +15,16 @@
- 10
+ 0
- 10
+ 0
- 10
+ 0
- 10
+ 0
-
diff --git a/src/settings/qeditconfig.cpp b/src/settings/qeditconfig.cpp
index 9e02ce0..114245f 100644
--- a/src/settings/qeditconfig.cpp
+++ b/src/settings/qeditconfig.cpp
@@ -173,70 +173,87 @@ QEditConfig::QEditConfig(bool isConsole, QWidget *w)
}
reload();
+
+ auto set = &ScriptSettings::instance();
+ if (m_isConsole) {
+ connect(ui->cbTheme, &QComboBox::currentIndexChanged, set, [this]() {
+ auto &set = ScriptSettings::instance();
+ if (ui->cbTheme->currentIndex() == 0) {
+ set.setConsoleTheme({});
+ } else {
+ set.setConsoleTheme(ui->cbTheme->currentText());
+ }
+ });
+ connect(ui->cbFont, &QFontComboBox::currentFontChanged, set,
+ [](const QFont &font) {
+ ScriptSettings::instance().setConsoleFontFamily(
+ font.family());
+ });
+ connect(ui->spnFontSize, &QSpinBox::valueChanged, set,
+ &ScriptSettings::setConsoleFontSize);
+ connect(ui->spnTabWidth, &QSpinBox::valueChanged, set,
+ &ScriptSettings::setConsoleTabWidth);
+ connect(ui->cbIndentation, &QComboBox::currentIndexChanged, set,
+ [this](int index) {
+ auto data = ui->cbIndentation->itemData(index);
+ ScriptSettings::instance().setConsoleInden(data.toInt());
+ });
+ connect(ui->chkMatchBraces, &QCheckBox::toggled, set,
+ &ScriptSettings::setConsoleMatchBraces);
+ connect(ui->chkShowWhitespace, &QCheckBox::toggled, set,
+ &ScriptSettings::setConsoleShowWhiteSpace);
+ connect(ui->chkAutoCloseChar, &QCheckBox::toggled, set,
+ &ScriptSettings::setConsoleAutoCloseChar);
+ } else {
+ connect(ui->cbTheme, &QComboBox::currentIndexChanged, set, [this]() {
+ auto &set = ScriptSettings::instance();
+ if (ui->cbTheme->currentIndex() == 0) {
+ set.setEditorTheme({});
+ } else {
+ set.setEditorTheme(ui->cbTheme->currentText());
+ }
+ });
+ connect(ui->cbFont, &QFontComboBox::currentFontChanged, set,
+ [](const QFont &font) {
+ ScriptSettings::instance().setEditorFontFamily(
+ font.family());
+ });
+ connect(ui->spnFontSize, &QSpinBox::valueChanged, set,
+ &ScriptSettings::setEditorFontSize);
+ connect(ui->spnTabWidth, &QSpinBox::valueChanged, set,
+ &ScriptSettings::setEditorTabWidth);
+ connect(ui->cbIndentation, &QComboBox::currentIndexChanged, set,
+ [this](int index) {
+ auto data = ui->cbIndentation->itemData(index);
+ ScriptSettings::instance().setEditorInden(data.toInt());
+ });
+ connect(ui->chkMatchBraces, &QCheckBox::toggled, set,
+ &ScriptSettings::setEditorShowLineNumber);
+ connect(ui->chkShowFolding, &QCheckBox::toggled, set,
+ &ScriptSettings::setEditorFolding);
+ connect(ui->chkShowIndentGuides, &QCheckBox::toggled, set,
+ &ScriptSettings::setEditorShowGuideLine);
+ connect(ui->chkWordWrap, &QCheckBox::toggled, set,
+ &ScriptSettings::setEditorWordWrap);
+ connect(ui->chkLongLineEdge, &QCheckBox::toggled, set,
+ &ScriptSettings::setEditorShowLineEdges);
+ connect(ui->chkShowWhitespace, &QCheckBox::toggled, set,
+ &ScriptSettings::setEditorShowWhiteSpace);
+ connect(ui->chkAutoCloseChar, &QCheckBox::toggled, set,
+ &ScriptSettings::setEditorAutoCloseChar);
+ connect(ui->chkAutoIden, &QCheckBox::toggled, set,
+ &ScriptSettings::setEditorAutoIden);
+ }
}
QEditConfig::~QEditConfig() { delete ui; }
-/*!
- \brief Apply changes
-*/
-void QEditConfig::apply() {
- auto &set = ScriptSettings::instance();
- if (m_isConsole) {
- if (ui->cbTheme->currentIndex() == 0) {
- set.setConsoleTheme({});
- } else {
- set.setConsoleTheme(ui->cbTheme->currentText());
- }
-
- set.setConsoleFontFamily(ui->cbFont->currentFont().family());
- set.setConsoleFontSize(ui->spnFontSize->value());
- set.setConsoleTabWidth(ui->spnTabWidth->value());
- set.setConsoleInden(ui->cbIndentation->currentData().toInt());
-
- set.setConsoleMatchBraces(ui->chkMatchBraces->isChecked());
- set.setConsoleShowWhiteSpace(ui->chkShowWhitespace->isChecked());
- set.setConsoleAutoCloseChar(ui->chkAutoCloseChar->isChecked());
- } else {
- if (ui->cbTheme->currentIndex() == 0) {
- set.setEditorTheme({});
- } else {
- set.setEditorTheme(ui->cbTheme->currentText());
- }
-
- set.setEditorFontFamily(ui->cbFont->currentFont().family());
- set.setEditorFontSize(ui->spnFontSize->value());
- set.setEditorTabWidth(ui->spnTabWidth->value());
- set.setEditorInden(ui->cbIndentation->currentData().toInt());
-
- set.setEditorShowLineNumber(ui->chkShowLineNumber->isChecked());
- set.setEditorFolding(ui->chkShowFolding->isChecked());
- set.setEditorShowGuideLine(ui->chkShowIndentGuides->isChecked());
- set.setEditorWordWrap(ui->chkWordWrap->isChecked());
- set.setEditorShowLineEdges(ui->chkLongLineEdge->isChecked());
- set.setEditorMatchBraces(ui->chkMatchBraces->isChecked());
- set.setEditorShowWhiteSpace(ui->chkShowWhitespace->isChecked());
- set.setEditorAutoCloseChar(ui->chkAutoCloseChar->isChecked());
- set.setEditorAutoIden(ui->chkAutoIden->isChecked());
- }
- set.save(m_isConsole ? ScriptSettings::CONSOLE : ScriptSettings::EDITOR);
-}
-
-/*!
- \brief Reset the subcontrols to reflect the current settings
-
- The name can be a bit misleading at first, it has been chosen
- because it directly maps to the effect a "cancel" button would
- have on the widget
-*/
-void QEditConfig::cancel() { reload(); }
-
/*!
\brief Restore default values for all subcontrols
\note The widgets are changed but these changes are NOT applied.
*/
-void QEditConfig::reset() {
+void QEditConfig::restore() {
auto &set = ScriptSettings::instance();
set.reset(m_isConsole ? ScriptSettings::CONSOLE : ScriptSettings::EDITOR);
reload();
diff --git a/src/settings/qeditconfig.h b/src/settings/qeditconfig.h
index e8e3fea..954dadd 100644
--- a/src/settings/qeditconfig.h
+++ b/src/settings/qeditconfig.h
@@ -40,9 +40,8 @@ public:
virtual QIcon categoryIcon() const override;
virtual QString name() const override;
virtual QString id() const override;
- virtual void apply() override;
- virtual void cancel() override;
- virtual void reset() override;
+
+ virtual void restore() override;
private:
void reload();
diff --git a/src/settings/qeditconfig.ui b/src/settings/qeditconfig.ui
index c8d4285..51bc174 100644
--- a/src/settings/qeditconfig.ui
+++ b/src/settings/qeditconfig.ui
@@ -14,6 +14,18 @@
QLayout::SizeConstraint::SetMinAndMaxSize
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
-
diff --git a/src/settings/scriptsettingdialog.cpp b/src/settings/scriptsettingdialog.cpp
index ebd5e34..f9d4b42 100644
--- a/src/settings/scriptsettingdialog.cpp
+++ b/src/settings/scriptsettingdialog.cpp
@@ -38,6 +38,44 @@ ScriptSettingDialog::ScriptSettingDialog(QWidget *parent)
this, &ScriptSettingDialog::optionNeedRestartChanged);
loadData();
+
+ connect(ui->listWidget, &QListWidget::itemChanged, this,
+ [this](QListWidgetItem *item) {
+ auto var = item->data(Qt::UserRole);
+ if (var.isValid()) {
+ auto meta = var.value();
+ switch (item->checkState()) {
+ case Qt::Unchecked: {
+ if (meta.isSys) {
+ m_sysHideCats.append(meta.rawName);
+ } else {
+ m_usrHideCats.append(meta.rawName);
+ }
+ } break;
+ case Qt::Checked: {
+ if (meta.isSys) {
+ m_sysHideCats.removeOne(meta.rawName);
+ } else {
+ m_usrHideCats.removeOne(meta.rawName);
+ }
+ } break;
+ case Qt::PartiallyChecked:
+ break;
+ }
+ }
+
+ auto &set = SettingManager::instance();
+ set.setUsrHideCats(m_sysHideCats);
+ set.setSysHideCats(m_usrHideCats);
+ });
+
+ auto set = &SettingManager::instance();
+ connect(ui->cbEnable, &QCheckBox::toggled, set,
+ &SettingManager::setScriptEnabled);
+ connect(ui->cbAllowUsrScript, &QCheckBox::toggled, set,
+ &SettingManager::setAllowUsrScriptInRoot);
+ connect(ui->sbTimeout, &QSpinBox::valueChanged, set,
+ &SettingManager::setScriptTimeout);
}
ScriptSettingDialog::~ScriptSettingDialog() { delete ui; }
@@ -91,46 +129,12 @@ QString ScriptSettingDialog::name() const { return tr("Script"); }
QString ScriptSettingDialog::id() const { return QStringLiteral("Script"); }
-void ScriptSettingDialog::apply() {
- QStringList usrHideCats;
- QStringList sysHideCats;
-
- auto total = ui->listWidget->count();
- for (int i = 0; i < total; ++i) {
- auto lw = ui->listWidget->item(i);
- auto var = lw->data(Qt::UserRole);
- if (var.isValid()) {
- auto meta = var.value();
- if (lw->checkState() == Qt::Unchecked) {
- if (meta.isSys) {
- sysHideCats << meta.rawName;
- } else {
- usrHideCats << meta.rawName;
- }
- }
- }
- }
-
- auto &set = SettingManager::instance();
- set.setScriptEnabled(ui->cbEnable->isChecked());
- set.setAllowUsrScriptInRoot(ui->cbAllowUsrScript->isChecked());
- set.setScriptTimeout(ui->sbTimeout->value());
- set.setUsrHideCats(usrHideCats);
- set.setSysHideCats(sysHideCats);
- set.save(SettingManager::SCRIPT);
-
- m_usrHideCats = usrHideCats;
- m_sysHideCats = sysHideCats;
-}
-
-void ScriptSettingDialog::reset() {
+void ScriptSettingDialog::restore() {
auto &set = SettingManager::instance();
set.reset(SettingManager::SCRIPT);
loadData();
}
-void ScriptSettingDialog::cancel() { loadData(); }
-
void ScriptSettingDialog::on_btnRefresh_clicked() {
ui->listWidget->clear();
ScriptManager::instance().refresh();
diff --git a/src/settings/scriptsettingdialog.h b/src/settings/scriptsettingdialog.h
index c873140..229448c 100644
--- a/src/settings/scriptsettingdialog.h
+++ b/src/settings/scriptsettingdialog.h
@@ -49,9 +49,8 @@ public:
virtual QIcon categoryIcon() const override;
virtual QString name() const override;
virtual QString id() const override;
- virtual void apply() override;
- virtual void reset() override;
- virtual void cancel() override;
+
+ virtual void restore() override;
private slots:
void on_btnRefresh_clicked();
diff --git a/src/settings/scriptsettingdialog.ui b/src/settings/scriptsettingdialog.ui
index b7b6f3b..87a4802 100644
--- a/src/settings/scriptsettingdialog.ui
+++ b/src/settings/scriptsettingdialog.ui
@@ -14,6 +14,18 @@
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
-