modify Uilaytoumanager

This commit is contained in:
brige 2025-11-02 14:37:22 +08:00
parent 630552b156
commit 0b5fa3746a
6 changed files with 297 additions and 488 deletions

View File

@ -4,397 +4,391 @@
<context>
<name>AddCurveFileDlg</name>
<message>
<location filename="../ui/WorkSpace/AddCurveFileDlg.ui" line="14"/>
<location filename="../ui/WorkSpace/AddCurveFileDlg.cpp" line="597"/>
<location filename="../ui/WorkSpace/AddCurveFileDlg.ui" line="17"/>
<location filename="../ui/WorkSpace/AddCurveFileDlg.cpp" line="633"/>
<source>Add Curve Data File</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/WorkSpace/AddCurveFileDlg.ui" line="20"/>
<location filename="../ui/WorkSpace/AddCurveFileDlg.ui" line="23"/>
<source>File Selection</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/WorkSpace/AddCurveFileDlg.ui" line="32"/>
<location filename="../ui/WorkSpace/AddCurveFileDlg.ui" line="35"/>
<source>File Path:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/WorkSpace/AddCurveFileDlg.ui" line="48"/>
<location filename="../ui/WorkSpace/AddCurveFileDlg.ui" line="51"/>
<source>Select curve data file...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/WorkSpace/AddCurveFileDlg.ui" line="61"/>
<location filename="../ui/WorkSpace/AddCurveFileDlg.ui" line="64"/>
<source>...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/WorkSpace/AddCurveFileDlg.ui" line="74"/>
<location filename="../ui/WorkSpace/AddCurveFileDlg.ui" line="77"/>
<source>File Name:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/WorkSpace/AddCurveFileDlg.ui" line="87"/>
<location filename="../ui/WorkSpace/AddCurveFileDlg.ui" line="113"/>
<location filename="../ui/WorkSpace/AddCurveFileDlg.ui" line="90"/>
<location filename="../ui/WorkSpace/AddCurveFileDlg.ui" line="116"/>
<source>-</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/WorkSpace/AddCurveFileDlg.ui" line="100"/>
<location filename="../ui/WorkSpace/AddCurveFileDlg.ui" line="103"/>
<source>File Size:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/WorkSpace/AddCurveFileDlg.ui" line="123"/>
<location filename="../ui/WorkSpace/AddCurveFileDlg.ui" line="126"/>
<source>Chart Properties</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/WorkSpace/AddCurveFileDlg.ui" line="135"/>
<location filename="../ui/WorkSpace/AddCurveFileDlg.ui" line="138"/>
<source>Chart Name:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/WorkSpace/AddCurveFileDlg.ui" line="148"/>
<location filename="../ui/WorkSpace/AddCurveFileDlg.ui" line="151"/>
<source>Chart 1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/WorkSpace/AddCurveFileDlg.ui" line="151"/>
<location filename="../ui/WorkSpace/AddCurveFileDlg.ui" line="154"/>
<source>Enter chart name...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/WorkSpace/AddCurveFileDlg.ui" line="164"/>
<location filename="../ui/WorkSpace/AddCurveFileDlg.ui" line="167"/>
<source>Chart Type:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/WorkSpace/AddCurveFileDlg.ui" line="187"/>
<location filename="../ui/WorkSpace/AddCurveFileDlg.ui" line="190"/>
<source>X Axis Title:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/WorkSpace/AddCurveFileDlg.ui" line="200"/>
<location filename="../ui/WorkSpace/AddCurveFileDlg.ui" line="203"/>
<source>Enter X axis title...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/WorkSpace/AddCurveFileDlg.ui" line="213"/>
<location filename="../ui/WorkSpace/AddCurveFileDlg.ui" line="216"/>
<source>Y Axis Title:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/WorkSpace/AddCurveFileDlg.ui" line="226"/>
<location filename="../ui/WorkSpace/AddCurveFileDlg.ui" line="229"/>
<source>Enter Y axis title...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/WorkSpace/AddCurveFileDlg.ui" line="239"/>
<location filename="../ui/WorkSpace/AddCurveFileDlg.ui" line="242"/>
<source>Time:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/WorkSpace/AddCurveFileDlg.ui" line="259"/>
<location filename="../ui/WorkSpace/AddCurveFileDlg.ui" line="262"/>
<source>Axis Range Settings</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/WorkSpace/AddCurveFileDlg.ui" line="309"/>
<location filename="../ui/WorkSpace/AddCurveFileDlg.ui" line="312"/>
<source>X Tick Count:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/WorkSpace/AddCurveFileDlg.ui" line="341"/>
<location filename="../ui/WorkSpace/AddCurveFileDlg.ui" line="344"/>
<source>X Min:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/WorkSpace/AddCurveFileDlg.ui" line="354"/>
<location filename="../ui/WorkSpace/AddCurveFileDlg.ui" line="357"/>
<source>Y Max:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/WorkSpace/AddCurveFileDlg.ui" line="367"/>
<location filename="../ui/WorkSpace/AddCurveFileDlg.ui" line="370"/>
<source>Y Min:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/WorkSpace/AddCurveFileDlg.ui" line="437"/>
<location filename="../ui/WorkSpace/AddCurveFileDlg.ui" line="440"/>
<source>X Max:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/WorkSpace/AddCurveFileDlg.ui" line="450"/>
<location filename="../ui/WorkSpace/AddCurveFileDlg.ui" line="453"/>
<source>Y Tick Count:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/WorkSpace/AddCurveFileDlg.ui" line="460"/>
<location filename="../ui/WorkSpace/AddCurveFileDlg.ui" line="463"/>
<source>Curve Management</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/WorkSpace/AddCurveFileDlg.ui" line="468"/>
<location filename="../ui/WorkSpace/AddCurveFileDlg.ui" line="471"/>
<source>Curves:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/WorkSpace/AddCurveFileDlg.ui" line="500"/>
<location filename="../ui/WorkSpace/AddCurveFileDlg.ui" line="503"/>
<source>Add Curve</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/WorkSpace/AddCurveFileDlg.ui" line="519"/>
<location filename="../ui/WorkSpace/AddCurveFileDlg.ui" line="522"/>
<source>Remove</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/WorkSpace/AddCurveFileDlg.ui" line="544"/>
<location filename="../ui/WorkSpace/AddCurveFileDlg.ui" line="547"/>
<source>Selected Curve Properties</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/WorkSpace/AddCurveFileDlg.ui" line="556"/>
<location filename="../ui/WorkSpace/AddCurveFileDlg.ui" line="559"/>
<source>Curve Name:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/WorkSpace/AddCurveFileDlg.ui" line="569"/>
<location filename="../ui/WorkSpace/AddCurveFileDlg.ui" line="572"/>
<source>Enter curve name...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/WorkSpace/AddCurveFileDlg.ui" line="582"/>
<location filename="../ui/WorkSpace/AddCurveFileDlg.ui" line="585"/>
<source>Curve Color:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/WorkSpace/AddCurveFileDlg.ui" line="603"/>
<location filename="../ui/WorkSpace/AddCurveFileDlg.ui" line="606"/>
<source>Select Color</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/WorkSpace/AddCurveFileDlg.ui" line="616"/>
<location filename="../ui/WorkSpace/AddCurveFileDlg.ui" line="619"/>
<source>background-color: rgb(255, 0, 0); border: 1px solid black;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/WorkSpace/AddCurveFileDlg.ui" line="647"/>
<location filename="../ui/WorkSpace/AddCurveFileDlg.ui" line="650"/>
<source>Data Start:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/WorkSpace/AddCurveFileDlg.ui" line="679"/>
<location filename="../ui/WorkSpace/AddCurveFileDlg.ui" line="682"/>
<source>Data Stop:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/WorkSpace/AddCurveFileDlg.ui" line="708"/>
<location filename="../ui/WorkSpace/AddCurveFileDlg.ui" line="714"/>
<source>X Value:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/WorkSpace/AddCurveFileDlg.ui" line="734"/>
<location filename="../ui/WorkSpace/AddCurveFileDlg.ui" line="746"/>
<source>Y Value:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/WorkSpace/AddCurveFileDlg.ui" line="784"/>
<location filename="../ui/WorkSpace/AddCurveFileDlg.ui" line="799"/>
<source>Add File</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/WorkSpace/AddCurveFileDlg.ui" line="800"/>
<location filename="../ui/WorkSpace/AddCurveFileDlg.ui" line="815"/>
<source>Cancel</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/WorkSpace/AddCurveFileDlg.cpp" line="403"/>
<location filename="../ui/WorkSpace/AddCurveFileDlg.cpp" line="439"/>
<source>Curve %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/WorkSpace/AddCurveFileDlg.cpp" line="435"/>
<location filename="../ui/WorkSpace/AddCurveFileDlg.cpp" line="442"/>
<location filename="../ui/WorkSpace/AddCurveFileDlg.cpp" line="448"/>
<location filename="../ui/WorkSpace/AddCurveFileDlg.cpp" line="454"/>
<location filename="../ui/WorkSpace/AddCurveFileDlg.cpp" line="460"/>
<location filename="../ui/WorkSpace/AddCurveFileDlg.cpp" line="475"/>
<location filename="../ui/WorkSpace/AddCurveFileDlg.cpp" line="481"/>
<location filename="../ui/WorkSpace/AddCurveFileDlg.cpp" line="489"/>
<location filename="../ui/WorkSpace/AddCurveFileDlg.cpp" line="497"/>
<location filename="../ui/WorkSpace/AddCurveFileDlg.cpp" line="503"/>
<location filename="../ui/WorkSpace/AddCurveFileDlg.cpp" line="510"/>
<location filename="../ui/WorkSpace/AddCurveFileDlg.cpp" line="516"/>
<location filename="../ui/WorkSpace/AddCurveFileDlg.cpp" line="523"/>
<location filename="../ui/WorkSpace/AddCurveFileDlg.cpp" line="529"/>
<location filename="../ui/WorkSpace/AddCurveFileDlg.cpp" line="538"/>
<location filename="../ui/WorkSpace/AddCurveFileDlg.cpp" line="543"/>
<location filename="../ui/WorkSpace/AddCurveFileDlg.cpp" line="549"/>
<location filename="../ui/WorkSpace/AddCurveFileDlg.cpp" line="554"/>
<location filename="../ui/WorkSpace/AddCurveFileDlg.cpp" line="471"/>
<location filename="../ui/WorkSpace/AddCurveFileDlg.cpp" line="478"/>
<location filename="../ui/WorkSpace/AddCurveFileDlg.cpp" line="484"/>
<location filename="../ui/WorkSpace/AddCurveFileDlg.cpp" line="490"/>
<location filename="../ui/WorkSpace/AddCurveFileDlg.cpp" line="496"/>
<location filename="../ui/WorkSpace/AddCurveFileDlg.cpp" line="511"/>
<location filename="../ui/WorkSpace/AddCurveFileDlg.cpp" line="517"/>
<location filename="../ui/WorkSpace/AddCurveFileDlg.cpp" line="525"/>
<location filename="../ui/WorkSpace/AddCurveFileDlg.cpp" line="533"/>
<location filename="../ui/WorkSpace/AddCurveFileDlg.cpp" line="539"/>
<location filename="../ui/WorkSpace/AddCurveFileDlg.cpp" line="546"/>
<location filename="../ui/WorkSpace/AddCurveFileDlg.cpp" line="552"/>
<location filename="../ui/WorkSpace/AddCurveFileDlg.cpp" line="559"/>
<location filename="../ui/WorkSpace/AddCurveFileDlg.cpp" line="565"/>
<location filename="../ui/WorkSpace/AddCurveFileDlg.cpp" line="570"/>
<location filename="../ui/WorkSpace/AddCurveFileDlg.cpp" line="578"/>
<location filename="../ui/WorkSpace/AddCurveFileDlg.cpp" line="574"/>
<location filename="../ui/WorkSpace/AddCurveFileDlg.cpp" line="579"/>
<location filename="../ui/WorkSpace/AddCurveFileDlg.cpp" line="585"/>
<location filename="../ui/WorkSpace/AddCurveFileDlg.cpp" line="590"/>
<location filename="../ui/WorkSpace/AddCurveFileDlg.cpp" line="601"/>
<location filename="../ui/WorkSpace/AddCurveFileDlg.cpp" line="606"/>
<location filename="../ui/WorkSpace/AddCurveFileDlg.cpp" line="614"/>
<source>Validation Error</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/WorkSpace/AddCurveFileDlg.cpp" line="435"/>
<location filename="../ui/WorkSpace/AddCurveFileDlg.cpp" line="471"/>
<source>Please select a data file.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/WorkSpace/AddCurveFileDlg.cpp" line="442"/>
<location filename="../ui/WorkSpace/AddCurveFileDlg.cpp" line="478"/>
<source>Selected file does not exist.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/WorkSpace/AddCurveFileDlg.cpp" line="448"/>
<location filename="../ui/WorkSpace/AddCurveFileDlg.cpp" line="484"/>
<source>Selected file is not readable. Please check file permissions.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/WorkSpace/AddCurveFileDlg.cpp" line="454"/>
<location filename="../ui/WorkSpace/AddCurveFileDlg.cpp" line="490"/>
<source>File is too large (over 100MB). Please select a smaller file.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/WorkSpace/AddCurveFileDlg.cpp" line="460"/>
<location filename="../ui/WorkSpace/AddCurveFileDlg.cpp" line="496"/>
<source>At least one curve must be defined.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/WorkSpace/AddCurveFileDlg.cpp" line="476"/>
<location filename="../ui/WorkSpace/AddCurveFileDlg.cpp" line="512"/>
<source>Curve %1 name cannot be empty.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/WorkSpace/AddCurveFileDlg.cpp" line="482"/>
<location filename="../ui/WorkSpace/AddCurveFileDlg.cpp" line="518"/>
<source>Curve name &apos;%1&apos; is duplicated. Please use different names.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/WorkSpace/AddCurveFileDlg.cpp" line="490"/>
<location filename="../ui/WorkSpace/AddCurveFileDlg.cpp" line="526"/>
<source>Curve name &apos;%1&apos; is too long. Please limit to 50 characters.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/WorkSpace/AddCurveFileDlg.cpp" line="498"/>
<location filename="../ui/WorkSpace/AddCurveFileDlg.cpp" line="534"/>
<source>Curve &apos;%1&apos; start and stop values must be greater than 0.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/WorkSpace/AddCurveFileDlg.cpp" line="504"/>
<location filename="../ui/WorkSpace/AddCurveFileDlg.cpp" line="540"/>
<source>Curve &apos;%1&apos; start value cannot be greater than stop value.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/WorkSpace/AddCurveFileDlg.cpp" line="511"/>
<location filename="../ui/WorkSpace/AddCurveFileDlg.cpp" line="547"/>
<source>Curve &apos;%1&apos; data range is too small. At least 2 data points are required.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/WorkSpace/AddCurveFileDlg.cpp" line="517"/>
<location filename="../ui/WorkSpace/AddCurveFileDlg.cpp" line="553"/>
<source>Curve &apos;%1&apos; stop value is too large. Please ensure it does not exceed 1000000.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/WorkSpace/AddCurveFileDlg.cpp" line="524"/>
<location filename="../ui/WorkSpace/AddCurveFileDlg.cpp" line="560"/>
<source>Curve &apos;%1&apos; X value is out of range. Please ensure it is between -1000000 and 1000000.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/WorkSpace/AddCurveFileDlg.cpp" line="530"/>
<location filename="../ui/WorkSpace/AddCurveFileDlg.cpp" line="566"/>
<source>Curve &apos;%1&apos; Y value is out of range. Please ensure it is between -1000000 and 1000000.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/WorkSpace/AddCurveFileDlg.cpp" line="538"/>
<location filename="../ui/WorkSpace/AddCurveFileDlg.cpp" line="574"/>
<source>Chart name cannot be empty.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/WorkSpace/AddCurveFileDlg.cpp" line="543"/>
<location filename="../ui/WorkSpace/AddCurveFileDlg.cpp" line="579"/>
<source>Chart name is too long. Please limit to 100 characters.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/WorkSpace/AddCurveFileDlg.cpp" line="549"/>
<location filename="../ui/WorkSpace/AddCurveFileDlg.cpp" line="585"/>
<source>X axis title is too long. Please limit to 50 characters.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/WorkSpace/AddCurveFileDlg.cpp" line="554"/>
<location filename="../ui/WorkSpace/AddCurveFileDlg.cpp" line="590"/>
<source>Y axis title is too long. Please limit to 50 characters.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/WorkSpace/AddCurveFileDlg.cpp" line="565"/>
<location filename="../ui/WorkSpace/AddCurveFileDlg.cpp" line="601"/>
<source>X axis minimum value must be less than maximum value.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/WorkSpace/AddCurveFileDlg.cpp" line="570"/>
<location filename="../ui/WorkSpace/AddCurveFileDlg.cpp" line="606"/>
<source>Y axis minimum value must be less than maximum value.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/WorkSpace/AddCurveFileDlg.cpp" line="578"/>
<location filename="../ui/WorkSpace/AddCurveFileDlg.cpp" line="614"/>
<source>Time parameter cannot be negative.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/WorkSpace/AddCurveFileDlg.cpp" line="585"/>
<source>X axis tick count must be at least 2.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/WorkSpace/AddCurveFileDlg.cpp" line="593"/>
<location filename="../ui/WorkSpace/AddCurveFileDlg.cpp" line="629"/>
<source>Data Files (*.txt *.csv *.dat);;All Files (*.*)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/WorkSpace/AddCurveFileDlg.cpp" line="605"/>
<location filename="../ui/WorkSpace/AddCurveFileDlg.cpp" line="634"/>
<location filename="../ui/WorkSpace/AddCurveFileDlg.cpp" line="659"/>
<location filename="../ui/WorkSpace/AddCurveFileDlg.cpp" line="641"/>
<location filename="../ui/WorkSpace/AddCurveFileDlg.cpp" line="670"/>
<location filename="../ui/WorkSpace/AddCurveFileDlg.cpp" line="695"/>
<source>Error</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/WorkSpace/AddCurveFileDlg.cpp" line="605"/>
<location filename="../ui/WorkSpace/AddCurveFileDlg.cpp" line="641"/>
<source>Failed to create file entry</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/WorkSpace/AddCurveFileDlg.cpp" line="634"/>
<location filename="../ui/WorkSpace/AddCurveFileDlg.cpp" line="670"/>
<source>Unable to get current workspace</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/WorkSpace/AddCurveFileDlg.cpp" line="644"/>
<location filename="../ui/WorkSpace/AddCurveFileDlg.cpp" line="680"/>
<source>Curve file count has reached the limit (9 files)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/WorkSpace/AddCurveFileDlg.cpp" line="647"/>
<location filename="../ui/WorkSpace/AddCurveFileDlg.cpp" line="683"/>
<source>File already exists</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/WorkSpace/AddCurveFileDlg.cpp" line="650"/>
<location filename="../ui/WorkSpace/AddCurveFileDlg.cpp" line="686"/>
<source>File copy failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/WorkSpace/AddCurveFileDlg.cpp" line="653"/>
<location filename="../ui/WorkSpace/AddCurveFileDlg.cpp" line="689"/>
<source>Invalid file</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/WorkSpace/AddCurveFileDlg.cpp" line="656"/>
<location filename="../ui/WorkSpace/AddCurveFileDlg.cpp" line="692"/>
<source>Failed to add file</source>
<translation type="unfinished"></translation>
</message>
@ -403,7 +397,7 @@
<name>AddLightFileDlg</name>
<message>
<location filename="../ui/WorkSpace/AddLightFileDlg.ui" line="14"/>
<location filename="../ui/WorkSpace/AddLightFileDlg.cpp" line="345"/>
<location filename="../ui/WorkSpace/AddLightFileDlg.cpp" line="359"/>
<source>Add Light Data File</source>
<translation type="unfinished"></translation>
</message>
@ -435,7 +429,7 @@
<message>
<location filename="../ui/WorkSpace/AddLightFileDlg.ui" line="81"/>
<location filename="../ui/WorkSpace/AddLightFileDlg.ui" line="101"/>
<location filename="../ui/WorkSpace/AddLightFileDlg.ui" line="426"/>
<location filename="../ui/WorkSpace/AddLightFileDlg.ui" line="452"/>
<source>-</source>
<translation type="unfinished"></translation>
</message>
@ -451,153 +445,163 @@
</message>
<message>
<location filename="../ui/WorkSpace/AddLightFileDlg.ui" line="126"/>
<source>Chart Names:</source>
<source>Chart Name:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/WorkSpace/AddLightFileDlg.ui" line="149"/>
<source>Color Properties</source>
<location filename="../ui/WorkSpace/AddLightFileDlg.ui" line="139"/>
<source>Chart 1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/WorkSpace/AddLightFileDlg.ui" line="155"/>
<source>Time:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/WorkSpace/AddLightFileDlg.ui" line="175"/>
<source>Color Properties</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/WorkSpace/AddLightFileDlg.ui" line="181"/>
<source>Open Color:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/WorkSpace/AddLightFileDlg.ui" line="170"/>
<location filename="../ui/WorkSpace/AddLightFileDlg.ui" line="223"/>
<location filename="../ui/WorkSpace/AddLightFileDlg.ui" line="196"/>
<location filename="../ui/WorkSpace/AddLightFileDlg.ui" line="249"/>
<source>Select Color</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/WorkSpace/AddLightFileDlg.ui" line="183"/>
<location filename="../ui/WorkSpace/AddLightFileDlg.ui" line="209"/>
<source>background-color: rgb(0, 255, 0); border: 1px solid black;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/WorkSpace/AddLightFileDlg.ui" line="208"/>
<location filename="../ui/WorkSpace/AddLightFileDlg.ui" line="234"/>
<source>Close Color:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/WorkSpace/AddLightFileDlg.ui" line="236"/>
<location filename="../ui/WorkSpace/AddLightFileDlg.ui" line="262"/>
<source>background-color: rgb(255, 0, 0); border: 1px solid black;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/WorkSpace/AddLightFileDlg.ui" line="264"/>
<location filename="../ui/WorkSpace/AddLightFileDlg.ui" line="290"/>
<source>Light Management</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/WorkSpace/AddLightFileDlg.ui" line="272"/>
<location filename="../ui/WorkSpace/AddLightFileDlg.ui" line="298"/>
<source>Lights:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/WorkSpace/AddLightFileDlg.ui" line="298"/>
<location filename="../ui/WorkSpace/AddLightFileDlg.ui" line="324"/>
<source>Add Light Row</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/WorkSpace/AddLightFileDlg.ui" line="311"/>
<location filename="../ui/WorkSpace/AddLightFileDlg.ui" line="337"/>
<source>Remove</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/WorkSpace/AddLightFileDlg.ui" line="336"/>
<location filename="../ui/WorkSpace/AddLightFileDlg.ui" line="362"/>
<source>Selected Light Properties</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/WorkSpace/AddLightFileDlg.ui" line="350"/>
<location filename="../ui/WorkSpace/AddLightFileDlg.ui" line="376"/>
<source>Light Names:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/WorkSpace/AddLightFileDlg.ui" line="363"/>
<location filename="../ui/WorkSpace/AddLightFileDlg.ui" line="389"/>
<source>Enter light names (comma separated)...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/WorkSpace/AddLightFileDlg.ui" line="376"/>
<location filename="../ui/WorkSpace/AddLightFileDlg.ui" line="402"/>
<source>Light Datas:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/WorkSpace/AddLightFileDlg.ui" line="391"/>
<location filename="../ui/WorkSpace/AddLightFileDlg.ui" line="417"/>
<source>Enter data values (comma separated integers)...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/WorkSpace/AddLightFileDlg.ui" line="404"/>
<location filename="../ui/WorkSpace/AddLightFileDlg.ui" line="430"/>
<source>Edit Data</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/WorkSpace/AddLightFileDlg.ui" line="419"/>
<location filename="../ui/WorkSpace/AddLightFileDlg.ui" line="445"/>
<source>Row Index:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/WorkSpace/AddLightFileDlg.ui" line="462"/>
<location filename="../ui/WorkSpace/AddLightFileDlg.ui" line="488"/>
<source>Add File</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/WorkSpace/AddLightFileDlg.ui" line="475"/>
<location filename="../ui/WorkSpace/AddLightFileDlg.ui" line="501"/>
<source>Cancel</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/WorkSpace/AddLightFileDlg.cpp" line="341"/>
<location filename="../ui/WorkSpace/AddLightFileDlg.cpp" line="355"/>
<source>Light Data Files (*.txt *.csv *.dat);;All Files (*.*)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/WorkSpace/AddLightFileDlg.cpp" line="353"/>
<location filename="../ui/WorkSpace/AddLightFileDlg.cpp" line="367"/>
<source>Warning</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/WorkSpace/AddLightFileDlg.cpp" line="353"/>
<location filename="../ui/WorkSpace/AddLightFileDlg.cpp" line="367"/>
<source>Please enter a Chart name.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/WorkSpace/AddLightFileDlg.cpp" line="369"/>
<location filename="../ui/WorkSpace/AddLightFileDlg.cpp" line="408"/>
<location filename="../ui/WorkSpace/AddLightFileDlg.cpp" line="383"/>
<location filename="../ui/WorkSpace/AddLightFileDlg.cpp" line="423"/>
<source>Error</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/WorkSpace/AddLightFileDlg.cpp" line="369"/>
<location filename="../ui/WorkSpace/AddLightFileDlg.cpp" line="383"/>
<source>Unable to get current workspace</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/WorkSpace/AddLightFileDlg.cpp" line="393"/>
<location filename="../ui/WorkSpace/AddLightFileDlg.cpp" line="408"/>
<source>Curve file count has reached the limit (9 files)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/WorkSpace/AddLightFileDlg.cpp" line="396"/>
<location filename="../ui/WorkSpace/AddLightFileDlg.cpp" line="411"/>
<source>File already exists</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/WorkSpace/AddLightFileDlg.cpp" line="399"/>
<location filename="../ui/WorkSpace/AddLightFileDlg.cpp" line="414"/>
<source>File copy failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/WorkSpace/AddLightFileDlg.cpp" line="402"/>
<location filename="../ui/WorkSpace/AddLightFileDlg.cpp" line="417"/>
<source>Invalid file</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/WorkSpace/AddLightFileDlg.cpp" line="405"/>
<location filename="../ui/WorkSpace/AddLightFileDlg.cpp" line="420"/>
<source>Failed to add file</source>
<translation type="unfinished"></translation>
</message>
@ -1004,6 +1008,7 @@
<location filename="../ui/WorkSpace/AddPolarFileDlg.cpp" line="499"/>
<location filename="../ui/WorkSpace/AddPolarFileDlg.cpp" line="531"/>
<location filename="../ui/WorkSpace/AddPolarFileDlg.cpp" line="557"/>
<location filename="../ui/WorkSpace/AddPolarFileDlg.cpp" line="565"/>
<source>Error</source>
<translation type="unfinished"></translation>
</message>
@ -1019,7 +1024,12 @@
</message>
<message>
<location filename="../ui/WorkSpace/AddPolarFileDlg.cpp" line="542"/>
<source>Curve file count has reached the limit (9 files)</source>
<source>Polar file count has reached the limit (9 files)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/WorkSpace/AddPolarFileDlg.cpp" line="565"/>
<source>Failed to create Polar file entry.</source>
<translation type="unfinished"></translation>
</message>
<message>
@ -1267,7 +1277,7 @@
<message>
<location filename="../ui/WorkSpace/AddSurfaceFileDlg.cpp" line="128"/>
<location filename="../ui/WorkSpace/AddSurfaceFileDlg.cpp" line="134"/>
<location filename="../ui/WorkSpace/AddSurfaceFileDlg.cpp" line="376"/>
<location filename="../ui/WorkSpace/AddSurfaceFileDlg.cpp" line="392"/>
<source>Warning</source>
<translation type="unfinished"></translation>
</message>
@ -1287,49 +1297,49 @@
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/WorkSpace/AddSurfaceFileDlg.cpp" line="376"/>
<location filename="../ui/WorkSpace/AddSurfaceFileDlg.cpp" line="392"/>
<source>Please enter a Surface name.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/WorkSpace/AddSurfaceFileDlg.cpp" line="390"/>
<location filename="../ui/WorkSpace/AddSurfaceFileDlg.cpp" line="410"/>
<location filename="../ui/WorkSpace/AddSurfaceFileDlg.cpp" line="435"/>
<location filename="../ui/WorkSpace/AddSurfaceFileDlg.cpp" line="406"/>
<location filename="../ui/WorkSpace/AddSurfaceFileDlg.cpp" line="426"/>
<location filename="../ui/WorkSpace/AddSurfaceFileDlg.cpp" line="451"/>
<source>Error</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/WorkSpace/AddSurfaceFileDlg.cpp" line="390"/>
<location filename="../ui/WorkSpace/AddSurfaceFileDlg.cpp" line="406"/>
<source>Failed to create surface file entry.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/WorkSpace/AddSurfaceFileDlg.cpp" line="410"/>
<location filename="../ui/WorkSpace/AddSurfaceFileDlg.cpp" line="426"/>
<source>Unable to get current workspace</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/WorkSpace/AddSurfaceFileDlg.cpp" line="420"/>
<location filename="../ui/WorkSpace/AddSurfaceFileDlg.cpp" line="436"/>
<source>Surface file count has reached the limit (9 files)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/WorkSpace/AddSurfaceFileDlg.cpp" line="423"/>
<location filename="../ui/WorkSpace/AddSurfaceFileDlg.cpp" line="439"/>
<source>File already exists</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/WorkSpace/AddSurfaceFileDlg.cpp" line="426"/>
<location filename="../ui/WorkSpace/AddSurfaceFileDlg.cpp" line="442"/>
<source>File copy failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/WorkSpace/AddSurfaceFileDlg.cpp" line="429"/>
<location filename="../ui/WorkSpace/AddSurfaceFileDlg.cpp" line="445"/>
<source>Invalid file</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/WorkSpace/AddSurfaceFileDlg.cpp" line="432"/>
<location filename="../ui/WorkSpace/AddSurfaceFileDlg.cpp" line="448"/>
<source>Failed to add file</source>
<translation type="unfinished"></translation>
</message>
@ -1940,6 +1950,11 @@
<source>new polar file</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/Menu/FileManagerMenu.ui" line="110"/>
<source>new image file</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>FitCurveChartView</name>
@ -2024,22 +2039,22 @@
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/MainWindow.cpp" line="61"/>
<location filename="../ui/MainWindow.cpp" line="65"/>
<source>model elements</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/MainWindow.cpp" line="70"/>
<location filename="../ui/MainWindow.cpp" line="74"/>
<source>preset models</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/MainWindow.cpp" line="78"/>
<location filename="../ui/MainWindow.cpp" line="82"/>
<source>attribte</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/MainWindow.cpp" line="93"/>
<location filename="../ui/MainWindow.cpp" line="97"/>
<source>Main View</source>
<translation type="unfinished"></translation>
</message>
@ -2302,38 +2317,38 @@
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/Menu/FileManagerMenu.cpp" line="55"/>
<location filename="../ui/Menu/FileManagerMenu.cpp" line="56"/>
<source>Open Workspace</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/Menu/FileManagerMenu.cpp" line="55"/>
<location filename="../ui/Menu/FileManagerMenu.cpp" line="74"/>
<location filename="../ui/Menu/FileManagerMenu.cpp" line="56"/>
<location filename="../ui/Menu/FileManagerMenu.cpp" line="75"/>
<source>Dyt Files (*.dyt)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/Menu/FileManagerMenu.cpp" line="67"/>
<location filename="../ui/Menu/FileManagerMenu.cpp" line="91"/>
<location filename="../ui/Menu/FileManagerMenu.cpp" line="139"/>
<location filename="../ui/Menu/FileManagerMenu.cpp" line="187"/>
<location filename="../ui/Menu/FileManagerMenu.cpp" line="235"/>
<location filename="../ui/Menu/FileManagerMenu.cpp" line="283"/>
<location filename="../ui/Menu/FileManagerMenu.cpp" line="68"/>
<location filename="../ui/Menu/FileManagerMenu.cpp" line="92"/>
<location filename="../ui/Menu/FileManagerMenu.cpp" line="140"/>
<location filename="../ui/Menu/FileManagerMenu.cpp" line="188"/>
<location filename="../ui/Menu/FileManagerMenu.cpp" line="236"/>
<location filename="../ui/Menu/FileManagerMenu.cpp" line="285"/>
<source>prompt</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/Menu/FileManagerMenu.cpp" line="67"/>
<location filename="../ui/Menu/FileManagerMenu.cpp" line="91"/>
<location filename="../ui/Menu/FileManagerMenu.cpp" line="139"/>
<location filename="../ui/Menu/FileManagerMenu.cpp" line="187"/>
<location filename="../ui/Menu/FileManagerMenu.cpp" line="235"/>
<location filename="../ui/Menu/FileManagerMenu.cpp" line="283"/>
<location filename="../ui/Menu/FileManagerMenu.cpp" line="68"/>
<location filename="../ui/Menu/FileManagerMenu.cpp" line="92"/>
<location filename="../ui/Menu/FileManagerMenu.cpp" line="140"/>
<location filename="../ui/Menu/FileManagerMenu.cpp" line="188"/>
<location filename="../ui/Menu/FileManagerMenu.cpp" line="236"/>
<location filename="../ui/Menu/FileManagerMenu.cpp" line="285"/>
<source>please create workspace first</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/Menu/FileManagerMenu.cpp" line="74"/>
<location filename="../ui/Menu/FileManagerMenu.cpp" line="75"/>
<source>Save Workspace</source>
<translation type="unfinished"></translation>
</message>

