add entity visible

This commit is contained in:
brige 2025-06-28 00:23:58 +08:00
parent a88557220b
commit 13345128f5
12 changed files with 191 additions and 54 deletions

View File

@ -182,3 +182,25 @@ void Entity::SetParent(Entity* parent) {
SetWorkspace(workSpace); SetWorkspace(workSpace);
parent_->childer_.push_back(this); parent_->childer_.push_back(this);
} }
void Entity::SetVisible(bool v) {
LOG_INFO("set visible: {}", v);
if (nullptr == rootComponet_) {
LOG_WARN("rootComponet_ is nullptr");
return;
}
rootComponet_->SetVisible(v);
for (auto item : childer_) {
item->SetVisible(v);
}
}
bool Entity::IsVisible() const {
if (nullptr == rootComponet_) {
LOG_WARN("rootComponet_ is nullptr");
return false;
}
return rootComponet_->IsVisible();
}

View File

@ -68,6 +68,9 @@ public:
return childer_; return childer_;
} }
void SetVisible(bool v);
bool IsVisible() const;
Q_SIGNALS: Q_SIGNALS:
void NameChanged(const QString& name); void NameChanged(const QString& name);

View File

@ -261,3 +261,19 @@ void SceneComponent::AddToRender() {
AttachParent(parent); AttachParent(parent);
} }
} }
void SceneComponent::SetVisible(bool v) {
visible_ = v;
if (nullptr == mt_) {
return;
}
mt_->setNodeMask(v ? ~0 : 0);
// for (auto child : children_) {
// child->SetVisible(v);
// }
}
bool SceneComponent::IsVisible() const {
return visible_;
}

View File

@ -60,6 +60,9 @@ public:
void AttachParent(SceneComponent* parent); void AttachParent(SceneComponent* parent);
void UpdateLocationAndRotation(); void UpdateLocationAndRotation();
void SetVisible(bool v);
bool IsVisible() const;
protected: protected:
void RemoveRender(); void RemoveRender();
void RemoveParent(); void RemoveParent();
@ -75,4 +78,5 @@ protected:
protected: protected:
Transform transform_; Transform transform_;
bool visible_{ true };
}; };

View File

