软件版本:20260520
diff --git a/Bin/Res/Icon.rar b/Bin/Res/Icon.rar
deleted file mode 100644
index ebc180e..0000000
Binary files a/Bin/Res/Icon.rar and /dev/null differ
diff --git a/Bin/Res/Icon/Clipboard.png b/Bin/Res/Icon/Clipboard.png
new file mode 100644
index 0000000..355419d
Binary files /dev/null and b/Bin/Res/Icon/Clipboard.png differ
diff --git a/Bin/Res/Icon/Eyes_Off.png b/Bin/Res/Icon/Eyes_Off.png
new file mode 100644
index 0000000..77f7193
Binary files /dev/null and b/Bin/Res/Icon/Eyes_Off.png differ
diff --git a/Bin/Res/Icon/LangSwap.png b/Bin/Res/Icon/LangSwap.png
new file mode 100644
index 0000000..db6246a
Binary files /dev/null and b/Bin/Res/Icon/LangSwap.png differ
diff --git a/Bin/Res/Icon/MPA.ico b/Bin/Res/Icon/MPA.ico
deleted file mode 100644
index e75dfec..0000000
Binary files a/Bin/Res/Icon/MPA.ico and /dev/null differ
diff --git a/Bin/Res/Icon/MPA.png b/Bin/Res/Icon/MPA.png
deleted file mode 100644
index f051675..0000000
Binary files a/Bin/Res/Icon/MPA.png and /dev/null differ
diff --git a/Bin/Res/Icon/MPA16.png b/Bin/Res/Icon/MPA16.png
deleted file mode 100644
index 6f88c84..0000000
Binary files a/Bin/Res/Icon/MPA16.png and /dev/null differ
diff --git a/Bin/Res/Image/MPA_DataGrid.png b/Bin/Res/Icon/NmDemo - 副本.png
similarity index 62%
rename from Bin/Res/Image/MPA_DataGrid.png
rename to Bin/Res/Icon/NmDemo - 副本.png
index 7332e39..c85c12e 100644
Binary files a/Bin/Res/Image/MPA_DataGrid.png and b/Bin/Res/Icon/NmDemo - 副本.png differ
diff --git a/Bin/Res/Icon/OICE.png b/Bin/Res/Icon/OICE.png
deleted file mode 100644
index 32ff8c4..0000000
Binary files a/Bin/Res/Icon/OICE.png and /dev/null differ
diff --git a/Bin/Res/Icon/OICEAbout.png b/Bin/Res/Icon/OICEAbout.png
deleted file mode 100644
index 32ff8c4..0000000
Binary files a/Bin/Res/Icon/OICEAbout.png and /dev/null differ
diff --git a/Bin/Res/Icon/PPTA.png b/Bin/Res/Icon/PPTA.png
deleted file mode 100644
index 32ff8c4..0000000
Binary files a/Bin/Res/Icon/PPTA.png and /dev/null differ
diff --git a/Bin/Res/Icon/PPTAAbout.png b/Bin/Res/Icon/PPTAAbout.png
deleted file mode 100644
index 32ff8c4..0000000
Binary files a/Bin/Res/Icon/PPTAAbout.png and /dev/null differ
diff --git a/Bin/Res/Icon/ProjActive.png b/Bin/Res/Icon/ProjActive.png
new file mode 100644
index 0000000..5fa7c83
Binary files /dev/null and b/Bin/Res/Icon/ProjActive.png differ
diff --git a/Bin/Res/Icon/ProjSort.png b/Bin/Res/Icon/ProjSort.png
new file mode 100644
index 0000000..4805b79
Binary files /dev/null and b/Bin/Res/Icon/ProjSort.png differ
diff --git a/Bin/Res/Icon/SelectDir.png b/Bin/Res/Icon/SelectDir.png
new file mode 100644
index 0000000..3c70a5e
Binary files /dev/null and b/Bin/Res/Icon/SelectDir.png differ
diff --git a/Bin/Res/Icon/SelectFile.png b/Bin/Res/Icon/SelectFile.png
new file mode 100644
index 0000000..eeb2797
Binary files /dev/null and b/Bin/Res/Icon/SelectFile.png differ
diff --git a/Bin/Res/Image.rar b/Bin/Res/Image.rar
deleted file mode 100644
index 262e931..0000000
Binary files a/Bin/Res/Image.rar and /dev/null differ
diff --git a/Bin/Res/Image/MPA_About.png b/Bin/Res/Image/MPA_About.png
deleted file mode 100644
index ba200a6..0000000
Binary files a/Bin/Res/Image/MPA_About.png and /dev/null differ
diff --git a/Bin/Res/Image/MPA_Background.png b/Bin/Res/Image/MPA_Background.png
deleted file mode 100644
index c115d6f..0000000
Binary files a/Bin/Res/Image/MPA_Background.png and /dev/null differ
diff --git a/Bin/Res/Image/MPA_Header.png b/Bin/Res/Image/MPA_Header.png
deleted file mode 100644
index d61bd33..0000000
Binary files a/Bin/Res/Image/MPA_Header.png and /dev/null differ
diff --git a/Bin/Res/Image/MPA_Left.png b/Bin/Res/Image/MPA_Left.png
deleted file mode 100644
index 7332e39..0000000
Binary files a/Bin/Res/Image/MPA_Left.png and /dev/null differ
diff --git a/Bin/Res/Image/MPA_LeftOption.png b/Bin/Res/Image/MPA_LeftOption.png
deleted file mode 100644
index d874e5e..0000000
Binary files a/Bin/Res/Image/MPA_LeftOption.png and /dev/null differ
diff --git a/Bin/Res/Image/MPA_Login.png b/Bin/Res/Image/MPA_Login.png
deleted file mode 100644
index b3a5e64..0000000
Binary files a/Bin/Res/Image/MPA_Login.png and /dev/null differ
diff --git a/Bin/Res/Image/MPA_Logs.png b/Bin/Res/Image/MPA_Logs.png
deleted file mode 100644
index c115d6f..0000000
Binary files a/Bin/Res/Image/MPA_Logs.png and /dev/null differ
diff --git a/Bin/Res/Image/MPA_Main.png b/Bin/Res/Image/MPA_Main.png
deleted file mode 100644
index c115d6f..0000000
Binary files a/Bin/Res/Image/MPA_Main.png and /dev/null differ
diff --git a/Bin/Res/Image/MPA_Pty.png b/Bin/Res/Image/MPA_Pty.png
deleted file mode 100644
index c115d6f..0000000
Binary files a/Bin/Res/Image/MPA_Pty.png and /dev/null differ
diff --git a/Bin/Res/Image/OICE_About.png b/Bin/Res/Image/OICE_About.png
deleted file mode 100644
index 6be3967..0000000
Binary files a/Bin/Res/Image/OICE_About.png and /dev/null differ
diff --git a/Bin/Res/Image/OICE_Background.png b/Bin/Res/Image/OICE_Background.png
deleted file mode 100644
index c115d6f..0000000
Binary files a/Bin/Res/Image/OICE_Background.png and /dev/null differ
diff --git a/Bin/Res/Image/OICE_DataGrid.png b/Bin/Res/Image/OICE_DataGrid.png
deleted file mode 100644
index 7332e39..0000000
Binary files a/Bin/Res/Image/OICE_DataGrid.png and /dev/null differ
diff --git a/Bin/Res/Image/OICE_Header.png b/Bin/Res/Image/OICE_Header.png
deleted file mode 100644
index d61bd33..0000000
Binary files a/Bin/Res/Image/OICE_Header.png and /dev/null differ
diff --git a/Bin/Res/Image/OICE_Left.png b/Bin/Res/Image/OICE_Left.png
deleted file mode 100644
index 7332e39..0000000
Binary files a/Bin/Res/Image/OICE_Left.png and /dev/null differ
diff --git a/Bin/Res/Image/OICE_LeftOption.png b/Bin/Res/Image/OICE_LeftOption.png
deleted file mode 100644
index d874e5e..0000000
Binary files a/Bin/Res/Image/OICE_LeftOption.png and /dev/null differ
diff --git a/Bin/Res/Image/OICE_Login.png b/Bin/Res/Image/OICE_Login.png
deleted file mode 100644
index b3a5e64..0000000
Binary files a/Bin/Res/Image/OICE_Login.png and /dev/null differ
diff --git a/Bin/Res/Image/OICE_Logs.png b/Bin/Res/Image/OICE_Logs.png
deleted file mode 100644
index c115d6f..0000000
Binary files a/Bin/Res/Image/OICE_Logs.png and /dev/null differ
diff --git a/Bin/Res/Image/OICE_Main.png b/Bin/Res/Image/OICE_Main.png
deleted file mode 100644
index c115d6f..0000000
Binary files a/Bin/Res/Image/OICE_Main.png and /dev/null differ
diff --git a/Bin/Res/Image/OICE_Pty.png b/Bin/Res/Image/OICE_Pty.png
deleted file mode 100644
index c115d6f..0000000
Binary files a/Bin/Res/Image/OICE_Pty.png and /dev/null differ
diff --git a/Bin/Res/Image/PPTA_About.png b/Bin/Res/Image/PPTA_About.png
deleted file mode 100644
index 6be3967..0000000
Binary files a/Bin/Res/Image/PPTA_About.png and /dev/null differ
diff --git a/Bin/Res/Image/PPTA_Background.png b/Bin/Res/Image/PPTA_Background.png
deleted file mode 100644
index c115d6f..0000000
Binary files a/Bin/Res/Image/PPTA_Background.png and /dev/null differ
diff --git a/Bin/Res/Image/PPTA_DataGrid.png b/Bin/Res/Image/PPTA_DataGrid.png
deleted file mode 100644
index 7332e39..0000000
Binary files a/Bin/Res/Image/PPTA_DataGrid.png and /dev/null differ
diff --git a/Bin/Res/Image/PPTA_Header.png b/Bin/Res/Image/PPTA_Header.png
deleted file mode 100644
index d61bd33..0000000
Binary files a/Bin/Res/Image/PPTA_Header.png and /dev/null differ
diff --git a/Bin/Res/Image/PPTA_Left.png b/Bin/Res/Image/PPTA_Left.png
deleted file mode 100644
index 7332e39..0000000
Binary files a/Bin/Res/Image/PPTA_Left.png and /dev/null differ
diff --git a/Bin/Res/Image/PPTA_LeftOption.png b/Bin/Res/Image/PPTA_LeftOption.png
deleted file mode 100644
index d874e5e..0000000
Binary files a/Bin/Res/Image/PPTA_LeftOption.png and /dev/null differ
diff --git a/Bin/Res/Image/PPTA_Login.png b/Bin/Res/Image/PPTA_Login.png
deleted file mode 100644
index b3a5e64..0000000
Binary files a/Bin/Res/Image/PPTA_Login.png and /dev/null differ
diff --git a/Bin/Res/Image/PPTA_Logs.png b/Bin/Res/Image/PPTA_Logs.png
deleted file mode 100644
index c115d6f..0000000
Binary files a/Bin/Res/Image/PPTA_Logs.png and /dev/null differ
diff --git a/Bin/Res/Image/PPTA_Main.png b/Bin/Res/Image/PPTA_Main.png
deleted file mode 100644
index c115d6f..0000000
Binary files a/Bin/Res/Image/PPTA_Main.png and /dev/null differ
diff --git a/Bin/Res/Image/PPTA_Pty.png b/Bin/Res/Image/PPTA_Pty.png
deleted file mode 100644
index c115d6f..0000000
Binary files a/Bin/Res/Image/PPTA_Pty.png and /dev/null differ
diff --git a/Bin/Res/Image/WTAI_WelCome.png b/Bin/Res/Image/WTAI_WelCome.png
new file mode 100644
index 0000000..d0de62e
Binary files /dev/null and b/Bin/Res/Image/WTAI_WelCome.png differ
diff --git a/Bin/Res/Image1/CrossCursor.png b/Bin/Res/Image1/CrossCursor.png
deleted file mode 100644
index 26ef318..0000000
Binary files a/Bin/Res/Image1/CrossCursor.png and /dev/null differ
diff --git a/Bin/Res/Image1/Models/Theory_Curve1.png b/Bin/Res/Image1/Models/Theory_Curve1.png
deleted file mode 100644
index a3598c6..0000000
Binary files a/Bin/Res/Image1/Models/Theory_Curve1.png and /dev/null differ
diff --git a/Bin/Res/Image1/Models/Theory_Curve2.png b/Bin/Res/Image1/Models/Theory_Curve2.png
deleted file mode 100644
index 2b53a96..0000000
Binary files a/Bin/Res/Image1/Models/Theory_Curve2.png and /dev/null differ
diff --git a/Bin/Res/Image1/Models/WBS_None.png b/Bin/Res/Image1/Models/WBS_None.png
deleted file mode 100644
index 3cb1bb1..0000000
Binary files a/Bin/Res/Image1/Models/WBS_None.png and /dev/null differ
diff --git a/Bin/Res/Image1/Models/WBS_TSET.png b/Bin/Res/Image1/Models/WBS_TSET.png
deleted file mode 100644
index 6faff67..0000000
Binary files a/Bin/Res/Image1/Models/WBS_TSET.png and /dev/null differ
diff --git a/Bin/Res/Image1/Urrs_Header.png b/Bin/Res/Image1/Urrs_Header.png
deleted file mode 100644
index 55ee550..0000000
Binary files a/Bin/Res/Image1/Urrs_Header.png and /dev/null differ
diff --git a/Bin/Res/Image1/Urrs_Title.png b/Bin/Res/Image1/Urrs_Title.png
deleted file mode 100644
index 7226f86..0000000
Binary files a/Bin/Res/Image1/Urrs_Title.png and /dev/null differ
diff --git a/Bin/Res/Image1/WTAI_About.png b/Bin/Res/Image1/WTAI_About.png
deleted file mode 100644
index ba200a6..0000000
Binary files a/Bin/Res/Image1/WTAI_About.png and /dev/null differ
diff --git a/Bin/Res/Image1/WTAI_Background.png b/Bin/Res/Image1/WTAI_Background.png
deleted file mode 100644
index c115d6f..0000000
Binary files a/Bin/Res/Image1/WTAI_Background.png and /dev/null differ
diff --git a/Bin/Res/Image1/WTAI_DataGrid.png b/Bin/Res/Image1/WTAI_DataGrid.png
deleted file mode 100644
index 7332e39..0000000
Binary files a/Bin/Res/Image1/WTAI_DataGrid.png and /dev/null differ
diff --git a/Bin/Res/Image1/WTAI_Header.png b/Bin/Res/Image1/WTAI_Header.png
deleted file mode 100644
index d61bd33..0000000
Binary files a/Bin/Res/Image1/WTAI_Header.png and /dev/null differ
diff --git a/Bin/Res/Image1/WTAI_Left.png b/Bin/Res/Image1/WTAI_Left.png
deleted file mode 100644
index 7332e39..0000000
Binary files a/Bin/Res/Image1/WTAI_Left.png and /dev/null differ
diff --git a/Bin/Res/Image1/WTAI_LeftOption.png b/Bin/Res/Image1/WTAI_LeftOption.png
deleted file mode 100644
index d874e5e..0000000
Binary files a/Bin/Res/Image1/WTAI_LeftOption.png and /dev/null differ
diff --git a/Bin/Res/Image1/WTAI_Login.png b/Bin/Res/Image1/WTAI_Login.png
deleted file mode 100644
index b3a5e64..0000000
Binary files a/Bin/Res/Image1/WTAI_Login.png and /dev/null differ
diff --git a/Bin/Res/Image1/WTAI_Logs.png b/Bin/Res/Image1/WTAI_Logs.png
deleted file mode 100644
index c115d6f..0000000
Binary files a/Bin/Res/Image1/WTAI_Logs.png and /dev/null differ
diff --git a/Bin/Res/Image1/WTAI_Main.png b/Bin/Res/Image1/WTAI_Main.png
deleted file mode 100644
index c115d6f..0000000
Binary files a/Bin/Res/Image1/WTAI_Main.png and /dev/null differ
diff --git a/Bin/Res/Image1/WTAI_Pty.png b/Bin/Res/Image1/WTAI_Pty.png
deleted file mode 100644
index c115d6f..0000000
Binary files a/Bin/Res/Image1/WTAI_Pty.png and /dev/null differ
diff --git a/Bin/Res/Schematics/Wel_207.png b/Bin/Res/Schematics/Wel_207.png
new file mode 100644
index 0000000..fc0acf0
Binary files /dev/null and b/Bin/Res/Schematics/Wel_207.png differ
diff --git a/Bin/Res/Splash/MPA.gif b/Bin/Res/Splash/MPA.gif
deleted file mode 100644
index d11a8f2..0000000
Binary files a/Bin/Res/Splash/MPA.gif and /dev/null differ
diff --git a/Bin/Res/Splash/MPA.swf b/Bin/Res/Splash/MPA.swf
deleted file mode 100644
index 33fc54f..0000000
Binary files a/Bin/Res/Splash/MPA.swf and /dev/null differ
diff --git a/Bin/Res/Splash/MPA_Flash_1.png b/Bin/Res/Splash/MPA_Flash_1.png
deleted file mode 100644
index c115d6f..0000000
Binary files a/Bin/Res/Splash/MPA_Flash_1.png and /dev/null differ
diff --git a/Bin/Res/Splash/MPA_Flash_2.png b/Bin/Res/Splash/MPA_Flash_2.png
deleted file mode 100644
index 6faff67..0000000
Binary files a/Bin/Res/Splash/MPA_Flash_2.png and /dev/null differ
diff --git a/Bin/Res/Splash/MPA_Flash_3.png b/Bin/Res/Splash/MPA_Flash_3.png
deleted file mode 100644
index 10630f4..0000000
Binary files a/Bin/Res/Splash/MPA_Flash_3.png and /dev/null differ
diff --git a/Bin/Res/Splash/MPA_Splash_Basic.png b/Bin/Res/Splash/MPA_Splash_Basic.png
deleted file mode 100644
index 10630f4..0000000
Binary files a/Bin/Res/Splash/MPA_Splash_Basic.png and /dev/null differ
diff --git a/Bin/Res/Splash/OICE.gif b/Bin/Res/Splash/OICE.gif
deleted file mode 100644
index a1d7e3d..0000000
Binary files a/Bin/Res/Splash/OICE.gif and /dev/null differ
diff --git a/Bin/Res/Splash/OICE_Splash_Basic.png b/Bin/Res/Splash/OICE_Splash_Basic.png
deleted file mode 100644
index 10630f4..0000000
Binary files a/Bin/Res/Splash/OICE_Splash_Basic.png and /dev/null differ
diff --git a/Bin/Res/Splash/readme.txt b/Bin/Res/Splash/readme.txt
deleted file mode 100644
index 7c9e7f8..0000000
--- a/Bin/Res/Splash/readme.txt
+++ /dev/null
@@ -1,11 +0,0 @@
-˵
-
-· $\Bin\Res\Splash
-
-ļ˵
-
-1MPA.gif ļ̶ GIFʽ
-2MPA.swf ļ̶ Flash/Swfʽ
-3MPA_Flash_1.pngMPA_Flash_2.pngȵͼƬѭģʽ
- ļƲ̶̶ʽΪ*.pngʽ˳Ϊ ļ ˳
-4MPA_Splash_Basic.png ļ̶ QtԴQSplashScreenӽ ģʽ
\ No newline at end of file
diff --git a/Bin/XmlFiles/BtnCmds.xml b/Bin/XmlFiles/BtnCmds_cn.xml
similarity index 100%
rename from Bin/XmlFiles/BtnCmds.xml
rename to Bin/XmlFiles/BtnCmds_cn.xml
diff --git a/Bin/XmlFiles/BtnCmds_en.xml b/Bin/XmlFiles/BtnCmds_en.xml
new file mode 100644
index 0000000..60fa529
--- /dev/null
+++ b/Bin/XmlFiles/BtnCmds_en.xml
@@ -0,0 +1,325 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Bin/XmlFiles/MenuDefines_Ribbon.xml b/Bin/XmlFiles/MenuDefines_Ribbon_cn.xml
similarity index 99%
rename from Bin/XmlFiles/MenuDefines_Ribbon.xml
rename to Bin/XmlFiles/MenuDefines_Ribbon_cn.xml
index 2f9a12a..cf6dc23 100644
--- a/Bin/XmlFiles/MenuDefines_Ribbon.xml
+++ b/Bin/XmlFiles/MenuDefines_Ribbon_cn.xml
@@ -32,6 +32,8 @@
5——Text
6——Label
7——ListWidget
+ 8——LineEdit
+ 9——劈分按钮
Name: 名称,通常英文
Alias: 别名,通常中文
Icon: 图标
@@ -502,6 +504,10 @@
+
+
+
+
diff --git a/Bin/XmlFiles/MenuDefines_Ribbon_en.xml b/Bin/XmlFiles/MenuDefines_Ribbon_en.xml
new file mode 100644
index 0000000..d074a73
--- /dev/null
+++ b/Bin/XmlFiles/MenuDefines_Ribbon_en.xml
@@ -0,0 +1,524 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Bin/XmlFiles/ModelParaDefinesLP.xml b/Bin/XmlFiles/ModelParaDefinesLP_cn.xml
similarity index 99%
rename from Bin/XmlFiles/ModelParaDefinesLP.xml
rename to Bin/XmlFiles/ModelParaDefinesLP_cn.xml
index 2a995b0..84fab18 100644
--- a/Bin/XmlFiles/ModelParaDefinesLP.xml
+++ b/Bin/XmlFiles/ModelParaDefinesLP_cn.xml
@@ -241,6 +241,7 @@
+
@@ -479,7 +480,7 @@
-
+
@@ -495,8 +496,8 @@
-
-
+
+
diff --git a/Bin/XmlFiles/ModelParaDefinesLP_en.xml b/Bin/XmlFiles/ModelParaDefinesLP_en.xml
new file mode 100644
index 0000000..e6fba65
--- /dev/null
+++ b/Bin/XmlFiles/ModelParaDefinesLP_en.xml
@@ -0,0 +1,602 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Bin/XmlFiles/NmXmlDemo.xml b/Bin/XmlFiles/NmXmlDemo_cn.xml
similarity index 100%
rename from Bin/XmlFiles/NmXmlDemo.xml
rename to Bin/XmlFiles/NmXmlDemo_cn.xml
diff --git a/Bin/XmlFiles/NmXmlDemo_en.xml b/Bin/XmlFiles/NmXmlDemo_en.xml
new file mode 100644
index 0000000..c7ecfeb
--- /dev/null
+++ b/Bin/XmlFiles/NmXmlDemo_en.xml
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Bin/XmlFiles/TableStructs.xml b/Bin/XmlFiles/TableStructs_cn.xml
similarity index 100%
rename from Bin/XmlFiles/TableStructs.xml
rename to Bin/XmlFiles/TableStructs_cn.xml
diff --git a/Bin/XmlFiles/TableStructs_en.xml b/Bin/XmlFiles/TableStructs_en.xml
new file mode 100644
index 0000000..51130ca
--- /dev/null
+++ b/Bin/XmlFiles/TableStructs_en.xml
@@ -0,0 +1,567 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Bin/XmlFiles/UnitDefault.xml b/Bin/XmlFiles/UnitDefault_cn.xml
similarity index 100%
rename from Bin/XmlFiles/UnitDefault.xml
rename to Bin/XmlFiles/UnitDefault_cn.xml
diff --git a/Bin/XmlFiles/UnitDefault_en.xml b/Bin/XmlFiles/UnitDefault_en.xml
new file mode 100644
index 0000000..b6fa119
--- /dev/null
+++ b/Bin/XmlFiles/UnitDefault_en.xml
@@ -0,0 +1,252 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Bin/XmlFiles/WTAI_Attributes_en.xml b/Bin/XmlFiles/WTAI_Attributes_en.xml
index 4c73a47..3b378d6 100644
--- a/Bin/XmlFiles/WTAI_Attributes_en.xml
+++ b/Bin/XmlFiles/WTAI_Attributes_en.xml
@@ -1,173 +1,145 @@
-
-
-
+
+
-
-
-
-
-
+
+
-
-
+
+
-
-
-
-
+
+
+
+
-
-
-
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
-
+
+
-
-
-
-
+
+
+
+
-
-
+
+
-
+
-
+
-
+
-
-
-
-
-
+
+
-
-
+
+
-
+
-
-
-
-
-
+
+
-
+
-
-
-
-
+
+
+
+
-
-
+
+
-
-
+
+
-
-
-
-
+
-
-
+
+
-
-
-
-
+
-
-
+
+
-
+
-
-
-
-
+
+
+
+
-
-
-
-
+
-
-
-
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
-
@@ -175,71 +147,214 @@
-
-
-
-
-
+
+
-
-
-
+
+
+
+
+
+
+
-
-
-
+
+
+
-
-
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
diff --git a/Include/iAlg/iAlgMath/zxAlgSVD.h b/Include/iAlg/iAlgMath/zxAlgSVD.h
deleted file mode 100644
index 015a56e..0000000
--- a/Include/iAlg/iAlgMath/zxAlgSVD.h
+++ /dev/null
@@ -1,43 +0,0 @@
-#pragma once
-
-#include "Defines.h"
-#include "iAlgMath_global.h"
-
-// SVD㷨ͨ漰ӵѧֵ
-// ʵ˼JacobiSVD㷨ĿܣСľ
-// ڴ˻ʵ־棨Ƿ⣩
-// ע⣬㷨ҪܶûнŻԴֵȶ⡣
-// ϴһʡ
-class I_ALGMATH_EXPORT zxAlgSVD
-{
-public:
-
- zxAlgSVD();
- ~zxAlgSVD();
-
-#ifdef QT_DEBUG
- void test();
-#endif
-
-public:
-
- // α
- VVecDouble pseudoInverse(VVecDouble& A);
-
-private:
-
- // svg
- bool svd(VVecDouble& A);
-
- // sqrt(a^2 + b^2) without under/overflow
- double hypot(double a, double b);
-
-private:
-
- //
- VVecDouble U;
- VVecDouble V;
- VecDouble s;
- int m;
- int n;
-};
diff --git a/Include/iAlg/iAlgMath/zxTempConverter.h b/Include/iAlg/iAlgMath/zxTempConverter.h
new file mode 100644
index 0000000..3203b56
--- /dev/null
+++ b/Include/iAlg/iAlgMath/zxTempConverter.h
@@ -0,0 +1,58 @@
+#pragma once
+
+#include "Defines.h"
+#include "iAlgMath_global.h"
+
+// 温度转换类
+class I_ALGMATH_EXPORT zxTempConverter
+{
+public:
+
+ zxTempConverter();
+ ~zxTempConverter();
+
+private:
+
+ // 四种温标枚举
+ enum Temp_Unit_Type {
+ TUT_Celsius = 0, //摄氏度℃
+ TUT_Fahrenheit, //华氏度F
+ TUT_Kelvin, //开尔文K
+ TUT_Rankine, //兰式温度R
+ TUT_Unknown
+ };
+
+ // 任意温标 → 摄氏度
+ static double otherToCelsius(double t, Temp_Unit_Type tutSrc);
+
+ // 摄氏度 → 任意温标
+ static double celsiusToOther(double t, Temp_Unit_Type tutDest);
+
+ // 通用转换函数:任意温标 → 任意温标
+ static double convert(double t, \
+ Temp_Unit_Type tutSrc, \
+ Temp_Unit_Type tutDest);
+
+public:
+
+ // 从摄氏度℃转为其它
+ static double cToF(double c);
+ static double cToK(double c);
+ static double cToR(double c);
+
+ // 从华氏度F转为其它
+ static double fToC(double f);
+ static double fToK(double f);
+ static double fToR(double f);
+
+ // 从开尔文K转为其它
+ static double kToC(double k);
+ static double kToF(double k);
+ static double kToR(double k);
+
+ // 从兰式温度R转为其它
+ static double rToC(double r);
+ static double rToF(double r);
+ static double rToK(double r);
+
+};
diff --git a/Include/iBase/iAppBase/ZxAppPrompt.h b/Include/iBase/iAppBase/ZxAppPrompt.h
new file mode 100644
index 0000000..77987da
--- /dev/null
+++ b/Include/iBase/iAppBase/ZxAppPrompt.h
@@ -0,0 +1,20 @@
+#pragma once
+
+#include
+#include "iAppBase_global.h"
+
+// 注意:对于App,需要引用该类,以默认动态构建ZxSystem
+class I_APPBASE_EXPORT ZxAppPrompt : public QObject
+{
+ Q_OBJECT
+
+public:
+
+ ZxAppPrompt();
+ ~ZxAppPrompt();
+
+};
+
+
+
+
diff --git a/Include/iBase/iBase/zxCrashHandler.h b/Include/iBase/iBase/zxCrashHandler.h
deleted file mode 100644
index c75e2e5..0000000
--- a/Include/iBase/iBase/zxCrashHandler.h
+++ /dev/null
@@ -1,17 +0,0 @@
-#pragma once
-
-#include
-#include "iBase_global.h"
-
-// 异常捕获
-class I_BASE_EXPORT zxCrashHandler : public QObject
-{
- Q_OBJECT
-
-public:
-
- zxCrashHandler();
- ~zxCrashHandler();
-
- static void registerHandler();
-};
diff --git a/Include/iBase/iLogs/zxLogInstance.h b/Include/iBase/iLogs/zxLogInstance.h
index cdb4a78..460d604 100644
--- a/Include/iBase/iLogs/zxLogInstance.h
+++ b/Include/iBase/iLogs/zxLogInstance.h
@@ -15,7 +15,7 @@ public:
static void release();
// 设置
- static void setLogEdit(QTextEdit* pTextEdit);
+ /*static */void setLogEdit(QTextEdit* pTextEdit);
// 写日志,分别对应 Debug Information Fatal Warning
void writeLogD(QString sLog);
@@ -48,7 +48,7 @@ private:
private:
static zxLogInstance* m_pLogInstance;
- static QTextEdit* m_pLogEdit;
+ /*static*/ QTextEdit* m_pLogEdit;
// 内部标识(文件+Logo)
QString m_sLogFile;
diff --git a/Include/iBase/iPlugin/MdiAreaEx.h b/Include/iBase/iPlugin/MdiAreaEx.h
deleted file mode 100644
index c76ee72..0000000
--- a/Include/iBase/iPlugin/MdiAreaEx.h
+++ /dev/null
@@ -1,61 +0,0 @@
-#pragma once
-
-#include
-
-#include "Defines.h"
-#include "iPlugin_global.h"
-
-// 主要重载其信号响应
-class I_PLUGIN_EXPORT MdiAreaEx :
- public QMdiArea
-{
- Q_OBJECT
-
-public:
- MdiAreaEx(QWidget* parent = 0);
- ~MdiAreaEx();
-
- // 布局
- // bFilterMode二次布局时,如果bFilterMode为true则过滤掉Hide的窗体
- void layoutSubWnds(WndLayoutMode o, bool bFilterMode = false);
- WndLayoutMode getLayoutMode();
- void relayoutSubWnds();
-
- void setLastAutoSpan(bool b);
- void setColCount(int n);
-
-private:
-
- // 布局实现
- void _layoutOne(QList listSubWnds);
- void _layoutVert(QList listSubWnds);
- void _layoutHori(QList listSubWnds);
- void _layoutCell(QList listSubWnds);
- void _layoutCascade(QList listSubWnds);
-
-protected:
-
- bool eventFilter(QObject *object, QEvent *event);
- void childEvent(QChildEvent *childEvent);
- void resizeEvent(QResizeEvent *resizeEvent);
- void timerEvent(QTimerEvent *timerEvent);
- void showEvent(QShowEvent *showEvent);
-
-signals:
-
- // Mdi大小发生了切换
- void sigMdiSizeChanged();
-
- // 在布局前允许用户对窗体顺序进行调整
- void sigAdjustSubWnds(QList&);
-
- // nMode = 0: added 1:removed 2:polished
-// void sigChildActioned(QObject* pChild, int nMode);
-
-protected:
-
- WndLayoutMode m_oMode;
- bool m_bFilterMode;
- bool m_bLastSpan; //最后一个是否对齐(如果不够的话),默认为true
- int m_nColCount; //默认为2
-};
diff --git a/Include/iBase/iPlugin/MdiSubWindowEx.h b/Include/iBase/iPlugin/MdiSubWindowEx.h
deleted file mode 100644
index 611526d..0000000
--- a/Include/iBase/iPlugin/MdiSubWindowEx.h
+++ /dev/null
@@ -1,126 +0,0 @@
-#pragma once
-
-#include
-#include "IxDynObj.h"
-#include "iPlugin_global.h"
-#include
-#include
-#include
-#include
-#include "iBase_global.h"
-#include
-#include
-
-class CustomStyle : public QProxyStyle
-{
-public:
- CustomStyle(QStyle *baseStyle = 0) : QProxyStyle(baseStyle) {}
-
- void drawComplexControl(ComplexControl control, const QStyleOptionComplex *option, QPainter *painter, const QWidget *widget) const
- {
- if(control == QStyle::CC_TitleBar)
- {
- const QStyleOptionTitleBar* styleOpt = qstyleoption_cast(option);
- if (styleOpt != nullptr)
- {
- painter->save();
- painter->setRenderHint(QPainter::Antialiasing);
-
- QRect rectMin = subControlRect(QStyle::CC_TitleBar, styleOpt, widget->isMinimized() ? QStyle::SC_TitleBarNormalButton : QStyle::SC_TitleBarMinButton, widget);
- QRect rectMax = subControlRect(QStyle::CC_TitleBar, styleOpt, widget->isMaximized() ? QStyle::SC_TitleBarNormalButton : QStyle::SC_TitleBarMaxButton, widget);
- QRect rectClose = subControlRect(QStyle::CC_TitleBar, styleOpt, QStyle::SC_TitleBarCloseButton, widget);
- QBrush brush(styleOpt->state & State_Active ? QColor("#C0DCF2") : QColor("#DEF0FE"));
- painter->fillRect(styleOpt->rect, brush);
- QRect rect = styleOpt->rect;
- //由于高度变化
- rectMin.setTop(0);rectMin.setHeight(rect.height());
- rectMax.setTop(0);rectMax.setHeight(rect.height());
- rectClose.setTop(0);rectClose.setHeight(rect.height());
- QSize IconSize = QSize(rect.height(), rect.height());
-
- // 关闭按钮
- QPixmap pixIconClose = zxLoadIcon("Titlebar_Close").pixmap(IconSize);
- drawButton(painter, rectClose, pixIconClose, IconSize);
-
- // 最大化按钮
- QPixmap pixIconMax = zxLoadIcon(widget->isMaximized() ? "Titlebar_Normal" : "Titlebar_Max").pixmap(IconSize);
- drawButton(painter, rectMax, pixIconMax, IconSize);
-
- // 最小化按钮
- QPixmap pixIconMin = zxLoadIcon(widget->isMinimized() ? "Titlebar_Normal" : "Titlebar_Min").pixmap(IconSize);
- drawButton(painter, rectMin, pixIconMin, IconSize);
- float fSize = (float) IconSize.height() * 2 / 3;
- // 图标和标题文本
- QRectF iconRect(rect.left() + 2, rect.top(), IconSize.height(), IconSize.height());
- QRectF rcIcon(iconRect.center().rx()-fSize/2, iconRect.center().ry() - fSize/2, fSize, fSize);
- painter->drawPixmap(rcIcon.toRect(), styleOpt->icon.pixmap(QSize(16, 16)));
-
- QRectF rcTitle(rcIcon.right() + fSize, rect.top(), rectMin.left() - (rcIcon.right() + fSize), IconSize.height());
- painter->drawText(rcTitle, styleOpt->text, QTextOption(Qt::AlignLeft | Qt::AlignVCenter));
-
- painter->restore();
- return;
- }
- }
- else
- {
- QProxyStyle::drawComplexControl(control, option, painter, widget);
- }
-
- }
- void drawButton(QPainter *painter, const QRectF &buttonRect, const QPixmap &icon, const QSize size) const
- {
- //绘制位置计算取1/2
- float fSize = (float) size.height() * 1 / 2;
- QRectF rcIcon(buttonRect.center().rx()-fSize/2, buttonRect.center().ry() - fSize/2, fSize, fSize);
- painter->drawPixmap(rcIcon.toRect(), icon);
- }
-};
-
-// 主要重载其信号响应
-class I_PLUGIN_EXPORT MdiSubWindowEx :
- public QMdiSubWindow
-{
- Q_OBJECT
-
-public:
- MdiSubWindowEx(bool bNovelQss, QWidget* parent = 0);
- ~MdiSubWindowEx();
-
- void setBindingObj(IxDynObj* p);
- IxDynObj* getBindingObj();
-
-protected:
-
- bool eventFilter(QObject*, QEvent*);
-
- void showEvent(QShowEvent *event);
- void hideEvent(QHideEvent* event);
- void changeEvent(QEvent* event);
- void closeEvent(QCloseEvent* event);
- void resizeEvent(QResizeEvent* event);
- void mouseDoubleClickEvent(QMouseEvent* event);
-
-signals:
-
- // b:返回的是,是否允许关闭
- void sigConformClosing(bool& b);
- // 一旦关闭后,通知刷新状态
- void sigMdiClosed();
-
-private:
-
- IxDynObj* m_pBindingObj; //这是绑定的Obj对象
-};
-
-//Mdi中的子项
-class I_PLUGIN_EXPORT SubMdiSubWindowEx :
- public MdiSubWindowEx
-{
- Q_OBJECT
-
-public:
-
- SubMdiSubWindowEx(bool bNovelQss, QWidget* parent = 0);
- ~SubMdiSubWindowEx();
-};
diff --git a/Include/iBase/iPlugin/MdiSubWindowEx.h.bak b/Include/iBase/iPlugin/MdiSubWindowEx.h.bak
deleted file mode 100644
index 502200b..0000000
--- a/Include/iBase/iPlugin/MdiSubWindowEx.h.bak
+++ /dev/null
@@ -1,124 +0,0 @@
-#pragma once
-
-#include
-#include "IxDynObj.h"
-#include "iPlugin_global.h"
-#include
-#include
-#include
-#include
-#include "iBase_global.h"
-#include
-#include
-
-class CustomStyle : public QProxyStyle
-{
-public:
- CustomStyle(QStyle *baseStyle = 0) : QProxyStyle(baseStyle) {}
-
- void drawComplexControl(ComplexControl control, const QStyleOptionComplex *option, QPainter *painter, const QWidget *widget) const
- {
- if(control == QStyle::CC_TitleBar)
- {
- const QStyleOptionTitleBar* styleOpt = qstyleoption_cast(option);
- if (styleOpt != nullptr)
- {
- painter->save();
- painter->setRenderHint(QPainter::Antialiasing);
-
- QRect rectMin = subControlRect(QStyle::CC_TitleBar, styleOpt, widget->isMinimized() ? QStyle::SC_TitleBarNormalButton : QStyle::SC_TitleBarMinButton, widget);
- QRect rectMax = subControlRect(QStyle::CC_TitleBar, styleOpt, widget->isMaximized() ? QStyle::SC_TitleBarNormalButton : QStyle::SC_TitleBarMaxButton, widget);
- QRect rectClose = subControlRect(QStyle::CC_TitleBar, styleOpt, QStyle::SC_TitleBarCloseButton, widget);
-
- painter->setBrush(styleOpt->state & State_Active ? QColor("#C0DCF2") : QColor("#DEF0FE"));
- painter->drawRect(styleOpt->rect);
- QRect rect = styleOpt->rect;
- //由于高度变化
- rectMin.setTop(0);rectMin.setHeight(rect.height());
- rectMax.setTop(0);rectMax.setHeight(rect.height());
- rectClose.setTop(0);rectClose.setHeight(rect.height());
- QSize IconSize = QSize(rect.height(), rect.height());
-
- // 关闭按钮
- QPixmap pixIconClose = zxLoadIcon("Titlebar_Close").pixmap(IconSize);
- drawButton(painter, rectClose, pixIconClose, IconSize);
-
- // 最大化按钮
- QPixmap pixIconMax = zxLoadIcon(widget->isMaximized() ? "Titlebar_Normal" : "Titlebar_Max").pixmap(IconSize);
- drawButton(painter, rectMax, pixIconMax, IconSize);
-
- // 最小化按钮
- QPixmap pixIconMin = zxLoadIcon(widget->isMinimized() ? "Titlebar_Normal" : "Titlebar_Min").pixmap(IconSize);
- drawButton(painter, rectMin, pixIconMin, IconSize);
- float fSize = (float) IconSize.height() * 2 / 3;
- // 图标和标题文本
- QRectF iconRect(rect.left() + 2, rect.top(), IconSize.height(), IconSize.height());
- QRectF rcIcon(iconRect.center().rx()-fSize/2, iconRect.center().ry() - fSize/2, fSize, fSize);
- painter->drawPixmap(rcIcon.toRect(), styleOpt->icon.pixmap(QSize(16, 16)));
-
- QRectF rcTitle(rcIcon.right() + fSize, rect.top(), rectMin.left() - (rcIcon.right() + fSize), IconSize.height());
- painter->drawText(rcTitle, styleOpt->text, QTextOption(Qt::AlignLeft | Qt::AlignVCenter));
-
- painter->restore();
- return;
- }
- }
- else
- {
- QProxyStyle::drawComplexControl(control, option, painter, widget);
- }
-
- }
- void drawButton(QPainter *painter, const QRectF &buttonRect, const QPixmap &icon, const QSize size) const
- {
- //绘制位置计算取1/2
- float fSize = (float) size.height() * 1 / 2;
- QRectF rcIcon(buttonRect.center().rx()-fSize/2, buttonRect.center().ry() - fSize/2, fSize, fSize);
- painter->drawPixmap(rcIcon.toRect(), icon);
- }
-};
-
-// 主要重载其信号响应
-class I_PLUGIN_EXPORT MdiSubWindowEx :
- public QMdiSubWindow
-{
- Q_OBJECT
-
-public:
- MdiSubWindowEx(bool bNovelQss, QWidget* parent = 0);
- ~MdiSubWindowEx();
-
- void setBindingObj(IxDynObj* p);
- IxDynObj* getBindingObj();
-
-protected:
-
- bool eventFilter(QObject*, QEvent*);
-
- void showEvent(QShowEvent *event);
- void hideEvent(QHideEvent* event);
- void changeEvent(QEvent* event);
- void closeEvent(QCloseEvent* event);
- void resizeEvent(QResizeEvent* event);
- void mouseDoubleClickEvent(QMouseEvent* event);
-
-signals:
- // b:返回的是,是否允许关闭
- void sigConformClosing(bool& b);
- // 一旦关闭后,通知刷新状态
- void sigMdiClosed();
-
-private:
-
- IxDynObj* m_pBindingObj; //这是绑定的Obj对象
-};
-//Mdi中的子项
-class I_PLUGIN_EXPORT SubMdiSubWindowEx :
- public MdiSubWindowEx
-{
- Q_OBJECT
-
-public:
- SubMdiSubWindowEx(bool bNovelQss, QWidget* parent = 0);
- ~SubMdiSubWindowEx();
-};
diff --git a/Include/iBase/iPlugin/QDockWidgetEx.h b/Include/iBase/iPlugin/QDockWidgetEx.h
deleted file mode 100644
index bca35df..0000000
--- a/Include/iBase/iPlugin/QDockWidgetEx.h
+++ /dev/null
@@ -1,46 +0,0 @@
-#pragma once
-#include
-#include
-#include
-#include
-
-#include "iPlugin_global.h"
-
-// DockWidget扩展
-class I_PLUGIN_EXPORT QDockWidgetEx : public QDockWidget
-{
- Q_OBJECT
-
-public:
- QDockWidgetEx(const QString &title, QWidget *parent = 0, Qt::WindowFlags flags = 0);
- QDockWidgetEx(QWidget *parent = 0, Qt::WindowFlags flags = 0);
-
- ~QDockWidgetEx();
-
- bool IsWindowOpacity(void);
- void WindowOpacity(bool bOpacity);
- void changeTitle(bool bTopLevel);
-
-public slots:
-
- void slotFeaturesChanged(QDockWidget::DockWidgetFeatures features);
- void slotTopLevelChanged(bool topLevel);
- void slotAllowedAreasChanged(Qt::DockWidgetAreas allowedAreas);
- void slotVisibilityChanged(bool visible);
- void slotDockLocationChanged(Qt::DockWidgetArea area);
-
-protected:
-
- virtual void leaveEvent(QEvent * event);
- virtual void enterEvent(QEvent * event);
- virtual bool event(QEvent *event);
-
- void paintEvent(QPaintEvent *event);
-
- void init();
-
-protected:
-
- bool m_bIsWindowOpacity;
- QString m_sTitle;
-};
diff --git a/Include/iBase/iPlugin/QHeaderComboBoxEx.h b/Include/iBase/iPlugin/QHeaderComboBoxEx.h
deleted file mode 100644
index 1096627..0000000
--- a/Include/iBase/iPlugin/QHeaderComboBoxEx.h
+++ /dev/null
@@ -1,32 +0,0 @@
-#pragma once
-
-#include "QListViewEx.h"
-
-// 自定义Combobox 失去焦点是能够自动隐藏
-class I_PLUGIN_EXPORT QHeaderComboBoxEx :public QComboBox
-{
- Q_OBJECT
-public:
- explicit QHeaderComboBoxEx(QWidget *parent = 0);
- ~QHeaderComboBoxEx();
-public:
-
- // hidePopup 重写隐藏下拉列表
- void hidePopup();
-
- // 所在列索引
- void setColumnIndex(int nIndex);
-
-protected:
-
- //重写失去焦点事件
- void focusOutEvent(QFocusEvent *e);
-
-signals:
- // 选择改变
- void sigSelChanged(const int, const QStringList);
-
-private:
- // 列索引
- int m_nCurIndex;
-};
diff --git a/Include/iBase/iPlugin/QHeaderViewEx.h b/Include/iBase/iPlugin/QHeaderViewEx.h
deleted file mode 100644
index a489b2e..0000000
--- a/Include/iBase/iPlugin/QHeaderViewEx.h
+++ /dev/null
@@ -1,68 +0,0 @@
-#pragma once
-
-#include
-#include
-#include
-#include
-#include
-#include
-
-#include
-#include
-#include
-
-// 此处是为了响应在QTableWidget中的表头进行下拉选择(支持多选)而做的三个类。
-// 其中QHeaderViewEx是表头,点中其某一列时,创建QHeaderComboBoxEx,而QHeaderComboBoxEx
-// 内部又设置了view为QListViewEx
-
-// 表头HeaderView
-class I_PLUGIN_EXPORT QHeaderViewEx : public QHeaderView
-{
- Q_OBJECT
-public:
- QHeaderViewEx(const QStringList& lstStrText, QWidget *parent = 0);
- ~QHeaderViewEx();
-
- // 设置表头下拉列表取值
- void setColumnItems(const QStringList& lstFields, const QStringList& lstAlls);
-
- // 设置Titles
- void changeTitles(QStringList listTitles);
-
-public Q_SLOTS:
-
- // 选择改变时响应
- void slotSelChanged(const int, const QStringList);
-
- // 处理表头单元缩放事件
- void handleSectionResized(int index);
-
-signals:
- void sigGetColumnItems(int index);
- void sigSelChanged(const int, const QStringList);
-
-protected:
-
- // 重置表头combo控件大小
- void resizeItem(int index);
-
- // 删除comboBox控件
- void removeCombo();
-
- // 处理鼠标单击消息
- void mouseReleaseEvent(QMouseEvent *e);
- void mousePressEvent(QMouseEvent *e);
-
- // 重绘,此处有待完善,目前是没有版本,直接把父类搬过来了。
- void paintSection(QPainter* painter, const QRect &rect, int logicalIndex) const;
-
-private:
- QStringList m_lstHeaderTexts; //标题
- QStringList m_lstComboxText; ///< 下拉列表中显示表头列表,当前选中的
- QStringList m_lstComboxTextAll;///< 下拉列表中显示表头列表,所有的
- QComboBox* m_pCbxSel; ///< 表头下拉列表控件
- int m_nCurIndex; ///< 被选中的表头单元ID
-};
-
-
-
diff --git a/Include/iBase/iPlugin/QListViewEx.h b/Include/iBase/iPlugin/QListViewEx.h
deleted file mode 100644
index 631fe51..0000000
--- a/Include/iBase/iPlugin/QListViewEx.h
+++ /dev/null
@@ -1,41 +0,0 @@
-#pragma once
-#include
-#include
-#include
-#include
-#include
-#include
-
-#include
-#include
-#include
-
-// 为了QCombobox下拉列表添加QCheckBox复选框创建QListViewEx
-class I_PLUGIN_EXPORT QListViewEx : public QListWidget
-{
- Q_OBJECT
-
-public:
- QListViewEx(QWidget* parent, QStringList *listItems, QStringList *listItemAlls, QComboBox* pComboBox);
-
- //返回用户选择项的用户自定义数据
- bool getSelectItems(QStringList &data);
-
-private slots:
-
- // Check状态改变
- void slotCheckBoxChanged(int state);
-
-private:
-
- // 相关的变量,主要为控制
- QComboBox* m_pComboBox;
- QStringList m_listItems;
- QStringList m_listItemAlls;
- QList m_listChecked;
- QList m_listItemData;
- QList m_listCheckBoxes;
- bool m_bAllConsider;
- bool m_bByAll;
- QMap m_mapRawStates;
-};
diff --git a/Include/iBase/iPlugin/QTextEditEx.h b/Include/iBase/iPlugin/QTextEditEx.h
deleted file mode 100644
index 069c5c6..0000000
--- a/Include/iBase/iPlugin/QTextEditEx.h
+++ /dev/null
@@ -1,23 +0,0 @@
-#pragma once
-
-#include
-
-#include "iPlugin_global.h"
-
-// 文本,MPA解释结果,使用
-class I_PLUGIN_EXPORT QTextEditEx : public QTextEdit
-{
- Q_OBJECT
-
-public:
- QTextEditEx(QWidget *parent = 0);
- ~QTextEditEx();
-
-signals:
-
- // 触发信号,以便用户对右键菜单进行调整
- void sigCustomMenu(QMenu* );
-
-protected:
- virtual void contextMenuEvent(QContextMenuEvent *e);
-};
diff --git a/Include/iBase/iPlugin/TabWidgetEx.h b/Include/iBase/iPlugin/TabWidgetEx.h
deleted file mode 100644
index 113b87d..0000000
--- a/Include/iBase/iPlugin/TabWidgetEx.h
+++ /dev/null
@@ -1,42 +0,0 @@
-#pragma once
-
-#include
-
-#include "iPlugin_global.h"
-
-// TabWidgetEx该类实现TabWidget相关附加功能
-class I_PLUGIN_EXPORT TabWidgetEx :
- public QTabWidget
-{
- Q_OBJECT
-
-public:
- TabWidgetEx(QWidget *parent = 0);
- ~TabWidgetEx();
-
- // Tab是否允许移动,默认不移动
- void setTabMovable(bool b);
- bool isTabMovable();
-
- // TabBar
- void setTabBarHorW(int n);
- int getTabBarHorW();
-
-protected:
-// virtual void mouseDoubleClickEvent(QMouseEvent *);
-
- // event分发
- virtual bool eventFilter(QObject *, QEvent *);
-
-signals:
-
- // 双击Item
- void sigItemDoubleClicked(int n);
- // 右击Item
- void sigItemRightClicked(int n, QPoint pos);
-
-private:
- QTabBar* m_pTabBar;
-
- bool m_bTabMovable; //TabItem允许移动
-};
diff --git a/Include/iBase/iPlugin/ZxDoubleSpinBox.h b/Include/iBase/iPlugin/ZxDoubleSpinBox.h
new file mode 100644
index 0000000..1e4e037
--- /dev/null
+++ b/Include/iBase/iPlugin/ZxDoubleSpinBox.h
@@ -0,0 +1,31 @@
+#pragma once
+
+#include
+
+#include "iPlugin_global.h"
+
+// QDoubleSpinBox定制,包括小数位数等
+class I_PLUGIN_EXPORT ZxDoubleSpinBox : public QDoubleSpinBox
+{
+ Q_OBJECT
+
+public:
+
+ explicit ZxDoubleSpinBox(QWidget* parent = 0);
+ ~ZxDoubleSpinBox();
+
+signals:
+
+protected:
+
+ virtual double valueFromText(const QString &text) const;
+ virtual QString textFromValue(double val) const;
+ virtual void fixup(QString &str) const;
+
+// virtual void mousePressEvent(QMouseEvent* mouseEvent);
+// virtual void mouseMoveEvent(QMouseEvent* mouseEvent);
+// virtual void leaveEvent(QEvent* e);
+
+private:
+
+};
diff --git a/Include/iBase/iPlugin/ZxHeaderComboBoxEx.h b/Include/iBase/iPlugin/ZxHeaderComboBoxEx.h
deleted file mode 100644
index afe1a56..0000000
--- a/Include/iBase/iPlugin/ZxHeaderComboBoxEx.h
+++ /dev/null
@@ -1,36 +0,0 @@
-#pragma once
-
-#include "ZxListViewEx.h"
-
-// 自定义Combobox 失去焦点是能够自动隐藏
-class I_PLUGIN_EXPORT ZxHeaderComboBoxEx :public QComboBox
-{
- Q_OBJECT
-public:
- explicit ZxHeaderComboBoxEx(QWidget *parent = 0);
- ~ZxHeaderComboBoxEx();
-public:
-
- // hidePopup 重写隐藏下拉列表
- void hidePopup();
-
- // 所在列索引
- void setColumnIndex(int nIndex);
-
-protected:
-
- //重写失去焦点事件
- void focusOutEvent(QFocusEvent *e);
-
-signals:
- // 选择改变
- void sigSelChanged(const int, const QString);
-
-private:
- // 列索引
- int m_nCurIndex;
-
- // 每次都发送两遍消息,奇怪
- int m_nLastSendIndex;
- QString m_sLastSendText;
-};
diff --git a/Include/iBase/iPlugin/ZxHeaderViewEx.h b/Include/iBase/iPlugin/ZxHeaderViewEx.h
deleted file mode 100644
index 46508f9..0000000
--- a/Include/iBase/iPlugin/ZxHeaderViewEx.h
+++ /dev/null
@@ -1,73 +0,0 @@
-#pragma once
-
-#include
-#include
-#include
-#include
-#include
-#include
-
-#include
-#include
-#include
-
-// 此处是为了响应在QTableWidget中的表头进行下拉选择(支持多选)而做的三个类。
-// 其中ZxHeaderViewEx是表头,点中其某一列时,
-// 创建ZxHeaderComboBoxEx,而ZxHeaderComboBoxEx
-// 内部又设置了view为ZxListViewEx
-// 所以ZxHeaderViewEx、ZxHeaderComboBoxEx、ZxListViewEx为一组
-// 该组实现了表头的Radio选择(单选)
-// 而原来的QHeaderViewEx、QHeaderComboBoxEx、QListViewEx为一组
-// 这一组实现了表头的Check选择(多选)
-
-// 表头HeaderView
-class I_PLUGIN_EXPORT ZxHeaderViewEx : public QHeaderView
-{
- Q_OBJECT
-public:
- ZxHeaderViewEx(const QStringList& lstStrText, QWidget *parent = 0);
- ~ZxHeaderViewEx();
-
- // 设置表头下拉列表取值
- void setColumnItems(const QString& sCurSel, const QStringList& lstAlls);
-
- // 设置Titles
- void changeTitles(QStringList listTitles);
-
-public Q_SLOTS:
-
- // 选择改变时响应
- void slotSelChanged(const int, const QString);
-
- // 处理表头单元缩放事件
- void handleSectionResized(int index);
-
-signals:
- void sigGetColumnItems(int index);
- void sigSelChanged(const int, const QString);
-
-protected:
-
- // 重置表头combo控件大小
- void resizeItem(int index);
-
- // 删除comboBox控件
- void removeCombo();
-
- // 处理鼠标单击消息
- void mouseReleaseEvent(QMouseEvent *e);
- void mousePressEvent(QMouseEvent *e);
-
- // 重绘,此处有待完善,目前是没有版本,直接把父类搬过来了。
- void paintSection(QPainter* painter, const QRect &rect, int logicalIndex) const;
-
-private:
- QStringList m_lstHeaderTexts; //标题
- QString m_sCurSel; //下拉列表中显示表头列表,当前选中的
- QStringList m_lstComboxTextAll; //下拉列表中显示表头列表,所有的
- QComboBox* m_pCbxSel; //表头下拉列表控件
- int m_nCurIndex; //被选中的表头单元ID
-};
-
-
-
diff --git a/Include/iBase/iPlugin/ZxListViewEx.h b/Include/iBase/iPlugin/ZxListViewEx.h
deleted file mode 100644
index 40e01df..0000000
--- a/Include/iBase/iPlugin/ZxListViewEx.h
+++ /dev/null
@@ -1,34 +0,0 @@
-#pragma once
-#include
-#include
-#include
-#include
-#include
-#include
-
-#include
-#include
-#include
-
-// 为了QCombobox下拉列表添加QRadioButton复选框创建ZxListViewEx
-class I_PLUGIN_EXPORT ZxListViewEx : public QListWidget
-{
- Q_OBJECT
-
-public:
- ZxListViewEx(QWidget* parent, const QString& sCurSel, QStringList *listItemAlls, QComboBox* pComboBox);
-
- //返回用户选择项的用户自定义数据
- QString getSelectItems();
-
-private slots:
-
- // Radio状态改变
- void slotRadioChanged(bool);
-
-private:
-
- // 相关的变量,主要为控制
- QComboBox* m_pComboBox;
- QList m_listRadioButtons;
-};
diff --git a/Include/iBase/iPlugin/ZxMainWindow.h.autosave b/Include/iBase/iPlugin/ZxMainWindow.h.autosave
deleted file mode 100644
index 946f42d..0000000
--- a/Include/iBase/iPlugin/ZxMainWindow.h.autosave
+++ /dev/null
@@ -1,176 +0,0 @@
-#pragma once
-
-#include
-
-#include "iPlugin_global.h"
-
-class iJobRun;
-class iAnalRun;
-class iSubWnd;
-class iSubWndBaseAF;
-class ZxObjWmPoint;
-class ZxTabWidget;
-class ZxMdiSubWindow;
-class iWxRunOptionIPR;
-class iRibbonXmlCmd;
-class iDockBaseWx;
-class TreeWxMain;
-class iWxDesign;
-class ZxDataWell;
-
-// 为外部引用xMainWindow主窗体部分接口而单独封装
-// 原本想通过虚接口类实现,但由于QObject缘故,虚接口类
-// 不便实现信号槽机制,故只能封装该类进行实现
-class I_PLUGIN_EXPORT ZxMainWindow : public QMainWindow
-{
-public:
-
- ZxMainWindow(QWidget* parent = 0);
- ~ZxMainWindow();
-
-public:
-
- /// @brief 检验是否具有正式授权
- /// @param bPromptLicenseDlg 在不具备授权的时候,是否弹出授权对话框
- virtual bool checkLicensed(bool bPromptLicenseDlg = false) = 0;
-
- /// @brief 返回当前所有JobRun的数组指针
- virtual QVector* getVecJobRunPtrs() = 0;
-
- /// @brief 返回当前所有AnalRun的数组指针
- virtual QVector* getVecAnalRunPtrs() = 0;
-
- /// @brief 返回iWxRunOptionIPR窗体指针,该函数接口为权宜之计,慎用,后续可能需要删除
- virtual iWxRunOptionIPR* getWxIprOptionPtr() = 0;
-
- // 左侧工区树
-// enum DockTreeMode
-// {
-// DTM_Da = 0, //数据
-// DTM_Jb = 1, //Jobs
-// DTM_Rs = 2 //成果
-// };
- /// @brief 获取左侧DockWx指针
- /// @param n (in) 0:数据树 1:Jobs树 2:成果树
- /// @note 注1:由于宏定义及依赖关系问题,暂时用int而非enum枚举作为参数类型
- /// 注2:对于WTAI来讲,目前Dock其实均为子类型iDockWellExplorer
- virtual iDockBaseWx* getLeftDockWx(int n) = 0;
-
- /// @brief 获取左侧树型控件指针
- /// @param n (in) 0:数据树 1:Jobs树 2:成果树
- /// @note 注1:由于宏定义及依赖关系问题,暂时用int而非enum枚举作为参数类型
- /// 注2:获取指针之后,可以根据需要各自转换为如下三种子类类型
- /// TreeWxMainDa* / TreeWxMainJb* / TreeWxMainRs*
- virtual TreeWxMain* getLeftTreeWx(int n) = 0;
-
-
- /// @brief 获取指定窗体Wnd对应的TabWx
- /// @param p:某窗体
- virtual ZxTabWidget* getTabWxOfSubWnd(iSubWnd* p) = 0;
-
- /// @brief 获取当前Mdi对应的TabWx
- /// @param p:某MdiSubWindow,如果p为空,则是当前激活的
- virtual ZxTabWidget* getTabWxOf(ZxMdiSubWindow* p = NULL) = 0;
-
- /// @brief 获取当前MdiChild
- virtual ZxMdiSubWindow* getCurMdiChild() = 0;
-
- /// @brief 获取当前TabWidget
- virtual ZxTabWidget* getCurTabWx() = 0;
-
- /// @brief 获取当前SubWnd
- virtual iSubWnd* getCurSubWnd() = 0;
-
- /// @brief 遍历查找 满足 某种ID属性的 所有窗体
- /// @param pTabWx, 遍历范围:如果为空,则全局遍历,否则 遍历 pTabWx 下
- /// @param sID, 指定的窗体 ID,在xml中配置的,如果为空,则返回 遍历范围内的所有
- /// @param bOnlyOne 是否只获取一个,比如井位图,其实就是获取一个
- virtual QVector getAllSubWndsOf(ZxTabWidget* pTabWx = NULL, \
- QString sID = "", \
- bool bOnlyOne = true) = 0;
-
- /// @brief 其它方创建的DockWx,与主窗口显示Detach,通常在析构时
- virtual bool detachOuterDockWx(iDockBaseWx* pDockWx) = 0;
-
- /// @brief 对应Ribbon主菜单的按钮处理
- virtual void runCmd(iRibbonXmlCmd* pInfo) = 0;
- virtual void runCmd(QString sID, QString sName, QString sExtInfo = "") = 0;
-
- /// @brief 在外部强制创建井,该方式慎用,具体咨询wzg
- /// @param vecWmPts,井点,如果是水平井,则对应的是两个点
- /// @param nType井类型,直井、水平井之类
- /// @param pDataWell 返回的井对象
- virtual void forceNewWellBy(QVector& vecWmPts, int nType, ZxDataWell*& pDataWell) = 0;
-
-public slots:
-
- /// @brief 主窗口创建一个新的窗体,由iWxRunOptionStd/iWxRunOptionIPR之后的窗体触发
- /// @param p (out)待创建的指针
- /// @note 举例:流动段选择确定之后,右键弹出,创建 下一个 流动段分析窗口
- virtual void slotCreateNextSubWnd(iSubWndBaseAF*& p) = 0;
-
- /// @brief 激活,由iWxRunOptionStd/iWxIprRunOptio之后的窗体触发
- /// @param p (in)待激活窗体
- virtual void slotActivateSubWnd(iSubWnd*& p) = 0;
-
- /// @brief 当压力流量数据更改时触发,主要是PF一旦保存之后
- /// 提供给其它相关的SubWnd一种刷新机制
- virtual void slotCacheDataCodePF(QString sCode) = 0;
-
- /// @brief 成果保存时,申请创建RstWnd,
- /// @param (out) b:是否已经成功创建
- /// @note:①如果成功创建,则会同步生成RstUtils等成果必须内容
- /// ②如果成功创建,则会把创建结果设置给SubWnd(即信号触发者)
- virtual void slotCreateRstWndForSubWnd(bool& b) = 0;
-
- /// @brief 在外部触发,关闭或者显示左侧工区数据树(全部,所有的Dock)
- virtual void slotLeftTreeDocksVisible(bool bVisible) = 0;
-
- /// @brief 刷新Ribbon按钮状态,这是更新所有按钮
- /// @param list可以为id也可以为name
- /// @note 如果list为空则指的是Ribbon全部,否则仅仅刷新指定的Btn
- virtual void slotFreshRnStates(QStringList list) = 0;
-
- /// @brief 获取井位图信息
- virtual void slotGetWmInfos(QVector&) = 0;
-
- /// @brief Lpr点收集了,右键响应
- virtual void slotLprPointPQ(QVector& vec) = 0;
-
- /// @brief 获取当前主窗口有多少窗口
- virtual void slotGetAllWnds(QMap& map, ZxTabWidget* pTabWx) = 0;
-
- /// @brief 刷新井相关
- virtual void slotFreshWellBasics() = 0;
-
- /// @brief SubWndData表格右键删除时,触发
- virtual void slotSwdDataDelObjs(QStringList& listKeys, QString& sTable, QString& sError) = 0;
-
- /// @brief 控制所在的MDI视图
- virtual void slotMdiChildShow(int) = 0;
-
- /// @brief 获取所有MDI
- virtual void slotGetAllMdis(QVector&) = 0;
-
- /// @brief 在SubWnd中创建Dock并且显示至主窗体之中,该Dock由SubWnd进行管理
- /// @param pDockWx (in) Dock指针
- /// @param areaDefault(in) 默认布局区域
- virtual void slotAppendDock2Main(iDockBaseWx* pDockWx, \
- Qt::DockWidgetArea areaDefault = Qt::LeftDockWidgetArea) = 0;
-
-public slots:
-
- // 线程控制
-
- /// @brief 在算法执行时显示隐藏进度条相关
- virtual void slotShowProgressAbout(bool bVisible) = 0;
-
- /// @brief 线程暂停
- virtual void slotThreadPause() = 0;
-
- /// @brief 线程结束
- virtual void slotThreadQuit() = 0;
-
-signals:
-
-};
diff --git a/Include/iBase/iPlugin/ZxSplitButton.h b/Include/iBase/iPlugin/ZxSplitButton.h
new file mode 100644
index 0000000..329a955
--- /dev/null
+++ b/Include/iBase/iPlugin/ZxSplitButton.h
@@ -0,0 +1,129 @@
+#pragma once
+
+//#include
+//#include
+//#include
+//#include
+//#include
+
+#include "Defines.h"
+#include "iPlugin_global.h"
+
+class QAction;
+
+// 实现拆分按钮,该类借鉴AI
+class I_PLUGIN_EXPORT ZxSplitButton : public QToolButton
+{
+ Q_OBJECT
+
+public:
+
+ // bUpDown 是上下还是左右布局
+ explicit ZxSplitButton(QWidget *parent = 0, \
+ bool bUpDown = true);
+ ~ZxSplitButton();
+
+ /// @brief 创建拆分窗体
+ /// @param sz 默认大小
+ /// @param listNames 英文Name
+ /// @param listTexts 中文
+ /// @param listIcons 图标
+ /// @param nDefault 默认点中
+ void initUI(QSize sz, \
+ QStringList& listNames, \
+ QStringList& listTexts, \
+ QStringList& listIcons, \
+ int nDefault = 0);
+
+signals:
+
+ // 点击主或次菜单项,均触发
+ void sbActionClicked(QString sName);
+
+protected:
+
+ void mouseMoveEvent(QMouseEvent *);
+ void mousePressEvent(QMouseEvent *);
+ void leaveEvent(QEvent *);
+ void mouseReleaseEvent(QMouseEvent *);
+
+ void paintEvent(QPaintEvent *);
+
+ void _drawBackground(QPainter* pPainter);
+ void _drawSeparator(QPainter* pPainter);
+ void _drawBorders(QPainter* pPainter);
+ void _drawTextAndIcons(QPainter* pPainter);
+ void _drawArrow(QPainter* pPainter);
+
+ QRect getBoundsOf(bool bMain);
+
+private slots:
+
+ // 菜单项
+ void onMenuTriggered(QAction *action);
+
+ // 菜单内部,popup相关
+ void onMenuAboutToShow();
+ void onMenuAboutToHide();
+
+private:
+
+ /// @brief 添加菜单项
+ /// @param sName 英文Name
+ /// @param sText 中文
+ /// @param sIcon 图标
+ /// @param bChecked 是否Checked
+ void addAction(QString sName, \
+ QString sText, \
+ QString sIcon, \
+ bool bChecked);
+
+ //int currentActionId() const;
+ //void setCurrentActionId(int actionId);
+ //void clearActions();
+ //int actionCount() const;
+
+ QIcon getCurrentIcon() const;
+ QString getCurrentText() const;
+
+ // 判断点所在区域
+ bool isPointInMainArea(const QPoint& pos) const;
+ bool isPointInSubArea(const QPoint& pos) const;
+
+private:
+
+ // 是上下还是左右布局
+ // 上下布局时,上为Main,下为Sub
+ // 左右布局时,左为Main,右为Sub
+ bool m_bUpDown;
+
+ // 菜单项
+ QMenu* m_pMenu;
+ QList m_listActions;
+
+ struct ActionInfo {
+ QString name;
+ QString text;
+ QIcon icon;
+ };
+ QList m_listActionInfos;
+
+ // 当前对应
+ QString m_sCurCheckedName;
+
+ // 内部变量控制
+ bool m_bHoveringMain; //鼠标Hover主Main还是次Sub
+ bool m_bHoveringSub;
+ bool m_bArrowUp; //对于箭头,总是上下显示
+ bool m_bMenuIsPopup; //当前菜单是否Popup
+ bool m_bPressed; //是否摁下
+
+
+ // 次Sub部分的Span
+ // 对于上下布局,是下侧部分的高
+ // 对于左右布局,是右侧部分的宽
+ int m_nSubPartSpan;
+
+ // 箭头部分的大小,按正方形考虑
+ int m_nArrowWH;
+};
diff --git a/Include/iBase/iPlugin/ZxTableHeaderView.h.bak b/Include/iBase/iPlugin/ZxTableHeaderView.h.bak
deleted file mode 100644
index 29ecf62..0000000
--- a/Include/iBase/iPlugin/ZxTableHeaderView.h.bak
+++ /dev/null
@@ -1,77 +0,0 @@
-#pragma once
-
-#include
-#include
-#include
-#include
-#include
-#include
-
-#include
-#include
-#include
-
-// 此处是为了响应在QTableWidget中的表头进行下拉选择(支持多选)而做的三个类。
-// 其中QHeaderViewEx是表头,点中其某一列时,创建QHeaderComboBoxEx,而QHeaderComboBoxEx
-// 内部又设置了view为QListViewEx
-
-// 此处是为了响应在QTableWidget中的表头进行下拉选择(支持多选)而做的三个类。
-// 其中ZxHeaderViewEx是表头,点中其某一列时,
-// 创建ZxHeaderComboBoxEx,而ZxHeaderComboBoxEx
-// 内部又设置了view为ZxListViewEx
-// 所以ZxHeaderViewEx、ZxHeaderComboBoxEx、ZxListViewEx为一组
-// 该组实现了表头的Radio选择(单选)
-// 而原来的QHeaderViewEx、ZxTableHeaderViewCbx、QListViewEx为一组
-// 这一组实现了表头的Check选择(多选)
-
-// 表头HeaderView
-class I_PLUGIN_EXPORT ZxTableHeaderView : public QHeaderView
-{
- Q_OBJECT
-public:
- ZxTableHeaderView(const QStringList& lstStrText, QWidget *parent = 0);
- ~ZxTableHeaderView();
-
- // 设置表头下拉列表取值
- void setColumnItems(const QStringList& lstFields, const QStringList& lstAlls);
-
- // 设置Titles
- void changeTitles(QStringList listTitles);
-
-public Q_SLOTS:
-
- // 选择改变时响应
- void slotSelChanged(const int, const QStringList);
-
- // 处理表头单元缩放事件
- void handleSectionResized(int index);
-
-signals:
- void sigGetColumnItems(int index);
- void sigSelChanged(const int, const QStringList);
-
-protected:
-
- // 重置表头combo控件大小
- void resizeItem(int index);
-
- // 删除comboBox控件
- void removeCombo();
-
- // 处理鼠标单击消息
- void mouseReleaseEvent(QMouseEvent *e);
- void mousePressEvent(QMouseEvent *e);
-
- // 重绘,此处有待完善,目前是没有版本,直接把父类搬过来了。
- void paintSection(QPainter* painter, const QRect &rect, int logicalIndex) const;
-
-private:
- QStringList m_lstHeaderTexts; //标题
- QStringList m_lstComboxText; ///< 下拉列表中显示表头列表,当前选中的
- QStringList m_lstComboxTextAll;///< 下拉列表中显示表头列表,所有的
- QComboBox* m_pCbxSel; ///< 表头下拉列表控件
- int m_nCurIndex; ///< 被选中的表头单元ID
-};
-
-
-
diff --git a/Include/iBase/iPlugin/ZxTableHeaderViewCbx.h.bak b/Include/iBase/iPlugin/ZxTableHeaderViewCbx.h.bak
deleted file mode 100644
index d049e67..0000000
--- a/Include/iBase/iPlugin/ZxTableHeaderViewCbx.h.bak
+++ /dev/null
@@ -1,32 +0,0 @@
-#pragma once
-
-#include "ZxTableHeaderViewCbxView.h"
-
-// 自定义Combobox 失去焦点是能够自动隐藏
-class I_PLUGIN_EXPORT ZxTableHeaderViewCbx :public QComboBox
-{
- Q_OBJECT
-public:
- explicit ZxTableHeaderViewCbx(QWidget *parent = 0);
- ~ZxTableHeaderViewCbx();
-public:
-
- // hidePopup 重写隐藏下拉列表
- void hidePopup();
-
- // 所在列索引
- void setColumnIndex(int nIndex);
-
-protected:
-
- //重写失去焦点事件
- void focusOutEvent(QFocusEvent *e);
-
-signals:
- // 选择改变
- void sigSelChanged(const int, const QStringList);
-
-private:
- // 列索引
- int m_nCurIndex;
-};
diff --git a/Include/iBase/iPlugin/ZxTableView.h b/Include/iBase/iPlugin/ZxTableView.h
index e618318..6e44541 100644
--- a/Include/iBase/iPlugin/ZxTableView.h
+++ b/Include/iBase/iPlugin/ZxTableView.h
@@ -95,7 +95,7 @@ protected:
public slots:
// 右键
- virtual void slotCustomContextMenu(const QPoint &pos);
+ virtual void slotCustomContextMenu(const QPoint& pos);
// 插入行列、删除行列
virtual void slotInsertRowsAbove(); //批量插入行
diff --git a/Include/iBase/iPlugin/ZxUiBase.h b/Include/iBase/iPlugin/ZxUiBase.h
index ba02d21..220ae8c 100644
--- a/Include/iBase/iPlugin/ZxUiBase.h
+++ b/Include/iBase/iPlugin/ZxUiBase.h
@@ -135,4 +135,10 @@ protected:
// 是否启用新的样式表,ZXF202407
bool m_bNovelQss;
+
+ // 新增,是否自动绘制背景图 20260605
+ // 默认设为true,外部可改
+ // 当为true且m_bNovelQss为false且背景图片存在时,
+ // 则自动填充背景图
+ bool m_bAutoFillBackImg;
};
diff --git a/Include/iBase/iProperty/ZxPtyDock.h.bak b/Include/iBase/iProperty/ZxPtyDock.h.bak
deleted file mode 100644
index ca19109..0000000
--- a/Include/iBase/iProperty/ZxPtyDock.h.bak
+++ /dev/null
@@ -1,115 +0,0 @@
-#pragma once
-
-#include
-#include
-#include
-#include
-#include
-#include "ZxPtyItem.h"
-#include "iProperty_global.h"
-#include "ZxBaseUtil.h"
-#include "zxLogInstance.h"
-
-class QTextEdit;
-
-class I_PROPERTY_EXPORT ZxPtyDock : public QDockWidget
- , virtual public IxPtyPano
- , virtual public IxDynObj
-{
- Q_OBJECT
- ZX_DECLARE_DYNAMIC
-
-public:
-
- explicit ZxPtyDock(bool bShowBtns = false);
-
-public:
-
- virtual IxPtyItem* addGroup(const QString& key,
- bool expand = true,
- bool visible = true);
- virtual IxPtyItem* add(ZX_PROPERTY_CHANGED_CALLBACK callback,
- const QString& key,
- const QVariant& var,
- IxPtyItem::ItemType type = IxPtyItem::typeDefault);
-
- virtual void beginSession(const QString& configName,
- IxInterface* pSessionOwner);
- virtual void endSession();
-
- virtual void beginObject(IxPtySource* p);
- virtual void endObject();
-
- virtual IxPtyItem* findPropertyItem(const QString& sKey);
-
- virtual void clear(IxInterface* pSessionOwner = 0);
-
- // 封装,仅仅为外界调用方便
- void loadTemplOfCurItem();
- void saveTemplOfCurItem();
-
-signals:
- void sigItemPropertyTempl(IxPtySource*, bool b, bool bSelf);
-
-protected slots:
-
- void onHelpMessage(const QString& help);
- void changeEvent(QEvent* e);
-
- //void slotLoadTempl();
- void slotSaveTempl_Self();
- void slotSaveTempl_All();
-
-private:
-
- void initUI();
-
-protected:
-
- IxPtyPano* m_pSheet;
- QTextEdit* m_pHelpBox;
-
- bool m_bShowBtns; //是否显示Btns
-
- // 是否启用新的样式表,ZXF202407
- bool m_bNovelQss;
-};
-
-/// @brief 该类主要目的就是为了属性页的透明显示
-class I_PROPERTY_EXPORT QWidgetTemp : public QDialog
-{
- Q_OBJECT
-
-public:
- explicit QWidgetTemp(bool bNovelQss, QWidget *parent = 0)
- : QDialog(parent)
- {
- //
- if (bNovelQss)
- {
- return;
- }
- setAutoFillBackground(true);
-
- QString sName = QString("Image/%1_Pty.png").arg(zxAppID);
- QString sImg = ZxBaseUtil::getDirOf(s_Dir_Res) + sName;
- QString s = QString("QWidgetTemp {border-image: url(%1);}").arg(sImg);
- setStyleSheet(s);
- }
-
-protected:
-
- // paint
- virtual void paintEvent(QPaintEvent *)
- {
- QStyleOption opt;
- opt.init(this);
- QPainter p(this);
- style()->drawPrimitive(QStyle::PE_Widget, &opt, &p, this);
- }
-};
-
-
-
-
-
diff --git a/Include/iBase/iProperty/ZxXpfHelper.h b/Include/iBase/iProperty/ZxXpfHelper.h
deleted file mode 100644
index f176d7a..0000000
--- a/Include/iBase/iProperty/ZxXpfHelper.h
+++ /dev/null
@@ -1,18 +0,0 @@
-#pragma once
-
-#include "iProperty_global.h"
-#include "ZxXpf.h"
-
-// Xpf文件格式Helper
-class I_PROPERTY_EXPORT ZxXpfHelper
-{
-public:
- static bool getMinMax(ZxXpfNode* node, int& nMin, int& nMax, \
- int nDefaultMin = 0xFFFFFFFF, int nDefaultMax = 0x7FFFFFFF);
- static bool getMinMax(ZxXpfNode* node, double& fMin, double& fMax, \
- double fDefaultMin = -1e100, double fDefaultMax = 1e100);
-};
-
-
-
-
diff --git a/Include/iBase/iUtils/ZxScaleHelper.h b/Include/iBase/iUtils/ZxScaleHelper.h
index b6eb91b..7d10484 100644
--- a/Include/iBase/iUtils/ZxScaleHelper.h
+++ b/Include/iBase/iUtils/ZxScaleHelper.h
@@ -30,6 +30,7 @@ private:
// 内部接口(目前刻度计算函数,还有待较大完善空间)
bool checkReverse();
+ void normalizeRange();
bool checkSameValue();
bool checkLogicalZero();
void adjustIncrease(double& d, double& dMin);
diff --git a/Include/iData/iSysUtils/iSysParaSpHelper.h b/Include/iData/iSysUtils/iSysParaSpHelper.h
index d6f241d..456bba9 100644
--- a/Include/iData/iSysUtils/iSysParaSpHelper.h
+++ b/Include/iData/iSysUtils/iSysParaSpHelper.h
@@ -26,8 +26,8 @@ public:
// 筛选参数
bool filterParasBy(QVector& vec, \
- QString sSerie, QString sWbs, \
- QString sWelTag, QString sResTag);
+ QString sSerie, QString sWbsCode, \
+ QString sWelCode, QString sResCode);
private:
diff --git a/Include/iData/iSysUtils/zxSysUtils.h.bak b/Include/iData/iSysUtils/zxSysUtils.h.bak
deleted file mode 100644
index e6a7db5..0000000
--- a/Include/iData/iSysUtils/zxSysUtils.h.bak
+++ /dev/null
@@ -1,143 +0,0 @@
-#pragma once
-
-#include "Defines.h"
-
-#include "iXmlTable.h"
-#include "iXmlAlias.h"
-#include "iModelInfoBase.h"
-#include "iModelInfo.h"
-#include "iModelDescGroup.h"
-#include "iParameterGroup.h"
-#include "iParameterGroupSp.h"
-#include "iPvtParaItemGroup.h"
-#include "iIprAlgItemGroup.h"
-#include "iUnitGroup.h"
-
-#include "IxDynObj.h"
-
-#include "iXmlBtn.h"
-#include "iXmlCmds.h"
-#include "iSpeciParam.h"
-
-#include "iSysUtils_global.h"
-#include "iXmlCurveDictConfig.h"
-
-class I_SYSUTILS_EXPORT zxSysUtils
-{
-public:
-
- // 获取对象,单例模式
- static zxSysUtils* getInstance();
-
- // 关闭消耗
- static void release();
-
- // 状态栏相关
- static void setStatusLabel(QLabel* pStatusLabel);
- void setStatusText(QString sText, int nLevel = 0);
-
- // 当前井、项目、作业
- static void setCurProject(IxDynObj* p);
- static IxDynObj* getCurProject();
- static void setCurWell(IxDynObj* p);
- static IxDynObj* getCurWell();
- static void setCurJobRun(QObject* p);
- static QObject* getCurJobRun();
-
- // 对Setting进行统一管理,保存窗口状态用
- QSettings* getWndSettings(QString& sWndKey, bool bResetIfExists = false);
-
- // 加载TableStruct
- bool loadTableStructs(QString sFile);
-
- // 加载Models
- bool loadModelInfos(QString sFile /*= ""*/);
- bool loadModelWelInfos(QString sFile);
- bool loadModelResInfos(QString sFile);
- bool loadModelDescInfos(QString sFile);
- // 加载Parameters
- bool loadParaDefines(QString sFile /*= ""*/, QString sFileEx = "");
-
- // 加载PvtMethod
- bool loadPvtParaItems(QString sFile /*= ""*/);
- bool loadIprAlgItems(QString sFile /*= ""*/);
-
- // 特殊参数
- bool loadSpeciParamInfos(QString sFile /*= ""*/);
-
- // 加载BtnCmds
- bool loadBtnCmdInfos(QString sFile /*= ""*/);
- bool parseBtnCmd2ToolBar(QToolBar* p, QString sType, int nOption = -1, int wh = -1);
- bool parseBtnCmdID2ToolBar(QToolBar* p, QStringList listIDs, int wh);
- QString getCmdNameByID(QString sCmdID);
-
- // 加载Unit
- bool loadUnitInfos(QString sFile /*= ""*/);
-
- // 曲线字典
- bool loadCurveDictionaryInfos(QString sFile /*= ""*/);
-
- // 字段别名
- bool loadAliasTablesInfos(QString sFile /*= ""*/);
-
-
- /// @brief 对于单位控件的修改
- /// @param sPara可以英文、可以中文,查找英文优先
- /// @param pTbxValue默认值填写上,不能为空
- /// @param pCbxUnit单位下拉,可以为空
- void loadAndFillWithDefault(QString sPara,
- QLineEdit* pTbxValue,
- QComboBox* pCbxUnit,
- double& fDefaultValue,
- QString& sCurUnit);
-
- // 获取参数单位,为了一点点性能,可以英文、可以中文,查找英文优先
- QString getUnitOfPara(QString sPara);
-
-private:
-
- zxSysUtils();
- ~zxSysUtils();
-
-private:
-
- static zxSysUtils* m_pSysInstance;
- static QLabel* m_pStatusLabel;
- static IxDynObj* m_pCurWell;
- static IxDynObj* m_pCurProject;
- static QObject* m_pCurJobRun;
-
-public:
-
- // 各种参数缓存,一旦成功加载,即可作为全局变量进行使用
-
- vecXmlTablesPtr m_vecXmlTables;
- vecXmlAliasTablesPtr m_vecXmlAliasTables;
- vecXmlCurveItemsPtr m_vecCurveDict;
-
- vecModelInfoBasesPtr m_vecModelWbss;
- vecModelInfoBasesPtr m_vecModelWels;
- vecModelInfoBasesPtr m_vecModelRess;
- vecModelInfoBasesPtr m_vecModelBdys;
- vecModelDescGroupsPtr m_vecModelGroups;
-
- //新的模型模式下加载
- vecModelInfosPtr m_vecWelModels;
- vecModelInfosPtr m_vecResModels;
- vecModelDescInfosPtr m_vecModelDescs;
-
-
-
- vecXmlCmdGroupsPtr m_vecCmdInfos;
- vecXmlBtnsPtr m_vecBtnInfos;
-
- vecParameterGroupsPtr m_vecParaGroups;
- vecParameterGroupSpsPtr m_vecParaGroupSps;
- vecPvtParaItemGroupsPtr m_vecPvtParaItemGroups;
-
- vecIprAlgItemGroupsPtr m_vecIprAlgItemGroups;
- vecUnitGroupPtr m_vecUnitGroups;
- vecParamPtr m_vecSpeciParam;
-
- QMap m_mapParaUnits;
-};
diff --git a/Include/iData/iXmlManager/Models/iModelDesc.h.bak b/Include/iData/iXmlManager/Models/iModelDesc.h.bak
deleted file mode 100644
index 6d51846..0000000
--- a/Include/iData/iXmlManager/Models/iModelDesc.h.bak
+++ /dev/null
@@ -1,52 +0,0 @@
-#pragma once
-
-#include "iModelInfoBase.h"
-
-class iModelInfoWbs;
-class iModelInfoWel;
-class iModelInfoRes;
-class iModelInfoBdy;
-
-/// @brief 模型描述,每一行的内容
-class I_XMLMANAGER_EXPORT iModelDesc : public iModelInfoBase
-{
- Q_OBJECT
-
-public:
-
- iModelDesc(QObject* parent = 0);
- ~iModelDesc();
-
- // 把List分配到成员变量
- // 输入开始的m_listValues中index,并且返回下一个index
- virtual int allocateInfo(int nIndex);
-
- // 追加公共
- void appendCommons(QString sInputs, QString sOutputs);
- QStringList changeStrList(QStringList listOld, QString sNew);
-
- // 序列化
- virtual void onSerialize(ZxSerializer* ser);
- virtual void onDeserialize(ZxSerializer* ser);
-
-protected:
-
- virtual void initXmlTags();
-
-public:
-
- QStringList m_listInputs; //输入
- QStringList m_listOutputs; //输出
-
- QString m_sSerie;
- QString m_sWel; //井型
- QString m_sRes; //油藏模型
-
- // 对应指针
-// iModelInfoWbs* m_pWbs; //暂时不用
- iModelInfoWel* m_pWel;
- iModelInfoRes* m_pRes;
-// iModelInfoBdy* m_pBdy; //暂时不用
-};
-
-typedef QVector vecModelDescsPtr;
diff --git a/Include/iData/iXmlManager/Models/iModelInfo.h.bak b/Include/iData/iXmlManager/Models/iModelInfo.h.bak
deleted file mode 100644
index 7fa6cb8..0000000
--- a/Include/iData/iXmlManager/Models/iModelInfo.h.bak
+++ /dev/null
@@ -1,90 +0,0 @@
-#pragma once
-
-#include "Defines.h"
-#include "iXmlBaseItem.h"
-
-/// @brief 模型信息基础20241105
-class I_XMLMANAGER_EXPORT iModelInfo : public iXmlBaseItem
-{
- Q_OBJECT
-
-public:
-
- iModelInfo(QObject* parent = 0);
- ~iModelInfo();
-
- // 解析xml节点到List
- virtual void parseInfo(const QDomElement& e);
- // 把List分配到成员变量
- // 输入开始的m_listValues中index,并且返回下一个index
- virtual int allocateInfo(int nIndex);
-
- // 备份恢复
- virtual bool saveBk();
- virtual bool restoreBk();
-
- // 序列化
- virtual void onSerialize(ZxSerializer* ser);
- virtual void onDeserialize(ZxSerializer* ser);
- //得到所有的子项
- QStringList getSubItems();
- //得到子项ID
- QString getSubItemID(QStringList list);
- //得到DefaultID根据一层一层获取ID
- QString getSelModelID();
-protected:
-
- virtual void initXmlTags();
-
-public:
- QString m_sEnName;
- //子项的Tag
- QString m_sSubLabel;
- //子项类型<< "" << "ComboBox" << "CheckBox" << "RadioBt" ;
- //为空时候就是没有子项
- QString m_sSubType;
- //
- QString m_sDefaultTag;
- //子项
- QVector m_vecModelInfosPtr;
-};
-
-typedef QVector vecModelInfosPtr;
-
-//组合文件
-class I_XMLMANAGER_EXPORT iModelDescInfo : public iXmlBaseItem
-{
- Q_OBJECT
-
-public:
-
- iModelDescInfo(QObject* parent = 0);
- ~iModelDescInfo();
-
- // 把List分配到成员变量
- // 输入开始的m_listValues中index,并且返回下一个index
- virtual int allocateInfo(int nIndex);
-
- // 备份恢复
- virtual bool saveBk();
- virtual bool restoreBk();
-
- // 序列化
- virtual void onSerialize(ZxSerializer* ser);
- virtual void onDeserialize(ZxSerializer* ser);
- //得到所有参数
- QStringList getParams();
-protected:
-
- virtual void initXmlTags();
-
-public:
- QString m_sWelModelID;
- QString m_sResModelID;
- QString m_sSeries;
- QString m_sParams;
- QString m_sEixtWel;
- QString m_sEixtRes;
-};
-
-typedef QVector vecModelDescInfosPtr;
diff --git a/Include/iData/iXmlManager/Models/iModelInfoBase.h.bak b/Include/iData/iXmlManager/Models/iModelInfoBase.h.bak
deleted file mode 100644
index c4333c9..0000000
--- a/Include/iData/iXmlManager/Models/iModelInfoBase.h.bak
+++ /dev/null
@@ -1,73 +0,0 @@
-#pragma once
-
-#include "Defines.h"
-#include "iXmlBaseItem.h"
-
-/// @brief 模型信息基础
-class I_XMLMANAGER_EXPORT iModelInfoBase : public iXmlBaseItem
-{
- Q_OBJECT
-
-public:
-
- iModelInfoBase(QObject* parent = 0);
- ~iModelInfoBase();
-
- // 把List分配到成员变量
- // 输入开始的m_listValues中index,并且返回下一个index
- virtual int allocateInfo(int nIndex);
-
- // 备份恢复
- virtual bool saveBk();
- virtual bool restoreBk();
-
- // 序列化
- virtual void onSerialize(ZxSerializer* ser);
- virtual void onDeserialize(ZxSerializer* ser);
-
- // Super其实就是Parent,只是QObject本身有了Parent接口
- // 没有直接用QObject的parent接口原因是,其child接口不太友好,不方便应用
- //virtual iModelInfoBase* getSuper();
- //virtual void setSuper(iModelInfoBase* p);
-
-protected:
-
- virtual void initXmlTags();
-
-public:
-
- QString m_sAlias; //中文名称
- QString m_sSimpleAlias;//由于可能分组,显示是简写,所以增加名称简称
- QString m_sIcon; //图标
- QString m_sFig; //图片
- QString m_sTips; //备注
-
- // 20171120添加
- // m_listTags << "NotFitted" << "UseMode" << "ExtInfos";
- bool m_bNotFitted; //不参与拟合,界面上灰色显示
- ParaUseMode m_oUseMode;// 应用场合:ParaUseMode
- QStringList m_listExtInfos;//下拉内容
- // 如: "封闭;气顶" "封闭;底水"
- // 请注意 半角;分割
-
- // 目前仅仅针对聚合物有效,
- // 即聚合物中增加了 常规模型 的油藏类型
- // 即 常规模型 对于 聚合物来讲,属于Brother
- bool m_bBrother;
-
- // 与其它参数的关系验证,如 Alias="二区半径" ValidateStr="GT:R1"
- QString m_sValidateStr;
-
- // 20240814增加层级支持,临时,不涉及序列化
- //QVector m_vecChildren;
- //iModelInfoBase* m_pParent;
-
- // 20240930新增,暂时不涉及xml文件节点的解析
- QVariant m_oValue; //数值(支持类型不限,后续需要完善)
- bool m_bValid; //是否有效
- bool m_bVisible; //是否可见
- //新增码对外接口例如Wel010001西安
- QString m_sExiID;
-};
-
-typedef QVector vecModelInfoBasesPtr;
diff --git a/Include/iData/iXmlManager/Models/iModelInfoWbs.h.autosave b/Include/iData/iXmlManager/Models/iModelInfoWbs.h.autosave
deleted file mode 100644
index f114f5f..0000000
--- a/Include/iData/iXmlManager/Models/iModelInfoWbs.h.autosave
+++ /dev/null
@@ -1,28 +0,0 @@
-#pragma once
-
-#include "iModelInfoBase.h"
-
-/// @brief WBS井储
-class I_XMLMANAGER_EXPORT iModelInfoWbs : public iModelInfoBase
-{
-public:
-
- iModelInfoWbs();
- ~iModelInfoWbs();
-
- // 把List分配到成员变量
- // 输入开始的m_listValues中index,并且返回下一个index
- virtual int allocateInfo(int nIndex);
-
- // 序列化
- virtual void onSerialize(ZxSerializer* ser);
- virtual void onDeserialize(ZxSerializer* ser);
-
-protected:
- virtual void initXmlTags();
-
-public:
- // QString m_sWaste; //测试
-
- QStringList m_listParas; //井储参数
-};
diff --git a/Include/iData/iXmlManager/iXmlUtilModels.h.bak b/Include/iData/iXmlManager/iXmlUtilModels.h.bak
deleted file mode 100644
index d233d74..0000000
--- a/Include/iData/iXmlManager/iXmlUtilModels.h.bak
+++ /dev/null
@@ -1,42 +0,0 @@
-#pragma once
-
-#include "iXmlTable.h"
-#include "iModelInfoBase.h"
-#include "iModelDescGroup.h"
-#include "iParameterGroup.h"
-#include "iXmlUtilBase.h"
-
-// 加载模型结构体
-class I_XMLMANAGER_EXPORT iXmlUtilModels : public iXmlUtilBase
-{
-public:
-
- /// @brief 加载模型结构体
- /// @param pVecWbs...各种不同的模型结构体。
- /// 如果不想解析某一参数,直接传入NULL即可
- /// @param sFile:Xml对应文件
- static bool loadStructs(vecModelInfoBasesPtr* pVecWbs,
- vecModelInfoBasesPtr* pVecWel,
- vecModelInfoBasesPtr* pVecRes,
- vecModelInfoBasesPtr* pVecBdy,
- vecModelDescGroupsPtr*& pVecGroups,
- QString sFile);
-
-private:
-
- // 加载
- static bool parseInfos(QDomElement& root, QString sKey, \
- vecModelInfoBasesPtr* pVec, int nOption);
- static bool parseInfoExs(QDomElement& root, QString sKey, \
- vecModelDescGroupsPtr* pVec);
- static bool parseInfoParas(QDomElement& root, QString sKey, \
- QMap& mapParas);
-
- // 关联Group中Desc的信息
- static bool bindModelInfos(vecModelDescGroupsPtr* pVecGroups,
- vecModelInfoBasesPtr* pVecWbs,
- vecModelInfoBasesPtr* pVecWel,
- vecModelInfoBasesPtr* pVecRes,
- vecModelInfoBasesPtr* pVecBdy);
-
-};
diff --git a/Include/iGui/iGuiGridPty/iBdyInfo.h.bak b/Include/iGui/iGuiGridPty/iBdyInfo.h.bak
deleted file mode 100644
index 2397c95..0000000
--- a/Include/iGui/iGuiGridPty/iBdyInfo.h.bak
+++ /dev/null
@@ -1,36 +0,0 @@
-#pragma once
-
-#include "iGuiGridPty_global.h"
-
-// 该类只是为了方便进行边界相关信息的处理
-// 进行边界类型信息的扩展而新增
-//边界位置(是在井位上的位置)
-enum eBdyPosType
-{
- BYP_Left = 0,
- BYP_Right,
- BYP_Top,
- BYP_Bottom,
- BYP_Cricle,
- BYP_None
-};
-
-class X_GUI_GRIDPTY_EXPORT iBdyInfo
-{
-public:
-
- iBdyInfo();
-
-public:
-
- QString m_sName; //对应的英文标识,如:x1,ne,se等
- QString m_sAlias; //对应的中文标识,如:边界距离1,上边界等
-
- double m_dValue; //距离
- QString m_sType; //类型,封闭 tr("CloseB")、定压 tr("FixP"),后续可以扩充为其他
-
- bool m_bValid; //是否有效
-
- eBdyPosType m_ePosType;
-};
-typedef QVector VecBdyInfos;
diff --git a/Include/iGui/iGuiGridPty/iGridResultUtils.h b/Include/iGui/iGuiGridPty/iGridResultUtils.h
index 240e947..ecda15f 100644
--- a/Include/iGui/iGuiGridPty/iGridResultUtils.h
+++ b/Include/iGui/iGuiGridPty/iGridResultUtils.h
@@ -114,6 +114,10 @@ protected:
virtual void resizeEvent(QResizeEvent *);
+public:
+
+ void onSizeChanged();
+
protected:
virtual void paintEvent(QPaintEvent*);
diff --git a/Include/iGui/iGuiGridPty/iGridRowGroupBdy.h.bak b/Include/iGui/iGuiGridPty/iGridRowGroupBdy.h.bak
deleted file mode 100644
index 1cc9821..0000000
--- a/Include/iGui/iGuiGridPty/iGridRowGroupBdy.h.bak
+++ /dev/null
@@ -1,65 +0,0 @@
-#pragma once
-
-#include "iGridRowGroup.h"
-
-class iBdyInfo;
-
-// 边界分组的特殊处理
-class X_GUI_GRIDPTY_EXPORT iGridRowGroupBdy : public iGridRowGroup
-{
- Q_OBJECT
-
-public:
-
- explicit iGridRowGroupBdy(iGridRowItem* pParent = NULL);
- ~iGridRowGroupBdy();
-
-public:
-
- // 序列化
- virtual void onSerialize(ZxSerializer* ser);
- virtual void onDeserialize(ZxSerializer* ser);
-
- // 控件
- virtual void initEditor();
- virtual void setDlgBase(QWidget* p);
- virtual void configEditor();
- virtual void initOtherEditors();
-
- // 范围
- virtual void setBounds(QRectF& rt);//全局
- virtual QRectF getRightBounds_Main();//右
-
-signals:
-
- /// @brief 触发边界信息改变,比如修改平行边界,由上下改为左右
- /// @param pItem: (in) 当前的GroupItem,其实即是本类iGridRowGroupBdy
- /// @param vvec: (in & out) 边界信息数据
- /// @param bModified: (out) 是否正确触发且vvec发生改变
- void sigBdyDetails(iGridRowItem* pItem, \
- QVector< iBdyInfo* >& vvec, \
- bool& bModified);
-
-public slots:
-
- virtual void slotBdyDetails();
-
-public:
-
- // 绘图
- virtual void paint(QPainter* pPainter);
-
-protected:
-// virtual void paintGroup(QPainter* pPainter, int nCountVisible);
-// virtual void paintItem(QPainter* pPainter);
-// virtual void _paintItemTag(QPainter* pPainter, QString s);
- virtual void _paintItemValue(QPainter* pPainter);
-// virtual void _paintItemIcon(QPainter* pPainter);
-// virtual void _paintItemGrid(QPainter* pPainter);
-
-private:
-
-protected:
-
- QPushButton* m_pBtn;
-};
diff --git a/Include/iGui/iGuiGridPty/iGridRowItem.h.bak b/Include/iGui/iGuiGridPty/iGridRowItem.h.bak
deleted file mode 100644
index a353782..0000000
--- a/Include/iGui/iGuiGridPty/iGridRowItem.h.bak
+++ /dev/null
@@ -1,235 +0,0 @@
-#pragma once
-
-#include "iDlgBase.h"
-#include "iResultInfo.h"
-#include "iGuiGridPty_global.h"
-
-class iUnitGroup;
-
-// 参数区每一项Item的基类
-class X_GUI_GRIDPTY_EXPORT iGridRowItem : public QObject
-{
- Q_OBJECT
-
-public:
-
- explicit iGridRowItem(iGridRowItem* pParent = NULL);
- ~iGridRowItem();
-
-public:
-
- // 序列化
- virtual void onSerialize(ZxSerializer* ser);
- virtual void onDeserialize(ZxSerializer* ser);
-
- // 父子关系处理
- virtual void setDlgBase(QWidget* p);//父窗体、位置控制
- iGridRowItem* getParent(); //父
- bool isParentCollapsed(); //父级节点是否折叠
- int appendChild(iGridRowItem* p); //添加孩子
- int getChildCount(); //孩子数目
- int getChildVisibleCount(); //可见的孩子数目
- iGridRowItem* getChildAt(int n); //获取
- void removeAllChilds(); //Clear
- bool getAllItems(QVector& vec);//不考虑层级
- int getItemLevel(); //获取层次级别
- iGridRowItem* getActiveItem(); //当前节点及孩子中的Active节点
-
-public:
-
- // 管理子控件
- virtual void initEditor();
- virtual void initOtherEditors();
- virtual void hideEditors();
- virtual void configEditor();
- virtual QString getEditorCss(bool bValid);
- virtual QWidget* getMainEditor();
-
- // 位置相关Bounds
- virtual void setBounds(QRectF& rt); //全局
- virtual QRectF getBounds(); //
- virtual QRectF getLeftBounds(); //左
- virtual QRectF getRightBounds_Main();//右
- virtual QRectF getIconBound(); //Icon的Bound
- virtual void setSplitPos(double f); //中间分隔
- virtual double getItemHeight(); //当前节点高度,包括孩子
-
-public:
-
- // 绘图
- virtual void paint(QPainter* pPainter);
-
-protected:
- virtual void paintGroup(QPainter* pPainter, int nCountVisible);
- virtual void paintItem(QPainter* pPainter);
- virtual void _paintItemTag(QPainter* pPainter, QString s);
- virtual void _paintItemValue(QPainter* pPainter);
- virtual void _paintItemIcon(QPainter* pPainter);
- virtual void _paintItemGrid(QPainter* pPainter);
-
-public:
-
- // 属性set/get
- bool isShowAsResult();
- virtual void setShowAsResult(bool b);
- bool isExpanded();
- virtual void setExpanded(bool b);
- bool isVisible();
- virtual void setVisible(bool b);
- bool isActive();
- virtual void setActive(bool b);
- bool isReadonly();
- virtual void setReadonly(bool b);
- virtual void onItemDoubleCliked(GridTickPos o);
-
-public:
-
- // HitTest
- virtual bool hitTest(QPoint pt, GridTickPos& ht, \
- iGridRowItem*& pItem);
- virtual bool hitTest_SelfOnly(QPoint pt, GridTickPos& ht, \
- iGridRowItem*& pItem);
-
-signals:
-
- void sigUnableSP(bool&);
- void sigValueChanged(QString sPara, QVariant o);
- /// @brief 触发参数改变,允许外界进行更改
- /// @param o1: 主要数据,m_oRawValue
- /// @param o2: 辅助数据,如Cbx的下拉填充内容QStringList
- void sigValuePrevChanged(QVariant& o1, QVariant& o2);
- void sigActiveItem(iGridRowItem*);
- // 获取其它参数当前的数值
- void sigGetValueOf(QString sPara, QVariant& o, bool& bOk);
-
- // 是否启用正则验证,比如,直角边界,第一个边界要大于井长/2,只有点源才支持
- void sigOuterValidate(QString sPara, QVariant o, bool& bValid, bool& bSet);
-
-protected slots:
-
- // QLineEdit 类型的数据change响应
- virtual void slotItemValueChanged(QString s);
- virtual void slotItemNeedActivate(bool);
-
-public:
-
- // 设置各个参数
-
- iParameter* getParameter(); //参数体
- virtual void setParameter(iParameter* p);
-
- QString getTag(); //左侧标识
- virtual void setTagInner(QString sTag);
- QString getTagInner();
- virtual void setTagOuter(QString sTag); //允许外界直接传递,进行更改
- QString getTagOuter();
- QString getTagEx(); //左侧标识,增加一级处理
- QString getTips();
-
- QString getName(); //Name
- QString getNameInner();
- virtual void setNameInner(QString s);
-
- // 该基类默认按double进行实现
- virtual bool setCurValue(QVariant o);//现值
- virtual QVariant getCurValue();
- virtual QString getShowValue(); //非激活时显示在右侧的文本
-
- // 原值,请在setParameter之前调用
- virtual void setRawValue(QVariant o);
- QVariant getRawValue();
-
- // 数据范围
- virtual QString getParaScales();
-
- // 对于Editor的范围及颜色管理
- virtual void checkAndClr();
- // 获取范围
- virtual bool getMaxMin(double& fMax, double& fMin);
-
- // 最后的结果输出
- virtual QString getInfoLeft();
- virtual QVariant getInfoRight();
- virtual QString getInfoUnit();
- virtual bool isInputOk();
- virtual bool isValidateOk(double f);//正则验证是否正确
-
- // 20240704 新增接口
- // 主要是设计类似流动段这类复合Item的序列化相关
- virtual bool checkAndSetParaValue(QString sPara, QVariant o);
- virtual bool checkAndGetParaValue(QString sPara, QVariant& o);
- // 返回所有参数,Key为英文ID
- virtual bool checkAndGetSubParaValues(QMap& map,
- bool bOnlyFitted = false,
- bool bClearMap = true);
- virtual bool checkAndGetSubParaUnits(QMap& map,
- bool bOnlyFitted = false,
- bool bClearMap = true);
- virtual bool checkAndOrgaSubResults(QVector& vec, QString sType);
-
- virtual void organizeResult(iResultInfo& o, QString sType);
-
-protected:
-
- // 对于只读等属性的管理
- virtual void openItemPty(); //赋值前打开
- virtual void restoreItemPty();//赋值后恢复
-
- virtual bool isUnableSP();
- virtual void activateItemChanged(QVariant o);
-
-protected:
-
- // 对应的参数
- iParameter* m_pParameter;
- QString m_sNameInner; //这是内部的Name,包括流动段相关的1,2,3
- QString m_sTagInner;
- QString m_sTagOuter;
-
- QVariant m_oRawValue; //原始值
- QString m_sRawUnit; //原始单位
- int m_nDigit; //小数位数
-
- iUnitGroup* m_pUnitGroup;//载体
-
- // 父子关系
- QWidget* m_pDlgBase; //承载的Wx
- iGridRowItem* m_pParent; //父级节点
- QVector m_vecChildren; //孩子节点
-
- // 内嵌组件
- QWidget* m_pEditor;
- QVector m_vecEditors;
-
- // 状态
- bool m_bVisible;
- bool m_bActive;
- bool m_bExpanded;
-
- // 20181228与参数载体的readonly不是一回事
- // 允许外界动态修改
- bool m_bReadonly;
-
- // 位置信息
- QRectF m_rtBounds;
- double m_fSplitPos;
-
- // Group模式的背景色
- QColor m_vecBackColors[3];
-
- // 图标
- QPixmap m_oPixCollapse;
- QPixmap m_oPixExpand;
-
- // 导出时是否显示,对于组默认不显示,但流动段特殊
- bool m_bShowAsResult;
-
-public:
-
- // 其它常量
- double m_fIconWidth;
- double m_fIconMarginH;
- double m_fIconMarginV;
- double m_fRowHeight;
- double m_fSplitPading;
-};
diff --git a/Include/iGui/iGuiGridPty/iGridRowItemSeg.h b/Include/iGui/iGuiGridPty/iGridRowItemSeg.h
deleted file mode 100644
index b004053..0000000
--- a/Include/iGui/iGuiGridPty/iGridRowItemSeg.h
+++ /dev/null
@@ -1,69 +0,0 @@
-#pragma once
-
-#include "iGridRowItemUnt.h"
-
-// 流动段数、产液段数
-class iParameterSeg;
-class X_GUI_GRIDPTY_EXPORT iGridRowItemSeg :
- public iGridRowItemUnt
-{
- Q_OBJECT
-
-public:
-
- explicit iGridRowItemSeg(iGridRowItem* pParent = nullptr);
- ~iGridRowItemSeg();
-
-public:
-
- // 序列化
- virtual void onSerialize(ZxSerializer* ser);
- virtual void onDeserialize(ZxSerializer* ser);
-
- // 控件
- virtual void initEditor();
- virtual void configEditor();
- virtual void initOtherEditors();
-
- // 范围
- virtual void setBounds(QRectF& rt);//全局
- virtual QRectF getRightBounds_Main();//右
-
- // 关联绑定的Item,长度
- virtual void setLenAll(double d);
- virtual void setBrotherItem(iGridRowItem* p);
- // 关联绑定的产量
- virtual void setNqQAll(double d);
- // 刷新
- // n:段数
- virtual void freshSubChild(int n, bool bBySegCount);
-
- // 对于Editor的范围及颜色管理
- virtual void checkAndClr();
- virtual QString getEditorCss(bool bValid);
- virtual bool isInputOk();
-
- // 外界传递
- virtual bool setCurValue(QVariant o);
- virtual QVariant getCurValue();
-
-public slots:
-
- virtual void slotSegCountChanged(int n);
- virtual void slotItemLenthChanged(QString, QVariant);
-
-protected:
-
- // 对于需要调整的,计算其默认的位置
- virtual VecDouble calDefaultPoss(int n, double dLenAll);
-
- // 结果
- virtual QVariant getInfoRight();
- virtual QString getInfoUnit();
-
-protected:
-
- iGridRowItem* m_pBrotherItem; //关联的长度Item
- double m_dLenAll;
- double m_dNqAll;
-};
diff --git a/Include/iGui/iGuiGridPty/iGridRowItemSegEx.h b/Include/iGui/iGuiGridPty/iGridRowItemSegEx.h
deleted file mode 100644
index 2735709..0000000
--- a/Include/iGui/iGuiGridPty/iGridRowItemSegEx.h
+++ /dev/null
@@ -1,105 +0,0 @@
-#pragma once
-
-#include "iGridRowItemSeg.h"
-
-// 流动段数、产液段数
-// 注:界面上显示所有子项,为各自的合计,比如裂缝总长度
-class iParameterSegEx;
-class X_GUI_GRIDPTY_EXPORT iGridRowItemSegEx :
- public iGridRowItemSeg
-{
- Q_OBJECT
-
-public:
-
- explicit iGridRowItemSegEx(iGridRowItem* pParent = nullptr);
- ~iGridRowItemSegEx();
-
-public:
-
- // 序列化
- virtual void onSerialize(ZxSerializer* ser);
- virtual void onDeserialize(ZxSerializer* ser);
-
- // 控件
- virtual void initEditor();
- virtual void setDlgBase(QWidget* p);
- virtual void configEditor();
- virtual void initOtherEditors();
-
- // 范围
- virtual void setBounds(QRectF& rt);//全局
- virtual QRectF getRightBounds_Main();//右
-
- // 关联绑定的Item,长度
- virtual void setLenAll(double d);
- virtual void setBrotherItem(iGridRowItem* p);
-
- // 刷新
- // n:段数
- virtual void freshSubChild(int n, bool bBySegCount);
- void recacheParas(int n, iParameterSegEx* p, bool bBySegCount);
- void resetSubItems(int n, iParameterSegEx* p);
- void freshChildrenWithSums(bool bByLen); //当前参数
- QMap sumCurParas();
-
- // 对于Editor的范围及颜色管理
- virtual void checkAndClr();
- virtual QString getEditorCss(bool bValid);
- virtual bool isInputOk();
-
- // 外界传递
- virtual bool setCurValue(QVariant o);
- virtual QVariant getCurValue();
-
- // 数据范围,可以在扩展tips信息
- virtual QString getParaScales();
-
- // 20240704 新增接口
- // 主要是设计类似流动段这类复合Item的序列化相关
- virtual bool checkAndSetParaValue(QString sPara, QVariant o);
- virtual bool checkAndGetParaValue(QString sPara, QVariant& o);
- // 返回所有参数,Key为英文ID
- virtual bool checkAndGetSubParaValues(QMap& map,
- bool bOnlyFitted = false,
- bool bClearMap = true);
- virtual bool checkAndGetSubParaUnits(QMap& map,
- bool bOnlyFitted = false,
- bool bClearMap = true);
- virtual bool checkAndOrgaSubResults(QVector& vec, QString sType);
-
-signals:
-
- /// @brief 触发子参数列表改变,比如调用水平井段数编辑功能,目前只限于 iGridRowItemSegEx 类型的信号传递
- /// @param sSegName: (in) 基准参数,为英文标识,如流动段数:"Nq"
- /// @param vvec: (in & out) 子参数数据,注意:key为英文,如"NqX","NqL","NqQ"之类,与xml配置文件严格对应
- /// @param dWellLen: (in) 水平井长度
- /// @param bModified: (out) 是否正确触发且vvec发生改变
- void sigSegMore(const QString sSegName, \
- QVector< QMap >& vvec, \
- const double dWellLen, \
- bool& bModified);
-
-public slots:
-
- virtual void slotSegCountChanged(int n);
- virtual void slotItemLenthChanged(QString, QVariant);
-
- virtual void slotSegMore();
-
-private:
-
- // 对于需要调整的,计算其默认的位置
- virtual VecDouble calDefaultPoss(int n, double dLenAll);
-
- // 结果
- virtual QVariant getInfoRight();
- virtual QString getInfoUnit();
-
-protected:
-
- QPushButton* m_pBtn;
-
- QVector< QMap > m_vvecSubParas;
-
-};
diff --git a/Include/iGui/iGuiGridPty/iGridRowUtils.h.bak b/Include/iGui/iGuiGridPty/iGridRowUtils.h.bak
deleted file mode 100644
index 850a654..0000000
--- a/Include/iGui/iGuiGridPty/iGridRowUtils.h.bak
+++ /dev/null
@@ -1,236 +0,0 @@
-#pragma once
-
-#include "iDlgBase.h"
-#include "iResultInfo.h"
-#include "iGridRowItemUnt.h"
-
-class iBdyInfo;
-
-// 参数区统一处理的Utils
-class X_GUI_GRIDPTY_EXPORT iGridRowUtils : public iDlgBase//QAbstractScrollArea
-{
- Q_OBJECT
-
-public:
-
- explicit iGridRowUtils(QWidget *parent = 0);
- ~iGridRowUtils();
-
-public:
-
- // 初始化
- virtual void initUI();
-
- // 对外暴露接口
- bool buildRowUtils(QStringList listParas, \
- QStringList& listParaTags, \
- bool bDnMode, \
- QWidget* pWxDlg);
- void setParaItems(QVector& vec, \
- bool bDnMode, \
- QWidget* pWxDlg);
- void setBounds(QRectF& rt);
- double getUtilHeight();
- void connectSignalsOf(iGridRowItem* p);
- void bkAllItems();
- QStringList getAllTags(); //不考虑层级
- void resetLayout(); //流动段增减后重置
- // 根据名字获取
- iGridRowItem* getItemByPara(QString sPara);
- // 根据名字取数据
- QVariant getItemValueByPara(QString sPara);
-
- // 查询并处理 UseMdoe == 3 的参数,初始不显示
- void dealwithHide(bool bHideMode, bool& bItemChanged);
-
- // 查询并处理 多相/单相切换 的参数,初始不显示
- void deawithMpMode(bool bMultiPhase, bool& bItemChanged);
-
- void dealwithItemOfs(ParaUseMode o, bool bHideMode, bool& bItemChanged);
-
- // 清空
- void clearAllItems();
-
- // Header
- void setHeaderVisible(bool b);
- bool isHeaderVisible();
-
- // 对Items进行检测,正确输入
- bool checkItems();
-
- // 刷新
- void updateItem(iGridRowItem* p);
-
-protected:
-
- // 按键
- virtual void keyPressEvent(QKeyEvent* e);
-
- /// @brief 获取当前激活的Item的索引,在全局m_vecAllItems中
- /// @param bStrict 为true:取的item 处于激活同时hasFocus
- /// 为false 取的item 处于激活同时 本类[iGridRowUtils] hasFocus
- virtual int getFocusedItemIndex(bool bStrict = true);
-
- /// @brief 获取下一个可以激活[获取索引]的Item的索引,在全局m_vecAllItems中
- /// @param nFrom 为当前:要从nFrom+1开始算起,若干到头,则从0开始继续
- /// @param bStrict 为true:不考虑隐藏、只读等
- /// 为false 所有item都考虑
- virtual int getNextItemIndexToFocus(int nFrom, bool bStrict = true);
-
-private:
-
- // 搭建过程
- QStringList getParaTypes(QStringList listParas);
- bool createAndAddItem(iGridRowItem* pParent, \
- iParameter* p, QString sPara);
- iGridRowItem* createWithSegOlds(iGridRowItem* pParent, \
- iParameter* p, QString sPara);//兼容原先,没有配置ParaType
- void insertItem(int nIndex, iGridRowItem* pItem);
-
-
- // 这是一些特殊处理,就是创建完成所有Item后,相关的关联
- // 如 产液段与有效长度
- void bindItems();
-
- // 把所有Item从上到下(不考虑层级记录下来)
- bool getAllItems(QVector& vec); //不考虑层级
-
-
- // 范围及布局
- void setSplitPos(double f);
- void updateLayout();
- void doLayout();
-
-
-protected:
-
- virtual void mousePressEvent(QMouseEvent *);
- virtual void mouseDoubleClickEvent(QMouseEvent* e);
- virtual void mouseReleaseEvent(QMouseEvent *);
- virtual void mouseMoveEvent(QMouseEvent *);
-
- virtual void resizeEvent(QResizeEvent *);
-
-protected:
-
- virtual void paintEvent(QPaintEvent *);
-
- void paintGrid(QPainter* pPainter);
- void paintHeader(QPainter* pPainter);
-
-public slots:
-
- void slotActivateItem(iGridRowItem* p);
- void onActiveItemChanged(iGridRowItem* p);
- void slotValuePrevChanged(QVariant& o1, QVariant& o2);
-
- void slotGetValueOf(QString sPara, QVariant& o, bool& bOk);
-
-signals:
-
- void sigHelpMsg(QString& s);
- // TODO not use
- // void sigAppendOtherItems(QVector& vec);
- /// @brief 触发参数改变,允许外界进行更改
- /// @param sName: 参数名称
- /// @param o1: 主要数据,m_oRawValue
- /// @param o2: 辅助数据,如Cbx的下拉填充内容QStringList
- /// @param bSet:是否已经正确设置
- void sigItemPrevChanged(QString sName, \
- QVariant& o1, QVariant& o2, \
- bool& bSet);
-
-// /// @brief 触发参数改变
-// /// @param sPara: 参数名称
-// /// @param o 更改后的数据
-// void sigItemValueChanged(QString sPara, QVariant o);
-
- // 是否启用正则验证,比如,直角边界,第一个边界要大于井长/2,只有点源才支持
- void sigOuterValidate(QString sPara, QVariant o, bool& bValid, bool& bSet);
-
-
- /// @brief 触发子参数列表改变,比如调用水平井段数编辑功能,目前只限于 iGridRowItemSegEx 类型的信号传递
- /// @param sSegName: (in) 基准参数,为英文标识,如流动段数:"Nq"
- /// @param vvec: (in & out) 子参数数据,注意:key为英文,如"NqX","NqL","NqQ"之类,与xml配置文件严格对应
- /// @param dWellLen: (in) 水平井长度
- /// @param bModified: (out) 是否正确触发且vvec发生改变
- void sigSegMore(const QString sSegName, \
- QVector< QMap >& vvec, \
- const double dWellLen, \
- bool& bModified);
-
- /// @brief 触发边界信息改变,比如修改平行边界,由上下改为左右
- /// @param pItem: (in) 当前的GroupItem,其实即是本类iGridRowGroupBdy
- /// @param vvec: (in & out) 边界信息数据
- /// @param bModified: (out) 是否正确触发且vvec发生改变
- void sigBdyDetails(iGridRowItem* pItem, \
- QVector< iBdyInfo* >& vvec, \
- bool& bModified);
-
-protected:
-
- // 节点操作及属性更改
- GridTickPos hitTest(QPoint pt);
-
- void expand(iGridRowItem* p);
- void collapse(iGridRowItem* p);
-
- iGridRowItem* getLastActive();
-
- // 位置记录
- int getPreferedSplitX();
- void saveSplitX();
- void loadSplitX();
-
-public:
-
- // 组织数据
- // 序列化
- virtual void onSerialize(ZxSerializer* ser);
- virtual void onDeserialize(ZxSerializer* ser);
-
- // 组织结果数据,注:vec不进行clear,由调用方自行clear
- virtual bool organizeResults(QVector& vec, QString sType);
-
- // 从各个Wx(m_vecWxDatas)中遍历查找
- virtual bool setParaValue(QString sPara, QVariant o);
- virtual bool getParaValue(QString sPara, QVariant& o);
- // 返回所有参数,Key为英文ID
- virtual bool getAllParaValues(QMap& map,
- bool bOnlyFitted = false,
- bool bClearMap = true);
-
- virtual bool getAllParaUnits(QMap& map,
- bool bOnlyFitted = false,
- bool bClearMap = true);
-
- // 返回所有的跟模型相关的边界参数的类型,封闭或定压
- // 封闭:0
- // 定压:1
- bool getBdyInfos(QMap& map);
-
-private:
-
- // 窗体载体
- QWidget* m_pWxDlg;
-
- // 子项
- QVector m_vecGridItems;
- QVector m_vecAllItems;// 从上到下不考虑层级,所有
- iGridRowItem* m_pItemSel;
-
- // 位置及布局
- QRectF m_rtBounds;
- bool m_bNeedLayout;
-
- // 分割线
- bool m_bHitSplit;
- double m_fSplitPos;
-
- // Header
- bool m_bHeaderVisible;
-
- double m_fRowHeight;
-
- bool m_bUnableSP;
-};
diff --git a/Include/iGui/iGuiRibbon/iRibbonXml/iRibbonXmlCmd.h b/Include/iGui/iGuiRibbon/iRibbonXml/iRibbonXmlCmd.h
index 7a6e8a8..5b2bec0 100644
--- a/Include/iGui/iGuiRibbon/iRibbonXml/iRibbonXmlCmd.h
+++ b/Include/iGui/iGuiRibbon/iRibbonXml/iRibbonXmlCmd.h
@@ -18,6 +18,7 @@ enum RibbonCtrlType
RCT_Label, //6——Label
RCT_ListWx, //7——ListWidget
RCT_LineEdit, //8——LineEdit
+ RCT_ButtonOfSplit, //9——劈分按钮
RCT_Unknown
};
@@ -51,6 +52,7 @@ public:
QRect m_rtBound; //Bounds
QString m_sExtInfo;//扩展信息,如操作对象的表名,下拉选项等
QString m_sExtNames;//扩展信息对应的Name,如下拉button对应的Name
+ QString m_sExtIcons;//扩展信息对应的Icon,如下拉button对应的Icon
QString m_sTips; //Tips
QString m_sMdiType;
diff --git a/Include/iGui/iGuiRibbon/iWxGroupBar.h b/Include/iGui/iGuiRibbon/iWxGroupBar.h
new file mode 100644
index 0000000..c5df10c
--- /dev/null
+++ b/Include/iGui/iGuiRibbon/iWxGroupBar.h
@@ -0,0 +1,182 @@
+#pragma once
+
+#include "iDlgBaseEx.h"
+#include "iRibbonXmlTab.h"
+
+#include "iGuiRibbon_global.h"
+
+///ZXF202605
+/// @brief Ribbon简化,仅仅GroupBar模式(这个就相当于ToolBar 里面的 有多个GroupBar,就相当于一个Group一个面板,用于控制折叠这个面板的上按钮)
+class I_GUI_RIBBON_EXPORT iWxGroupBar : public QWidget
+{
+ Q_OBJECT
+
+public:
+
+ explicit iWxGroupBar(iRibbonXmlGroup* pGroupXml = NULL, \
+ QWidget *parent = 0);
+ ~iWxGroupBar();
+
+ //设置关联的配置信息
+ void setGroupInfo();
+
+ // 折叠控制(供 iWxToolBar 自动布局调用)
+ void setCollapsed(bool b);
+ bool getCollapsed() const ;
+ int expandedWidth();
+ int collapsedWidth();
+
+ // 返回 ButtonWithMenu 类型 cmd 创建的子菜单 action
+ QVector& getMenuActions() ;
+
+ // 返回该 Group 内创建的所有子控件
+ QVector& getSubCtrls() ;
+
+ //得到里面控件个数是否需要折叠按钮
+ bool bCollapse();
+
+public:
+ //初始化
+ virtual void initUI();
+ virtual void initSheets();
+
+protected:
+ //初始化控件
+ void initCtrlUI();
+
+ //初始化面板按钮
+ void initGroupBt();
+ //初始化控件上部分(主要功能区)
+ void initCtrlTopUI();
+ //两种布局
+ void initCtrlTopGridUI();//网格
+ void initCtrlTopHorUI(); //水平
+
+ //初始化控件下部分(标签区+折叠按钮)
+ void initCtrlBotUI();
+
+ // 各种类型
+ QWidget* createTabBy(iRibbonXmlTab* pTab);
+ QWidget* createGroupBy(iRibbonXmlGroup* pGroup);
+ QWidget* createCmdBy(iRibbonXmlCmd* pCmd, bool bAdd = true);
+ QWidget* createCmdBy_Btn(iRibbonXmlCmd* pCmd);
+ QWidget* createCmdBy_Combo(iRibbonXmlCmd* pCmd);
+ QWidget* createCmdBy_Check(iRibbonXmlCmd* pCmd);
+ QWidget* createCmdBy_Radio(iRibbonXmlCmd* pCmd);
+ QWidget* createCmdBy_Text(iRibbonXmlCmd* pCmd);
+ QWidget* createCmdBy_Label(iRibbonXmlCmd* pCmd);
+ QWidget* createCmdBy_ListWx(iRibbonXmlCmd* pCmd);
+
+ //新增加边界框
+ QWidget* createCmdBy_LineEdit(iRibbonXmlCmd* pCmd);
+
+ // 对于按钮,比较特殊,分别进行实现
+ QWidget* _createCmdBy_Btn_Normal(iRibbonXmlCmd* pCmd); //常规按钮
+ QWidget* _createCmdBy_Btn_Menu(iRibbonXmlCmd* pCmd); //下拉菜单式按钮
+ QWidget* _createCmdBy_Btn_Split(iRibbonXmlCmd* pCmd); //劈分式按钮
+
+ virtual bool dealwithCmdSubBy(iRibbonXmlCmd* pCmd, QToolButton*& pBtn);
+
+protected:
+ virtual void paintEvent(QPaintEvent* event) ;
+ virtual void mousePressEvent(QMouseEvent* event) ;
+ virtual void mouseMoveEvent(QMouseEvent* event) ;
+ virtual void leaveEvent(QEvent* event) ;
+ //焦点判断
+ bool eventFilter(QObject *, QEvent *);
+ // 让 Qt 认为 group 可以一直缩到折叠态宽度,
+ // 否则按钮们的 minimumSizeHint 会经 layout 累加上传,
+ // 把主窗口的最小宽度顶死,导致拖动边框拉不动。
+ virtual QSize minimumSizeHint() const;
+
+private slots:
+
+ //面板折叠
+ void slotGroupCollapse();
+ void slotBtnClicked(); //Btn
+ void slotListCtrlIndexChanged(int); //Combox ListWx
+ void slotCheckCtrlClicked(bool); //CheckBox, RadioBox
+
+
+ void slotSplitBtnClicked(QString sName); //Split Btn
+
+ //面板按钮响应(弹出当前Group的Ctrl,重组一个对话框,无边框只有ctrl)
+ void slotGroupBtnClicked();
+
+signals:
+
+ /// @title Ribbon信号触发
+ /// @param pCtrl触发的子控件
+ /// @param pInfo关联的Ribbon配置信息(来自xml)
+ void sigRibbonActioned(QWidget* pCtrl,
+ iRibbonXmlCmd* pInfo,
+ QVariant o);
+
+ /// @title Ribbon文件菜单信号触发
+ /// @param sID菜单ID
+ /// @param sName菜单名称
+ void sigRibbonFileMenuClicked(QString sID, QString sName);
+
+ /// @title Ribbon信号触发
+ /// @param pCtrl触发的子控件
+ /// @param pInfo关联的Ribbon配置信息(来自xml)
+ /// @param listValues显示部分
+ /// @param listIDs
+ void sigRibbonGetListValues(QWidget* pCtrl,
+ iRibbonXmlCmd* pInfo,
+ QStringList& listValues,
+ QStringList& listIDs,
+ int& nCurSel);
+
+ /// @title Ribbon信号触发(允许外界对SplitBtton进行调整)
+ /// @param pCtrl触发的子控件
+ /// @param pInfo关联的Ribbon配置信息(来自xml)
+ /// @param listNames 英文Name
+ /// @param listTexts 中文
+ /// @param listIcons 图标
+ /// @param bChanged 是否改变
+ void sigRibbonAdjustSplitBtns(QWidget* pCtrl,
+ iRibbonXmlCmd* pInfo,
+ QStringList& listNames,
+ QStringList& listTexts,
+ QStringList& listIcons,
+ bool& bChanged);
+
+ void sigRibbonListWxCurChanged(QWidget* pCtrl,
+ iRibbonXmlCmd* pInfo,
+ int nCurSel);
+
+ void sigRibbonCheckWxClicked(QWidget* pCtrl,
+ iRibbonXmlCmd* pInfo,
+ bool bSelect);
+
+
+protected:
+ //组控件
+ iRibbonXmlGroup* m_pGroupXml;
+ // 所有的控件
+ QVector m_vecSubCtrls;
+
+ // 所有的控件QACtion
+ QVector m_vecMenuActions;
+ //面板按钮(这个主要用于显示于)
+ QToolButton* m_pGroupBt;
+ //内容区容器(折叠时隐藏,展开时显示)
+ QWidget* m_pContentWx;
+ //主布局
+ QVBoxLayout* m_pLayoutMain;
+
+ //折叠状态及命中区域
+ bool m_bCollapsed;
+ bool m_bHover;
+ QRect m_rcCollapseBtn;
+
+ //展开宽度缓存(用于自动折叠/展开)
+ int m_nCachedExpandedW;
+
+ // 折叠前记录本来就隐藏的控件ID
+ QStringList m_listHiddenIDs;
+
+ // 弹出过程中标志,防止 setParent 引起的 hide 触发恢复逻辑
+ bool m_bPopupShowing;
+};
diff --git a/Include/iGui/iGuiRibbon/iWxGroupBar.h.bak b/Include/iGui/iGuiRibbon/iWxGroupBar.h.bak
new file mode 100644
index 0000000..ca48fff
--- /dev/null
+++ b/Include/iGui/iGuiRibbon/iWxGroupBar.h.bak
@@ -0,0 +1,176 @@
+#pragma once
+
+#include "iDlgBaseEx.h"
+#include "iRibbonXmlTab.h"
+
+#include "iGuiRibbon_global.h"
+
+///ZXF202605
+/// @brief Ribbon简化,仅仅GroupBar模式(这个就相当于ToolBar 里面的 有多个GroupBar,就相当于一个Group一个面板,用于控制折叠这个面板的上按钮)
+class I_GUI_RIBBON_EXPORT iWxGroupBar : public QWidget
+{
+ Q_OBJECT
+
+public:
+
+ explicit iWxGroupBar(iRibbonXmlGroup* pGroupXml = NULL, \
+ QWidget *parent = 0);
+ ~iWxGroupBar();
+
+ //设置关联的配置信息
+ void setGroupInfo();
+
+ // 折叠控制(供 iWxToolBar 自动布局调用)
+ void setCollapsed(bool b);
+ bool getCollapsed() const ;
+ int expandedWidth();
+ int collapsedWidth();
+
+ // 返回 ButtonWithMenu 类型 cmd 创建的子菜单 action
+ QVector& getMenuActions() ;
+
+ // 返回该 Group 内创建的所有子控件
+ QVector& getSubCtrls() ;
+
+public:
+ //初始化
+ virtual void initUI();
+ virtual void initSheets();
+
+protected:
+ //初始化控件
+ void initCtrlUI();
+
+ //初始化面板按钮
+ void initGroupBt();
+ //初始化控件上部分(主要功能区)
+ void initCtrlTopUI();
+ //初始化控件下部分(标签区+折叠按钮)
+ void initCtrlBotUI();
+
+ // 各种类型
+ QWidget* createTabBy(iRibbonXmlTab* pTab);
+ QWidget* createGroupBy(iRibbonXmlGroup* pGroup);
+ QWidget* createCmdBy(iRibbonXmlCmd* pCmd, bool bAdd = true);
+
+ QWidget* createCmdBy_Btn(iRibbonXmlCmd* pCmd);
+ QWidget* createCmdBy_Combo(iRibbonXmlCmd* pCmd);
+ QWidget* createCmdBy_Check(iRibbonXmlCmd* pCmd);
+ QWidget* createCmdBy_Radio(iRibbonXmlCmd* pCmd);
+ QWidget* createCmdBy_Text(iRibbonXmlCmd* pCmd);
+ QWidget* createCmdBy_Label(iRibbonXmlCmd* pCmd);
+ QWidget* createCmdBy_ListWx(iRibbonXmlCmd* pCmd);
+
+ //新增加边界框
+ QWidget* createCmdBy_LineEdit(iRibbonXmlCmd* pCmd);
+
+ // 对于按钮,比较特殊,分别进行实现
+ QWidget* _createCmdBy_Btn_Normal(iRibbonXmlCmd* pCmd); //常规按钮
+ QWidget* _createCmdBy_Btn_Menu(iRibbonXmlCmd* pCmd); //下拉菜单式按钮
+ QWidget* _createCmdBy_Btn_Split(iRibbonXmlCmd* pCmd); //劈分式按钮
+
+ virtual bool dealwithCmdSubBy(iRibbonXmlCmd* pCmd, QToolButton*& pBtn);
+
+protected:
+ virtual void paintEvent(QPaintEvent* event) ;
+ virtual void mousePressEvent(QMouseEvent* event) ;
+ virtual void mouseMoveEvent(QMouseEvent* event) ;
+ virtual void leaveEvent(QEvent* event) ;
+ //焦点判断
+ bool eventFilter(QObject *, QEvent *);
+ // 让 Qt 认为 group 可以一直缩到折叠态宽度,
+ // 否则按钮们的 minimumSizeHint 会经 layout 累加上传,
+ // 把主窗口的最小宽度顶死,导致拖动边框拉不动。
+ virtual QSize minimumSizeHint() const;
+
+private slots:
+
+ //面板折叠
+ void slotGroupCollapse();
+ void slotBtnClicked(); //Btn
+ void slotListCtrlIndexChanged(int); //Combox ListWx
+ void slotCheckCtrlClicked(bool); //CheckBox, RadioBox
+
+
+ void slotSplitBtnClicked(QString sName); //Split Btn
+
+ //面板按钮响应(弹出当前Group的Ctrl,重组一个对话框,无边框只有ctrl)
+ void slotGroupBtnClicked();
+
+signals:
+
+ /// @title Ribbon信号触发
+ /// @param pCtrl触发的子控件
+ /// @param pInfo关联的Ribbon配置信息(来自xml)
+ void sigRibbonActioned(QWidget* pCtrl,
+ iRibbonXmlCmd* pInfo,
+ QVariant o);
+
+ /// @title Ribbon文件菜单信号触发
+ /// @param sID菜单ID
+ /// @param sName菜单名称
+ void sigRibbonFileMenuClicked(QString sID, QString sName);
+
+ /// @title Ribbon信号触发
+ /// @param pCtrl触发的子控件
+ /// @param pInfo关联的Ribbon配置信息(来自xml)
+ /// @param listValues显示部分
+ /// @param listIDs
+ void sigRibbonGetListValues(QWidget* pCtrl,
+ iRibbonXmlCmd* pInfo,
+ QStringList& listValues,
+ QStringList& listIDs,
+ int& nCurSel);
+
+ /// @title Ribbon信号触发(允许外界对SplitBtton进行调整)
+ /// @param pCtrl触发的子控件
+ /// @param pInfo关联的Ribbon配置信息(来自xml)
+ /// @param listNames 英文Name
+ /// @param listTexts 中文
+ /// @param listIcons 图标
+ /// @param bChanged 是否改变
+ void sigRibbonAdjustSplitBtns(QWidget* pCtrl,
+ iRibbonXmlCmd* pInfo,
+ QStringList& listNames,
+ QStringList& listTexts,
+ QStringList& listIcons,
+ bool& bChanged);
+
+ void sigRibbonListWxCurChanged(QWidget* pCtrl,
+ iRibbonXmlCmd* pInfo,
+ int nCurSel);
+
+ void sigRibbonCheckWxClicked(QWidget* pCtrl,
+ iRibbonXmlCmd* pInfo,
+ bool bSelect);
+
+
+protected:
+ //组控件
+ iRibbonXmlGroup* m_pGroupXml;
+ // 所有的控件
+ QVector m_vecSubCtrls;
+
+ // 所有的控件QACtion
+ QVector m_vecMenuActions;
+ //面板按钮(这个主要用于显示于)
+ QToolButton* m_pGroupBt;
+ //内容区容器(折叠时隐藏,展开时显示)
+ QWidget* m_pContentWx;
+ //主布局
+ QVBoxLayout* m_pLayoutMain;
+
+ //折叠状态及命中区域
+ bool m_bCollapsed;
+ bool m_bHover;
+ QRect m_rcCollapseBtn;
+
+ //展开宽度缓存(用于自动折叠/展开)
+ int m_nCachedExpandedW;
+
+ // 折叠前记录本来就隐藏的控件ID
+ QStringList m_listHiddenIDs;
+
+ // 弹出过程中标志,防止 setParent 引起的 hide 触发恢复逻辑
+ bool m_bPopupShowing;
+};
diff --git a/Include/iGui/iGuiRibbon/iWxRibbon.h b/Include/iGui/iGuiRibbon/iWxRibbon.h
index 11c6396..4a6b786 100644
--- a/Include/iGui/iGuiRibbon/iWxRibbon.h
+++ b/Include/iGui/iGuiRibbon/iWxRibbon.h
@@ -2,6 +2,8 @@
#include "iWxToolBar.h"
+#include
+
namespace Ui {
class iWxRibbon;
}
@@ -43,6 +45,16 @@ protected:
// paint
virtual void paintEvent(QPaintEvent *);
+ ///ZXF202605
+ // resize: 触发各 tab 内 group 的折叠重排
+ virtual void resizeEvent(QResizeEvent* event) ;
+
+protected slots:
+
+ ///ZXF202605
+ // 遍历每个 tab,对其中的 group 单独按 ribbon 当前宽度折叠
+ void relayoutAllTabs();
+
private slots:
void on_tabWxMain_tabCloseRequested(int index);
@@ -122,12 +134,15 @@ protected:
QString m_sAppDescCN;
QString m_sAppDescEN;
- // 所有的控件
- QVector m_vecMenuActions;
// 最近打开项目
enum { MaxRecentProjects = 5 };
QAction* m_oRecentProjectActs[MaxRecentProjects];
QStringList m_listRencentProjects;
QMenu* m_pMenuRecent;
+
+ ///ZXF202605
+ // tab page → 该 page 下按视觉顺序排列的 GroupBar
+ // 每个 tab 创建完成后存档,relayout 时按页查表使用
+ QHash > m_mapPageToBars;
};
diff --git a/Include/iGui/iGuiRibbon/iWxToolBar.h b/Include/iGui/iGuiRibbon/iWxToolBar.h
index 3d26ecf..9e32ca8 100644
--- a/Include/iGui/iGuiRibbon/iWxToolBar.h
+++ b/Include/iGui/iGuiRibbon/iWxToolBar.h
@@ -5,6 +5,9 @@
#include "iGuiRibbon_global.h"
+///ZXF202605 按钮面板Group管理类
+class iWxGroupBar;
+
/// @brief Ribbon简化,仅仅ToolBar模式
class I_GUI_RIBBON_EXPORT iWxToolBar : public iDlgBaseEx
{
@@ -41,26 +44,31 @@ protected:
// 各种类型
QWidget* createTabBy(iRibbonXmlTab* pTab);
QWidget* createGroupBy(iRibbonXmlGroup* pGroup);
- QWidget* createCmdBy(iRibbonXmlCmd* pCmd);
- QWidget* createCmdBy_Btn(iRibbonXmlCmd* pCmd);
- QWidget* createCmdBy_Combo(iRibbonXmlCmd* pCmd);
- QWidget* createCmdBy_Check(iRibbonXmlCmd* pCmd);
- QWidget* createCmdBy_Radio(iRibbonXmlCmd* pCmd);
- QWidget* createCmdBy_Text(iRibbonXmlCmd* pCmd);
- QWidget* createCmdBy_Label(iRibbonXmlCmd* pCmd);
- QWidget* createCmdBy_ListWx(iRibbonXmlCmd* pCmd);
-
- //新增加边界框
- QWidget* createCmdBy_LineEdit(iRibbonXmlCmd* pCmd);
-
- virtual bool dealwithCmdSubBy(iRibbonXmlCmd* pCmd, QToolButton*& pBtn);
-
-
-private slots:
-
- void slotBtnClicked(); //Btn
- void slotListCtrlIndexChanged(int); //Combox ListWx
- void slotCheckCtrlClicked(bool); //CheckBox, RadioBox
+// QWidget* createCmdBy(iRibbonXmlCmd* pCmd);
+// QWidget* createCmdBy_Btn(iRibbonXmlCmd* pCmd);
+// QWidget* createCmdBy_Combo(iRibbonXmlCmd* pCmd);
+// QWidget* createCmdBy_Check(iRibbonXmlCmd* pCmd);
+// QWidget* createCmdBy_Radio(iRibbonXmlCmd* pCmd);
+// QWidget* createCmdBy_Text(iRibbonXmlCmd* pCmd);
+// QWidget* createCmdBy_Label(iRibbonXmlCmd* pCmd);
+// QWidget* createCmdBy_ListWx(iRibbonXmlCmd* pCmd);
+
+// //新增加边界框
+// QWidget* createCmdBy_LineEdit(iRibbonXmlCmd* pCmd);
+
+// virtual bool dealwithCmdSubBy(iRibbonXmlCmd* pCmd, QToolButton*& pBtn);
+
+ ///ZXF202605
+ virtual void resizeEvent(QResizeEvent* event);
+ ///ZXF202605
+ // 自动折叠:把指定的 group 列表按可用宽度从右往左折叠
+ // 由子类(iWxRibbon)按 tab 调用,每个 tab 一组
+ void layoutGroupsIn(const QList& vecBars, int avail);
+//private slots:
+
+// void slotBtnClicked(); //Btn
+// void slotListCtrlIndexChanged(int); //Combox ListWx
+// void slotCheckCtrlClicked(bool); //CheckBox, RadioBox
signals:
@@ -81,6 +89,23 @@ signals:
QStringList& listValues,
QStringList& listIDs,
int& nCurSel);
+
+
+ /// @title Ribbon信号触发(允许外界对SplitBtton进行调整)
+ /// @param pCtrl触发的子控件
+ /// @param pInfo关联的Ribbon配置信息(来自xml)
+ /// @param listNames 英文Name
+ /// @param listTexts 中文
+ /// @param listIcons 图标
+ /// @param bChanged 是否改变
+ void sigRibbonAdjustSplitBtns(QWidget* pCtrl,
+ iRibbonXmlCmd* pInfo,
+ QStringList& listNames,
+ QStringList& listTexts,
+ QStringList& listIcons,
+ bool& bChanged);
+
+
void sigRibbonListWxCurChanged(QWidget* pCtrl,
iRibbonXmlCmd* pInfo,
int nCurSel);
@@ -95,6 +120,16 @@ protected:
// 配置化结构体
vecRibbonTabPtr m_vecTabXmls;
+ // 所有的控件
+ QVector m_vecMenuActions;
// 所有的控件
QVector m_vecSubCtrls;
+
+ ///ZXF202605
+ bool m_bRelayouting;
+ ///ZXF202605
+ // 当前正在构建的 tab 的 GroupBar 顺序收集器;
+ // createTabBy() 开头清空,每 createGroupBy() 成功一次追加一项;
+ // createTabBy() 结束后由调用方(iWxRibbon)按 tab page 取走存档
+ QList m_vecGroupBars;
};
diff --git a/Include/iPlot/iPlotBase/Commands/ZxGraphCommand.h b/Include/iPlot/iPlotBase/Commands/ZxGraphCommand.h
deleted file mode 100644
index fc8e653..0000000
--- a/Include/iPlot/iPlotBase/Commands/ZxGraphCommand.h
+++ /dev/null
@@ -1,5 +0,0 @@
-#error ZxRenderCommand is obsoleted, use QUndoCommand instead.
-
-
-
-
diff --git a/Include/iPlot/iPlotBase/Helper/ZxAxisHelperDoubleLinear.h b/Include/iPlot/iPlotBase/Helper/ZxAxisHelperDoubleLinear.h
index 651bedd..c406956 100644
--- a/Include/iPlot/iPlotBase/Helper/ZxAxisHelperDoubleLinear.h
+++ b/Include/iPlot/iPlotBase/Helper/ZxAxisHelperDoubleLinear.h
@@ -13,6 +13,9 @@ public:
protected:
+ // 获取绘制的位置信息
+ virtual void locateOneTickTag(QPainter* painter, double dPos, QString s, \
+ QRectF& rt, int& flag);
// 绘制函数
virtual void drawTickAndTags(QPainter* painter, QRectF& rt);
diff --git a/Include/iPlot/iPlotBase/ZxRenderSelection.h b/Include/iPlot/iPlotBase/ZxRenderSelection.h
deleted file mode 100644
index 024c6f3..0000000
--- a/Include/iPlot/iPlotBase/ZxRenderSelection.h
+++ /dev/null
@@ -1,115 +0,0 @@
-#pragma once
-
-#include
-#include
-#include
-#include
-#include
-
-class ZxRenderItem;
-class ZxSceneItem;
-class QTimer;
-class QTime;
-
-/// 当前选择的图件列表.
-/// 已经为大数据量及频繁选择做了优化.
-class I_PLOTBASE_EXPORT ZxRenderSelection : public QObject
-{
- Q_OBJECT
- struct Node
- {
- ZxRenderItem * item;
- Node * prev;
- Node * next;
- };
-
- static Node * alloc();
-
- bool m_bChanged;
- Node * head;
- Node * tail;
- QHash dict;
-
- void listAdd(Node * n);
- void listRemove(Node * n);
-
- void doAdd(ZxRenderItem * w, bool force);
- void doRemove(Node * n);
-
- void setChanged();
-
- QTime * m_pLazyChangedTime;
- QTimer * m_pTimer;
-public:
- ZxRenderSelection(ZxSceneItem * pScene);
- ZxSceneItem * getScene();
-
- /// 选择
- void add(ZxRenderItem * p, bool force = false);
- /// 取消选择
- void remove(ZxRenderItem * p);
- /// 反选
- void invert(ZxRenderItem * p, bool force = false);
-
- void clear();
-
- ZxRenderItem * first() const;
- ZxRenderItem * last() const;
-
- QList toList();
-
- class I_PLOTBASE_EXPORT const_iterator
- {
- Node * p;
- const_iterator(Node * p);
- public:
- ZxRenderItem * operator*();
- bool operator!=( const const_iterator& ) const;
- bool operator==( const const_iterator& ) const;
- const_iterator& operator++();
- friend class ZxRenderSelection;
- };
-
- const_iterator begin() const;
- const_iterator end() const;
-
- bool empty() const;
- bool isEmpty() const;
- bool isSingle() const;
- int count() const;
-
- QRectF getBounds();
-
- bool hasSameParent() const;
-
- void move(float dx, float dy);
-
-signals:
-
- /// 个别图件被加进列表
- void sigItemAdded(ZxRenderItem * p);
-
- /// 个别图件被从列表移除
- void sigItemRemoved(ZxRenderItem * p);
-
- /// 选中列表被改变(即时)
- void sigSelectionChanged();
-
- /// 选中列表被改变(非即时)
- void sigSelectionChangedLazy();
-
-
-protected:
- friend class ZxRenderView;
- // ZxRenderSelection();
- // ~ZxRenderSelection();
-protected slots:
- virtual void onTimer();
-private:
- ZxSceneItem * m_pScene;
- ZxRenderSelection(const ZxRenderSelection & c);
-};
-
-
-
-
diff --git a/Include/iPlot/iPlotBase/ZxSnapGrid.h b/Include/iPlot/iPlotBase/ZxSnapGrid.h
deleted file mode 100644
index 6cba59e..0000000
--- a/Include/iPlot/iPlotBase/ZxSnapGrid.h
+++ /dev/null
@@ -1,65 +0,0 @@
-#pragma once
-#include
-#include
-#include
-#include "IxSerDes.h"
-#include "iPlotBase_global.h"
-
-class ZxRenderItem;
-class QPainter;
-class ZxPaintParam;
-
-/// 对齐网格
-/// @note 对齐网格不能做成Layout, 因为只对当前鼠标移动的对象起作用
-class I_PLOTBASE_EXPORT ZxSnapGrid
- : virtual public IxDynObj
- , virtual public IxSerDes
- , virtual public IxGridAlign
-{
- ZX_DECLARE_DYNAMIC
-public:
- enum Style
- {
- dotStyle,
- lineStyle
- };
- explicit ZxSnapGrid(ZxRenderItem * pOwner = 0);
- virtual ~ZxSnapGrid();
- virtual void onSerialize(ZxSerializer* ser);
- virtual void onDeserialize(ZxSerializer* ser);
- virtual QPointF calcSnapPos(const QPointF & pos) const;
- virtual void paint(QPainter * painter, const ZxPaintParam & param);
-
- int getVCount() const;
- void setVCount(int n);
-
- int getHCount() const;
- void setHCount(int n);
-
- void setGridWidth(float fGridWidth);
-
- QColor getColor() const;
- void setColor(const QColor & color);
-
- bool isSnapEnabled() const;
- void setSnapEnabled(bool bEnabled);
- bool isGridVisible() const;
- void setGridVisible(bool bVisible);
- Style getStyle() const;
- void setStyle(Style style);
-private:
- float getGridWidth() const;
- float getGridHeight() const;
-
- ZxRenderItem * m_pOwner;
- float m_nVCount;
- float m_nHCount;
- QColor m_color;
- bool m_bEnabled;
- bool m_bVisible;
- Style m_style;
-};
-
-
-
-
diff --git a/Include/iPlot/iPlotCurveT/Objects/ZxObjBase.h.bak b/Include/iPlot/iPlotCurveT/Objects/ZxObjBase.h.bak
deleted file mode 100644
index 553cf67..0000000
--- a/Include/iPlot/iPlotCurveT/Objects/ZxObjBase.h.bak
+++ /dev/null
@@ -1,335 +0,0 @@
-#pragma once
-
-#include
-#include
-#include
-#include
-
-#include "ZxDot.h"
-#include "Defines.h"
-#include "ZxRenderItem.h"
-#include "ZxDrawHelper.h"
-
-#include "iPlotCurveT_global.h"
-
-#define _isNearLine ZxDrawHelper::isPointNearLine
-
-class ZxPlot;
-class ZxSubAxisX;
-class ZxSubAxisY;
-class IxPtyItem;
-class ZxObjToolBase;
-
-// 绘图对象基类
-class I_PLOTCURVE_T_EXPORT ZxObjBase : public ZxRenderItem
-{
- Q_OBJECT
- ZX_DECLARE_DYNAMIC
-
-public:
-
- ZxObjBase();
- ZxObjBase(const QString& sName, ZxSubAxisX* pAxisX, ZxSubAxisY* pAxisY);
- ~ZxObjBase(void);
- virtual void init(const QString& sName, ZxSubAxisX* pAxisX, ZxSubAxisY* pAxisY);
-
-public:
- ///////////////////////////////////
- ///SubObjs
-
- // 自己创建、此处管理
- virtual void initSubObjs();
-
- // 外界传入,此处管理
- virtual void appendSubObjs(ZxObjBase* p);
-
- // 是否显示,统一控制
- virtual bool isShowSubObjs();
- virtual void showSubObjs(bool b);
-
- // 删除或添加时的消息处理
- void setAddOrDel(bool bAdd);
- bool getAddOrDel();
-
- // 取得鼠标移动时的tip信息
- virtual QString getTipOf(const QPointF& point);
-
-public:
-
- virtual void initTools();
- virtual void removeTools();
- virtual void resetTools(ZxRenderView* pView);
-
-protected:
-
- // 这是根据当前点再次计算出来Bound
- virtual QRectF getBoundsEx();
-
- // 设置图元对象的属性标志
- virtual void initFlags();
-
- // 删除所有子节点
- virtual void clear();
-
-public:
-
- ///////////////////////////////////
- ///Brother
- // 仅仅是关联一下,比如在移动至,二者同步移动
- virtual void bindBrother(ZxObjBase* p);
- virtual void detachBrother(ZxObjBase* p);
- void resetBrotherOffset();
- int getBrotherCount();
- ZxObjBase* getBrotherOfIndex(int n);
-
-public:
-
- // 移动模式判断
- virtual bool canMovePoint();
- virtual bool canMoveBound();
- virtual bool canMoveWhole();
-
-public:
-
- // 击中
- virtual bool hitTest(const QPointF& pt);
-
- // 具体击中实现的函数,单纯击中,不做选项的改变
- // nOption用int是因为Rect类的击中选项不一致
- // nOption为负值,表示未击中,此时返回false
- virtual bool _runHitTest(const QPointF& pt, int& nOption, int& nSubIndex);
-
- // 击中后,ButtonUp后的处理
- // pt1:鼠标Down点,pt2:鼠标Up点
- virtual bool runMove(const QPointF& pt1,
- const QPointF& pt2);
-
- // 新增接口,20210918 为了流量和压力对齐,只支持右移动
- // dOffsetX > 0,且是Value而不是Pos
- // 20210919 更改支持:左右移动,压力
- virtual bool runMoveByV(const double dOffsetX);
-
- // 整体移动时,对Brother的同步处理
- virtual bool runMoveBrother(const double &fOffsetX,
- const double &fOffsetY);
- virtual bool moveToPos(const double& l, const double& r,
- const double& t, const double& b);
- virtual bool moveToPos(const QVector& vecPoss);
-
- // 根据pt1--->pt2的偏移,获取pt的偏移后的点
- // pt1:鼠标Down点,pt2:鼠标Up点
- QPointF offsetPoint(QPointF& pt,
- const QPointF& pt1, const QPointF& pt2);
-
- // 当该对象未选中,反选其它,如文本框
- virtual void deselectOthers();
-
-public:
-
- // paint
- virtual void paintBack(QPainter* painter,
- const ZxPaintParam& param);
- virtual void paintSubObjs(QPainter* painter,
- const ZxPaintParam& param);
- virtual void paintDotPt(QPainter* painter,
- QPointF pt,
- ZxDot& dot,
- bool bSelChanged = true);
-
- // 序列化
- virtual void onSerialize(ZxSerializer* ser);
- virtual void onDeserialize(ZxSerializer* ser);
-
- virtual void onLoadTempl(ZxSerializer* ser);
- virtual void onSaveTempl(ZxSerializer* ser);
-
- virtual void onDeserialized();
- virtual void fillPtyPano(IxPtyPano* sheet);
-
- //
- virtual bool isItemBody(double x, double y);
- virtual void onLeftDoubleClick(const QPointF& pt);
-
- // 这是在整体移动Obj时,同步绘制其绑定的Obj
- virtual void drawBrotherWhenMoving(QPainter* painter,
- QPointF ptOld,
- QPointF ptNew);
- virtual void paintWithBrotherMode(QPainter* painter,
- QPointF ptOld,
- QPointF ptNew);
-
- virtual void update();
-
- virtual QRectF getBounds4Update();
- virtual void updateRect(QRectF);
-
-public:
-
- // 得到/设置名称
- QString getName(void) const;
- void setName(QString sName);
-
- // 点
- QPointF getPtValueOf(int nIndex) const; //Value值
- void setPtValueOf(int nIndex, QPointF ptValue);
-
- QPointF getPtPosOf(int nIndex) const; //Pos值
- void setPtPosOf(int nIndex, QPointF ptPos);
-
- QPointF getPosOf(QPointF ptValue) const; //根据Value求Pos
- QPointF getValueOf(QPointF ptPos) const; //根据Pos求Value
-
- QVector getPosOf(QVector vecValues) const; //根据Value求Pos
- QVector getValueOf(QVector vecPoss) const; //根据Pos求Value
-
- // 设置所有的Value,外界调用
- virtual void setAllValues(QVector vecValues);
- virtual QVector getAllValues() const;
-
- // 设置所有的Pos,外界调用
- virtual void setAllPos(QVector vecPoss, QVector* pVecIndexes = NULL);
- virtual QVector getAllPos(bool bFuzzyMode = false,
- double fZoom = 1.f,
- int nMax = 20000,
- QVector* pVecSelecteds = NULL,
- QVector* pVecIndexes = NULL) const;
- virtual QVector fuzzyAllPos(QVector vec,
- double fZoom = 1.f,
- int nMax = 20000,
- QVector* pVecSelecteds = NULL,
- QVector* pVecIndexes = NULL) const;
- virtual int fuzzyPosTimes(double fZoom, int nPtCount) const;
- virtual void resetBounds();
- virtual QRectF calValueBounds(); //计算数值的Bound,对于对数坐标,去除小于0
- virtual void resetOthers(); //resetBounds内部调用
-
- // 坐标轴
- ZxSubAxisX* getAxisX(void);
- const ZxSubAxisX* getAxisX(void) const;
- void setAxisX(ZxSubAxisX* pAxis);
- ZxSubAxisY* getAxisY(void);
- const ZxSubAxisY* getAxisY(void) const;
- void setAxisY(ZxSubAxisY* pAxis);
- void setAxisObjectNameX(QString s);
- void setAxisObjectNameY(QString s);
- QString getAxisObjectNameX();
- QString getAxisObjectNameY();
-
- // 类型
- void setObjType(PlotObjectType o);
- PlotObjectType getObjType();
-
- // 类型
- //void setObjTag(QString s);
- QString getObjTag();
-
- // 逐级获取Plot
- ZxPlot* getPlot();
-
- // ZxPlot的InnerRect
- QRectF getOuterRect();
- // ClipRect
- QRectF getClipRect(QRectF rtViewClip);
-
- // 设置View
- void setView(ZxRenderView* pView);
- ZxRenderView* getView();
-
- // 该函数主要是触发信号: sigObjSelectionChanged
- void dealSelChanged(bool bSelected);
-
- // 返回数据点在水平和竖直最大最小值,是数值非POS
- double getScaleVL();
- double getScaleVR();
- double getScaleVT();
- double getScaleVB();
-
- // 绘制的内容Set Get
- virtual void setPen(QPen o);
- virtual QPen getPen();
-
- virtual void setDot(ZxDot o);
- virtual ZxDot getDot();
-
- virtual double getDotRadius(void) const;
- virtual void setDotRadius(double fRadius);
- virtual void setDotStyle(int oStyle);
- virtual int getDotStyle();
- virtual QColor getDotColor(void) const;
- virtual void setDotColor(QColor color);
- virtual void setDotFilling(bool b);
- virtual bool getDotFilling();
-
- virtual void setDotSel(ZxDot o); //选中状态下的点
- virtual ZxDot getDotSel();
-
-signals:
-
- // 部分关联信号
- void sigNameChanged(QString sName);
- void sigColorChanged(QColor clr);
- void sigObjSelectionChanged(bool bSelected);
-
- // 通知数据点改变
- void sigPtsChanged();
- // 通知数据点改变,并告知改变前后的数据点
- void sigPtValuesChanged(QVector& vecOlds,
- QVector& vecNews);
-
- // 当Obj被双击选中时触发
- void sigObjDblCliked(const QPointF& pt);
-
- // 在外界修改tip
- void sigGetObjTip(QString& s);
-
-public:
-
- // 击中
- ObjHitOption m_oHitOption;
- int m_nHitIndex; //对于点和边界有效
-
-protected:
-
- // 从外界传入,本身不负责创建及释放
- ZxSubAxisX* m_pAxisX;
- ZxSubAxisY* m_pAxisY;
-
- // Tool
- ZxObjToolBase* m_pTool;
- // View
- ZxRenderView* m_pView;
-
-protected:
-
- // 名称
- QString m_sName;
-
- PlotObjectType m_oObjType;
- QString m_sObjTag;
-
- // 组成的点,实际的数值
- QVector m_vecPoints;
-
- // 内部创建(或外部传入)、本对象进行管理的子对象,如文本显示
- bool m_bShowSubObjs;
-
- QRectF m_rtBoundVs;//所有点的数值的范围
-
- // brother
- QVector m_vecBrothers;
- double m_fOffsetX; //整体移动时,Brother的偏移量,为了redo/undo
- double m_fOffsetY;
-
- // 为了方便放在父类
- ZxDot m_oDot;
- ZxDot m_oDotSel; //选中点的样式
- QPen m_oPen;
-
- QString m_sAxisObjectNameX; //为了序列化
- QString m_sAxisObjectNameY;
-
- bool m_bAddMode; //Add Or Del模式,临时变量
-
- // 在MoveToPos函数中涉及到哪些点进行了修改,不涉及序列化
- VecInt m_vecIndexesModified;
-};
diff --git a/Include/iPlot/iPlotCurveT/Objects/ZxObjLineSpecial.h.bak b/Include/iPlot/iPlotCurveT/Objects/ZxObjLineSpecial.h.bak
deleted file mode 100644
index c06d3bc..0000000
--- a/Include/iPlot/iPlotCurveT/Objects/ZxObjLineSpecial.h.bak
+++ /dev/null
@@ -1,80 +0,0 @@
-#pragma once
-
-#include "ZxObjLine.h"
-
-//ZXF2024特征线优化
-class I_PLOTCURVE_T_EXPORT ZxObjLineSpecial : public ZxObjLine
-{
- Q_OBJECT
- ZX_DECLARE_DYNAMIC
-
-public:
-
- ZxObjLineSpecial();
- ZxObjLineSpecial(const QString& sName,
- ZxSubAxisX* pAxisX,
- ZxSubAxisY* pAxisY);
- ~ZxObjLineSpecial();
-
- virtual void init(const QString& sName,
- ZxSubAxisX* pAxisX,
- ZxSubAxisY* pAxisY);
-
- // 击中
- virtual bool hitTest(const QPointF& pt);
-
- // 具体击中实现的函数,单纯击中,不做选项的改变
- // nOption用int是因为Rect类的击中选项不一致
- // nOption为负值,表示未击中,此时返回false
- virtual bool _runHitTest(const QPointF& pt, int& nOption, int& nSubIndex);
-
- // 击中后,ButtonUp后的处理
- // pt1:鼠标Down点,pt2:鼠标Up点
- virtual bool runMove(const QPointF& pt1, const QPointF& pt2);
-
- // 鼠标移动时,限制斜率得到的新点
- QPointF calFitPoint(const QPointF& ptNew);
-
- // 封装
- virtual void initTools();
- // 辅助信息
- virtual void initSubObjs();
-
- virtual void resetOthers();
-
-protected:
-
- // 设置图元对象的属性标志
- virtual void initFlags();
-
-public:
-
- virtual void paintBack(QPainter* painter,
- const ZxPaintParam& param);
- virtual void onSerialize(ZxSerializer* ser);
- virtual void onDeserialize(ZxSerializer* ser);
-
- virtual void onLoadTempl(ZxSerializer* ser);
- virtual void onSaveTempl(ZxSerializer* ser);
-
- virtual void fillPtyPano(IxPtyPano* sheet);
-
-public:
-
- //根据两点计算出多个点(斜率为1的最大最小点,与斜率为0的焦点及斜率为0的最大点)
- virtual QVector calLinePoints(const QPointF& pt1,
- const QPointF& pt0);
-
- //计算交点(P1和P2是线,P4是水平最后点, p3是交点)
- void getInCrossPt(const QPointF& p1, const QPointF& p2, const QPointF& p4, QPointF& pt3);
-
-
- // 特征线斜率 Special line ratio(组合斜率)()
- // 斜率
- QPointF getSlopeOnePt() const; //斜率为1
- QPointF getSlopeZeroPt() const; //斜率为0
-};
-
-
-
-
diff --git a/Include/iPlot/iPlotCurveT/Objects/ZxObjLineSpecialTool.h.bak b/Include/iPlot/iPlotCurveT/Objects/ZxObjLineSpecialTool.h.bak
deleted file mode 100644
index 801fbf5..0000000
--- a/Include/iPlot/iPlotCurveT/Objects/ZxObjLineSpecialTool.h.bak
+++ /dev/null
@@ -1,29 +0,0 @@
-#pragma once
-
-#include "Defines.h"
-#include "ZxObjLineTool.h"
-
-//ZXF2024组合(斜率1和0)特征线工具
-class I_PLOTCURVE_T_EXPORT ZxObjLineSpecialTool : public ZxObjLineTool
-{
- Q_OBJECT
-
-public:
-
- ZxObjLineSpecialTool();
- //ZxObjLineSlrTool(const ZxObjLineSlrTool& c);
-
-public:
-
- virtual void onPaint(QPainter* painter, const ZxPaintParam& param);
-
-//protected:
-// virtual Qt::CursorShape getCursorBy(const int& nOption,
-// const int& nSubIndex);
-
-
-};
-
-
-
-
diff --git a/Include/iPlot/iPlotCurveT/ZxPlotBase.h b/Include/iPlot/iPlotCurveT/ZxPlotBase.h
index f201d92..6cf7154 100644
--- a/Include/iPlot/iPlotCurveT/ZxPlotBase.h
+++ b/Include/iPlot/iPlotCurveT/ZxPlotBase.h
@@ -57,8 +57,8 @@ protected:
public:
- static const int AXISHEIGHT = 12;
- static const int AXISWIDTH = 12;
+ //static const int AXISHEIGHT = 12;
+ //static const int AXISWIDTH = 12;
static const int TITLEHEIGHT = 13;
static const int NAVIBARHEIGHT = 5;
diff --git a/Include/iPlot/iPlotCurveT/ZxSubColorTable.h b/Include/iPlot/iPlotCurveT/ZxSubColorTable.h
deleted file mode 100644
index 54db781..0000000
--- a/Include/iPlot/iPlotCurveT/ZxSubColorTable.h
+++ /dev/null
@@ -1,139 +0,0 @@
-#pragma once
-#include
-#include
-#include
-#include
-#include
-#include
-#include "Defines.h"
-#include
-
-#include "ZxDrawHelper.h"
-
-#include "iPlotCurveT_global.h"
-
-class ColorNode
-{
-public:
- ColorNode(float fPos,QColor clrColor)
- {
- m_fPos = fPos;
- m_clrColor = clrColor;
- }
-
- float m_fPos;
- QColor m_clrColor;
-};
-
-class ColorScheme
-{
-public:
- ColorScheme()
- {
- m_strName = "";
- m_fValMin = 0.0f;
- m_fValMax = 0.0f;
- m_vecColors.clear();
- m_vecIntervals.clear();
- }
-
- QString m_strName;
- float m_fValMin;
- float m_fValMax;
- QVector m_vecColors;
- QVector m_vecIntervals;
-};
-
-
-class I_PLOTCURVE_T_EXPORT ZxSubColorTable : public ZxRenderItem
-{
- Q_OBJECT
- ZX_DECLARE_DYNAMIC
-
-public:
- enum COLOR_TYPE
- {
- STEP,GRADIENT,GRAY,ST_PROJECTION
- };
-
-
- static const float COLOR_WIDTH;
-
-public:
-
- ZxSubColorTable();
- ZxSubColorTable(const QString& name);
- ZxSubColorTable(const ZxSubColorTable & _r);
- ~ZxSubColorTable();
-
- void init();
- void initGradient();
-
- virtual void paintBack(QPainter* painter, const ZxPaintParam& param);
- virtual void onSerialize(ZxSerializer* ser);
- virtual void onDeserialize(ZxSerializer* ser);
- virtual void fillPtyPano(IxPtyPano* sheet);
-
- void drawColorRect(QPainter* painter,QRectF rc);
-
- void initSystemPalette();
- void getAllPalette(QString strPath, QVector &vecPlates);
- QStringList splitString(QString s);
-
-public:
- // 名称
- QString getName() const;
- void setName(const QString& sName);
-
- // 别名
- QString getAlias() const;
- void setAlias(QString name);
-
- // 颜色表的单位
- void setUnit(const QString &strUnit);
- QString getUnit() const;
-
- // 数据最值
- float getMinValue() const;
- void setMinValue(float fMin);
- float getMaxValue() const;
- void setMaxValue(float fMax);
-
- // 颜色表的类型,梯度,渐变,灰度
- int getColorType() const;
- void setColorType(int nType);
-
- QString getColorTypeSTR() const;
- void setColorTypeSTR(QString strTypeName);
-
- // 根据值得到对应的颜色
- bool getColorForValue(float fValue,QColor &clr);
- bool getValueForColor(QColor clr,float &fValue);
-
- // 根据值得到对应的颜色
- bool getColor(float pos,QColor &clr);
-
- void setColorGrade(int nColorGrade);
- int getColorGrade() const ;
-
- QVector getColorTable();
-
-protected:
-
- QString m_strName;
- QString m_strAlias;
- QString m_sUnit;
- float m_fMin;
- float m_fMax;
-
- int m_nColorType;
- QString m_strColorType;
- int m_nColorGrade; //颜色表大小,最大到65536个(真彩)
-
- QVector m_vecColorNodes;
- QVector m_vecColorSchemes;
-};
-
-
-
-
diff --git a/Include/mAlg/mAlgDefines/iErfcUtils.h b/Include/mAlg/mAlgDefines/iErfcUtils.h
index 93f36f2..a285ea3 100644
--- a/Include/mAlg/mAlgDefines/iErfcUtils.h
+++ b/Include/mAlg/mAlgDefines/iErfcUtils.h
@@ -20,6 +20,7 @@ public:
// 方式1:内部编写,试井处理过程中用的基本都是本函数
static double errorf(double x);
+#ifdef _SCAN_OLD_CODES_
// 方式2:源自The Art of Scientific Computing第二版、第三版pdf无水印高清版及相应源代码
// 参考:https://blog.csdn.net/xingdu_/article/details/106869318
// 致谢原作者
@@ -29,21 +30,29 @@ public:
// 注:由于H变井储一直有问题,所以2025-11-18再次进行更改,代码提供者 Xiehang
// 此处,仅仅是测试新的误差函数,在H变井储中是否起作用,为了不影响其它,并未全局替换该误差函数
+ // 该函数未启用
static double erfc_b(double x);
static double _erfc_b(double z);
-#ifdef _SCAN_OLD_CODES_
// 方式3,暂未启用(新,bwp提供)
static double erf_new(double x);
#endif
+ // 方式4:20260610 针对H变井储再次进行研究攻关
+ // 解决Matlab的erfcx函数进行实现
+ // 只有H变井储使用
+ static double erfc_x(double x);
+
public:
// 方式1:涉及参数
- static const int len_cof_1 = 28;
- static const double cof_arr_1[28];
+ static const int len_cof_1 = 6;
+ static const double cof_arr_1[6];
+#ifdef _SCAN_OLD_CODES_
// 方式2:涉及参数
- static const int len_cof_2 = 6;
- static const double cof_arr_2[6];
+ static const int len_cof_2 = 28;
+ static const double cof_arr_2[28];
+#endif
+
};
diff --git a/Include/mAlg/mAlgDefines/iModelOption.h.bak b/Include/mAlg/mAlgDefines/iModelOption.h.bak
deleted file mode 100644
index ff8063c..0000000
--- a/Include/mAlg/mAlgDefines/iModelOption.h.bak
+++ /dev/null
@@ -1,162 +0,0 @@
-#pragma once
-
-#include "mAlgDefines.h"
-#include "ZxBaseUtil.h"
-#include "mAlgDefines_global.h"
-
-class iModelDesc;
-class iModelInfoBase;
-
-// 模型选项内容
-class M_ALG_DEFINES_EXPORT iModelOption
-{
-public:
-
- iModelOption();
-
- void clone(iModelOption* p); //克隆
-
-
- // 这是对应ListWx各项项
- enum mpDescs
- {
- // 无标志
- descNone = 0,
-
- // 井储
- descWbs = 0x00000001,
- // 井型
- descWel = 0x00000002,
- // 油藏类型
- descRes = 0x00000004,
- // 边界
- descBdy = 0x00000008,
-
- // 其它1
- descOther1 =0x00000010,
- // 其它2
- descOther2 =0x00000020,
-
- // 扩展1
- descExt1 = 0x00000040,
- // 扩展2
- descExt2 = 0x00000080,
- // 扩展3
- descExt3 = 0x00000100,
- // 扩展4
- descExt4 = 0x00000200,
- // 扩展5
- descExt5 = 0x00000400,
- // 扩展6
- descExt6 = 0x00000800,
-
- // 待定
- descUnknown = 0x00001000
- };
-
-
- // 这是对应Checkbox勾选项
- enum mpFlags
- {
- // 无标志
- flagNone = 0,
-
- // 启用压力梯度
- flagPressGrad = 0x00000001,
- // 动态渗透率
- flagDynamicK = 0x00000002,
- // 小信号
- flagSmallSignal = 0x00000004,
- // 应力敏感
- flagStressSensitive = 0x00000008,
- // 井间干扰
- flagInterference = 0x00000010,
- // 压裂井
- flagFractuWell = 0x00000020,
-
- // 吸附系数
- flagAdsorption = 0x00000040,
- // 扩展2
- flagExt2 = 0x00000080,
- // 扩展3
- flagExt3 = 0x00000100,
- // 扩展4
- flagExt4 = 0x00000200,
- // 扩展5
- flagExt5 = 0x00000400,
- // 扩展6
- flagExt6 = 0x00000800,
-
- // 待定
- flagUnknown = 0x00001000
- };
-
-public:
-
- // 标识开启(对应界面上√)
- bool isFlagOpen(mpFlags flags) const;
- void setFlagOpen(mpFlags flags, bool bOpen);
- void setFlagOpen(QString key, bool bOpen);
-
- // 设置模型选项,如井储、井型等
- void setMpDesc(QString key, QString sCode, QString sTag = "");
- void setMpDesc(mpDescs descs, QString sCode, QString sTag = "");
-
- // 为了方便调用增加
- m_Assist_Type getAssistType();
- QString getTagWbs();
- QString getTagWel();
- QString getTagRes();
- QString getTagBdy();
- QString getTagOfTypeId(int id, const QVector* pVec);
-
- //扩展ID对XA的接口
- QString getIDWbs();
- QString getIDWel();
- QString getIDRes();
- QString getIDBdy();
- QString getIDOfTypeId(int id, const QVector* pVec);
-
- // 是否外部模型
- AlgModelSrc getAMS();
-// bool isCustomModel();
-// bool isWxdModel();
-
- QString sumModelInfos();
- void parseModelInfos(QString s);
-
- // 每次从界面重新处理前重置一下
- void reset();
-
-public:
-
- // 根据文字获取
- iModelDesc* matchModelDesc();
- bool checkModelDesc(bool loggedIfError = false);
- iModelDesc* getModelDesc();
- QString getOptionStr(); //当前选项描述,为啥弹出日志
-
- static WellFluidType convertFluidType(QString sTag);
- static ModelSeriesType convertModelSeries(QString sTag);
-
-protected:
-
- mpFlags m_oFlags;
-
- // 不涉及序列化,该Option对应的ModelDesc
- // 如果为空,则表示该Option为不支持的算法模型
- iModelDesc* m_pModelDesc;
-
-public:
-
- // 对应四个选项,井储、井模型、油藏模型、边界类型
- m_Wbs_Type m_oWbsType;
- m_Wel_Type m_oWelType;
- m_Res_Type m_oResType;
- m_Bdy_Type m_oBdyType;
-
- ModelSeriesType m_oMst; //大的分类信息,这是软件启动时导航的选项
- WellFluidType m_oWft; //井类别,指:油气水井
-
- QString m_sModelCode; //这是模型统一编码
-};
diff --git a/Include/mAlg/mAlgDefines/iParaManager.h.bak b/Include/mAlg/mAlgDefines/iParaManager.h.bak
deleted file mode 100644
index 98f9218..0000000
--- a/Include/mAlg/mAlgDefines/iParaManager.h.bak
+++ /dev/null
@@ -1,161 +0,0 @@
-#pragma once
-
-#include "Defines.h"
-#include "mAlgDefines.h"
-#include "mAlgDefines_global.h"
-#include "mAlgMatrix.h"
-
-class iModelOption;
-class iDynSkinInfo;
-
-// 参数管理类
-class M_ALG_DEFINES_EXPORT iParaManager
-{
-public:
-
- iParaManager();
- ~iParaManager();
-
-public:
-
- // 井型/油藏类型/边界类型/Assist
- void setModelOption(iModelOption* pModelOption);
- iModelOption* getModelOption();
-
- // 参数传递
- void setParaMap(QMap& map);
-
- void setParamUnitMap(QMap& map);
- bool getParamValueUnit(QString sPara, QString& sUnit);
-
- void setParaValue(QString sPara, double d);
- bool getParaValue(QString sPara , double& d);
- bool getParaValues(QStringList listParas, QVector& vecValue);
-
- // 是否包括某个参数的数值
- bool isParaContained(QString sPara);
-
- // 参数特殊处理
- virtual void adjustParaName(QString& sPara);
- virtual void adjustParaName_K(QString& sPara);
- virtual void adjustParaValue(QString sPara, double& d); //取完参数之后,允许再次调整
-
- // 一维数组
- bool getParaArrValue(QString sPara, VecDouble& vec);
- void setParaArrValue(QString sPara, VecDouble vec);
-
- // 二维数组
- bool getParaArrArrValue(QString sPara, VVecDouble& vvec);
- void setParaArrArrValue(QString sPara, VVecDouble vvec);
-
- // 矩阵
- bool getParaMatrixValue(QString sPara, WtaiMatrix& mat);
- void setParaMatrixValue(QString sPara, WtaiMatrix mat);
- bool getParaVecMatrixValue(QString sPara, QVector& vecMat);
- void setParaVecMatrixValue(QString sPara, QVector vecMat);
-
- // EndQ
- void setEndQ(double dQ);
- double getEndQ();
-
- // 所有流量数值
- void setAllQs(VecDouble& vec);
-
- //清空数据(每运行一次都清空数据)主要是清空数组数据
- void clearArrMap();
-
-public:
-
- // 计算CD入口函数
- virtual bool calCD();
- virtual bool calCDCommon(double& A);
- bool calCDDualPro(double& A);
- bool calCDDualPer(double& A);
- bool calCDMedComp(double& A);
- bool calCDTLayCrosComp(double& A);
- bool calCDTHmgenWt(double& A);
-
- // 参数计算入口函数
- virtual bool calParam();
-
- virtual bool calTDIM();
- virtual bool calTDIM_Wxd();
- virtual bool calPDIM();
- virtual bool calPDIM_Wxd();
- virtual bool calRcIM();
- virtual bool calRc();
-
- // 普通井的量纲转换需要变化
- virtual bool calTDIMCommon(double& A);
- bool calTDIMDualPro(double& A);
- bool calTDIMDualPer(double& A);
- bool calTDIMMedComp(double& A);
- bool calTDIMTLayCrosComp(double& A);
- bool calTDIMTHmgenWt(double& A);
-
- virtual bool calPDIMCommon(double& A);
- bool calPDIMDualPer(double& A);
- bool calPDIMMedComp(double& A);
- bool calPDIMTLayCrosComp(double& A);
- bool calPHYDIM(double& A);
-
- // 数值解
- bool calyD();
-
- bool findParam(QString sPara, double &d);
-
-public:
-
- // 是否启用混合黏度
- void setEnableMux(bool b);
- bool getEnableMux();
-
- // 允许在计算之后,对结果进行个别计算或调整
- virtual void adjustParaResults();
-
- // 增加对于变表皮的处理
- void setDynSkinInfo(iDynSkinInfo* p);
-
- // 当前是否正在获取动态的表皮模式(开关)
- // 只有在计算历史压力曲线时,才设置为true
- void setHistRunning(bool b);
- // 当前操作的流动段索引,为了获取前一流量
- void setHistSegIndex(int n);
-
-#ifdef QT_DEBUG
- void assertPara(QString sPara, bool bSetValue);
-#endif
-
- QString getLastError();
- void resetError();
-
-public:
-
- // 单个参数map
- QMap m_mapParas;
- QMap m_mapParasUnit;
-
- // 参数对应数组
- QMap m_mapArrParas;
-
- // 二维数组
- QMap m_mapArrArrParas;
-
- QMapm_mapMatrixParas;
- QMap >m_mapVecMatrixParas;
-
- //黏度是否启用混合黏度
- bool m_bEnableMux;
-
- double m_dEndQ;
-
-protected:
-
- iModelOption* m_pModelOption;
-
- // 变表皮
- iDynSkinInfo* m_pDynSkinInfo;
-
- // 错误信息
- QString m_sError;
-};
diff --git a/Include/mAlg/mAlgDefines/mAlgDefines.h.bak b/Include/mAlg/mAlgDefines/mAlgDefines.h.bak
deleted file mode 100644
index f2f0853..0000000
--- a/Include/mAlg/mAlgDefines/mAlgDefines.h.bak
+++ /dev/null
@@ -1,436 +0,0 @@
-#pragma once
-
-#include
-
-// 对于一些原先代码,尽管不再启用,但有时候需要看一下,即可放开该定义方便查看
-//#define _SCAN_OLD_CODE_ 1
-
-#define _isLimitedDouble zxMathBase::isLimitedValue
-
-// 对应四个选项,井储、井模型、油藏模型、边界类型
-#define _oWbsType m_pModelOption->m_oWbsType
-#define _oWelType m_pModelOption->m_oWelType
-#define _oResType m_pModelOption->m_oResType
-#define _oBdyType m_pModelOption->m_oBdyType
-#define _oWft m_pModelOption->m_oWft
-#define _oMst m_pModelOption->m_oMst
-#define _oAssistType m_pModelOption->getAssistType()
-
-// 大的模型分类,导航中选定
-enum ModelSeriesType
-{
- MST_LP = 0, //低渗透
- MST_HW, //水平井
- MST_SR, //特殊油藏
- MST_PF, //聚合物
-// MST_XD, //wxd
-// MST_XA, //XA
- MST_UNKNOWN
-};
-
-// 特征点/线
-enum eCharactType
-{
- CT_POINT = 0, //特征线类型
- CT_LINE, //特征点类型
- CT_UNKNOW
-};
-
-// 井流体性质,油气水井
-enum WellFluidType
-{
- WFT_NULL = 0, //什么都没有选,这个时候不能下一步
- WFT_Oil = 1, //油井 或油相
- WFT_Gas = 2, //气井 或气相
- WFT_Water = 4, //水井 或水相
- WFT_Condense = 8, //凝析油气
- WFT_PF = 16, //聚合物
- WFT_CO2 = 32, //CO2
- WFT_Oil_Gas = 3, //1+2
- WFT_Oil_Water = 5, //1+4
- WFT_Gas_Water = 6, //2+4
- WFT_Condense_Water =12, //8+4
- WTF_Oil_Gas_Water = 7, //1+2+4
- WTF_PF_Water = 20, //16+4
- WTF_Co2_Water = 36, //32+4
- WFT_UNKNOWN
-};
-#define PvtFluidType WellFluidType
-
-// Pvt流体大的分类
-enum PvtFluidClass
-{
- PFC_Common = 0, //常规
- PFC_Special, //特殊
- PFC_StateEquation, //状态方程
- PFC_UNKNOWN
-};
-
-// 井型,直井水平井等
-enum WellOrientType
-{
- WOT_Vert = 0, //直井
- WOT_Hori, //水平井
- WOT_UNKNOWN
-};
-
-enum m_Wbs_Type
-{
- WBST_Fixed = 0, //定井储
- WBST_None = 1, //无井储
- WBST_Fair = 2, //变井储(Fair)
- WBST_Hegeman = 3, //变井储(Hegeman)
- WBST_SpiveyPacker = 4, //变井储(Spivey Packer)
- WBST_SpiveyFissures = 5 //变井储(Spivey Fissures)
-};
-
-enum m_Wel_Type
-{
- WT_V = 100, //直井
- WT_PCL = 101, //直井(部分射开)
- WT_PUF = 102, //压裂直井(均匀流量)
- WT_PCI = 103, //压裂直井(无限导流)
- WT_PCFL = 104, //压裂直井(有限导流)(三线性流)
- WT_PCFR = 105, //压裂直井(有限导流)(拟径向流)
- WT_PCFF = 106, //压裂直井(有限导流)(快)
- WT_PC2 = 107, //压裂井——两段产液
- WT_PC3 = 108, //压裂井——三段产液
- WT_PCF2 = 109, //压裂直井(有限导流)-两段
-
- WT_H = 200, //水平井
- WT_HPOSSRC = 201, //水平井点源模型
- WT_HSL2 = 202, //水平井两段产液
- WT_HSL2BotWater = 203, //水平井两段产液(底水)
- WT_HSL3 = 204, //水平井三段产液
- WT_HSL3BotWater = 205, //水平井三段产液(底水)
- WT_PFCM = 206, //水平井多级压裂
- WT_PICM = 207, //水平井多级裂分段产液
-
- WT_DEV = 300, //斜井
-
- //王晓东教授
- WT_WXD_PCL = 600, //直接有限导流4
- WT_WXD_V = 601, //普通直井
-
- //西安林加恩教授
- WT_LJE_HMGEN = 700, //西安测试
-
- WT_OTHER_GRID = 998, //网格划分,权宜之计
- WT_NONE = 999
-};
-
-enum m_Res_Type
-{
- // 常规
-
- RT_HMGE = 100, //均质油藏
- RT_HMGE_EX = 101, //均质油藏(扩展),baiwp算法
- RT_DUALPRO_PS = 102, //双重孔隙——拟稳态
- RT_DUALPRO_PLA = 103, //双重孔隙——不稳态板状介质
- RT_DUALPRO_BAL = 104, //双重孔隙——不稳态球形介质
- RT_DUALPRO_CYL = 105, //双重孔隙——不稳态圆柱形介质
- RT_DUALPER = 106, //双重渗透
- RT_COMP2 = 107, //双区复合
- RT_COMP3 = 108, //三区复合
-
- RT_MedComp12 = 200, //多重介质径向复合(内1外2)
- RT_MedComp13 = 201, //多重介质径向复合(内1外3)
- RT_MedComp22 = 202, //多重介质径向复合(内2外2)
- RT_MedComp23 = 203, //多重介质径向复合(内2外3)
- RT_MedComp33 = 204, //多重介质径向复合(内3外3)
- RT_TLC_None = 205, //双层无越流
- RT_TLC_NoneEx = 206, //双层无越流(封闭)
- RT_TLC_Common = 207, //双层越流
- RT_TLC_Comp = 208, //双层越流径向复合
- RT_MULTILAYER_P = 209, //双层压裂
- RT_HMGENWt = 210, //均质油藏(水井)
-
- RT_LINEAR_COMP = 211, //线性复合
-
-
- // 水平井
-
-// RT_HMGE = 100, //均质油藏,注释表示前面已经定义,下同
-// RT_DUALPRO_PS = 102, //双重孔隙——拟稳态
- RT_DUALPRO_POSSRC = 300, //双重孔隙(点源)
-// RT_DUALPER = 106, //双重渗透
-// RT_COMP2 = 107, //双区复合
-// RT_COMP3 = 108, //三区复合
-// RT_LINEAR_COMP = 211, //线性复合
-
-
- // 特殊油气藏
-
-// RT_HMGE = 100, //均质油藏,注释表示前面已经定义,下同
-// RT_HMGE_EX = 101, //均质油藏(扩展),baiwp算法
-// RT_DUALPRO_PS = 102, //双重孔隙——拟稳态
-// RT_COMP2 = 107, //双区复合
-// RT_COMP3 = 108, //三区复合
- RT_SR_COMP = 350, //径向复合,就是双区
-
- // 其他废弃
-
-// RT_SR_HMGE, //均质油藏
-// RT_DUALPRO, //双重孔隙 就是拟稳态
- RT_SR_CONDENSE_COMP2 = 398, //凝析气两区复合
- RT_SR_CONDENSE_COMP3 = 399, //凝析气三区复合
-
- // 聚合物(后续进行考虑)
-
- RT_HMGEN = 400, //均质油藏(非牛顿)
- RT_COMP2ONN = 401, //双区复合(非牛顿-牛顿)
- RT_COMP2NON = 402, //双区复合(牛顿-非牛顿)
- RT_FLOW2 = 403, //双层窜流
- RT_FLOW3 = 404, //三层窜流
- RT_FLOW2COM2ONN = 405, //双层窜流复合(非牛顿-牛顿)
- RT_FLOW2COM2NON = 406, //双层窜流复合(牛顿-非牛顿)
- RT_BIGPORE = 407, //大孔道油藏
- RT_INTERFERENCE = 408, //井间干扰,该项比较特殊,需要根据checkbox进行动态调整
- RT_FRACT = 409, //
-
- //王晓东教授
- RT_WXD_LINEPS = 600, //垂直裂缝线源解
- RT_WXD_HMGE = 601, //普通直井
-
- //西安林加恩教授
- RT_LJE_HMGEN = 700, //西安测试
-
- RT_NONE = 999
-};
-
-enum m_Bdy_Type
-{
- BT_NONE = 0, //无限大
- BT_ONE = 1, //一条边界
- BT_PARALL = 2, //平行边界
- BT_TCROSS = 3, //三条垂直边界
- BT_CROSS = 4, //交叉边界
- BT_Circle = 5, //圆形边界
- BT_RECT = 6 //矩形边界
- // BT_BotWater //底水边界
-};
-
-enum m_Assist_Type
-{
- ASST_PG = 0, //启动压力梯度
- ASST_DK, //动态渗透率
- ASST_SS, //小信号
- ASST_AP, //吸附系数
- //临时
- ASST_INTER, //考虑井间干扰
- ASST_FRACT, //考虑压裂井
- // SR
- ASST_SSST, //StressSensitive应力敏感
- ASST_NONE
-};
-
-//模型源码来源
-enum AlgModelSrc
-{
- AMS_Inner = 0, //内部,石大北京程时清教授团队
- AMS_Wxd = 600, //王晓东教授团队:(井型 600 开始 或者 储层类型 600开始)
- AMS_Lje = 700, //西安林教授团队:(井型 700 开始 或者 储层类型 700开始)
- AMS_Ludt = 800, //科大卢老师团队:(井型 800 开始 或者 储层类型 800开始)
- AMS_Lidl = 900, //合肥工大李老师团队:(井型 900 开始 或者 储层类型 900开始)
-
- AMS_UNKNOWN
-};
-
-
-//是否第一次运行(这个参数的主要意义是一些基础参数
-//再运行的过程中提取出来,下次比如拟合的过程中不需要重复的去计算)
-enum AlgCalMode
-{
- ACM_FitModel = 0, //模型生成
- ACM_FitAuto, //自动拟合
- ACM_FitPlate, //图版拟合
- ACM_FitModelAfterAuto, //自动拟合之后再次模型生成
-
- ACM_UNKNOWN
-};
-
-
-enum Fit_Type
-{
- FT_Model = 0, //常规生成模型,其实不属于拟合
- FT_Auto, //自动拟合
- FT_Plate, //图版拟合
- FT_Anal, //试井设计
- FT_Unknown
-};
-
-enum Fit_Method
-{
- FM_GaussNewton = 0, //高斯牛顿
- FM_GaussNewtonEx, //归一化高斯牛顿
- FM_Genetic, //遗传算法
- FM_ParticleSwarm, //粒子群算法(Particle Swarm Optimization)
- FM_Unknown
-};
-
-// 结构体,对应拟合参数的设置
-struct zxFitParaInfo
-{
- QString fpiName; //拟合参数名称,英文标识,如"S"
- double fpiValue;//参数值
- double fpiMax; //参数最大值
- double fpiMin; //参数最小值
- QString fpiUnit; //参数单位
- bool fpiChecked;//参数是否启用拟合(即前面是否打上√)
-};
-
-// 井型,直井水平井等
-#define s_Wot_Vert QStringCH("直井")
-#define s_Wot_Hori QStringCH("水平井")
-
-//压力导数曲线(实际)
-#define s_Souce_Curve "Souce"
-#define s_Deriv_Curve "Deriv"
-#define s_SmallSig_Curve "SmallSig"
-#define s_Ppd_Curve "Ppd"
-#define s_Deriv_NoOverlay_Curve "NoOverlay_Deriv"
-
-//压力导数曲线(理论)
-#define s_TheorySouce_Curve "TheorySouce"
-#define s_TheoryDeriv_Curve "TheoryDeriv" //带叠加原理
-#define s_TheorySmallSig_Curve "TheorySmallSig"
-#define s_TheoryPpd_Curve "TheoryPpd"
-#define s_TheoryDeriv_NoOverlay_Curve "NoOverlay_TheoryDeriv" //无叠加原理
-
-//历史曲线
-#define s_HistorySouce_CurveP "HistorySouce"
-#define s_HistoryFit_CurveP "HistoryFit"
-//历史曲线增加流量显示
-#define s_HistorySouce_CurveF "HistorySouceF"
-
-//
-#define s_SemiSouce_Curve "SemiSouce"
-#define s_SemiTheorySouce_Curve "SemiTheorySouce"
-
-#define s_Ipr_Source "IprSource"
-#define s_Ipr_Fit "IprFit"
-#define s_Ipr_FitEx "IprFitEx"
-#define s_Ipr_Result "IprResult"
-#define s_Ipr_ResultEx "IprResultEx"
-
-#define s_Tag_HomoModel QStringCH("均质油藏")
-#define s_Tag_HomoModelEx QStringCH("均质油藏(扩展)")
-#define s_Tag_DualPorModel QStringCH("双重孔隙")
-#define s_Tag_DualPercModel QStringCH("双重渗透")
-#define s_Tag_TwoCompoModel QStringCH("双区复合")
-#define s_Tag_ThreeCompoModel QStringCH("三区复合")
-//*********************************7.12改动LDY**********************************
-#define s_Tag_UniFracModel QStringCH("压裂直井(均匀流量)")
-#define s_Tag_IniFracModel QStringCH("压裂直井(无限导流)")
-//#define s_Tag_HorizonModel QStringCH("水平井")
-#define s_Tag_FinFracModel QStringCH("压裂直井(有限导流)")
-//*********************************7.12改动完毕**********************************
-
-#define s_Tag_NoBoundary QStringCH("无限大")
-#define s_Tag_OneBoundary QStringCH("单一边界")
-#define s_Tag_ParallBoundary QStringCH("平行边界")
-#define s_Tag_TCrossBoundary QStringCH("U型边界")
-#define s_Tag_CrossBoundary QStringCH("交叉边界")
-#define s_Tag_CircularCompoModel QStringCH("圆形边界")
-#define s_Tag_RectCompoModel QStringCH("矩形边界")
-
-//*********************************7.12改动LDY**********************************
-#define s_Tag_NoCharatPoint QStringCH("-------")
-//公共部分
-#define s_Tag_WellStoragePoint QStringCH("井储点")
-#define s_Tag_SpikesPoint QStringCH("峰值点")
-#define s_Tag_RadialFlowPoint QStringCH("径向流点")
-//复合油藏
-#define s_Tag_CompoPoint QStringCH("复合油藏点")
-//压裂井
-#define s_Tag_LinearFlow1hPoint QStringCH("线性流1h点")
-#define s_Tag_LinearRadialPoint QStringCH("线性流与径向流交点")
-#define s_Tag_LinearBiRadialPoint QStringCH("线性流与双径向流交点")
-#define s_Tag_RadialBiRadialPoint QStringCH("径向流与双径向流交点")
-
-#define s_Tag_BiLinearFlow1hPoint QStringCH("双线性流1h点")
-#define s_Tag_LinearBiLinearPoint QStringCH("线性流与双线性流交点")
-#define s_Tag_RadialBiLinearPoint QStringCH("径向流与双线性流交点")
-
-//双重介质
-#define s_Tag_FirRadialEndPoint QStringCH("第一径向流结束点")
-#define s_Tag_SecRadialStarPoint QStringCH("第二径向流开始点")
-#define s_Tag_DualMinPoint QStringCH("双重介质最低点")
-//边界
-#define s_Tag_BoundClosePoint QStringCH("封闭边界流点")
-#define s_Tag_BoundSupplyPoint QStringCH("定压边界流点")
-//水平井
-#define s_Tag_VerRadialPoint QStringCH("垂向径向流点")
-#define s_Tag_HoriLinearPoint QStringCH("水平线性流点")
-#define s_Tag_HoriRadialPoint QStringCH("水平径向流点")
-
-//*********************************7.12改动完毕**********************************
-
-#define s_Tag_OneTypical QStringCH("第一特征线")
-#define s_Tag_TwoTypical QStringCH("第二特征线")
-
-
-//特征值方法
-
-//井筒储集系数
-#define s_Tag_WellStorage_C QStringCH("井储阶段法")
-
-//地层渗透率
-//直井
-#define s_Tag_HorRadial_K QStringCH("径向流法")
-#define s_Tag_PeakPoint_K QStringCH("峰值法")
-#define s_Tag_PeakAndHR_K QStringCH("峰值-径向流法")
-#define s_Tag_UniFracLR_K QStringCH("线性流-径向流法")
-#define s_Tag_InfFracLBR_K QStringCH("线性流-双径向流法")
-#define s_Tag_InfFracRBR_K QStringCH("径向流-双径向流法")
-#define s_Tag_FinFracLBL_K QStringCH("线性流-双线性流法")
-//水平井
-#define s_Tag_HoriWell_Kv QStringCH("线-垂径法")
-#define s_Tag_HoriWell_Ky QStringCH("水平线性流法")
-#define s_Tag_HoriWell_Kx QStringCH("线-水径法")
-#define s_Tag_HoriWell_Kh QStringCH("水平径向流法")
-
-//表皮系数
-#define s_Tag_WellBorePeakx_S QStringCH("横坐标法")
-#define s_Tag_WellBorePeaky_S QStringCH("纵坐标法")
-
-//边界尺寸
-#define s_Tag_OneBoundClose_L1 QStringCH("封闭边界流法")
-#define s_Tag_OneBoundSupply_L1 QStringCH("定压边界流法")
-
-//流度比
-#define s_Tag_MobilityRatio_M QStringCH("第二径向流法")
-
-//复合半径
-#define s_Tag_InnerRaDius_Rc QStringCH("第二径向流法")
-
-//裂缝半长
-#define s_Tag_UniFracR_Xf QStringCH("径向流法")
-#define s_Tag_UniFracLR_Xf QStringCH("线性流-径向流法")
-#define s_Tag_InfFracLBR_Xf QStringCH("线性流-双径向流法")
-#define s_Tag_InfFracRBR_Xf QStringCH("径向流-双径向流法")
-#define s_Tag_FinFracLBL_Xf QStringCH("线性流-双线性流法")
-
-//裂缝导流能力
-#define s_Tag_FinFracBL_Fc QStringCH("双线性流法")
-#define s_Tag_FinFracLBL_Fc QStringCH("线性流-双线性流法")
-#define s_Tag_FinFracRBL_Fc QStringCH("径向流-双线性流法")
-
-//储容比
-#define s_Tag_DualPorMinR_Om QStringCH("径向流-最低法")
-#define s_Tag_DualPorMinR1_Om QStringCH("第一最低法")
-#define s_Tag_DualPorMinR2_Om QStringCH("第二最低法")
-
-//窜流系数
-#define s_Tag_DualPorMin_Lar QStringCH("最低法")
-#define s_Tag_DualPorR1_Lar QStringCH("第一最低法")
-#define s_Tag_DualPorR2_Lar QStringCH("第二最低法")
-#define s_Tag_DualPorOmMin_Lar QStringCH("最低-储容比法")
-
-
-#define s_IprPlot_Source "IprSourcePlot"
-#define s_IprPlot_Result "IprResultPlot"
-
-//边界类型
-#define s_Tag_BdyType_CloseB QStringCH("封闭")
-#define s_Tag_BdyType_FixP QStringCH("定压")
diff --git a/Include/mAlg/mAlgPseudo/iAlgPseuBase.h b/Include/mAlg/mAlgPseudo/iAlgPseuBase.h
deleted file mode 100644
index 6d84aa3..0000000
--- a/Include/mAlg/mAlgPseudo/iAlgPseuBase.h
+++ /dev/null
@@ -1,46 +0,0 @@
-#pragma once
-
-#include "Defines.h"
-#include "mAlgPseudo_global.h"
-#include "mAlgDefines.h"
-#include "mAlgMatrix.h"
-
-// 拟压力相关的通用函数类
-class M_ALGPSEUDO_EXPORT iAlgPseuBase
-{
-public:
- iAlgPseuBase();
-
- // 当前是否采用三区模式计算拟压力
- static void setPseuMode(int n);
- static int getPseuMode();
-
- // 主调用函数,内部自动区分压力还是拟压力
- static bool calP(double ps, double &p, int which = -1);
- static bool calPS(double p, double &ps, int which = -1);
-
- // 计算“x--->y”的回归曲线方程系数
- static bool _fitXtoY(VecDouble vecXs, VecDouble vecYs, VecDouble &vecCoefs, bool isZero = true);
- // 计算“y--->x”的回归曲线方程系数(反推)
- static bool _fitYtoX(VecDouble vecXs, VecDouble vecYs, VecDouble &vecCoefs, bool isZero = false);
- // 计算相关性系数
- // vecXs是横坐标,vecYs为纵坐标,vecCoefs为系数
- static bool _calR2(VecDouble vecXs, VecDouble vecYs, VecDouble vecCoefs, double &R2);
-
- // 多项式转换
- static bool _calMultiPolyX(double x, double &y, VecDouble vecCoefs);
-
-private:
-
- // 当前是否采用三区模式计算拟压力
- // 0:常规、1:三区拟压力(白)、2:组分三区拟压力(徐)
- static int m_nPseuMode;
-};
-
-
-
-
-
-
-
-
diff --git a/Include/mAlg/mAlgPseudo/iAlgPseuCal.h b/Include/mAlg/mAlgPseudo/iAlgPseuCal.h
deleted file mode 100644
index 0c0a718..0000000
--- a/Include/mAlg/mAlgPseudo/iAlgPseuCal.h
+++ /dev/null
@@ -1,71 +0,0 @@
-#pragma once
-
-#include "Defines.h"
-#include "mAlgPseudo_global.h"
-
-// 拟压力计算载体,单例模式,在模型处理解释过程调用
-class M_ALGPSEUDO_EXPORT iAlgPseuCal
-{
-public:
- iAlgPseuCal();
-
- /// @brief 计算拟压力相关
- /// @param vvec长度为4,对应四列数据
- /// @note VecDouble vecP = vvec[0]
- /// VecDouble vecPs = vvec[1]
- /// VecDouble vecZg = vvec[2]
- /// VecDouble vecMug = vvec[3]
- static bool initPs(VVecDouble vvec);
-
- // 系统内部自动选用不同的方法
- static bool calP(double ps, double &p, int which = -1);
- static bool calPS(double p, double &ps, int which = -1);
-
-private:
-
- ///////////////////////////////////////////////////////////////////////////////////////////
- // 拟合公式
- // 计算“压力->拟压力”的回归曲线方程系数
- static bool fitPtoPS(bool isZero = true);
- // 计算“拟压力->压力”的回归曲线方程系数
- static bool fitPStoP(bool isZero = false);
- ///////////////////////////////////////////////////////////////////////////////////////////
-
- ////////////////////////////////////////////////////////////////////////////////
- // 回归曲线法
- // 压力->拟压力,精度比湛江方法高
- static bool pToPs_Cv(double p, double &ps);
- // 拟压力->压力,精度比湛江方法低,暂未调用
- static bool psToP_Cv(double ps, double &p);
- ////////////////////////////////////////////////////////////////////////////////
-
- ////////////////////////////////////////////////////////////////////////////////
- // 湛江方法
- // 压力->拟压力,精度不如回归曲线法,暂未调用
- //static bool pToPs_Zj(double p, double &ps);
- // 拟压力->压力,精度好于回归曲线法
- static bool psToP_Zj(double ps, double &p);
- ////////////////////////////////////////////////////////////////////////////////
-
-private:
-
- // 用压力算拟压力的系数
- static VecDouble m_vecCoefsPtoPS;
-
- // 用拟压力算压力的系数
- static VecDouble m_vecCoefsPStoP;
-
- // job里的三组数据
- static VecDouble m_vecP;
- static VecDouble m_vecPs;
- static VecDouble m_vecZg;
- static VecDouble m_vecMug;
-};
-
-
-
-
-
-
-
-
diff --git a/Include/mAlg/mAlgPseudo/iAlgPseuCal3.h b/Include/mAlg/mAlgPseudo/iAlgPseuCal3.h
deleted file mode 100644
index dfa7c7a..0000000
--- a/Include/mAlg/mAlgPseudo/iAlgPseuCal3.h
+++ /dev/null
@@ -1,83 +0,0 @@
-#pragma once
-
-#include "Defines.h"
-#include "mAlgPseudo_global.h"
-
-class iPseudo3Info;
-class zxAlgRegress;
-
-// 三区拟压力计算载体,单例模式,在模型处理解释过程调用
-class M_ALGPSEUDO_EXPORT iAlgPseuCal3
-{
-public:
-
- iAlgPseuCal3();
-
- static bool initPs(const VVecDouble& vvec, \
- const QMap* pMap1, \
- const QMap* pMap2);
-
- // 系统内部自动选用不同的方法
- static bool calP(double ps, double &p, int which = -1);
- static bool calPS(double p, double &ps, int which = -1);
-
-private:
-
- ///////////////////////////////////////////////////////////////////////////////////////////
- // 拟合公式
- // 计算“压力->拟压力”的回归曲线方程系数
-// static bool fitPtoPS(bool isZero = true);
-// // 计算“拟压力->压力”的回归曲线方程系数
- static bool fitPStoP(bool isZero = false);
- ///////////////////////////////////////////////////////////////////////////////////////////
-
- ////////////////////////////////////////////////////////////////////////////////
-
- // 压力->拟压力,三段各自的拟合函数
- static bool pToPs_Ps3Fitting(double p, double &ps);
- // 拟压力->压力,三段各自的反推函数
- static bool psToP_Ps3Fitting(double ps, double &p);
-
- // 压力->拟压力,借助三区计算方法来计算(载体),但是这个速度太慢,而且异常太多,主要是积分/0,暂不启用
-// static bool pToPs_Ps3Integral(double p, double &ps);
-// // 压力->拟压力,精度比湛江方法高,临时采用
-// static bool pToPs_Cv(double p, double &ps);
-// // 拟压力->压力,精度比湛江方法低,但对于三区来讲,没法反推,只能将就使用
- //static bool psToP_Cv(double ps, double &p);
-
-
- // 20220317 增加新的方式,直接根据数据进行判断,看谁离得最近,则选取谁
- static bool pToPs_Simple(double p, double &ps);
- static bool psToP_Simple(double ps, double &p);
- static bool _simple_find_xy(VecDouble* pVecX, VecDouble* pVecY, double x, double &y);
- static double _linear_value_at(double x, double x1, double x2, double y1, double y2);
-
- ////////////////////////////////////////////////////////////////////////////////
-
-private:
- static QMap m_mapPsInfos;
- static QMap m_mapOthers;
-
- // 用压力算拟压力的系数
- static VecDouble m_vecCoefsPtoPS;
-
- // 用拟压力算压力的系数
- static VecDouble m_vecCoefsPStoP;
-
- // job里的三组数据
- static VecDouble m_vecP;
- static VecDouble m_vecPs;
-
- // 这是为了方便调用,加快速度
- static QMap m_mapAlgs;
- static double m_dPP;
- static double m_dPD;
-};
-
-
-
-
-
-
-
-
diff --git a/Include/mAlg/mAlgPseudo/iAlgPseuCalC.h b/Include/mAlg/mAlgPseudo/iAlgPseuCalC.h
deleted file mode 100644
index ac56664..0000000
--- a/Include/mAlg/mAlgPseudo/iAlgPseuCalC.h
+++ /dev/null
@@ -1,75 +0,0 @@
-#pragma once
-
-#include "Defines.h"
-#include "mAlgPseudo_global.h"
-
-class iPseudoCInfo;
-class zxAlgRegress;
-
-// 三区拟压力计算载体,单例模式,在模型处理解释过程调用
-class M_ALGPSEUDO_EXPORT iAlgPseuCalC
-{
-public:
-
- iAlgPseuCalC();
-
- static bool initPs(const VVecDouble& vvec, \
- const QMap* pMap1, \
- const QMap* pMap2);
-
- // 系统内部自动选用不同的方法
- static bool calP(double ps, double &p, int which = -1);
- static bool calPS(double p, double &ps, int which = -1);
-
-private:
-
- ///////////////////////////////////////////////////////////////////////////////////////////
- // 拟合公式
- // 计算“压力->拟压力”的回归曲线方程系数
-// static bool fitPtoPS(bool isZero = true);
-// // 计算“拟压力->压力”的回归曲线方程系数
- static bool fitPStoP(bool isZero = false);
- ///////////////////////////////////////////////////////////////////////////////////////////
-
- ////////////////////////////////////////////////////////////////////////////////
-
- // 压力->拟压力
- static bool pToPs_PsCFitting(double p, double &ps);
- // 拟压力->压力
- static bool psToP_PsCFitting(double ps, double &p);
-
- // 20220317 增加新的方式,直接根据数据进行判断,看谁离得最近,则选取谁
- static bool pToPs_Simple(double p, double &ps);
- static bool psToP_Simple(double ps, double &p);
- static bool _simple_find_xy(VecDouble* pVecX, VecDouble* pVecY, double x, double &y);
- static double _linear_value_at(double x, double x1, double x2, double y1, double y2);
-
- ////////////////////////////////////////////////////////////////////////////////
-
-private:
- static QMap m_mapPsInfos;
- static QMap m_mapOthers;
-
- // 用压力算拟压力的系数
- static VecDouble m_vecCoefsPtoPS;
-
- // 用拟压力算压力的系数
- static VecDouble m_vecCoefsPStoP;
-
- // job里的三组数据
- static VecDouble m_vecP;
- static VecDouble m_vecPs;
-
- // 这是为了方便调用,加快速度
- static QMap m_mapAlgs;
- static double m_dPP;
- static double m_dPD;
-};
-
-
-
-
-
-
-
-
diff --git a/Include/mAlg/mAlgPseudo/iPseudo3Cal.h b/Include/mAlg/mAlgPseudo/iPseudo3Cal.h
deleted file mode 100644
index 17e40d3..0000000
--- a/Include/mAlg/mAlgPseudo/iPseudo3Cal.h
+++ /dev/null
@@ -1,72 +0,0 @@
-#pragma once
-
-#include "Defines.h"
-#include "mAlgPseudo_global.h"
-
-class iPseudo3Info;
-
-// 三区拟压力计算过程实现
-class M_ALGPSEUDO_EXPORT iPseudo3Cal : public QObject
-{
- Q_OBJECT
-
-public:
-
- /// @param mapPsInfos,拟合公式信息体(输入)
- /// @param mapOthers,其它参数,如GOR等(输入)
- explicit iPseudo3Cal(QMap& mapPsInfos, \
- QMap& mapOthers/*, \
- bool bModelMode = false*/);
- ~iPseudo3Cal();
-
- /// @brief 最终的计算函数
- /// @param vecP,压力(输入)
- /// @param vecPs,三区拟压力(输出)
- bool calPseudo3(VecDouble& vecP, VecDouble& vecPs);
-
- /// @brief 最终的计算函数
- /// @param fP,压力(输入)
- /// @param fPs,三区拟压力(输出)
- bool calPseudo3(double fP, double& fPs);
-
-// /// @brief 计算函数,这是在处理解释过程中的调用
-// /// @param p,压力(输入)
-// /// @param ps,三区拟压力(输出)
-// bool pToPs_Ps3Fitting(double p, double &ps);
-
-private:
-
- // 基本拟合公式
- void parseParas(QMap& mapOthers);
-
- // 先根据p计算各个拟合数据
- bool calBaseFitRs(double fP, QMap& map);
-
- // 积分
- double integral(double min, double max, int which, QMap& map, int nLoop = 1000);
-
- // 1-2-3区拟压力计算
- double calPsByOne(QMap& map);
- double calPsByTwo(QMap& map);
- double calPsByThree(QMap& map);
-
- // 最后的处理解释过程中应用,是分段还是整体
-// void parseParas(QMap& mapOthers);
-
-signals:
-
-private:
-
- QMap m_mapPsInfos;
-
- double m_dGOR;//用户输入的GOR数值
- double m_dPP;//临界流动压力pp(目前为用户输入,后续改进算法可自动计算)
- double m_dPD;// 露点压力pd(用户输入)
- double m_dPi;//原始地层压力pi(用户输入)
-
- double m_dA;
- double m_dKrgMax;
-
-// bool m_bModelMode; //是否最后的处理解释过程中应用
-// bool m_bWholeFitting; //是否分段进行拟合处理
-};
diff --git a/Include/mAlg/mAlgPseudo/iPseudo3Info.h b/Include/mAlg/mAlgPseudo/iPseudo3Info.h
deleted file mode 100644
index dea05a3..0000000
--- a/Include/mAlg/mAlgPseudo/iPseudo3Info.h
+++ /dev/null
@@ -1,87 +0,0 @@
-#pragma once
-
-#include "Defines.h"
-#include "IxSerDes.h"
-#include "mAlgPseudo_global.h"
-
-class zxAlgRegress;
-
-// 在三区拟压力计算过程中涉及的拟合相关的数据载体
-class M_ALGPSEUDO_EXPORT iPseudo3Info : public QObject,
- virtual public IxSerDes
-{
- Q_OBJECT
-
-public:
-
- explicit iPseudo3Info();
- iPseudo3Info(const iPseudo3Info &other);
- ~iPseudo3Info();
-
- bool runFit();
- bool isFitted();
- void clearAlg();
-
- zxAlgRegress* getAlg() { return m_pAlg; }
- void makesureAlg(bool bForceReset = true);
-
- double getFitRsBy(double x); //根据x返回y
- VecDouble getFitRsBy(VecDouble& x); //根据x返回y
- VecPointF getFitRsDefault(bool bScaled = true); //这是返回数据基础之上的拟合结果
-
- iPseudo3Info* clone();
-
-public:
-
- // KrgKro数据拟合前的数据准备(调整、归一化等等)
- static bool prepareKrgKro1(VVecVariant& vvec);
- static bool prepareKrgKro2(VVecVariant& vvec);
-
- // Other
- static QString getExpr(DataFittingType oType, int nOrder);
-
-protected:
-
- // TODO 由于序列化机制问题,暂未启用
- virtual void onSerialize(ZxSerializer* ser);
- virtual void onDeserialize(ZxSerializer* ser);
-
-private:
-
- // 原始数据转换为拟合需要的数据格式
- VVecDouble orgFitSrcData();
-
-public slots:
-
-signals:
-
-public:
-
- // TODO 由于序列化机制问题,如果增减变量,请注意
- // bool iPseu3Wrapper::thisToBa(QByteArray& ba)中的变化
-
- QString m_sPara;
- VVecVariant m_vvecSrcData;
- DataFittingType m_oFitType;
- int m_nFitOrder;
- QString m_sExpr;
-// QMap m_mapOthers;
-
-protected:
-
- zxAlgRegress* m_pAlg;
-};
-
-
-// 辅助类,比如清空
-class M_ALGPSEUDO_EXPORT iPseudo3InfoHelper : public QObject
-{
- Q_OBJECT
-
-public:
-
- iPseudo3InfoHelper(){}
- // 清理map
- static void clearMapInfos(QMap& map);
-
-};
diff --git a/Include/mAlg/mAlgPseudo/iPseudoCCal.h b/Include/mAlg/mAlgPseudo/iPseudoCCal.h
deleted file mode 100644
index 1f5a3d2..0000000
--- a/Include/mAlg/mAlgPseudo/iPseudoCCal.h
+++ /dev/null
@@ -1,75 +0,0 @@
-#pragma once
-
-#include "Defines.h"
-#include "mAlgPseudo_global.h"
-
-class iPseudoCInfo;
-
-// 根据组分计算(源自徐泽轩)
-// 三区拟压力计算过程实现
-class M_ALGPSEUDO_EXPORT iPseudoCCal : public QObject
-{
- Q_OBJECT
-
-public:
-
- /// @param mapPsInfos,拟合公式信息体(输入)
- /// @param mapOthers,其它参数(输入)
- explicit iPseudoCCal(QMap& mapPsInfos, \
- QMap& mapOthers);
- ~iPseudoCCal();
-
- /// @brief 最终的计算函数
- /// @param vecP,压力(输入)
- /// @param vecPs,三区拟压力(输出)
- bool calPseudoC(VecDouble& vecP, VecDouble& vecPs);
-
- /// @brief 最终的计算函数
- /// @param dP,压力(输入)
- /// @param dPs,三区拟压力(输出)
- bool calPseudoC(double dP, double& dPs);//徐泽轩
- bool calPseudoC_m2(double dP, double& dPs);//baiwp
-
-
-private:
-
- // 基本拟合公式
- void parseParas(QMap& mapOthers);
-
- // 先根据p计算各个拟合数据
- bool calBaseFitRs(double dP, QMap& map);
-
- // 积分,徐泽轩
- double simpsonComplex(double a, double b, int which, \
- double epsilon = 0.01);
-
-
- // 积分,baiwp
- double integral(double min, double max, int which, \
- QMap& map, int nLoop = 1000);
-
- // 1-2-3区拟压力计算
- double calPsBy(int which, double fP);
- double calPsByOne(QMap& map);
- double calPsByTwo(QMap& map);
- double calPsByThree(QMap& map);
-
-signals:
-
-private:
-
- QMap m_mapPsInfos;
-
- double m_dPP;//临界流动压力pp(目前为用户输入,后续改进算法可自动计算)
- double m_dPD;// 露点压力pd(用户输入)
-
- double m_dKrgSwi;
- double m_dPwf;
- double m_dSplitP;
-
- // 临时变量
- VecDouble m_vecTempPs;
- VecDouble m_vecTempPs1;
- VecDouble m_vecTempPs2;
- VecDouble m_vecTempPs3;
-};
diff --git a/Include/mAlg/mAlgPseudo/iPseudoCInfo.h b/Include/mAlg/mAlgPseudo/iPseudoCInfo.h
deleted file mode 100644
index fd82a49..0000000
--- a/Include/mAlg/mAlgPseudo/iPseudoCInfo.h
+++ /dev/null
@@ -1,88 +0,0 @@
-#pragma once
-
-#include "IxSerDes.h"
-#include "Defines.h"
-#include "mAlgPseudo_global.h"
-
-class zxAlgRegress;
-
-// 根据组分计算(源自徐泽轩)
-// 在三区拟压力计算过程中涉及的拟合相关的数据载体
-class M_ALGPSEUDO_EXPORT iPseudoCInfo : public QObject,
- virtual public IxSerDes
-{
- Q_OBJECT
-
-public:
-
- explicit iPseudoCInfo();
- iPseudoCInfo(const iPseudoCInfo &other);
- ~iPseudoCInfo();
-
- bool runFit();
- bool isFitted();
- void clearAlg();
-
- zxAlgRegress* getAlg() { return m_pAlg; }
- void makesureAlg(bool bForceReset = true);
-
- double getFitRsBy(double x); //根据x返回y
- VecDouble getFitRsBy(VecDouble& x); //根据x返回y
- VecPointF getFitRsDefault(bool bScaled = true); //这是返回数据基础之上的拟合结果
-
- iPseudoCInfo* clone();
-
-public:
-
- // KrgKro数据拟合前的数据准备(调整、归一化等等)
- static bool prepareKrgKro1(VVecVariant& vvec);
- static bool prepareKrgKro2(VVecVariant& vvec);
-
- // Other
- static QString getExpr(DataFittingType oType, int nOrder);
-
-protected:
-
- // TODO 由于序列化机制问题,暂未启用
- virtual void onSerialize(ZxSerializer* ser);
- virtual void onDeserialize(ZxSerializer* ser);
-
-private:
-
- // 原始数据转换为拟合需要的数据格式
- VVecDouble orgFitSrcData();
-
-public slots:
-
-signals:
-
-public:
-
- // TODO 由于序列化机制问题,如果增减变量,请注意
- // bool iPseu3Wrapper::thisToBa(QByteArray& ba)中的变化
-
- QString m_sPara;
- VVecVariant m_vvecSrcData;
- DataFittingType m_oFitType;
- int m_nFitOrder;
- QString m_sExpr;
-// QMap m_mapOthers;
-
-protected:
-
- zxAlgRegress* m_pAlg;
-};
-
-
-// 辅助类,比如清空
-class M_ALGPSEUDO_EXPORT iPseudoCInfoHelper : public QObject
-{
- Q_OBJECT
-
-public:
-
- iPseudoCInfoHelper(){}
- // 清理map
- static void clearMapInfos(QMap& map);
-
-};
diff --git a/Include/mAlg/mAlgPseudo/iPseudoPressure.h b/Include/mAlg/mAlgPseudo/iPseudoPressure.h
deleted file mode 100644
index 27a45e6..0000000
--- a/Include/mAlg/mAlgPseudo/iPseudoPressure.h
+++ /dev/null
@@ -1,23 +0,0 @@
-#pragma once
-
-#include "iAlgPvtBase.h"
-#include "mAlgPseudo_global.h"
-
-// 拟压力计算调用入口
-class M_ALGPSEUDO_EXPORT iPseudoPressure : public iAlgPvtBase
-{
-public:
- iPseudoPressure();
-
- // 绑定成员变量,这个类里没用
- virtual void bindMembers();
-
- // 虚函数,计算函数,这个类里没用
- virtual bool cal(VecDouble vecIns, VecDouble& vecOuts);
-
- //关键计算函数,前3个是读出来的,最后那个是算的
- // 分成三段分别计算:0~dSplit1, dSplit1~dSplit2, dSplit1~最大
- bool calPs(VecDouble vecP, VecDouble vecZg, VecDouble vecMug, \
- double dSplit1, double dSplit2, \
- VecDouble& vecPs);
-};
diff --git a/Include/mAlg/mAlgPseudo/iPseudoPressure3.h b/Include/mAlg/mAlgPseudo/iPseudoPressure3.h
deleted file mode 100644
index 97b95fa..0000000
--- a/Include/mAlg/mAlgPseudo/iPseudoPressure3.h
+++ /dev/null
@@ -1,24 +0,0 @@
-#pragma once
-
-#include "iAlgPvtBase.h"
-#include "mAlgPseudo_global.h"
-
-class iPseudo3Info;
-// 三区拟压力计算调用入口
-class M_ALGPSEUDO_EXPORT iPseudoPressure3 : public iAlgPvtBase
-{
-public:
- iPseudoPressure3();
-
- // 绑定成员变量,这个类里没用
- virtual void bindMembers();
-
- // 虚函数,计算函数,这个类里没用
- virtual bool cal(VecDouble vecIns, VecDouble& vecOuts);
-
- //关键计算函数,其实只是调用入口
- bool calPs(QMap