View File

@ -17,16 +17,6 @@ DockWidgetTitleBar::~DockWidgetTitleBar() {
}
//QSize DockWidgetTitleBar::minimumSizeHint() const {
// QDockWidget* dw = qobject_cast<QDockWidget*>(parentWidget());
// Q_ASSERT(dw);
// QSize result(0, 90);
// if (dw->features() & QDockWidget::DockWidgetVerticalTitleBar)
// result.transpose();
// return result;
//}
DockWidget::DockWidget(const QString& title, QWidget* parent)
: QDockWidget(title, parent) {
setFeatures(DockWidgetClosable | DockWidgetMovable | DockWidgetFloatable);
@ -42,6 +32,10 @@ DockWidget::DockWidget(const QString& title, QWidget* parent)
DockWidget::DockWidget(QWidget* parent)
: QDockWidget(parent) {
setFeatures(DockWidgetClosable | DockWidgetMovable | DockWidgetFloatable);
SystemManagerMenu* windowManagerMenu = MainFrame::Get().GetMenuManager<SystemManagerMenu>("system_manager");
if (nullptr != windowManagerMenu) {
windowManagerMenu->AddDockWidget(this);
}
m_bMax = false;
}

View File

@ -39,7 +39,9 @@ MainWindow::MainWindow(QWidget* parent)
, ui(new Ui::MainWindow) {
ui->setupUi(this);
LOG_INFO("MainWindow::MainWindow - Constructor called, about to call InitUI");
InitUI();
LOG_INFO("MainWindow::MainWindow - Constructor completed");
}
MainWindow::~MainWindow() {
@ -48,6 +50,8 @@ MainWindow::~MainWindow() {
}
void MainWindow::InitUI() {
LOG_INFO("MainWindow::InitUI - Function started");
QWidget* centralWidget = takeCentralWidget();
if (nullptr != centralWidget) {
delete centralWidget;
@ -63,7 +67,7 @@ void MainWindow::InitUI() {
model->setObjectName("Dock.ModelBrowser");
modelBrowser_ = new ModelBrowser(0);
modelBrowser_->AttachDock(model);
m_mapDockWidget.insert("ModelBrowser", model);
mapDockWidget_.insert("ModelBrowser", model);
addDockWidget(Qt::LeftDockWidgetArea, model);
// 创建预制模型面板
@ -73,7 +77,7 @@ void MainWindow::InitUI() {
presetModelPanel_ = new PresetModelPanel(0);
presetModelPanel_->AttachDock(presetModel);
addDockWidget(Qt::LeftDockWidgetArea, presetModel);
m_mapDockWidget.insert("PresetModelPanel", presetModel);
mapDockWidget_.insert("PresetModelPanel", presetModel);
DockWidget* attribte = new DockWidget(tr("attribte"), 0);
attribte->SetDockWidgetTitleBar(new DockTitleBar(attribte));
@ -81,7 +85,7 @@ void MainWindow::InitUI() {
//addDockWidget(pSettingUI->GetArea("PropertyBrowser"), attribte);
propertyBrowser_ = new PropertyBrowser(0);
propertyBrowser_->AttachDock(attribte);
m_mapDockWidget.insert("PropertyBrowser", attribte);
mapDockWidget_.insert("PropertyBrowser", attribte);
addDockWidget(Qt::RightDockWidgetArea, attribte);
connect(modelBrowser_, &ModelBrowser::WorkSpaceChange, propertyBrowser_, &PropertyBrowser::OnWorkSpaceChange);
@ -95,152 +99,27 @@ void MainWindow::InitUI() {
viewDock->setObjectName("Dock.MainView");
viewDock->setWidget(qtOsgViewWidget_);
addDockWidget(Qt::LeftDockWidgetArea, viewDock);
m_mapDockWidget.insert("MainView", viewDock);
mapDockWidget_.insert("MainView", viewDock);
splitDockWidget(model, viewDock, Qt::Horizontal);
// 将预制模型面板与模型浏览器标签化
tabifyDockWidget(model, presetModel);
//QString wavePath ="", speedPath = "", rdPath = "", matlabParam="";
//if (WorkSpaceManager::Get().GetCurrent())
//{
// if (!WorkSpaceManager::Get().GetCurrent()->GetWavePath().isEmpty())
// {
// wavePath = RecourceHelper::Get().GetBasePath() + "/" + WorkSpaceManager::Get().GetCurrent()->GetWavePath();
// }
// if (!WorkSpaceManager::Get().GetCurrent()->GetReportPath().isEmpty())
// {
// speedPath = RecourceHelper::Get().GetBasePath() + "/" + WorkSpaceManager::Get().GetCurrent()->GetReportPath();
// }
// if (!WorkSpaceManager::Get().GetCurrent()->GetRDPath().isEmpty())
// {
// rdPath = RecourceHelper::Get().GetBasePath() + "/" + WorkSpaceManager::Get().GetCurrent()->GetRDPath();
// }
// if (!WorkSpaceManager::Get().GetCurrent()->GetMatlabParam().isEmpty())
// {
// matlabParam = RecourceHelper::Get().GetBasePath() + "/" + WorkSpaceManager::Get().GetCurrent()->GetMatlabParam();
// }
//}
//DockWidget* fitCurveDock = new DockWidget(tr("Wave Curve"), 0);
//fitCurveDock->SetDockWidgetTitleBar(new DockTitleBar(fitCurveDock));
//fitCurveDock->setObjectName("Dock.WaveCurveDialog");
//fitCurveDlg_ = new FitCurveDialog();
//fitCurveDlg_->AttachDock(fitCurveDock);
//m_mapDockWidget.insert("WaveCurveDialog", fitCurveDock);
//addDockWidget(Qt::BottomDockWidgetArea, fitCurveDock);
//fitCurveDlg_->InitWaveFile(wavePath);
//DockWidget* fitLgCurveDock = new DockWidget(tr("Speed Curve"), 0);
//fitLgCurveDock->SetDockWidgetTitleBar(new DockTitleBar(fitLgCurveDock));
//fitLgCurveDock->setObjectName("Dock.SpeedCurveDialog");
//fitYLgCurveDlg_ = new FitCurveDialog();
//fitYLgCurveDlg_->AttachDock(fitLgCurveDock);
//m_mapDockWidget.insert("SpeedCurveDialog", fitLgCurveDock);
//addDockWidget(Qt::BottomDockWidgetArea, fitLgCurveDock);
//tabifyDockWidget(fitCurveDock, fitLgCurveDock);
//fitYLgCurveDlg_->InitReportFile(speedPath);
//DockWidget* surfaceCurveDock = new DockWidget(tr("3D Curve"), 0);
//surfaceCurveDock->SetDockWidgetTitleBar(new DockTitleBar(surfaceCurveDock));
//surfaceCurveDock->setObjectName("Dock.3DCurveDialog");
//surfaceDlg_ = new SurfaceDialog();
//surfaceDlg_->AttachDock(surfaceCurveDock);
//m_mapDockWidget.insert("3DCurveDialog", surfaceCurveDock);
//addDockWidget(Qt::BottomDockWidgetArea, surfaceCurveDock);
//tabifyDockWidget(fitCurveDock, surfaceCurveDock);
//surfaceDlg_->InitRD(rdPath);
//{
// targetUITable_ = new TargetListWgt;
// QStringList headerLabels;
// headerLabels << tr("Target number") << tr("Signal-to-noise ratio")
// << tr("Azimuth line of sight") << tr("Pitch gaze angle")
// << tr("azimuth") << tr("Pitch angle")
// << tr("attribute") << tr("Doppler")
// << tr("course") << tr("Speed")
// << tr("longitude") << tr("latitude")
// << tr("distance") << tr("velocity")
// << tr("Radial dimensions") << tr("Target RCS");
// targetUITable_->SetHeader(headerLabels);
// //const QString reportPath = RecourceHelper::Get().GetBasePath() + "/workspace/Report.txt";
// //targetUITable_->InitFile(speedPath, 50);
// DockWidget* dataTableDock = new DockWidget(tr("Report Table"), 0);
// dataTableDock->SetDockWidgetTitleBar(new DockTitleBar(dataTableDock));
// dataTableDock->setObjectName("Dock.TargetListWgt_Table");
// // addDockWidget(pSettingUI->GetArea("TargetListWgt"), dataTableDock);
// targetUITable_->AttachDock(dataTableDock);
// m_mapDockWidget.insert("TargetListWgt_Table", dataTableDock);
// addDockWidget(Qt::BottomDockWidgetArea, dataTableDock);
// tabifyDockWidget(fitCurveDock, dataTableDock);
//}
//const QString lampPath = RecourceHelper::Get().GetBasePath() + "/workspace/Lamp.txt";
//DockWidget* signalIndicatorLampDock = new DockWidget(tr("Signal Indicator Lamp"), 0);
//signalIndicatorLampDock->SetDockWidgetTitleBar(new DockTitleBar(signalIndicatorLampDock));
//signalIndicatorLampDock->setObjectName("Dock.SignalIndicatorLampUI");
//signalIndicatorLampUI_ = new SignalIndicatorLampUI;
//signalIndicatorLampUI_->AttachDock(signalIndicatorLampDock);
////signalIndicatorLampUI_->InitLamp(lampPath);
//m_mapDockWidget.insert("SignalIndicatorLampUI", signalIndicatorLampDock);
//addDockWidget(Qt::BottomDockWidgetArea, signalIndicatorLampDock);
//tabifyDockWidget(fitCurveDock, signalIndicatorLampDock);
// DockWidget* addParamSettingDock = new DockWidget(tr("ParamSetting"), 0);
// addParamSettingDock->SetDockWidgetTitleBar(new DockTitleBar(addParamSettingDock));
// addParamSettingDock->setObjectName("Dock.ParamSetting");
// addParamDlg_ = new AddParamSetting(matlabParam);
// addParamDlg_->AttachDock(addParamSettingDock);
// m_mapDockWidget.insert("ParamSetting", addParamSettingDock);
// addDockWidget(Qt::BottomDockWidgetArea, addParamSettingDock);
// tabifyDockWidget(fitCurveDock, addParamSettingDock);
//DockWidget* matlabDock = new DockWidget(tr("bat File"), 0);
//matlabDock->SetDockWidgetTitleBar(new DockTitleBar(matlabDock));
//matlabDock->setObjectName("Dock.Matlab");
//matlabFileDlg_ = new CodeEdtUI;
//matlabFileDlg_->AttachDock(matlabDock);
//m_mapDockWidget.insert("Matlab", matlabDock);
// addDockWidget(Qt::BottomDockWidgetArea, matlabDock);
// tabifyDockWidget(fitCurveDock, matlabDock);
//ui->discript->setText(tr("name: 5year 0412"));
//ui->status->setText(tr("start: no start"));
// InitDockLayout();
dataPanelManager_ = new DataPanelManager(this, this);
connect(&WorkSpaceManager::Get(), &WorkSpaceManager::WorkSpaceChanged,
dataPanelManager_, &DataPanelManager::OnWorkspaceChanged);
// Restore previous UI layout if available
LOG_INFO("MainWindow::InitUI - About to call UiLayoutManager::Restore");
UiLayoutManager::Restore(this, 1);
//InitChartLayout();
LOG_INFO("MainWindow::InitUI - UiLayoutManager::Restore completed");
//ui->viewWidget->layout()->addWidget(qtOsgViewWidget_);
qtOsgViewWidget_->LoadDefaultScene();
/*OsgViewer::Get().Initialize();
OsgViewer::Get().OnFrame();*/
#if 0
// MatlabObject* mtlb = new MatlabObject;
MatlabObject::GetInstance()->RunMatlabFile("");
#endif // 1
}
@ -277,150 +156,4 @@ void MainWindow::slotResetWorkSpace()
rdPath = RecourceHelper::Get().GetBasePath() + "/" + WorkSpaceManager::Get().GetCurrent()->GetRDPath();
}
}
//fitCurveDlg_->InitWaveFile(wavePath);
//fitYLgCurveDlg_->InitReportFile(speedPath);
//surfaceDlg_->InitRD(rdPath);
//targetUITable_->InitFile(speedPath, 50);
}
void MainWindow::InitChartLayout()
{
QString strChart = RecourceHelper::Get().GetBasePath() + "/workspace/Chart.xml";
m_mgrChart.Load(strChart);
QVariantList varList = m_mgrChart.GetChartWgt();
for (int nI = 0; nI < varList.size(); nI++)
{
QVariantMap mapWgt = varList.at(nI).toMap();
QString strWgt = mapWgt.value("Name").toString();
QVariantList listChart = mapWgt.value("Chart").toList();
QMainWindow* mainWindow_ = new QMainWindow;
//connect(mainWindow_, &QMainWindow::tabifiedDockWidgetActivated, this, &MainWindow::OnTabifiedDockWidgetActivated);
DockWidget* wgtDock = new DockWidget(strWgt, 0);
wgtDock->SetDockWidgetTitleBar(new DockTitleBar(wgtDock));
wgtDock->setWidget(mainWindow_);
addDockWidget(Qt::BottomDockWidgetArea, wgtDock);
for (int nJ = 0; nJ < listChart.size(); nJ++)
{
QVariantMap mapChart = listChart.at(nJ).toMap();
InitChart(mapChart, mainWindow_);
}
}
}
QDockWidget *MainWindow::InitChart(QVariantMap mapChart, QMainWindow* mainWindow)
{
QString strName = mapChart.value("Name").toString();
QString strType = mapChart.value("Type").toString();
QString after = mapChart.value("after").toString();
QString orientation = mapChart.value("orientation").toString();
int nT = mapChart.value("t").toInt();
QString strFile = mapChart.value("File").toString();
DockWidget* pDock = new DockWidget(strName, 0);
if (strType == "Wave" || strType == "Report")
{
QString xTitle = mapChart.value("xTitle").toString();
QString yTitle = mapChart.value("yTitle").toString();
float xMin = mapChart.value("xMin").toFloat();
float xMax = mapChart.value("xMax").toFloat();
int xCount = mapChart.value("xCount").toInt();
float yMin = mapChart.value("yMin").toFloat();
float yMax = mapChart.value("yMax").toFloat();
int yCount = mapChart.value("yCount").toInt();
QVariantList listCurve = mapChart.value("Curve").toList();
FitCurveDialog *fitCurveDlg = new FitCurveDialog();
fitCurveDlg->AttachDock(pDock);
fitCurveDlg->updateTitle(strName + "-" + strFile);
fitCurveDlg->updateTitleAxis(xTitle, yTitle);
fitCurveDlg->updateMinMaxX(xMin, xMax, xCount);
fitCurveDlg->updateMinMaxY(yMin, yMax, yCount);
if (strType == "Wave")
{
fitCurveDlg->updateParseWaveFile(strFile, nT, listCurve);
}
else if (strType == "Report")
{
fitCurveDlg->updateParseReportFile(strFile, nT, listCurve);
}
}
else if (strType == "Table")
{
QString head = mapChart.value("head").toString();
QVariantList listCurve = mapChart.value("Curve").toList();
TargetListWgt *targetUITable = new TargetListWgt;
targetUITable->AttachDock(pDock);
targetUITable->SetHead(head);
targetUITable->updateTitle(strName + "-" + strFile);
targetUITable->updateParseFile(strFile, nT, listCurve);
}
else if (strType == "Lamp")
{
QString openColor = mapChart.value("openColor").toString();
QString closeColor = mapChart.value("closeColor").toString();
QVariantList listCurve = mapChart.value("Curve").toList();
SignalIndicatorLampUI *signalIndicatorLamp = new SignalIndicatorLampUI;
signalIndicatorLamp->AttachDock(pDock);
signalIndicatorLamp->updateTitle(strName + "-" + strFile);
signalIndicatorLamp->updateLampColor(openColor, closeColor);
signalIndicatorLamp->updateParseFile(strFile, nT, listCurve);
}
else if (strType == "Surface")
{
QString xTitle = mapChart.value("xTitle").toString();
QString yTitle = mapChart.value("yTitle").toString();
QString zTitle = mapChart.value("zTitle").toString();
float xMin = mapChart.value("xMin").toFloat();
float xMax = mapChart.value("xMax").toFloat();
int xCount = mapChart.value("xCount").toInt();
float yMin = mapChart.value("yMin").toFloat();
float yMax = mapChart.value("yMax").toFloat();
int yCount = mapChart.value("yCount").toInt();
float zMin = mapChart.value("zMin").toFloat();
float zMax = mapChart.value("zMax").toFloat();
int zCount = mapChart.value("zCount").toInt();
QVariantList listCurve = mapChart.value("Curve").toList();
SurfaceDialog *surfaceDlg = new SurfaceDialog();
surfaceDlg->AttachDock(pDock);
surfaceDlg->updateTitle(strName + "-" + strFile);
surfaceDlg->updateTitleAxis(xTitle, yTitle, zTitle);
surfaceDlg->updateMinMaxX(xMin, xMax, xCount);
surfaceDlg->updateMinMaxY(yMin, yMax, yCount);
surfaceDlg->updateMinMaxZ(zMin, zMax, zCount);
surfaceDlg->updateParseFile(strFile, nT, listCurve);
}
mainWindow->addDockWidget(Qt::LeftDockWidgetArea, pDock);
QDockWidget* afterDock = m_mapChartWidget.value(after);
if (afterDock)
{
if (orientation == QString("Horizontal"))
{
mainWindow->splitDockWidget(afterDock, pDock, Qt::Horizontal);
}
else if (orientation == QString("Vertical"))
{
mainWindow->splitDockWidget(afterDock, pDock, Qt::Vertical);
}
}
m_mapChartWidget.insert(strName, pDock);
return pDock;
}
QDockWidget * MainWindow::InitCurveChart(QVariantMap mapChart, QMainWindow * mainWindow)
{
return nullptr;
}

View File

@ -32,16 +32,6 @@ public:
return qtOsgViewWidget_;
}
class FitCurveDialog* GetFitCurveDlg() const {
return fitCurveDlg_;
}
class FitCurveDialog* GetFitYLgCurveDlg() const {
return fitYLgCurveDlg_;
}
class SurfaceDialog* GetSurfaceDlg() const {
return surfaceDlg_;
}
DataPanelManager* GetDataPanelManager() const {
return dataPanelManager_;
}
@ -53,10 +43,6 @@ private:
void InitUI();
void UninitUI();
void InitChartLayout();
QDockWidget *InitChart(QVariantMap mapChart, QMainWindow* mainWindow);
QDockWidget *InitCurveChart(QVariantMap mapChart, QMainWindow* mainWindow);
private:
Ui::MainWindow* ui;
@ -66,20 +52,11 @@ private:
class QWebEngineView* webEngineView_{ nullptr };
class OsgWidget* qtOsgViewWidget_{ nullptr };
class FitCurveDialog* fitCurveDlg_{ nullptr };
class FitCurveDialog* fitYLgCurveDlg_{ nullptr };
class SurfaceDialog* surfaceDlg_{ nullptr };
class TargetListWgt* targetUITable_{ nullptr };
class QTabWidget* tabWidget_{ nullptr };
class SignalIndicatorLampUI* signalIndicatorLampUI_{ nullptr };
class CodeEdtUI* matlabFileDlg_{ nullptr };
class AddParamSetting* addParamDlg_{ nullptr };
DataPanelManager* dataPanelManager_{ nullptr };
QMap<QString, QDockWidget*> m_mapDockWidget;
ChartXMLMgr m_mgrChart;
QMap<QString, QDockWidget*> m_mapChartWidget;
QMap<QString, QDockWidget*> mapDockWidget_;
};

View File

@ -7,6 +7,7 @@
#include "workspace/FileEntry.h"
#include "workspace/Timestep.h"
#include "common/SpdLogger.h"
#include "utils/UiLayoutManager.h"
#include <QFileInfo>
#include <QDir>
@ -65,6 +66,8 @@ void DataPanelManager::SetWorkspace(WorkSpace* workspace)
UpdatePanelsForType(FileEntryType::Table);
UpdatePanelsForType(FileEntryType::Light);
UpdatePanelsForType(FileEntryType::Polar);
LOG_INFO("DataPanelManager::SetWorkspace - Reapplying UI layout after panels created");
UiLayoutManager::Restore(mainWindow_, 1);
} else {
ClearAllPanels();
}
@ -200,6 +203,8 @@ DataPanel* DataPanelManager::CreateDataPanel(FileEntryType fileType, const QStri
// Add to main window
mainWindow_->addDockWidget(Qt::RightDockWidgetArea, dockWidget);
// Do not force visibility here; let UiLayoutManager restore saved state
// Create panel using factory
DataPanel* panel = DataPanelFactory::CreatePanel(fileType, index, filePath, dockWidget);
if (!panel) {

View File

@ -2,37 +2,122 @@
#include <QSettings>
#include <QFile>
#include <QDir>
#include <QMainWindow>
#include <QDockWidget>
#include <QDebug>
#include "common/RecourceHelper.h"
#include "common/SpdLogger.h"
namespace {
static inline QString layoutIniPath() {
return RecourceHelper::Get().GetBasePath() + "/config/UIState.ini";
}
static inline bool ensureConfigDirectory() {
const QString configDir = RecourceHelper::Get().GetBasePath() + "/config";
QDir dir;
if (!dir.exists(configDir)) {
if (!dir.mkpath(configDir)) {
LOG_ERROR("Failed to create config directory: {}", configDir.toStdString());
return false;
}
LOG_INFO("Created config directory: {}", configDir.toStdString());
}
return true;
}
}
void UiLayoutManager::Save(QMainWindow* mainWindow, int version) {
if (!mainWindow) return;
if (!mainWindow) {
LOG_WARN("MainWindow is null, cannot save layout");
return;
}
if (!ensureConfigDirectory()) {
LOG_ERROR("Cannot create config directory, layout will not be saved");
return;
}
const QString iniPath = layoutIniPath();
LOG_INFO("Saving UI layout to: {}", iniPath.toStdString());
QSettings settings(iniPath, QSettings::IniFormat);
settings.setValue("MainWindow/geometry", mainWindow->saveGeometry());
settings.setValue("MainWindow/state", mainWindow->saveState(version));
// Force sync to ensure data is written to disk
settings.sync();
if (settings.status() != QSettings::NoError) {
LOG_ERROR("Failed to save UI layout settings, status: {}", static_cast<int>(settings.status()));
} else {
LOG_INFO("UI layout saved successfully");
}
}
void UiLayoutManager::Restore(QMainWindow* mainWindow, int version) {
if (!mainWindow) return;
const QString iniPath = layoutIniPath();
if (!QFile::exists(iniPath)) {
LOG_INFO("UiLayoutManager::Restore - Starting layout restoration for version {}", version);
if (!mainWindow) {
LOG_WARN("MainWindow is null, cannot restore layout");
return;
}
const QString iniPath = layoutIniPath();
LOG_INFO("UiLayoutManager::Restore - Using config file: {}", iniPath.toStdString());
if (!QFile::exists(iniPath)) {
LOG_INFO("Layout file does not exist: {}, using default layout", iniPath.toStdString());
return;
}
LOG_INFO("Restoring UI layout from: {}", iniPath.toStdString());
QSettings settings(iniPath, QSettings::IniFormat);
const QByteArray geometry = settings.value("MainWindow/geometry").toByteArray();
if (!geometry.isEmpty()) {
mainWindow->restoreGeometry(geometry);
}
const QByteArray state = settings.value("MainWindow/state").toByteArray();
if (!state.isEmpty()) {
mainWindow->restoreState(state, version);
LOG_INFO("UiLayoutManager::Restore - Geometry data size: {} bytes", geometry.size());
LOG_INFO("UiLayoutManager::Restore - State data size: {} bytes", state.size());
if (!geometry.isEmpty()) {
bool geometryRestored = mainWindow->restoreGeometry(geometry);
LOG_INFO("UiLayoutManager::Restore - Geometry restoration: {}", geometryRestored ? "SUCCESS" : "FAILED");
} else {
LOG_WARN("UiLayoutManager::Restore - No geometry data found");
}
if (!state.isEmpty()) {
bool stateRestored = mainWindow->restoreState(state, version);
LOG_INFO("UiLayoutManager::Restore - State restoration: {}", stateRestored ? "SUCCESS" : "FAILED");
// Log dock widget information
QList<QDockWidget*> dockWidgets = mainWindow->findChildren<QDockWidget*>();
LOG_INFO("UiLayoutManager::Restore - Found {} dock widgets after restoration", dockWidgets.size());
for (QDockWidget* dock : dockWidgets) {
LOG_INFO("UiLayoutManager::Restore - DockWidget: {} - Visible: {}, Floating: {}, Area: {}",
dock->objectName().toStdString(),
dock->isVisible(),
dock->isFloating(),
static_cast<int>(mainWindow->dockWidgetArea(dock)));
// Ensure essential dock widgets are visible after restoration
QString objName = dock->objectName();
if (objName == "Dock.ModelBrowser" ||
objName == "Dock.PresetModelPanel" ||
objName == "Dock.PropertyBrowser" ||
objName == "Dock.MainView") {
if (!dock->isVisible()) {
LOG_INFO("UiLayoutManager::Restore - Making essential DockWidget visible: {}", objName.toStdString());
dock->show();
}
}
}
} else {
LOG_WARN("UiLayoutManager::Restore - No state data found");
}
LOG_INFO("UiLayoutManager::Restore - Layout restoration completed");
}