modified panel

This commit is contained in:
pimin 2025-11-02 16:36:07 +08:00
parent 630552b156
commit 6617e2f46e
7 changed files with 428 additions and 318 deletions

View File

@ -38,6 +38,7 @@
<file>res/models/radar_jamming_station.png</file> <file>res/models/radar_jamming_station.png</file>
<file>res/models/satellite.png</file> <file>res/models/satellite.png</file>
<file>res/models/warships.png</file> <file>res/models/warships.png</file>
<file>res/default/menu_image_file.png</file>
</qresource> </qresource>
<qresource prefix="/qss"/> <qresource prefix="/qss"/>
<qresource prefix="/fonts"> <qresource prefix="/fonts">

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.8 KiB

View File

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

View File

@ -0,0 +1,77 @@
#include "ui/Panel/ImagePanel.h"
#include "ui/DockWidget.h"
#include "ui/DockTitleBar.h"
#include "common/SpdLogger.h"
#include <QHBoxLayout>
#include <QFileInfo>
#include <QMessageBox>
ImagePanel::ImagePanel(int index, const QString& filePath, QWidget* parent)
: DataPanel(index, FileEntryType::Table, filePath, parent)
{
LOG_INFO("Created ImagePanel {} for file: {}", index, filePath.toStdString());
}
ImagePanel::ImagePanel(int index, std::shared_ptr<FileEntryImage> fileEntry, QWidget* parent)
: DataPanel(index, fileEntry, parent)
{
if (fileEntry) {
LOG_INFO("Created ImagePanel {} for chart: {}", index, fileEntry->GetName().toStdString());
// Override the title with chart name
title_ = QString("Image Panel %1 - %2").arg(index).arg(fileEntry->GetName());
}
else {
LOG_WARN("Created ImagePanel {} with null chart data", index);
}
}
ImagePanel::~ImagePanel()
{
LOG_INFO("Destroyed ImagePanel {}", GetIndex());
}
void ImagePanel::RefreshPanel()
{
// Implement curve-specific refresh logic here
DataPanel::RefreshPanel();
if (auto fileEntry = fileEntry_->AsImage()) {
OnDataPanelUpdated(fileEntry);
}
LOG_INFO("Refreshed ImagePanel {}", GetIndex());
}
void ImagePanel::InitUI()
{
QHBoxLayout* mainLayout = new QHBoxLayout(this);
mainLayout->setContentsMargins(0, 0, 0, 0);
//mainLayout->addWidget(m_pTableWidget);
setLayout(mainLayout);
}
QString ImagePanel::GetTypeDisplayName() const
{
return "Image";
}
void ImagePanel::OnDataPanelUpdated(FileEntryImage* fileEntry)
{
QString strName = fileEntry->GetName();
updateTitle(strName);
}
void ImagePanel::OnTimeChanged(double time)
{
}
void ImagePanel::updateTitle(const QString & title)
{
if (nullptr != dockWidget_)
{
dockWidget_->setWindowTitle(title);
}
}

63
src/ui/Panel/ImagePanel.h Normal file
View File

@ -0,0 +1,63 @@
#pragma once
#include "DataPanel.h"
#include "workspace/FileEntry.h"
#include <memory>
class ImagePanel : public DataPanel
{
Q_OBJECT
public:
/**
* @brief Constructor
* @param index Panel index
* @param filePath Associated file path
* @param parent Parent widget
*/
explicit ImagePanel(int index, const QString& filePath, QWidget* parent = nullptr);
/**
* @brief Constructor with chart data
* @param index Panel index
* @param chartData Chart data containing curve information
* @param parent Parent widget
*/
explicit ImagePanel(int index, std::shared_ptr<FileEntryImage> fileEntry, QWidget* parent = nullptr);
/**
* @brief Destructor
*/
virtual ~ImagePanel();
/**
* @brief Get file type
* @return File type (always Curve for this class)
*/
FileEntryType GetFileType() const override { return FileEntryType::Image; }
/**
* @brief Refresh panel content
*/
void RefreshPanel() override;
protected:
/**
* @brief Initialize UI for curve-specific layout
*/
virtual void InitUI();
/**
* @brief Get type display name
* @return Display name for curve type
*/
QString GetTypeDisplayName() const override;
void OnDataPanelUpdated(FileEntryImage* fileEntry);
virtual void OnTimeChanged(double time);
private:
void updateTitle(const QString& title);
};

View File

