diff --git a/Include/nmNum/nmPlot/nmObjPointWell.h b/Include/nmNum/nmPlot/nmObjPointWell.h index 23621d9..f3c73ba 100644 --- a/Include/nmNum/nmPlot/nmObjPointWell.h +++ b/Include/nmNum/nmPlot/nmObjPointWell.h @@ -79,10 +79,6 @@ class NM_PLOT_EXPORT nmObjPointWell : public nmObjPoint { // 标记井数据已由Binder绑定,图元只保留井类型 void markWellDataBound(NM_WELL_MODEL wellType); - public slots: - // 图元状态改变 - void onObjVisibleChanged(bool bIsVisible); - public: virtual void paintBack(QPainter* painter, \ const ZxPaintParam& param) override; diff --git a/Include/nmNum/nmPlot/nmObjRegion.h b/Include/nmNum/nmPlot/nmObjRegion.h index 4234a8c..2107000 100644 --- a/Include/nmNum/nmPlot/nmObjRegion.h +++ b/Include/nmNum/nmPlot/nmObjRegion.h @@ -76,10 +76,6 @@ public: // 删除区域数据对象 virtual void removeData() override; - public slots: - // 图元状态改变 - void onObjVisibleChanged(bool bIsVisible); - signals: // 流动模型变更 void sigRegionFlowModelChanged(int model); diff --git a/Include/nmNum/nmPlot/nmObjRegionMark.h b/Include/nmNum/nmPlot/nmObjRegionMark.h index a804130..6ed708e 100644 --- a/Include/nmNum/nmPlot/nmObjRegionMark.h +++ b/Include/nmNum/nmPlot/nmObjRegionMark.h @@ -111,13 +111,6 @@ signals: void sigComWChanged(double comW); // 净毛比变更 void sigNetToGrossChanged(double netToGross); - // 可见性变更 - void sigRegionMarkVisibleChanged(bool bVisible); - -public slots: - // 图元状态改变 - void onObjVisibleChanged(bool bIsVisible); - private: bool m_bSelectRegion; int m_iColorIndex; //颜色索引 diff --git a/Include/nmNum/nmPlot/nmPlotGraphicBinder.h b/Include/nmNum/nmPlot/nmPlotGraphicBinder.h index 7ddeee4..5a1fb10 100644 --- a/Include/nmNum/nmPlot/nmPlotGraphicBinder.h +++ b/Include/nmNum/nmPlot/nmPlotGraphicBinder.h @@ -180,7 +180,6 @@ public: // 获取井图元绘制所需的数据快照 WellRenderData getWellRenderData(nmObjPointWell* pGraphic) const; // 同步井图元可见性到井数据 - void setWellVisible(nmObjPointWell* pGraphic, bool bVisible); // 更新井图元的数据映射(编辑井后更换数据对象时使用) void updateWellDataMapping(nmObjPointWell* pGraphic, nmDataWellBase* pNewData) { m_mapWellData[pGraphic] = pNewData; } @@ -233,6 +232,10 @@ private slots: // 复合区图元信号 → 数据同步 void onGraphicRegionFlowModelChanged(int model); void onGraphicRegionLeakageChanged(double leakage); + void onGraphicRegionVisibleChanged(bool bVisible); + + // 井图元信号 → 数据同步 + void onGraphicWellVisibleChanged(bool bVisible); private: nmDataAnalyzeManager* m_pDataMgr; // 数据中心,不持有,外部注入 diff --git a/Src/nmNum/nmPlot/nmObjPointWell.cpp b/Src/nmNum/nmPlot/nmObjPointWell.cpp index ea216f4..6cac8f1 100644 --- a/Src/nmNum/nmPlot/nmObjPointWell.cpp +++ b/Src/nmNum/nmPlot/nmObjPointWell.cpp @@ -78,9 +78,6 @@ void nmObjPointWell::init(const QString& sName, \ m_pGraphicBinder = nullptr; - // 连接图元可见性信号和槽 - connect(this, SIGNAL(sigObjVisibleChanged(bool)), - this, SLOT(onObjVisibleChanged(bool))); } void nmObjPointWell::initTools() @@ -508,10 +505,3 @@ void nmObjPointWell::markWellDataBound(NM_WELL_MODEL wellType) m_bSelectWell = false; m_enumWellType = wellType; } - -void nmObjPointWell::onObjVisibleChanged(bool bIsVisible) -{ - if (m_pGraphicBinder) { - m_pGraphicBinder->setWellVisible(this, bIsVisible); - } -} diff --git a/Src/nmNum/nmPlot/nmObjRegion.cpp b/Src/nmNum/nmPlot/nmObjRegion.cpp index 8b42f58..5c453e0 100644 --- a/Src/nmNum/nmPlot/nmObjRegion.cpp +++ b/Src/nmNum/nmPlot/nmObjRegion.cpp @@ -58,9 +58,6 @@ void nmObjRegion::init(const QString& sName, \ loadTempl(); - // 连接图元可见性信号和槽 - connect(this, SIGNAL(sigObjVisibleChanged(bool)), - this, SLOT(onObjVisibleChanged(bool))); } void nmObjRegion::initTools() @@ -468,13 +465,3 @@ void nmObjRegion::removeData() m_pGraphicBinder->removeRegionBinding(this); } } - -void nmObjRegion::onObjVisibleChanged(bool bIsVisible) -{ - if (m_pGraphicBinder) { - nmDataRegion* pData = m_pGraphicBinder->getRegionDataFor(this); - if (pData) { - pData->setPlotVisible(bIsVisible); - } - } -} diff --git a/Src/nmNum/nmPlot/nmObjRegionMark.cpp b/Src/nmNum/nmPlot/nmObjRegionMark.cpp index 0fe3495..12255bb 100644 --- a/Src/nmNum/nmPlot/nmObjRegionMark.cpp +++ b/Src/nmNum/nmPlot/nmObjRegionMark.cpp @@ -82,9 +82,6 @@ void nmObjRegionMark::init(const QString& sName, \ loadTempl(); - // 连接图元可见性信号和槽 - connect(this, SIGNAL(sigObjVisibleChanged(bool)), - this, SLOT(onObjVisibleChanged(bool))); } @@ -436,11 +433,6 @@ void nmObjRegionMark::removeData() } } -void nmObjRegionMark::onObjVisibleChanged(bool bIsVisible) -{ - emit sigRegionMarkVisibleChanged(bIsVisible); -} - // 通过 Binder 查询关联的数据对象(供 nmObjRegion 使用) nmDataRegionMark* nmObjRegionMark::getRegionMarkData() const { diff --git a/Src/nmNum/nmPlot/nmPlotGraphicBinder.cpp b/Src/nmNum/nmPlot/nmPlotGraphicBinder.cpp index 8a6d708..77fa88b 100644 --- a/Src/nmNum/nmPlot/nmPlotGraphicBinder.cpp +++ b/Src/nmNum/nmPlot/nmPlotGraphicBinder.cpp @@ -1085,7 +1085,7 @@ void nmPlotGraphicBinder::_connectRegionMark(nmObjRegionMark* pGraphic, nmDataRe this, SLOT(onGraphicRegionMarkComWChanged(double))); connect(pGraphic, SIGNAL(sigNetToGrossChanged(double)), this, SLOT(onGraphicRegionMarkNetToGrossChanged(double))); - connect(pGraphic, SIGNAL(sigRegionMarkVisibleChanged(bool)), + connect(pGraphic, SIGNAL(sigObjVisibleChanged(bool)), this, SLOT(onGraphicRegionMarkVisibleChanged(bool))); m_setBoundRegionMarkGraphics.insert(pGraphic); @@ -1108,7 +1108,7 @@ void nmPlotGraphicBinder::_disconnectRegionMark(nmObjRegionMark* pGraphic) this, SLOT(onGraphicRegionMarkComWChanged(double))); disconnect(pGraphic, SIGNAL(sigNetToGrossChanged(double)), this, SLOT(onGraphicRegionMarkNetToGrossChanged(double))); - disconnect(pGraphic, SIGNAL(sigRegionMarkVisibleChanged(bool)), + disconnect(pGraphic, SIGNAL(sigObjVisibleChanged(bool)), this, SLOT(onGraphicRegionMarkVisibleChanged(bool))); m_setBoundRegionMarkGraphics.remove(pGraphic); @@ -1283,6 +1283,17 @@ void nmPlotGraphicBinder::onGraphicRegionLeakageChanged(double leakage) pData->setRegionLeakage(attr); } +void nmPlotGraphicBinder::onGraphicRegionVisibleChanged(bool bVisible) +{ + nmObjRegion* pGraphic = qobject_cast(sender()); + if (!pGraphic) return; + + nmDataRegion* pData = m_mapRegionData.value(pGraphic, nullptr); + if (!pData) return; + + pData->setPlotVisible(bVisible); +} + // 建立信号连接 void nmPlotGraphicBinder::_connectRegion(nmObjRegion* pGraphic, nmDataRegion* pData) { @@ -1293,6 +1304,8 @@ void nmPlotGraphicBinder::_connectRegion(nmObjRegion* pGraphic, nmDataRegion* pD this, SLOT(onGraphicRegionFlowModelChanged(int))); connect(pGraphic, SIGNAL(sigRegionLeakageChanged(double)), this, SLOT(onGraphicRegionLeakageChanged(double))); + connect(pGraphic, SIGNAL(sigObjVisibleChanged(bool)), + this, SLOT(onGraphicRegionVisibleChanged(bool))); m_setBoundRegionGraphics.insert(pGraphic); } @@ -1307,6 +1320,8 @@ void nmPlotGraphicBinder::_disconnectRegion(nmObjRegion* pGraphic) this, SLOT(onGraphicRegionFlowModelChanged(int))); disconnect(pGraphic, SIGNAL(sigRegionLeakageChanged(double)), this, SLOT(onGraphicRegionLeakageChanged(double))); + disconnect(pGraphic, SIGNAL(sigObjVisibleChanged(bool)), + this, SLOT(onGraphicRegionVisibleChanged(bool))); m_setBoundRegionGraphics.remove(pGraphic); } @@ -1691,12 +1706,15 @@ nmPlotGraphicBinder::WellRenderData nmPlotGraphicBinder::getWellRenderData(nmObj return renderData; } -void nmPlotGraphicBinder::setWellVisible(nmObjPointWell* pGraphic, bool bVisible) +void nmPlotGraphicBinder::onGraphicWellVisibleChanged(bool bVisible) { + nmObjPointWell* pGraphic = qobject_cast(sender()); + if (!pGraphic) return; + nmDataWellBase* pData = m_mapWellData.value(pGraphic, nullptr); - if (pData) { - pData->setPlotVisible(bVisible); - } + if (!pData) return; + + pData->setPlotVisible(bVisible); } void nmPlotGraphicBinder::calculateWellLogData(nmDataWellBase* pWellData, @@ -1750,6 +1768,9 @@ void nmPlotGraphicBinder::_connectWell(nmObjPointWell* pGraphic, nmDataWellBase* if (!pGraphic || !pData) return; if (m_setBoundWellGraphics.contains(pGraphic)) return; + connect(pGraphic, SIGNAL(sigObjVisibleChanged(bool)), + this, SLOT(onGraphicWellVisibleChanged(bool))); + m_setBoundWellGraphics.insert(pGraphic); } @@ -1759,6 +1780,9 @@ void nmPlotGraphicBinder::_disconnectWell(nmObjPointWell* pGraphic) if (!pGraphic) return; if (!m_setBoundWellGraphics.contains(pGraphic)) return; + disconnect(pGraphic, SIGNAL(sigObjVisibleChanged(bool)), + this, SLOT(onGraphicWellVisibleChanged(bool))); + m_setBoundWellGraphics.remove(pGraphic); }