diff --git a/src/translations/Dyt_zh_CN.ts b/src/translations/Dyt_zh_CN.ts
index 87e57480..53106946 100644
--- a/src/translations/Dyt_zh_CN.ts
+++ b/src/translations/Dyt_zh_CN.ts
@@ -523,133 +523,128 @@
-
+
model elements
-
+
attribte
-
+
Wave Curve
-
+
Speed Curve
-
+
3D Curve
-
+
Target number
-
+
Signal-to-noise ratio
-
+
Azimuth line of sight
-
+
Pitch gaze angle
-
+
azimuth
-
+
Pitch angle
-
+
attribute
-
+
Doppler
-
+
course
-
+
Speed
-
+
longitude
-
+
latitude
-
+
distance
-
+
velocity
-
+
Radial dimensions
-
+
Target RCS
-
+
Report Table
-
+
Signal Indicator Lamp
-
+
ParamSetting
-
- Matlab File
-
-
-
-
- name: 5year 0412
+
+ bat File
diff --git a/src/ui/MainWindow.cpp b/src/ui/MainWindow.cpp
index 81da8cb9..17a420b0 100644
--- a/src/ui/MainWindow.cpp
+++ b/src/ui/MainWindow.cpp
@@ -38,7 +38,6 @@ MainWindow::MainWindow(QWidget* parent)
}
MainWindow::~MainWindow() {
- //OsgViewer::Get().Uninitialize();
UninitUI();
delete ui;
}
@@ -167,13 +166,13 @@ void MainWindow::InitUI() {
addParamDlg_->AttachDock(addParamSettingDock);
m_mapDockWidget.insert("ParamSetting", addParamSettingDock);
- DockWidget* matlabDock = new DockWidget(tr("Matlab File"), 0);
- matlabFileDlg_ = new CodeEdtUI;
- matlabFileDlg_->AttachDock(matlabDock);
- m_mapDockWidget.insert("Matlab", matlabDock);
+ DockWidget* matlabDock = new DockWidget(tr("bat File"), 0);
+ matlabFileDlg_ = new CodeEdtUI;
+ matlabFileDlg_->AttachDock(matlabDock);
+ m_mapDockWidget.insert("Matlab", matlabDock);
- ui->discript->setText(tr("name: 5year 0412"));
- //ui->status->setText(tr("start: no start"));
+ //ui->discript->setText(tr("name: 5year 0412"));
+ //ui->status->setText(tr("start: no start"));
InitDockLayout();
@@ -182,9 +181,9 @@ void MainWindow::InitUI() {
/*OsgViewer::Get().Initialize();
OsgViewer::Get().OnFrame();*/
-#if 1
- // MatlabObject* mtlb = new MatlabObject;
- MatlabObject::GetInstance()->RunMatlabFile("");
+#if 0
+ // MatlabObject* mtlb = new MatlabObject;
+ MatlabObject::GetInstance()->RunMatlabFile("");
#endif // 1
}
@@ -201,10 +200,12 @@ void MainWindow::InitDockLayout() {
tabWidget_->removeTab(0);
}
- QVariantList listTab = pSettingUI->GetAreaLayout().toList();
- for (int i = 0; i < listTab.size(); i++) {
- QVariantMap mapTab = listTab[i].toMap();
- QString strTabName = mapTab.value("Name").toString();
+ tabWidget_->tabBar()->setExpanding(true);
+
+ QVariantList listTab = pSettingUI->GetAreaLayout().toList();
+ for (int i = 0; i < listTab.size(); i++) {
+ QVariantMap mapTab = listTab[i].toMap();
+ QString strTabName = mapTab.value("Name").toString();
QMainWindow* mainWindow_ = new QMainWindow;
connect(mainWindow_, &QMainWindow::tabifiedDockWidgetActivated, this, &MainWindow::OnTabifiedDockWidgetActivated);
@@ -269,6 +270,7 @@ void MainWindow::InitDockLayout() {
}
}
+ tabWidget_->tabBar()->setMinimumWidth(500);
/* AddDockArea("DockLeftArea");
AddDockArea("DockTopArea");
AddDockArea("DockRightArea");
@@ -351,20 +353,16 @@ void MainWindow::slotShowUISetting() {
void MainWindow::slotResetWorkSpace()
{
QString wavePath = "", speedPath = "", rdPath = "";
- if (WorkSpaceManager::Get().GetCurrent())
- {
- if (!WorkSpaceManager::Get().GetCurrent()->GetWavePath().isEmpty())
- {
+ if (WorkSpaceManager::Get().GetCurrent()) {
+ if (!WorkSpaceManager::Get().GetCurrent()->GetWavePath().isEmpty()) {
wavePath = RecourceHelper::Get().GetBasePath() + "/" + WorkSpaceManager::Get().GetCurrent()->GetWavePath();
}
- if (!WorkSpaceManager::Get().GetCurrent()->GetReportPath().isEmpty())
- {
+ if (!WorkSpaceManager::Get().GetCurrent()->GetReportPath().isEmpty()) {
speedPath = RecourceHelper::Get().GetBasePath() + "/" + WorkSpaceManager::Get().GetCurrent()->GetReportPath();
}
- if (!WorkSpaceManager::Get().GetCurrent()->GetRDPath().isEmpty())
- {
+ if (!WorkSpaceManager::Get().GetCurrent()->GetRDPath().isEmpty()) {
rdPath = RecourceHelper::Get().GetBasePath() + "/" + WorkSpaceManager::Get().GetCurrent()->GetRDPath();
}
}
diff --git a/src/viewer/CameraControlManipulator.cpp b/src/viewer/CameraControlManipulator.cpp
index 2c47f927..76b4ee36 100644
--- a/src/viewer/CameraControlManipulator.cpp
+++ b/src/viewer/CameraControlManipulator.cpp
@@ -143,6 +143,9 @@ void CameraControlManipulator::setByMatrix(const osg::Matrixd& matrix) {
fixVerticalAxis(_center, _rotation, true);
}
break;
+
+ default:
+ break;
}
}
@@ -192,6 +195,9 @@ osg::Matrixd CameraControlManipulator::getMatrix() const {
osg::Matrixd::translate(_center);
}
break;
+
+ default:
+ break;
}
return matrix;
@@ -352,7 +358,7 @@ bool CameraControlManipulator::calcMovement() {
// get delta time
double eventTimeDelta = _ga_t0->getTime() - _ga_t1->getTime();
if (eventTimeDelta < 0.) {
- OSG_WARN << "Manipulator warning: eventTimeDelta = " << eventTimeDelta;
+ OSG_WARN << "Manipulator warning: eventTimeDelta = " << eventTimeDelta << std::endl;
eventTimeDelta = 0.;
}
diff --git a/src/workspace/WorkSpace.cpp b/src/workspace/WorkSpace.cpp
index 1970a0d9..9836479f 100644
--- a/src/workspace/WorkSpace.cpp
+++ b/src/workspace/WorkSpace.cpp
@@ -14,6 +14,7 @@
#include "xml/tinyxml2.h"
#include "common/SpdLogger.h"
#include "entities/Entity.h"
+#include "utils/FileUtils.h"
//#include "workspace/WorkSpaceItemGroup.h"
//#include "workspace/WorkSpaceRiverGroup.h"
//#include "workspace/WorkSpaceRiverNetGroup.h"
@@ -38,6 +39,76 @@ const QString WorkSpace::GetDir() const {
return info.absolutePath();
}
+void WorkSpace::SetSimMatlab(const QString& path) {
+ QFileInfo fileInfo(path);
+ QString dirPath = QString("%1/%2").arg(GetDir(), fileInfo.fileName());
+ bool sucess = FileUtils::CopyFileToPath(path, dirPath, true);
+ LOG_INFO("copy simmatlab file {}: {} to {}",
+ path.toLocal8Bit().data(),
+ dirPath.toLocal8Bit().data(),
+ sucess);
+ simMatlabPath_ = fileInfo.fileName();
+}
+
+const QString WorkSpace::GetSimMatlab() const {
+ QString path = QString("%1/%2").arg(GetDir(), simMatlabPath_);
+ return path;
+}
+
+void WorkSpace::SetWavePath(const QString& path)
+{
+ QFileInfo fileInfo(path);
+ QString dirPath = QString("%1/%2").arg(GetDir(), fileInfo.fileName());
+ bool sucess = FileUtils::CopyFileToPath(path, dirPath, true);
+ LOG_INFO("copy Wave file {}: {} to {}",
+ path.toLocal8Bit().data(),
+ dirPath.toLocal8Bit().data(),
+ sucess);
+ waveFile_ = fileInfo.fileName();
+}
+
+const QString WorkSpace::GetWavePath() const
+{
+ QString path = QString("%1/%2").arg(GetDir(), waveFile_);
+ return path;
+}
+
+void WorkSpace::SetReportPath(const QString& path)
+{
+ QFileInfo fileInfo(path);
+ QString dirPath = QString("%1/%2").arg(GetDir(), fileInfo.fileName());
+ bool sucess = FileUtils::CopyFileToPath(path, dirPath, true);
+ LOG_INFO("copy Wave file {}: {} to {}",
+ path.toLocal8Bit().data(),
+ dirPath.toLocal8Bit().data(),
+ sucess);
+ reportFile_ = fileInfo.fileName();
+}
+
+const QString WorkSpace::GetReportPath() const
+{
+ QString path = QString("%1/%2").arg(GetDir(), reportFile_);
+ return path;
+}
+
+void WorkSpace::SetRDPath(const QString& path)
+{
+ QFileInfo fileInfo(path);
+ QString dirPath = QString("%1/%2").arg(GetDir(), fileInfo.fileName());
+ bool sucess = FileUtils::CopyFileToPath(path, dirPath, true);
+ LOG_INFO("copy RD file {}: {} to {}",
+ path.toLocal8Bit().data(),
+ dirPath.toLocal8Bit().data(),
+ sucess);
+ rdFile_ = fileInfo.fileName();
+}
+
+const QString WorkSpace::GetRDPath() const
+{
+ QString path = QString("%1/%2").arg(GetDir(), rdFile_);
+ return path;
+}
+
void WorkSpace::AddEntity(Entity* entity) {
if (nullptr == entity) {
LOG_WARN("entity is nullptr");
diff --git a/src/workspace/WorkSpace.h b/src/workspace/WorkSpace.h
index 8094fcf2..b5b44259 100644
--- a/src/workspace/WorkSpace.h
+++ b/src/workspace/WorkSpace.h
@@ -46,12 +46,8 @@ public:
inline const QString& GetDescribe() const {
return describe_;
}
- inline void SetSimMatlab(const QString& path) {
- simMatlabPath_ = path;
- }
- inline const QString GetSimMatlab() const {
- return simMatlabPath_;
- }
+ void SetSimMatlab(const QString& path);
+ const QString GetSimMatlab() const;
inline void SetMatlabParam(const QString& path) {
matlabParamPath_ = path;
@@ -60,26 +56,14 @@ public:
return matlabParamPath_;
}
- inline void SetWavePath(const QString& path) {
- waveFile_ = path;
- }
- inline const QString GetWavePath() const {
- return waveFile_;
- }
+ void SetWavePath(const QString& path);
+ const QString GetWavePath() const;
- inline void SetReportPath(const QString& path) {
- reportFile_ = path;
- }
- inline const QString GetReportPath() const {
- return reportFile_;
- }
+ void SetReportPath(const QString& path) ;
+ const QString GetReportPath() const;
- inline void SetRDPath(const QString& path) {
- rdFile_ = path;
- }
- inline const QString GetRDPath() const {
- return rdFile_;
- }
+ void SetRDPath(const QString& path);
+ const QString GetRDPath() const;
inline void SetHomeViewpoint(const osgEarth::Viewpoint& viewpoint) {
homeViewpoint_ = viewpoint;
@@ -140,6 +124,11 @@ Q_SIGNALS:
void TimestepChanged(class Timestep* timestep);
void LampStatusChanged(class LampStatus* lampStatus);
+protected:
+ const QString& GetSimMatlabName() const {
+ return simMatlabPath_;
+ }
+
private:
QString name_;
QString uuid_;
@@ -160,5 +149,6 @@ private:
class Timestep* timestep_{ nullptr };
class LampStatus* lampStatus_{ nullptr };
class Entity* trackedEntity_{ nullptr };
+ friend class WorkSpaceXMLWrite;
};
diff --git a/src/workspace/WorkSpaceXMLParse.cpp b/src/workspace/WorkSpaceXMLParse.cpp
index 71604656..e3321cfc 100644
--- a/src/workspace/WorkSpaceXMLParse.cpp
+++ b/src/workspace/WorkSpaceXMLParse.cpp
@@ -155,6 +155,33 @@ bool WorkSpaceXMLParse::ParseChart(const tinyxml2::XMLElement* element)
return true;
}
+bool WorkSpaceXMLParse::ParseSimMatlab(const tinyxml2::XMLElement* element)
+{
+ if (nullptr == element) {
+ LOG_WARN("element is nullptr");
+ return false;
+ }
+
+ const tinyxml2::XMLElement* xmlElement = element->FirstChildElement();
+ while (nullptr != xmlElement) {
+ const char* name = xmlElement->Name();
+ if (0 == strcmp(name, "SimMatlab"))
+ {
+ QVariantMap varChart;
+ const tinyxml2::XMLAttribute* attribute = xmlElement->FirstAttribute();
+ while (nullptr != attribute) {
+
+ WorkSpaceManager::Get().GetCurrent()->SetSimMatlab(QString::fromLocal8Bit(attribute->Value()));
+ attribute = attribute->Next();
+ }
+ }
+
+ xmlElement = xmlElement->NextSiblingElement();
+ }
+
+ return true;
+}
+
bool WorkSpaceXMLParse::ParseReport(const tinyxml2::XMLElement* element)
{
QString strFile = "";
@@ -208,6 +235,9 @@ bool WorkSpaceXMLParse::Load(const QString& dyt) {
else if (0 == strcmp(name, "ReportInfo")) {
ParseReport(xmlElement);
}
+ else if (0 == strcmp(name, "SimMatlab")) {
+ ParseSimMatlab(xmlElement);
+ }
xmlElement = xmlElement->NextSiblingElement();
}
diff --git a/src/workspace/WorkSpaceXMLParse.h b/src/workspace/WorkSpaceXMLParse.h
index 219f6fb5..60f4b468 100644
--- a/src/workspace/WorkSpaceXMLParse.h
+++ b/src/workspace/WorkSpaceXMLParse.h
@@ -34,6 +34,7 @@ private:
bool ParseEntities(const tinyxml2::XMLElement* element);
bool ParseChart(const tinyxml2::XMLElement* element);
bool ParseReport(const tinyxml2::XMLElement* element);
+ bool ParseSimMatlab(const tinyxml2::XMLElement* element);
private:
QString name_;
diff --git a/src/workspace/WorkSpaceXMLWrite.cpp b/src/workspace/WorkSpaceXMLWrite.cpp
index acaa67b8..8a55034e 100644
--- a/src/workspace/WorkSpaceXMLWrite.cpp
+++ b/src/workspace/WorkSpaceXMLWrite.cpp
@@ -114,7 +114,7 @@ bool WorkSpaceXMLWrite::SaveChart(tinyxml2::XMLElement* scene, tinyxml2::XMLDocu
tinyxml2::XMLElement* chart = doc->NewElement("SimMatlab");
charts->LinkEndChild(chart);
- chart->SetAttribute("SimMatlab", workSpace_->GetSimMatlab().toLocal8Bit().constData());
+ chart->SetAttribute("SimMatlab", workSpace_->GetSimMatlabName().toLocal8Bit().constData());
}
return true;