@ -46,6 +46,8 @@ std::shared_ptr<FileEntry> CreateFileEntry(FileEntryType type, const QString& fi
return CreateFileEntryLight(filePath); return CreateFileEntryLight(filePath);
case FileEntryType::Polar: case FileEntryType::Polar:
return CreateFileEntryPolar(filePath); return CreateFileEntryPolar(filePath);
case FileEntryType::Image:
return CreateFileEntryImage(filePath);
default: default:
LOG_ERROR("Unknown FileEntryType: {}", static_cast<int>(type)); LOG_ERROR("Unknown FileEntryType: {}", static_cast<int>(type));
return nullptr; return nullptr;
@ -122,6 +124,20 @@ std::shared_ptr<FileEntryPolar> CreateFileEntryPolar(const QString& filePath) {
return fileEntry; return fileEntry;
} }
std::shared_ptr<FileEntryImage> CreateFileEntryImage(const QString& filePath) {
QFileInfo fileInfo(filePath);
if (!fileInfo.exists()) {
LOG_ERROR("File does not exist: {}", filePath.toUtf8().constData());
return nullptr;
}
auto fileEntry = std::make_shared<FileEntryImage>();
fileEntry->SetPath(filePath);
fileEntry->SetName(fileInfo.baseName()); // Use base name as default display name
return fileEntry;
}
// Factory functions for creating empty FileEntry objects (for XML parsing) // Factory functions for creating empty FileEntry objects (for XML parsing)
std::shared_ptr<FileEntry> CreateEmptyFileEntry(FileEntryType type) { std::shared_ptr<FileEntry> CreateEmptyFileEntry(FileEntryType type) {
switch (type) { switch (type) {
@ -135,6 +151,8 @@ std::shared_ptr<FileEntry> CreateEmptyFileEntry(FileEntryType type) {
return CreateEmptyFileEntryLight(); return CreateEmptyFileEntryLight();
case FileEntryType::Polar: case FileEntryType::Polar:
return CreateEmptyFileEntryPolar(); return CreateEmptyFileEntryPolar();
case FileEntryType::Image:
return CreateEmptyFileEntryImage();
default: default:
LOG_ERROR("Unknown FileEntryType: {}", static_cast<int>(type)); LOG_ERROR("Unknown FileEntryType: {}", static_cast<int>(type));
return nullptr; return nullptr;
@ -171,6 +189,12 @@ std::shared_ptr<FileEntryPolar> CreateEmptyFileEntryPolar() {
return fileEntry; return fileEntry;
} }
std::shared_ptr<FileEntryImage> CreateEmptyFileEntryImage() {
auto fileEntry = std::make_shared<FileEntryImage>();
// Don't set path or name - these will be set during XML parsing
return fileEntry;
}
// FileEntrySurface method implementations // FileEntrySurface method implementations
void FileEntrySurface::SetChartProperties(const ChartProperties& properties) { void FileEntrySurface::SetChartProperties(const ChartProperties& properties) {
chartProperties_ = properties; chartProperties_ = properties;
@ -808,3 +832,36 @@ bool FileEntryPolar::ParseFiles(const tinyxml2::XMLElement* chartElement) {
return true; return true;
} }
void FileEntryImage::SetChartProperties(const ChartProperties& properties) {
chartProperties_ = properties;
}
const FileEntryImage::ChartProperties& FileEntryImage::GetChartProperties() const {
return chartProperties_;
}
void FileEntryImage::AddImageProperty(const ImageProperty& image) {
imageProperties_.append(image);
}
void FileEntryImage::RemoveImageProperty(int index) {
if (index >= 0 && index < imageProperties_.size()) {
imageProperties_.removeAt(index);
}
}
void FileEntryImage::SetImageProperty(int index, const ImageProperty& surface) {
if (index >= 0 && index < imageProperties_.size()) {
imageProperties_[index] = surface;
}
}
const FileEntryImage::ImageProperties& FileEntryImage::GetImageProperties() const {
return imageProperties_;
}
FileEntryImage* FileEntryImage::AsImage() {
return this;
}

View File

@ -9,7 +9,8 @@ enum class FileEntryType {
Surface, Surface,
Table, Table,
Light, Light,
Polar Polar,
Image
}; };
enum class ChartType { enum class ChartType {
@ -39,6 +40,7 @@ inline const char* FileEntryTypeToString(FileEntryType t) {
case FileEntryType::Table: return "table"; case FileEntryType::Table: return "table";
case FileEntryType::Light: return "light"; case FileEntryType::Light: return "light";
case FileEntryType::Polar: return "polar"; case FileEntryType::Polar: return "polar";
case FileEntryType::Image: return "image";
} }
return "unknown"; return "unknown";
} }
@ -50,6 +52,7 @@ inline bool FileEntryTypeFromString(const char* s, FileEntryType& out) {
if (0 == strcmp(s, "table")) { out = FileEntryType::Table; return true; } if (0 == strcmp(s, "table")) { out = FileEntryType::Table; return true; }
if (0 == strcmp(s, "light")) { out = FileEntryType::Light; return true; } if (0 == strcmp(s, "light")) { out = FileEntryType::Light; return true; }
if (0 == strcmp(s, "polar")) { out = FileEntryType::Polar; return true; } if (0 == strcmp(s, "polar")) { out = FileEntryType::Polar; return true; }
if (0 == strcmp(s, "image")) { out = FileEntryType::Image; return true; }
return false; return false;
} }
@ -58,6 +61,7 @@ class FileEntryLight;
class FileEntrySurface; class FileEntrySurface;
class FileEntryTable; class FileEntryTable;
class FileEntryPolar; class FileEntryPolar;
class FileEntryImage;
class FileEntry { class FileEntry {
public: public:
@ -80,6 +84,7 @@ public:
virtual FileEntrySurface* AsSurface() { return nullptr; } virtual FileEntrySurface* AsSurface() { return nullptr; }
virtual FileEntryTable* AsTable() { return nullptr; } virtual FileEntryTable* AsTable() { return nullptr; }
virtual FileEntryPolar* AsPolar() { return nullptr; } virtual FileEntryPolar* AsPolar() { return nullptr; }
virtual FileEntryImage* AsImage() { return nullptr; }
virtual bool ParseFiles(const tinyxml2::XMLElement* element) { return false; } virtual bool ParseFiles(const tinyxml2::XMLElement* element) { return false; }
virtual bool SaveFiles(tinyxml2::XMLElement* scene, tinyxml2::XMLDocument* doc) { return false; } virtual bool SaveFiles(tinyxml2::XMLElement* scene, tinyxml2::XMLDocument* doc) { return false; }
@ -101,6 +106,7 @@ std::shared_ptr<FileEntry> CreateFileEntrySurface(const QString& filePath);
std::shared_ptr<FileEntryTable> CreateFileEntryTable(const QString& filePath); std::shared_ptr<FileEntryTable> CreateFileEntryTable(const QString& filePath);
std::shared_ptr<FileEntryLight> CreateFileEntryLight(const QString& filePath); std::shared_ptr<FileEntryLight> CreateFileEntryLight(const QString& filePath);
std::shared_ptr<FileEntryPolar> CreateFileEntryPolar(const QString& filePath); std::shared_ptr<FileEntryPolar> CreateFileEntryPolar(const QString& filePath);
std::shared_ptr<FileEntryImage> CreateFileEntryImage(const QString& filePath);
// Factory functions for creating empty FileEntry objects (for XML parsing) // Factory functions for creating empty FileEntry objects (for XML parsing)
std::shared_ptr<FileEntry> CreateEmptyFileEntry(FileEntryType type); std::shared_ptr<FileEntry> CreateEmptyFileEntry(FileEntryType type);
@ -109,6 +115,7 @@ std::shared_ptr<FileEntry> CreateEmptyFileEntrySurface();
std::shared_ptr<FileEntryTable> CreateEmptyFileEntryTable(); std::shared_ptr<FileEntryTable> CreateEmptyFileEntryTable();
std::shared_ptr<FileEntryLight> CreateEmptyFileEntryLight(); std::shared_ptr<FileEntryLight> CreateEmptyFileEntryLight();
std::shared_ptr<FileEntryPolar> CreateEmptyFileEntryPolar(); std::shared_ptr<FileEntryPolar> CreateEmptyFileEntryPolar();
std::shared_ptr<FileEntryImage> CreateEmptyFileEntryImage();
class FileEntryCurve : public FileEntry { class FileEntryCurve : public FileEntry {
@ -351,3 +358,53 @@ private:
ChartProperties chartProperties_; ChartProperties chartProperties_;
LineProperties lineProperties_; LineProperties lineProperties_;
}; };
class FileEntryImage : public FileEntry {
public:
struct ChartProperties {
int AngularCount;
int RadialCount;
QString AngularTitle;
QString RadialTitle;
double AngularMin;
double AngularMax;
double RadialMin;
double RadialMax;
QString AngularUnit;
QString RadialUnit;
double timeParam; // 对应XML的t
};
struct ImageProperty {
QString name;
QColor color;
int Angular;
int Radial;
};
using ImageProperties = QList<ImageProperty>;
public:
FileEntryImage() { type_ = FileEntryType::Image; }
// Chart properties management
void SetChartProperties(const ChartProperties& properties);
const ChartProperties& GetChartProperties() const;
// Line properties management
void AddImageProperty(const ImageProperty& image);
void RemoveImageProperty(int index);
void SetImageProperty(int index, const ImageProperty& image);
const ImageProperties& GetImageProperties() const;
// Type conversion
FileEntryImage* AsImage() override;
//// XML处理方法
//bool SaveFiles(tinyxml2::XMLElement* scene, tinyxml2::XMLDocument* doc) override;
//bool ParseFiles(const tinyxml2::XMLElement* element) override;
private:
ChartProperties chartProperties_;
ImageProperties imageProperties_;
};