@ -809,12 +809,12 @@
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../ui/PropertyBrowser.cpp" line="212"/> <location filename="../ui/PropertyBrowser.cpp" line="216"/>
<source>ModelBase</source> <source>ModelBase</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../ui/PropertyBrowser.cpp" line="217"/> <location filename="../ui/PropertyBrowser.cpp" line="221"/>
<source>color base</source> <source>color base</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -944,48 +944,48 @@
<context> <context>
<name>QtConeWaveComponentManager</name> <name>QtConeWaveComponentManager</name>
<message> <message>
<location filename="../ui/PropertyBrowser/qtpropertymanager.cpp" line="8878"/> <location filename="../ui/PropertyBrowser/qtpropertymanager.cpp" line="8926"/>
<location filename="../ui/PropertyBrowser/qtpropertymanager.cpp" line="8887"/> <location filename="../ui/PropertyBrowser/qtpropertymanager.cpp" line="8935"/>
<source>ConeWaveComponent</source> <source>ConeWaveComponent</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../ui/PropertyBrowser/qtpropertymanager.cpp" line="8975"/> <location filename="../ui/PropertyBrowser/qtpropertymanager.cpp" line="9023"/>
<source>Height</source> <source>Height</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../ui/PropertyBrowser/qtpropertymanager.cpp" line="8982"/> <location filename="../ui/PropertyBrowser/qtpropertymanager.cpp" line="9030"/>
<source>Radius</source> <source>Radius</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../ui/PropertyBrowser/qtpropertymanager.cpp" line="8989"/> <location filename="../ui/PropertyBrowser/qtpropertymanager.cpp" line="9037"/>
<source>waveCount</source> <source>waveCount</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../ui/PropertyBrowser/qtpropertymanager.cpp" line="8999"/> <location filename="../ui/PropertyBrowser/qtpropertymanager.cpp" line="9047"/>
<source>waveSpeed</source> <source>waveSpeed</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../ui/PropertyBrowser/qtpropertymanager.cpp" line="9006"/> <location filename="../ui/PropertyBrowser/qtpropertymanager.cpp" line="9054"/>
<source>baseColor</source> <source>baseColor</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../ui/PropertyBrowser/qtpropertymanager.cpp" line="9013"/> <location filename="../ui/PropertyBrowser/qtpropertymanager.cpp" line="9061"/>
<source>waveColor</source> <source>waveColor</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../ui/PropertyBrowser/qtpropertymanager.cpp" line="9020"/> <location filename="../ui/PropertyBrowser/qtpropertymanager.cpp" line="9068"/>
<source>ringBrightAlpha</source> <source>ringBrightAlpha</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../ui/PropertyBrowser/qtpropertymanager.cpp" line="9027"/> <location filename="../ui/PropertyBrowser/qtpropertymanager.cpp" line="9075"/>
<source>ringDarkAlpha</source> <source>ringDarkAlpha</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -1091,28 +1091,28 @@
<context> <context>
<name>QtDashedLineComponentManager</name> <name>QtDashedLineComponentManager</name>
<message> <message>
<location filename="../ui/PropertyBrowser/qtpropertymanager.cpp" line="9219"/> <location filename="../ui/PropertyBrowser/qtpropertymanager.cpp" line="9267"/>
<location filename="../ui/PropertyBrowser/qtpropertymanager.cpp" line="9228"/> <location filename="../ui/PropertyBrowser/qtpropertymanager.cpp" line="9276"/>
<source>DashedLineComponent</source> <source>DashedLineComponent</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../ui/PropertyBrowser/qtpropertymanager.cpp" line="9297"/> <location filename="../ui/PropertyBrowser/qtpropertymanager.cpp" line="9345"/>
<source>Start</source> <source>Start</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../ui/PropertyBrowser/qtpropertymanager.cpp" line="9304"/> <location filename="../ui/PropertyBrowser/qtpropertymanager.cpp" line="9352"/>
<source>End</source> <source>End</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../ui/PropertyBrowser/qtpropertymanager.cpp" line="9311"/> <location filename="../ui/PropertyBrowser/qtpropertymanager.cpp" line="9359"/>
<source>Radius</source> <source>Radius</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../ui/PropertyBrowser/qtpropertymanager.cpp" line="9318"/> <location filename="../ui/PropertyBrowser/qtpropertymanager.cpp" line="9366"/>
<source>Color</source> <source>Color</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -1128,12 +1128,17 @@
<context> <context>
<name>QtEntityPropertyManager</name> <name>QtEntityPropertyManager</name>
<message> <message>
<location filename="../ui/PropertyBrowser/qtpropertymanager.cpp" line="8339"/> <location filename="../ui/PropertyBrowser/qtpropertymanager.cpp" line="8373"/>
<source>Name</source> <source>Name</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../ui/PropertyBrowser/qtpropertymanager.cpp" line="8346"/> <location filename="../ui/PropertyBrowser/qtpropertymanager.cpp" line="8380"/>
<source>Visible</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/PropertyBrowser/qtpropertymanager.cpp" line="8387"/>
<source>Transform</source> <source>Transform</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -1215,13 +1220,13 @@
<context> <context>
<name>QtMeshComponetManager</name> <name>QtMeshComponetManager</name>
<message> <message>
<location filename="../ui/PropertyBrowser/qtpropertymanager.cpp" line="8453"/> <location filename="../ui/PropertyBrowser/qtpropertymanager.cpp" line="8501"/>
<location filename="../ui/PropertyBrowser/qtpropertymanager.cpp" line="8462"/> <location filename="../ui/PropertyBrowser/qtpropertymanager.cpp" line="8510"/>
<source>MeshComponent</source> <source>MeshComponent</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../ui/PropertyBrowser/qtpropertymanager.cpp" line="8535"/> <location filename="../ui/PropertyBrowser/qtpropertymanager.cpp" line="8583"/>
<source>Mesh</source> <source>Mesh</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -1229,25 +1234,30 @@
<context> <context>
<name>QtModelBasePropertyManager</name> <name>QtModelBasePropertyManager</name>
<message> <message>
<location filename="../ui/PropertyBrowser/qtpropertymanager.cpp" line="7803"/> <location filename="../ui/PropertyBrowser/qtpropertymanager.cpp" line="7805"/>
<source>Name</source> <source>Name</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../ui/PropertyBrowser/qtpropertymanager.cpp" line="7810"/> <location filename="../ui/PropertyBrowser/qtpropertymanager.cpp" line="7812"/>
<source>Description</source> <source>Description</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../ui/PropertyBrowser/qtpropertymanager.cpp" line="7817"/> <location filename="../ui/PropertyBrowser/qtpropertymanager.cpp" line="7819"/>
<source>Inflow</source> <source>Inflow</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../ui/PropertyBrowser/qtpropertymanager.cpp" line="7824"/> <location filename="../ui/PropertyBrowser/qtpropertymanager.cpp" line="7826"/>
<source>InnerBottomElevation</source> <source>InnerBottomElevation</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<location filename="../ui/PropertyBrowser/qtpropertymanager.cpp" line="7833"/>
<source>Visible</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>QtOsgViewWidget</name> <name>QtOsgViewWidget</name>
@ -1265,13 +1275,13 @@
<context> <context>
<name>QtPathComponentManager</name> <name>QtPathComponentManager</name>
<message> <message>
<location filename="../ui/PropertyBrowser/qtpropertymanager.cpp" line="8612"/> <location filename="../ui/PropertyBrowser/qtpropertymanager.cpp" line="8660"/>
<location filename="../ui/PropertyBrowser/qtpropertymanager.cpp" line="8621"/> <location filename="../ui/PropertyBrowser/qtpropertymanager.cpp" line="8669"/>
<source>PathComponent</source> <source>PathComponent</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../ui/PropertyBrowser/qtpropertymanager.cpp" line="8694"/> <location filename="../ui/PropertyBrowser/qtpropertymanager.cpp" line="8742"/>
<source>Path</source> <source>Path</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -1521,42 +1531,42 @@
<context> <context>
<name>QtWorkspacePropertyManager</name> <name>QtWorkspacePropertyManager</name>
<message> <message>
<location filename="../ui/PropertyBrowser/qtpropertymanager.cpp" line="8070"/> <location filename="../ui/PropertyBrowser/qtpropertymanager.cpp" line="8086"/>
<source>Name</source> <source>Name</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../ui/PropertyBrowser/qtpropertymanager.cpp" line="8077"/> <location filename="../ui/PropertyBrowser/qtpropertymanager.cpp" line="8093"/>
<source>Description</source> <source>Description</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../ui/PropertyBrowser/qtpropertymanager.cpp" line="8084"/> <location filename="../ui/PropertyBrowser/qtpropertymanager.cpp" line="8100"/>
<source>Timestep</source> <source>Timestep</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../ui/PropertyBrowser/qtpropertymanager.cpp" line="8091"/> <location filename="../ui/PropertyBrowser/qtpropertymanager.cpp" line="8107"/>
<source>SimMatlab</source> <source>SimMatlab</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../ui/PropertyBrowser/qtpropertymanager.cpp" line="8098"/> <location filename="../ui/PropertyBrowser/qtpropertymanager.cpp" line="8114"/>
<source>MatlabParam</source> <source>MatlabParam</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../ui/PropertyBrowser/qtpropertymanager.cpp" line="8105"/> <location filename="../ui/PropertyBrowser/qtpropertymanager.cpp" line="8121"/>
<source>Wave</source> <source>Wave</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../ui/PropertyBrowser/qtpropertymanager.cpp" line="8112"/> <location filename="../ui/PropertyBrowser/qtpropertymanager.cpp" line="8128"/>
<source>RD</source> <source>RD</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../ui/PropertyBrowser/qtpropertymanager.cpp" line="8119"/> <location filename="../ui/PropertyBrowser/qtpropertymanager.cpp" line="8135"/>
<source>Report</source> <source>Report</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>

