modify path

This commit is contained in:
jiegeaiai 2025-01-05 23:54:44 +08:00
parent 5a3746b09d
commit 99cfba6437
11 changed files with 114 additions and 59 deletions

View File

@ -8,8 +8,12 @@
#include "entities/Entity.h"
Component::Component(QObject* parent)
Component::Component(Component* parent)
: QObject(parent) {
if (nullptr != parent) {
owner_ = parent->owner_;
}
uuid_ = QUuid::createUuid().toString();
}

View File

@ -10,7 +10,7 @@ class Component : public QObject {
Q_OBJECT
public:
explicit Component(QObject* parent = nullptr);
explicit Component(Component* parent = nullptr);
virtual ~Component();
virtual void Serialize(const tinyxml2::XMLElement* element);

View File

@ -28,7 +28,7 @@ void EntitiesManager::OnDestory() {
);
for (auto* entity : entities) {
RemoveEntity(entity);
delete entity;
entity->deleteLater();
}
}
@ -70,9 +70,9 @@ bool EntitiesManager::Parse(const tinyxml2::XMLElement* element, WorkSpace* work
}
Entity* EntitiesManager::Create(const QString& name) {
if (name == "Entity") {
/* if (name == "Entity") {
return new Entity(this);
}
}*/
return nullptr;
}
@ -82,7 +82,7 @@ Entity* EntitiesManager::Create(const tinyxml2::XMLElement* element, Entity* par
return nullptr;
}
Entity* entity = new Entity(this);
Entity* entity = new Entity(workspce);
if (nullptr == entity) {
LOG_WARN("create entity failed");
return nullptr;

View File

@ -9,8 +9,9 @@
#include "workspace/WorkSpace.h"
Entity::Entity(QObject* parent)
: QObject(parent) {
Entity::Entity(WorkSpace* workspace)
: QObject(workspace)
, workspace_(workspace) {
Init();
}

View File

@ -11,7 +11,7 @@ class Entity : public QObject {
Q_OBJECT
public:
explicit Entity(QObject* parent = nullptr);
explicit Entity(class WorkSpace* workspace);
explicit Entity(const QString& name, QObject* parent = nullptr);
~Entity();

View File

@ -108,21 +108,16 @@ void PathComponent::Update(double dt) {
}
void PathComponent::SetPath(const QString& path) {
if (path == path_ || path.isEmpty()) {
LOG_INFO("path is the same, file:{}", path.toLocal8Bit().constData());
return;
}
if (nullptr != transformPath_) {
transformPath_->deleteLater();
}
const QString workPath = GetEntity()->GetWorkspace()->GetDir();
QFileInfo fileInfo(path);
const QString filePath = QString("%1/%2").arg(workPath).arg(fileInfo.fileName());
if (!FileUtils::CopyFileToPath(path, filePath, true)) {
LOG_ERROR("PathComponent::SetPath: Failed to copy file to workspace");
QMessageBox::critical(nullptr, "Error", "Failed to copy file to workspace");
return;
}
LOG_INFO("PathComponent::SetPath: {}", workPath.toStdString().c_str());
const QString filePath = QString("%1/%2").arg(workPath).arg(path);
transformPath_ = TransformPath::LoadFromFile(filePath, this);
path_ = path;
}

View File

@ -96,39 +96,51 @@
</message>
<message>
<location filename="../ui/Menu/ChartPlotMenu.ui" line="28"/>
<source>Run Simu</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>2D Curver</source>
<translation>2D</translation>
<translation type="vanished">2D</translation>
</message>
<message>
<location filename="../ui/Menu/ChartPlotMenu.ui" line="41"/>
<source>2D(lg) Curver</source>
<translation>2D(lg)</translation>
<translation type="vanished">2D(lg)</translation>
</message>
<message>
<location filename="../ui/Menu/ChartPlotMenu.ui" line="54"/>
<source>3D Curver</source>
<translation>3D</translation>
<translation type="vanished">3D</translation>
</message>
</context>
<context>
<name>CodeEdtUI</name>
<message>
<location filename="../ui/Layout/CodeEdtUI.cpp" line="34"/>
<location filename="../ui/Layout/CodeEdtUI.cpp" line="36"/>
<source>&amp;file</source>
<translation>(&amp;f)</translation>
</message>
<message>
<location filename="../ui/Layout/CodeEdtUI.cpp" line="35"/>
<source>&amp;Import the template</source>
<location filename="../ui/Layout/CodeEdtUI.cpp" line="37"/>
<source>&amp;Import the Main template</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/Layout/CodeEdtUI.cpp" line="36"/>
<location filename="../ui/Layout/CodeEdtUI.cpp" line="38"/>
<source>&amp;Import the LD template</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/Layout/CodeEdtUI.cpp" line="39"/>
<source>&amp;Import the SeekerSim template</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/Layout/CodeEdtUI.cpp" line="40"/>
<source>&amp;save</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/Layout/CodeEdtUI.cpp" line="59"/>
<location filename="../ui/Layout/CodeEdtUI.cpp" line="68"/>
<source>matlab editor</source>
<translation type="unfinished"></translation>
</message>
@ -475,6 +487,11 @@
<source>file manager</source>
<translation></translation>
</message>
<message>
<location filename="../ui/MainFrame.cpp" line="112"/>
<source>simu manager</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>view manager</source>
<translation type="vanished"></translation>
@ -849,12 +866,12 @@
<context>
<name>QFilePathEdit</name>
<message>
<location filename="../ui/PropertyBrowser/qtpropertybrowserutils.cpp" line="733"/>
<location filename="../ui/PropertyBrowser/qtpropertybrowserutils.cpp" line="738"/>
<source>Open File</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/PropertyBrowser/qtpropertybrowserutils.cpp" line="733"/>
<location filename="../ui/PropertyBrowser/qtpropertybrowserutils.cpp" line="738"/>
<source>All Files (*)</source>
<translation type="unfinished"></translation>
</message>
@ -900,15 +917,15 @@
<context>
<name>QtBoolEdit</name>
<message>
<location filename="../ui/PropertyBrowser/qtpropertybrowserutils.cpp" line="266"/>
<location filename="../ui/PropertyBrowser/qtpropertybrowserutils.cpp" line="276"/>
<location filename="../ui/PropertyBrowser/qtpropertybrowserutils.cpp" line="301"/>
<location filename="../ui/PropertyBrowser/qtpropertybrowserutils.cpp" line="271"/>
<location filename="../ui/PropertyBrowser/qtpropertybrowserutils.cpp" line="281"/>
<location filename="../ui/PropertyBrowser/qtpropertybrowserutils.cpp" line="306"/>
<source>True</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/PropertyBrowser/qtpropertybrowserutils.cpp" line="276"/>
<location filename="../ui/PropertyBrowser/qtpropertybrowserutils.cpp" line="301"/>
<location filename="../ui/PropertyBrowser/qtpropertybrowserutils.cpp" line="281"/>
<location filename="../ui/PropertyBrowser/qtpropertybrowserutils.cpp" line="306"/>
<source>False</source>
<translation type="unfinished"></translation>
</message>
@ -1012,97 +1029,97 @@
<context>
<name>QtCursorDatabase</name>
<message>
<location filename="../ui/PropertyBrowser/qtpropertybrowserutils.cpp" line="55"/>
<location filename="../ui/PropertyBrowser/qtpropertybrowserutils.cpp" line="60"/>
<source>Arrow</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/PropertyBrowser/qtpropertybrowserutils.cpp" line="57"/>
<location filename="../ui/PropertyBrowser/qtpropertybrowserutils.cpp" line="62"/>
<source>Up Arrow</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/PropertyBrowser/qtpropertybrowserutils.cpp" line="59"/>
<location filename="../ui/PropertyBrowser/qtpropertybrowserutils.cpp" line="64"/>
<source>Cross</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/PropertyBrowser/qtpropertybrowserutils.cpp" line="61"/>
<location filename="../ui/PropertyBrowser/qtpropertybrowserutils.cpp" line="66"/>
<source>Wait</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/PropertyBrowser/qtpropertybrowserutils.cpp" line="63"/>
<location filename="../ui/PropertyBrowser/qtpropertybrowserutils.cpp" line="68"/>
<source>IBeam</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/PropertyBrowser/qtpropertybrowserutils.cpp" line="65"/>
<location filename="../ui/PropertyBrowser/qtpropertybrowserutils.cpp" line="70"/>
<source>Size Vertical</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/PropertyBrowser/qtpropertybrowserutils.cpp" line="67"/>
<location filename="../ui/PropertyBrowser/qtpropertybrowserutils.cpp" line="72"/>
<source>Size Horizontal</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/PropertyBrowser/qtpropertybrowserutils.cpp" line="69"/>
<location filename="../ui/PropertyBrowser/qtpropertybrowserutils.cpp" line="74"/>
<source>Size Backslash</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/PropertyBrowser/qtpropertybrowserutils.cpp" line="71"/>
<location filename="../ui/PropertyBrowser/qtpropertybrowserutils.cpp" line="76"/>
<source>Size Slash</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/PropertyBrowser/qtpropertybrowserutils.cpp" line="73"/>
<location filename="../ui/PropertyBrowser/qtpropertybrowserutils.cpp" line="78"/>
<source>Size All</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/PropertyBrowser/qtpropertybrowserutils.cpp" line="75"/>
<location filename="../ui/PropertyBrowser/qtpropertybrowserutils.cpp" line="80"/>
<source>Blank</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/PropertyBrowser/qtpropertybrowserutils.cpp" line="77"/>
<location filename="../ui/PropertyBrowser/qtpropertybrowserutils.cpp" line="82"/>
<source>Split Vertical</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/PropertyBrowser/qtpropertybrowserutils.cpp" line="79"/>
<location filename="../ui/PropertyBrowser/qtpropertybrowserutils.cpp" line="84"/>
<source>Split Horizontal</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/PropertyBrowser/qtpropertybrowserutils.cpp" line="81"/>
<location filename="../ui/PropertyBrowser/qtpropertybrowserutils.cpp" line="86"/>
<source>Pointing Hand</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/PropertyBrowser/qtpropertybrowserutils.cpp" line="83"/>
<location filename="../ui/PropertyBrowser/qtpropertybrowserutils.cpp" line="88"/>
<source>Forbidden</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/PropertyBrowser/qtpropertybrowserutils.cpp" line="85"/>
<location filename="../ui/PropertyBrowser/qtpropertybrowserutils.cpp" line="90"/>
<source>Open Hand</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/PropertyBrowser/qtpropertybrowserutils.cpp" line="87"/>
<location filename="../ui/PropertyBrowser/qtpropertybrowserutils.cpp" line="92"/>
<source>Closed Hand</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/PropertyBrowser/qtpropertybrowserutils.cpp" line="89"/>
<location filename="../ui/PropertyBrowser/qtpropertybrowserutils.cpp" line="94"/>
<source>What&apos;s This</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/PropertyBrowser/qtpropertybrowserutils.cpp" line="91"/>
<location filename="../ui/PropertyBrowser/qtpropertybrowserutils.cpp" line="96"/>
<source>Busy</source>
<translation type="unfinished"></translation>
</message>
@ -1334,12 +1351,12 @@
<context>
<name>QtPropertyBrowserUtils</name>
<message>
<location filename="../ui/PropertyBrowser/qtpropertybrowserutils.cpp" line="184"/>
<location filename="../ui/PropertyBrowser/qtpropertybrowserutils.cpp" line="189"/>
<source>[%1, %2, %3] (%4)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/PropertyBrowser/qtpropertybrowserutils.cpp" line="211"/>
<location filename="../ui/PropertyBrowser/qtpropertybrowserutils.cpp" line="216"/>
<source>[%1, %2]</source>
<translation type="unfinished"></translation>
</message>
@ -1573,6 +1590,14 @@
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SimuRunMenuClass</name>
<message>
<location filename="../ui/Menu/SimuRunMenu.ui" line="16"/>
<source>SimuRunMenu</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SurfaceDialog</name>
<message>

View File

@ -47,6 +47,11 @@
#include <QtWidgets/QMenu>
#include <QtCore/QLocale>
#include <QtWidgets/QFileDialog>
#include <QMessageBox>
#include "workspace/WorkSpace.h"
#include "workspace/WorkSpaceManager.h"
#include "utils/FileUtils.h"
QT_BEGIN_NAMESPACE
@ -733,8 +738,26 @@ void QFilePathEdit::onFileSelect() {
QString filePath = QFileDialog::getOpenFileName(this, tr("Open File"), m_initialvalue, tr("All Files (*)"));
if (!filePath.isEmpty()) {
m_fileName = QFileInfo(filePath).fileName();
m_initialvalue = filePath;
m_stringEdit->setText(filePath);
WorkSpace* workSpace = WorkSpaceManager::Get().GetCurrent();
dyt_check(nullptr != workSpace);
const QString workPath = workSpace->GetDir();
const QString savePath = QString("%1/%2").arg(workPath).arg(m_fileName);
if (FileUtils::IsExist(savePath)) {
int ret = QMessageBox::question(this, "question", "File already exists, override it?", QMessageBox::Yes | QMessageBox::No);
if (QMessageBox::No == ret) {
LOG_INFO("user cancel");
return;
}
}
if (!FileUtils::CopyFileToPath(filePath, filePath, true)) {
LOG_ERROR("Failed to copy file to workspace");
QMessageBox::critical(nullptr, "Error", "Failed to copy file to workspace");
return;
}
LOG_INFO("PathComponent::SetPath: {}", workPath.toStdString().c_str());
m_initialvalue = m_fileName;
m_stringEdit->setText(m_fileName);
}
}

View File

@ -6,6 +6,10 @@
#include "common/SpdLogger.h"
bool FileUtils::IsExist(const QString& filePath) {
return QFile::exists(filePath);
}
bool FileUtils::CopyFileToPath(const QString& sourceDir, QString toDir, bool coverFileIfExist) {
toDir.replace("\\", "/");
LOG_INFO("copy file from {} to {}", sourceDir.toStdString(), toDir.toStdString());

View File

@ -5,5 +5,6 @@
class FileUtils {
public:
static bool IsExist(const QString& filePath);
static bool CopyFileToPath(const QString& sourceDir, QString toDir, bool coverFileIfExist);
};

View File

@ -89,7 +89,9 @@ bool WorkSpaceManager::Remove(const QString& name) {
}
WorkSpace* WorkSpaceManager::LoadDyt(const QString& dyt) {
dyt_check(nullptr != scene_);
WorkSpace* workspace = new WorkSpace(this);
workspace->SetActiveScene(scene_);
if (!workspace->Load(dyt)) {
LOG_WARN("load workspace failed");
workspace->deleteLater();