View File

@ -120,6 +120,8 @@ void PropertyBrowser::InitUI() {
} }
void PropertyBrowser::InitPropertyManager() { void PropertyBrowser::InitPropertyManager() {
intManager_ = new QtIntPropertyManager(this);
boolManager_ = new QtBoolPropertyManager(this);
doubleManager_ = new QtDoublePropertyManager(this); doubleManager_ = new QtDoublePropertyManager(this);
stringManager_ = new QtStringPropertyManager(this); stringManager_ = new QtStringPropertyManager(this);
colorManager_ = new QtColorPropertyManager(this); colorManager_ = new QtColorPropertyManager(this);
@ -138,6 +140,8 @@ void PropertyBrowser::InitPropertyManager() {
QtFilePathFactory* filePathFactory = new QtFilePathFactory(this); QtFilePathFactory* filePathFactory = new QtFilePathFactory(this);
//QtTransfromEditorFactory* transformFactory = new QtTransfromEditorFactory(this); //QtTransfromEditorFactory* transformFactory = new QtTransfromEditorFactory(this);
browser_->setFactoryForManager(intManager_, spinBoxFactory);
browser_->setFactoryForManager(boolManager_, checkBoxFactory);
browser_->setFactoryForManager(doubleManager_, doubleSpinBoxFactory); browser_->setFactoryForManager(doubleManager_, doubleSpinBoxFactory);
browser_->setFactoryForManager(stringManager_, lineEditFactory); browser_->setFactoryForManager(stringManager_, lineEditFactory);
browser_->setFactoryForManager(colorManager_->subIntPropertyManager(), spinBoxFactory); browser_->setFactoryForManager(colorManager_->subIntPropertyManager(), spinBoxFactory);
@ -210,7 +214,7 @@ void PropertyBrowser::Test() {
QtProperty* property; QtProperty* property;
property = modelBaseManager_->addProperty(tr("ModelBase")); property = modelBaseManager_->addProperty(tr("ModelBase"));
QModelAttbute modelAttr(QString("test"), QString("test222"), true, 1.0 ); QModelAttbute modelAttr(QString("test"), QString("test222"), true, 1.0 , true);
modelBaseManager_->setValue(property, modelAttr); modelBaseManager_->setValue(property, modelAttr);
addProperty(property, QLatin1String("brush")); addProperty(property, QLatin1String("brush"));

View File

@ -32,6 +32,8 @@ private:
private: private:
class QtTreePropertyBrowser* browser_{ nullptr }; class QtTreePropertyBrowser* browser_{ nullptr };
class QtIntPropertyManager* intManager_{ nullptr };
class QtBoolPropertyManager* boolManager_{ nullptr };
class QtDoublePropertyManager* doubleManager_{ nullptr }; class QtDoublePropertyManager* doubleManager_{ nullptr };
class QtStringPropertyManager* stringManager_{ nullptr }; class QtStringPropertyManager* stringManager_{ nullptr };
class QtColorPropertyManager* colorManager_{ nullptr }; class QtColorPropertyManager* colorManager_{ nullptr };

View File

@ -1,16 +1,18 @@
#include "qtmodelattribute.h" #include "qtmodelattribute.h"
QModelAttbute::QModelAttbute(QString name, QString discription, QModelAttbute::QModelAttbute(QString name, QString discription,
bool inflow, float innerBottomElevation) bool inflow, float innerBottomElevation, bool visible)
: name_(name) : name_(name)
, description_(discription) , description_(discription)
, inflow_(inflow) , inflow_(inflow)
, innerBottomElevation_(innerBottomElevation) { , innerBottomElevation_(innerBottomElevation)
, visible_(visible) {
} }
bool QModelAttbute::operator==(const QModelAttbute& other) { bool QModelAttbute::operator==(const QModelAttbute& other) {
return name_ == other.name_ && description_ == other.description_ && return name_ == other.name_ && description_ == other.description_ &&
inflow_ == other.inflow_ && innerBottomElevation_ == other.innerBottomElevation_; inflow_ == other.inflow_ && innerBottomElevation_ == other.innerBottomElevation_ &&
visible_ == other.visible_;
} }
void QModelAttbute::SetName(const QString& name) { void QModelAttbute::SetName(const QString& name) {
@ -29,3 +31,6 @@ void QModelAttbute::SetInnerBottomElevation(float v) {
innerBottomElevation_ = v; innerBottomElevation_ = v;
} }
void QModelAttbute::SetVisible(bool v) {
visible_ = v;
}

View File

@ -45,7 +45,7 @@
class QModelAttbute { class QModelAttbute {
public: public:
QModelAttbute() = default; QModelAttbute() = default;
QModelAttbute(QString name, QString discription, bool inflow, float innerBottomElevation); QModelAttbute(QString name, QString discription, bool inflow, float innerBottomElevation, bool visible);
~QModelAttbute() = default; ~QModelAttbute() = default;
bool operator== (const QModelAttbute& other); bool operator== (const QModelAttbute& other);
@ -70,11 +70,17 @@ public:
return innerBottomElevation_; return innerBottomElevation_;
} }
void SetVisible(bool v);
bool IsVisible() const {
return visible_;
}
private: private:
QString name_; QString name_;
QString description_; QString description_;
bool inflow_{ false }; bool inflow_{ false };
float innerBottomElevation_{ 0.0f }; float innerBottomElevation_{ 0.0f };
bool visible_{ true };
}; };
//Q_DECLARE_SHARED(QModelAttbute) //Q_DECLARE_SHARED(QModelAttbute)

View File

@ -7645,7 +7645,7 @@ class QtModelBasePropertyManagerPrivate {
public: public:
void slotStringChanged(QtProperty* property, QString value); void slotStringChanged(QtProperty* property, QString value);
void slotStringChanged(QtProperty* property, bool value); void slotBoolChanged(QtProperty* property, bool value);
void slotStringChanged(QtProperty* property, double value); void slotStringChanged(QtProperty* property, double value);
void slotPropertyDestroyed(QtProperty* property); void slotPropertyDestroyed(QtProperty* property);
@ -7662,12 +7662,13 @@ public:
QMap<const QtProperty*, QtProperty*> m_properyToDescription; QMap<const QtProperty*, QtProperty*> m_properyToDescription;
QMap<const QtProperty*, QtProperty*> m_properyToInflow; QMap<const QtProperty*, QtProperty*> m_properyToInflow;
QMap<const QtProperty*, QtProperty*> m_properyToInnerBottomElevation; QMap<const QtProperty*, QtProperty*> m_properyToInnerBottomElevation;
QMap<const QtProperty*, QtProperty*> m_properyToVisible;
QMap<const QtProperty*, QtProperty*> m_nameToPropery; QMap<const QtProperty*, QtProperty*> m_nameToPropery;
QMap<const QtProperty*, QtProperty*> m_descriptionToPropery; QMap<const QtProperty*, QtProperty*> m_descriptionToPropery;
QMap<const QtProperty*, QtProperty*> m_inflowToPropery; QMap<const QtProperty*, QtProperty*> m_inflowToPropery;
QMap<const QtProperty*, QtProperty*> m_InnerBottomElevationToPropery; QMap<const QtProperty*, QtProperty*> m_InnerBottomElevationToPropery;
QMap<const QtProperty*, QtProperty*> m_visibleToPropery;
}; };
void QtModelBasePropertyManagerPrivate::slotStringChanged(QtProperty* property, QString value) { void QtModelBasePropertyManagerPrivate::slotStringChanged(QtProperty* property, QString value) {
@ -7678,7 +7679,7 @@ void QtModelBasePropertyManagerPrivate::slotStringChanged(QtProperty* property,
} }
} }
void QtModelBasePropertyManagerPrivate::slotStringChanged(QtProperty* property, bool value) { void QtModelBasePropertyManagerPrivate::slotBoolChanged(QtProperty* property, bool value) {
if (QtProperty* prop = m_properyToInflow.value(property, 0)) { if (QtProperty* prop = m_properyToInflow.value(property, 0)) {
QModelAttbute c = m_values[prop]; QModelAttbute c = m_values[prop];
c.EnableInflow(value); c.EnableInflow(value);
@ -7705,7 +7706,7 @@ QtModelBasePropertyManager::QtModelBasePropertyManager(QObject* parent)
d_ptr->m_boolPropertyManager = new QtBoolPropertyManager(this); d_ptr->m_boolPropertyManager = new QtBoolPropertyManager(this);
connect(d_ptr->m_boolPropertyManager, SIGNAL(valueChanged(QtProperty*, bool)), connect(d_ptr->m_boolPropertyManager, SIGNAL(valueChanged(QtProperty*, bool)),
this, SLOT(slotStringChanged(QtProperty*, bool))); this, SLOT(slotBoolChanged(QtProperty*, bool)));
d_ptr->m_deoubleProperyManager = new QtDoublePropertyManager(this); d_ptr->m_deoubleProperyManager = new QtDoublePropertyManager(this);
connect(d_ptr->m_deoubleProperyManager, SIGNAL(valueChanged(QtProperty*, double)), connect(d_ptr->m_deoubleProperyManager, SIGNAL(valueChanged(QtProperty*, double)),
@ -7787,6 +7788,7 @@ void QtModelBasePropertyManager::setValue(QtProperty* property, const QModelAttb
d_ptr->m_stringProperyManager->setValue(d_ptr->m_properyToDescription[property], value.GetDescription()); d_ptr->m_stringProperyManager->setValue(d_ptr->m_properyToDescription[property], value.GetDescription());
d_ptr->m_boolPropertyManager->setValue(d_ptr->m_properyToInflow[property], value.IsEnableInfow()); d_ptr->m_boolPropertyManager->setValue(d_ptr->m_properyToInflow[property], value.IsEnableInfow());
d_ptr->m_deoubleProperyManager->setValue(d_ptr->m_properyToInnerBottomElevation[property], value.GetInnerBottomElevation()); d_ptr->m_deoubleProperyManager->setValue(d_ptr->m_properyToInnerBottomElevation[property], value.GetInnerBottomElevation());
d_ptr->m_boolPropertyManager->setValue(d_ptr->m_properyToVisible[property], value.IsVisible());
emit propertyChanged(property); emit propertyChanged(property);
emit valueChanged(property, value); emit valueChanged(property, value);
@ -7822,10 +7824,17 @@ void QtModelBasePropertyManager::initializeProperty(QtProperty* property) {
prop = d_ptr->m_deoubleProperyManager->addProperty(); prop = d_ptr->m_deoubleProperyManager->addProperty();
prop->setPropertyName(tr("InnerBottomElevation")); prop->setPropertyName(tr("InnerBottomElevation"));
d_ptr->m_boolPropertyManager->setValueOnly(prop, val.GetInnerBottomElevation()); d_ptr->m_deoubleProperyManager->setValueOnly(prop, val.GetInnerBottomElevation());
d_ptr->m_properyToInnerBottomElevation[property] = prop; d_ptr->m_properyToInnerBottomElevation[property] = prop;
d_ptr->m_InnerBottomElevationToPropery[prop] = property; d_ptr->m_InnerBottomElevationToPropery[prop] = property;
property->addSubProperty(prop); property->addSubProperty(prop);
prop = d_ptr->m_boolPropertyManager->addProperty();
prop->setPropertyName(tr("Visible"));
d_ptr->m_boolPropertyManager->setValueOnly(prop, val.IsVisible());
d_ptr->m_properyToVisible[property] = prop;
d_ptr->m_visibleToPropery[prop] = property;
property->addSubProperty(prop);
} }
/*! /*!
@ -7859,6 +7868,13 @@ void QtModelBasePropertyManager::uninitializeProperty(QtProperty* property) {
delete prop; delete prop;
} }
d_ptr->m_properyToInnerBottomElevation.remove(property); d_ptr->m_properyToInnerBottomElevation.remove(property);
prop = d_ptr->m_visibleToPropery[property];
if (prop) {
d_ptr->m_visibleToPropery.remove(prop);
delete prop;
}
d_ptr->m_properyToVisible.remove(property);
} }
#pragma endregion #pragma endregion
@ -8196,7 +8212,7 @@ public:
void slotStringChanged(QtProperty* property, QString value); void slotStringChanged(QtProperty* property, QString value);
void slotTransfromChanged(QtProperty* property, QTransformAttribute value); void slotTransfromChanged(QtProperty* property, QTransformAttribute value);
void slotBoolChanged(QtProperty* property, bool value);
void slotPropertyDestroyed(QtProperty* property); void slotPropertyDestroyed(QtProperty* property);
typedef QMap<const QtProperty*, QEntityAttribute> PropertyValueMap; typedef QMap<const QtProperty*, QEntityAttribute> PropertyValueMap;
@ -8204,14 +8220,16 @@ public:
QtStringPropertyManager* m_stringProperyManager; QtStringPropertyManager* m_stringProperyManager;
QtBoolPropertyManager* m_boolProperyManager;
QtTransfromPropertyManager* m_transfromPropertyManager; QtTransfromPropertyManager* m_transfromPropertyManager;
QMap<const QtProperty*, QtProperty*> m_properyToName; QMap<const QtProperty*, QtProperty*> m_properyToName;
QMap<const QtProperty*, QtProperty*> m_properyTotrans; QMap<const QtProperty*, QtProperty*> m_properyTotrans;
QMap<const QtProperty*, QtProperty*> m_properyToVisible;
QMap<const QtProperty*, QtProperty*> m_nameToPropery; QMap<const QtProperty*, QtProperty*> m_nameToPropery;
QMap<const QtProperty*, QtProperty*> m_transToPropery; QMap<const QtProperty*, QtProperty*> m_transToPropery;
QMap<const QtProperty*, QtProperty*> m_visibleToPropery;
}; };
void QtEntityPropertyManagerPrivate::slotStringChanged(QtProperty* property, QString value) { void QtEntityPropertyManagerPrivate::slotStringChanged(QtProperty* property, QString value) {
@ -8222,6 +8240,15 @@ void QtEntityPropertyManagerPrivate::slotStringChanged(QtProperty* property, QSt
} }
} }
void QtEntityPropertyManagerPrivate::slotBoolChanged(QtProperty* property, bool value) {
if (QtProperty* prop = m_properyToVisible.value(property, 0)) {
QEntityAttribute c = m_values[prop];
c.SetVisible(value);
q_ptr->setValue(prop, c);
}
}
void QtEntityPropertyManagerPrivate::slotTransfromChanged(QtProperty* property, QTransformAttribute value) { void QtEntityPropertyManagerPrivate::slotTransfromChanged(QtProperty* property, QTransformAttribute value) {
if (QtProperty* prop = m_properyTotrans.value(property, 0)) { if (QtProperty* prop = m_properyTotrans.value(property, 0)) {
QEntityAttribute c = m_values[prop]; QEntityAttribute c = m_values[prop];
@ -8237,6 +8264,9 @@ void QtEntityPropertyManagerPrivate::slotPropertyDestroyed(QtProperty* property)
} else if (QtProperty* subProp = m_transToPropery.value(property, nullptr)) { } else if (QtProperty* subProp = m_transToPropery.value(property, nullptr)) {
m_transToPropery[subProp] = 0; m_transToPropery[subProp] = 0;
m_transToPropery.remove(property); m_transToPropery.remove(property);
} else if (QtProperty* subProp = m_visibleToPropery.value(property, nullptr)) {
m_visibleToPropery[subProp] = 0;
m_visibleToPropery.remove(property);
} }
} }
@ -8248,6 +8278,10 @@ QtEntityPropertyManager::QtEntityPropertyManager(QObject* parent)
connect(d_ptr->m_stringProperyManager, SIGNAL(valueChanged(QtProperty*, QString)), connect(d_ptr->m_stringProperyManager, SIGNAL(valueChanged(QtProperty*, QString)),
this, SLOT(slotStringChanged(QtProperty*, QString))); this, SLOT(slotStringChanged(QtProperty*, QString)));
d_ptr->m_boolProperyManager = new QtBoolPropertyManager(this);
connect(d_ptr->m_boolProperyManager, SIGNAL(valueChanged(QtProperty*, bool)),
this, SLOT(slotBoolChanged(QtProperty*, bool)));
d_ptr->m_transfromPropertyManager = new QtTransfromPropertyManager(this); d_ptr->m_transfromPropertyManager = new QtTransfromPropertyManager(this);
connect(d_ptr->m_transfromPropertyManager, SIGNAL(valueChanged(QtProperty*, QTransformAttribute)), connect(d_ptr->m_transfromPropertyManager, SIGNAL(valueChanged(QtProperty*, QTransformAttribute)),
this, SLOT(slotTransfromChanged(QtProperty*, QTransformAttribute))); this, SLOT(slotTransfromChanged(QtProperty*, QTransformAttribute)));
@ -8323,7 +8357,7 @@ void QtEntityPropertyManager::setValue(QtProperty* property, const QEntityAttrib
d_ptr->m_stringProperyManager->setValue(d_ptr->m_properyToName[property], value.GetName()); d_ptr->m_stringProperyManager->setValue(d_ptr->m_properyToName[property], value.GetName());
d_ptr->m_transfromPropertyManager->setValue(d_ptr->m_properyTotrans[property], value.GetTransform()); d_ptr->m_transfromPropertyManager->setValue(d_ptr->m_properyTotrans[property], value.GetTransform());
d_ptr->m_boolProperyManager->setValue(d_ptr->m_properyToVisible[property], value.IsVisible());
emit propertyChanged(property); emit propertyChanged(property);
emit valueChanged(property, value); emit valueChanged(property, value);
} }
@ -8342,6 +8376,13 @@ void QtEntityPropertyManager::initializeProperty(QtProperty* property) {
d_ptr->m_nameToPropery[prop] = property; d_ptr->m_nameToPropery[prop] = property;
property->addSubProperty(prop); property->addSubProperty(prop);
prop = d_ptr->m_boolProperyManager->addProperty();
prop->setPropertyName(tr("Visible"));
d_ptr->m_boolProperyManager->setValueOnly(prop, val.IsVisible());
d_ptr->m_properyToVisible[property] = prop;
d_ptr->m_visibleToPropery[prop] = property;
property->addSubProperty(prop);
prop = d_ptr->m_transfromPropertyManager->addProperty(); prop = d_ptr->m_transfromPropertyManager->addProperty();
prop->setPropertyName(tr("Transform")); prop->setPropertyName(tr("Transform"));
d_ptr->m_transfromPropertyManager->setValueOnly(prop, val.GetTransform()); d_ptr->m_transfromPropertyManager->setValueOnly(prop, val.GetTransform());
@ -8361,6 +8402,13 @@ void QtEntityPropertyManager::uninitializeProperty(QtProperty* property) {
} }
d_ptr->m_properyToName.remove(property); d_ptr->m_properyToName.remove(property);
prop = d_ptr->m_visibleToPropery[property];
if (prop) {
d_ptr->m_visibleToPropery.remove(prop);
delete prop;
}
d_ptr->m_properyToVisible.remove(property);
prop = d_ptr->m_transToPropery[property]; prop = d_ptr->m_transToPropery[property];
if (prop) { if (prop) {
d_ptr->m_properyTotrans.remove(prop); d_ptr->m_properyTotrans.remove(prop);

View File

@ -232,6 +232,7 @@ QEntityAttribute::QEntityAttribute(class Entity* entity)
return; return;
} }
transform_ = (new QTransformAttribute(entity->GetTransform())); transform_ = (new QTransformAttribute(entity->GetTransform()));
visible_ = entity->IsVisible();
} }
bool QEntityAttribute::operator==(const QEntityAttribute& other) { bool QEntityAttribute::operator==(const QEntityAttribute& other) {
@ -266,6 +267,19 @@ QTransformAttribute QEntityAttribute::GetTransform() const {
return *transform_; return *transform_;
} }
void QEntityAttribute::SetVisible(bool v) {
visible_ = v;
if (nullptr == entity_) {
return;
}
entity_->SetVisible(v);
}
bool QEntityAttribute::IsVisible() const {
return visible_;
}
QMeshComponentAttribute::QMeshComponentAttribute(class MeshComponent* object) QMeshComponentAttribute::QMeshComponentAttribute(class MeshComponent* object)
: object_(object) { : object_(object) {
} }

View File

@ -118,10 +118,13 @@ public:
QTransformAttribute GetTransform() const; QTransformAttribute GetTransform() const;
void SetVisible(bool v);
bool IsVisible() const;
private: private:
class Entity* entity_{ nullptr }; class Entity* entity_{ nullptr };
QTransformAttribute* transform_{ nullptr }; QTransformAttribute* transform_{ nullptr };
bool visible_{ true };
}; };
class QMeshComponentAttribute { class QMeshComponentAttribute {