diff --git a/Bin/Config/Lang/cn/nmNum_cn.qm b/Bin/Config/Lang/cn/nmNum_cn.qm index 2413b6b4..127e75bc 100644 Binary files a/Bin/Config/Lang/cn/nmNum_cn.qm and b/Bin/Config/Lang/cn/nmNum_cn.qm differ diff --git a/Bin/Config/Lang/cn/nmNum_cn.ts b/Bin/Config/Lang/cn/nmNum_cn.ts index 442701b8..a95c6a41 100644 --- a/Bin/Config/Lang/cn/nmNum_cn.ts +++ b/Bin/Config/Lang/cn/nmNum_cn.ts @@ -2888,7 +2888,6 @@ Reason: %1 No result data.暂无结果数据。 Color Scale色标 Scale Grid比例网格 - Well Markers井位标记 Well Names井名 Unable to display the latest result.无法显示最新结果。 Unable to display the latest result: %1无法显示最新结果:%1 diff --git a/Include/nmNum/nmSubWxs/nmPebiResultSceneController.h b/Include/nmNum/nmSubWxs/nmPebiResultSceneController.h index 9b8b0c90..44514aa0 100644 --- a/Include/nmNum/nmSubWxs/nmPebiResultSceneController.h +++ b/Include/nmNum/nmSubWxs/nmPebiResultSceneController.h @@ -69,9 +69,7 @@ public: void setScalarBarVisible(bool bVisible); /** @brief 设置平面比例网格显隐;偏好跨快照保留。 */ void setScaleGridVisible(bool bVisible); - /** @brief 设置二维井位标记显隐;偏好跨快照保留。 */ - void setWellMarkersVisible(bool bVisible); - /** @brief 设置二维井名显隐;偏好跨快照保留。 */ + /** @brief 设置二维井名及其引线显隐;偏好跨快照保留。 */ void setWellNamesVisible(bool bVisible); /** @brief 返回当前是否持有可用快照且稳定结果图层仍完整。 */ @@ -111,9 +109,7 @@ public: bool isScalarBarVisible() const; /** @brief 返回比例网格显示偏好,不要求当前存在快照。 */ bool isScaleGridVisible() const; - /** @brief 返回二维井位标记显示偏好。 */ - bool areWellMarkersVisible() const; - /** @brief 返回二维井名显示偏好。 */ + /** @brief 返回二维井名及其引线显示偏好。 */ bool areWellNamesVisible() const; private: diff --git a/Include/nmNum/nmSubWxs/nmPebiResultWellAnnotationLayer.h b/Include/nmNum/nmSubWxs/nmPebiResultWellAnnotationLayer.h index 395d4d1e..6697b229 100644 --- a/Include/nmNum/nmSubWxs/nmPebiResultWellAnnotationLayer.h +++ b/Include/nmNum/nmSubWxs/nmPebiResultWellAnnotationLayer.h @@ -12,7 +12,7 @@ class nmPebiResultSnapshot; class vtkPropAssembly; /** - * @brief 显示快照中全部二维井位和井名的业务图层。 + * @brief 显示快照中全部二维井名和引线的业务图层。 * * 图层只读取快照冻结的 XY 和井名,不访问 DataManager,不伪造井深或轨迹。 * 稳定根 Assembly 始终挂在 Scene 中;新快照通过候选子 Assembly 无失败交换。 @@ -27,7 +27,7 @@ public: virtual ~nmPebiResultWellAnnotationLayer(); /** - * @brief 在未挂载候选对象中构造快照全部井位和井名。 + * @brief 在未挂载候选对象中构造快照全部井名和二维引线。 * @note 失败时活动子 Assembly 完全不变;再次准备会丢弃旧候选。 */ bool prepareCandidate( @@ -45,11 +45,8 @@ public: /** @brief 返回活动快照是否已有完整井标注子树。 */ bool hasActiveAnnotations() const; - /** @brief 独立设置约 9px 的二维井位标记显隐。 */ - void setWellMarkersVisible(bool bVisible); - /** @brief 独立设置约 12px 的二维井名显隐。 */ + /** @brief 统一设置二维井名及其引线显隐。 */ void setWellNamesVisible(bool bVisible); - bool areWellMarkersVisible() const; bool areWellNamesVisible() const; private: @@ -57,13 +54,10 @@ private: vtkSmartPointer m_pRootAssembly; ///< Scene 挂载的稳定根。 vtkSmartPointer m_pActiveSnapshotAssembly; ///< 当前快照子树。 - vtkSmartPointer m_pActiveMarkerGroup; ///< 当前井位组。 - vtkSmartPointer m_pActiveNameGroup; ///< 当前井名组。 + vtkSmartPointer m_pActiveAnnotationGroup; ///< 当前井名与引线组。 vtkSmartPointer m_pCandidateSnapshotAssembly; ///< 待提交子树。 - vtkSmartPointer m_pCandidateMarkerGroup; ///< 候选井位组。 - vtkSmartPointer m_pCandidateNameGroup; ///< 候选井名组。 - bool m_bWellMarkersVisible; ///< 跨快照保留的井位显隐偏好。 - bool m_bWellNamesVisible; ///< 跨快照保留的井名显隐偏好。 + vtkSmartPointer m_pCandidateAnnotationGroup; ///< 候选井名与引线组。 + bool m_bWellNamesVisible; ///< 跨快照保留的文字与引线显隐偏好。 }; #endif // NMPEBIRESULTWELLANNOTATIONLAYER_H diff --git a/Include/nmNum/nmSubWxs/nmWxPebiResultViewWidget.h b/Include/nmNum/nmSubWxs/nmWxPebiResultViewWidget.h index 9f91683a..7a13f51a 100644 --- a/Include/nmNum/nmSubWxs/nmWxPebiResultViewWidget.h +++ b/Include/nmNum/nmSubWxs/nmWxPebiResultViewWidget.h @@ -67,8 +67,6 @@ private slots: void onScalarBarToggled(bool bVisible); /** @brief 切换比例网格显隐。 */ void onScaleGridToggled(bool bVisible); - /** @brief 切换二维井位标记显隐。 */ - void onWellMarkersToggled(bool bVisible); /** @brief 切换二维井名显隐。 */ void onWellNamesToggled(bool bVisible); @@ -86,7 +84,7 @@ private: const QSharedPointer& pSnapshot, const QString& sSnapshotId, bool bCurrent); - /** @brief 从 SceneController 镜像四个业务 QAction 的勾选和可用状态。 */ + /** @brief 从 SceneController 镜像三个业务 QAction 的勾选和可用状态。 */ void synchronizeBusinessActions(); /** @brief 根据“绑定失败、过期、操作错误”的固定优先级刷新提示栏。 */ void refreshStatusBar(); @@ -102,7 +100,6 @@ private: QAction* m_pScalarBarAction; ///< 色标显隐动作。 QAction* m_pScaleGridAction; ///< 比例网格显隐动作。 - QAction* m_pWellMarkersAction; ///< 二维井位标记显隐动作。 QAction* m_pWellNamesAction; ///< 二维井名显隐动作。 /** @brief Manager 最近一次通知后观察到的快照强引用。 */ diff --git a/Src/nmNum/nmSubWxs/nmPebiResultSceneController.cpp b/Src/nmNum/nmSubWxs/nmPebiResultSceneController.cpp index ce449b68..4ae6c258 100644 --- a/Src/nmNum/nmSubWxs/nmPebiResultSceneController.cpp +++ b/Src/nmNum/nmSubWxs/nmPebiResultSceneController.cpp @@ -403,7 +403,6 @@ public: m_bHasBounds(false), m_bScalarBarVisible(true), m_bScaleGridVisible(false), - m_bWellMarkersVisible(true), m_bWellNamesVisible(true) { m_dBusinessRange[0] = 0.0; @@ -598,7 +597,6 @@ public: new nmPebiResultWellAnnotationLayer( QString::fromLatin1(RESULT_WELLS_LAYER_ID)); pLayer->setVisible(false); - pLayer->setWellMarkersVisible(m_bWellMarkersVisible); pLayer->setWellNamesVisible(m_bWellNamesVisible); if(!pScene->addLayer(pLayer)) { delete pLayer; @@ -723,7 +721,6 @@ public: bHasData && m_bScaleGridVisible); } if(m_pWellLayer != nullptr) { - m_pWellLayer->setWellMarkersVisible(m_bWellMarkersVisible); m_pWellLayer->setWellNamesVisible(m_bWellNamesVisible); m_pWellLayer->setVisible(bHasData); } @@ -883,7 +880,6 @@ public: bool m_bHasBounds; bool m_bScalarBarVisible; bool m_bScaleGridVisible; - bool m_bWellMarkersVisible; bool m_bWellNamesVisible; }; @@ -1348,25 +1344,6 @@ void nmPebiResultSceneController::setScaleGridVisible(bool bVisible) } } -void nmPebiResultSceneController::setWellMarkersVisible(bool bVisible) -{ - Q_ASSERT(isResultSceneGuiThread()); - if(!isResultSceneGuiThread() || m_pPrivate == nullptr) { - return; - } - m_pPrivate->discardActiveDataIfLayersLost(); - if(m_pPrivate->m_bWellMarkersVisible == bVisible) { - return; - } - m_pPrivate->m_bWellMarkersVisible = bVisible; - if(m_pPrivate->m_pWellLayer != nullptr) { - m_pPrivate->m_pWellLayer->setWellMarkersVisible(bVisible); - } - if(hasSnapshot()) { - m_pPrivate->m_pContainer->renderView(); - } -} - void nmPebiResultSceneController::setWellNamesVisible(bool bVisible) { Q_ASSERT(isResultSceneGuiThread()); @@ -1506,11 +1483,6 @@ bool nmPebiResultSceneController::isScaleGridVisible() const return m_pPrivate != nullptr && m_pPrivate->m_bScaleGridVisible; } -bool nmPebiResultSceneController::areWellMarkersVisible() const -{ - return m_pPrivate != nullptr && m_pPrivate->m_bWellMarkersVisible; -} - bool nmPebiResultSceneController::areWellNamesVisible() const { return m_pPrivate != nullptr && m_pPrivate->m_bWellNamesVisible; diff --git a/Src/nmNum/nmSubWxs/nmPebiResultWellAnnotationLayer.cpp b/Src/nmNum/nmSubWxs/nmPebiResultWellAnnotationLayer.cpp index fec1d8d2..1ed074f8 100644 --- a/Src/nmNum/nmSubWxs/nmPebiResultWellAnnotationLayer.cpp +++ b/Src/nmNum/nmSubWxs/nmPebiResultWellAnnotationLayer.cpp @@ -2,22 +2,18 @@ #include "nmPebiResultSnapshot.h" +#include #include #include #include #include -#include #include -#include +#include #include -#include -#include -#include -#include #include #include -#include +#include #include namespace { @@ -29,6 +25,17 @@ bool isWellAnnotationGuiThread() pApplication->thread() == QThread::currentThread(); } +// Saphir 风格标注使用固定像素偏移,缩放相机时文字和引线长度保持不变。 +const int WELL_NAME_FONT_SIZE = 16; +const int WELL_NAME_OFFSET_X = 18; +const int WELL_NAME_OFFSET_Y = 40; +const int WELL_LEADER_OFFSET_X = 14; +const int WELL_LEADER_OFFSET_Y = 36; + +const double WELL_LEADER_RED = 140.0 / 255.0; +const double WELL_LEADER_GREEN = 87.0 / 255.0; +const double WELL_LEADER_BLUE = 59.0 / 255.0; + } nmPebiResultWellAnnotationLayer::nmPebiResultWellAnnotationLayer( @@ -36,12 +43,9 @@ nmPebiResultWellAnnotationLayer::nmPebiResultWellAnnotationLayer( : nmVTKRenderLayer(sLayerId), m_pRootAssembly(vtkSmartPointer::New()), m_pActiveSnapshotAssembly(nullptr), - m_pActiveMarkerGroup(nullptr), - m_pActiveNameGroup(nullptr), + m_pActiveAnnotationGroup(nullptr), m_pCandidateSnapshotAssembly(nullptr), - m_pCandidateMarkerGroup(nullptr), - m_pCandidateNameGroup(nullptr), - m_bWellMarkersVisible(true), + m_pCandidateAnnotationGroup(nullptr), m_bWellNamesVisible(true) { Q_ASSERT(isWellAnnotationGuiThread()); @@ -67,16 +71,6 @@ bool nmPebiResultWellAnnotationLayer::prepareCandidate( return false; } - vtkSmartPointer pMarkerPoints = - vtkSmartPointer::New(); - vtkSmartPointer pMarkerVertices = - vtkSmartPointer::New(); - vtkSmartPointer pNamePoints = - vtkSmartPointer::New(); - vtkSmartPointer pWellNames = - vtkSmartPointer::New(); - pWellNames->SetName("WellName"); - QSet setWellIds; for(int nIndex = 0; nIndex < pSnapshot->getWellCount(); ++nIndex) { const nmPebiResultWellSnapshot* pWell = pSnapshot->getWellAt(nIndex); @@ -89,90 +83,103 @@ bool nmPebiResultWellAnnotationLayer::prepareCandidate( return false; } setWellIds.insert(pWell->m_sWellInstanceId); - - // 保持快照存储顺序;二维 Overlay 不向业务位置写入虚构 Z 值。 - const vtkIdType nPointId = pMarkerPoints->InsertNextPoint( - pWell->m_oLocation.x(), pWell->m_oLocation.y(), 0.0); - pMarkerVertices->InsertNextCell(1); - pMarkerVertices->InsertCellPoint(nPointId); - pNamePoints->InsertNextPoint( - pWell->m_oLocation.x(), pWell->m_oLocation.y(), 0.0); - const QByteArray aWellName = pWell->m_sWellName.toUtf8(); - pWellNames->InsertNextValue(aWellName.constData()); } vtkSmartPointer pSnapshotAssembly = vtkSmartPointer::New(); - vtkSmartPointer pMarkerGroup = - vtkSmartPointer::New(); - vtkSmartPointer pNameGroup = + vtkSmartPointer pAnnotationGroup = vtkSmartPointer::New(); if(pSnapshot->getWellCount() > 0) { - vtkSmartPointer pMarkerData = - vtkSmartPointer::New(); - pMarkerData->SetPoints(pMarkerPoints); - pMarkerData->SetVerts(pMarkerVertices); - - vtkSmartPointer pWorldCoordinate = - vtkSmartPointer::New(); - pWorldCoordinate->SetCoordinateSystemToWorld(); - vtkSmartPointer pMarkerMapper = - vtkSmartPointer::New(); - pMarkerMapper->SetInputData(pMarkerData); - pMarkerMapper->SetTransformCoordinate(pWorldCoordinate); - pMarkerMapper->ScalarVisibilityOff(); - - vtkSmartPointer pMarkerActor = - vtkSmartPointer::New(); - pMarkerActor->SetMapper(pMarkerMapper); - pMarkerActor->GetProperty()->SetColor(0.12, 0.12, 0.12); - pMarkerActor->GetProperty()->SetPointSize(9.0); - pMarkerGroup->AddPart(pMarkerActor); - - vtkSmartPointer pNameData = - vtkSmartPointer::New(); - pNameData->SetPoints(pNamePoints); - pNameData->GetPointData()->AddArray(pWellNames); - vtkSmartPointer pNameMapper = - vtkSmartPointer::New(); - pNameMapper->SetInputData(pNameData); - pNameMapper->SetLabelModeToLabelFieldData(); - pNameMapper->SetFieldDataName("WellName"); - pNameMapper->SetLabelFormat("%s"); - pNameMapper->GetLabelTextProperty()->SetFontSize(12); - pNameMapper->GetLabelTextProperty()->SetColor(0.10, 0.10, 0.10); - pNameMapper->GetLabelTextProperty()->BoldOff(); - pNameMapper->GetLabelTextProperty()->ItalicOff(); - pNameMapper->GetLabelTextProperty()->ShadowOff(); - pNameMapper->GetLabelTextProperty()->SetJustificationToLeft(); - pNameMapper->GetLabelTextProperty()->SetVerticalJustificationToBottom(); - - vtkSmartPointer pNameActor = - vtkSmartPointer::New(); - pNameActor->SetMapper(pNameMapper); - // Actor2D 的显示坐标偏移固定为像素,不随相机缩放改变。 - pNameActor->SetDisplayPosition(7, 6); - pNameGroup->AddPart(pNameActor); + for(int nIndex = 0; nIndex < pSnapshot->getWellCount(); ++nIndex) { + const nmPebiResultWellSnapshot* pWell = + pSnapshot->getWellAt(nIndex); + vtkSmartPointer pWorldAnchor = + vtkSmartPointer::New(); + // Z=0 仅表示冻结 XY 所在平面,不表示井深、井斜或井轨迹。 + pWorldAnchor->SetCoordinateSystemToWorld(); + pWorldAnchor->SetValue( + pWell->m_oLocation.x(), + pWell->m_oLocation.y(), 0.0); + + vtkSmartPointer pWellAnnotation = + vtkSmartPointer::New(); + vtkSmartPointer pLeader = + vtkSmartPointer::New(); + + // 引线两个端点都引用同一 World 锚点,只叠加固定 Display 像素偏移。 + vtkCoordinate* pStartCoordinate = + pLeader->GetPositionCoordinate(); + pStartCoordinate->SetCoordinateSystemToDisplay(); + pStartCoordinate->SetReferenceCoordinate(pWorldAnchor); + pStartCoordinate->SetValue(0.0, 0.0, 0.0); + vtkCoordinate* pEndCoordinate = + pLeader->GetPosition2Coordinate(); + pEndCoordinate->SetCoordinateSystemToDisplay(); + pEndCoordinate->SetReferenceCoordinate(pWorldAnchor); + pEndCoordinate->SetValue( + WELL_LEADER_OFFSET_X, WELL_LEADER_OFFSET_Y, 0.0); + + pLeader->AutoLabelOff(); + pLeader->SetLabel(""); + pLeader->SetArrowPlacementToNone(); + pLeader->SetRadius(0.0); + pLeader->GetProperty()->SetColor( + WELL_LEADER_RED, + WELL_LEADER_GREEN, + WELL_LEADER_BLUE); + pLeader->GetProperty()->SetLineWidth(1.0); + // 二维引线始终绘制在三维网格前方,避免被致密单元边线遮挡。 + pLeader->GetProperty()->SetDisplayLocationToForeground(); + pWellAnnotation->AddPart(pLeader); + + vtkSmartPointer pNameMapper = + vtkSmartPointer::New(); + const QByteArray aWellName = pWell->m_sWellName.toUtf8(); + pNameMapper->SetInput(aWellName.constData()); + vtkTextProperty* pTextProperty = + pNameMapper->GetTextProperty(); + pTextProperty->SetFontFamilyToArial(); + pTextProperty->SetFontSize(WELL_NAME_FONT_SIZE); + pTextProperty->SetColor(1.0, 1.0, 0.0); + pTextProperty->BoldOff(); + pTextProperty->ItalicOff(); + pTextProperty->ShadowOn(); + pTextProperty->SetShadowOffset(1, -1); + pTextProperty->SetJustificationToLeft(); + pTextProperty->SetVerticalJustificationToBottom(); + + vtkSmartPointer pNameActor = + vtkSmartPointer::New(); + pNameActor->SetMapper(pNameMapper); + // 井名与引线使用相同的前景层级,保证顶视图下仍清晰可读。 + pNameActor->GetProperty()->SetDisplayLocationToForeground(); + vtkCoordinate* pNameCoordinate = + pNameActor->GetPositionCoordinate(); + pNameCoordinate->SetCoordinateSystemToDisplay(); + pNameCoordinate->SetReferenceCoordinate(pWorldAnchor); + pNameCoordinate->SetValue( + WELL_NAME_OFFSET_X, WELL_NAME_OFFSET_Y, 0.0); + pWellAnnotation->AddPart(pNameActor); + + // 每口井的文字与引线形成一个不可拆分的候选注记单元。 + pAnnotationGroup->AddPart(pWellAnnotation); + } } - pMarkerGroup->SetVisibility(m_bWellMarkersVisible ? 1 : 0); - pNameGroup->SetVisibility(m_bWellNamesVisible ? 1 : 0); - pSnapshotAssembly->AddPart(pMarkerGroup); - pSnapshotAssembly->AddPart(pNameGroup); + pAnnotationGroup->SetVisibility(m_bWellNamesVisible ? 1 : 0); + pSnapshotAssembly->AddPart(pAnnotationGroup); // 所有校验和 VTK 对象构造成功后才记录候选;活动子树仍未触碰。 m_pCandidateSnapshotAssembly = pSnapshotAssembly; - m_pCandidateMarkerGroup = pMarkerGroup; - m_pCandidateNameGroup = pNameGroup; + m_pCandidateAnnotationGroup = pAnnotationGroup; return true; } void nmPebiResultWellAnnotationLayer::discardCandidate() { Q_ASSERT(isWellAnnotationGuiThread()); - m_pCandidateNameGroup = nullptr; - m_pCandidateMarkerGroup = nullptr; + m_pCandidateAnnotationGroup = nullptr; m_pCandidateSnapshotAssembly = nullptr; } @@ -185,8 +192,7 @@ void nmPebiResultWellAnnotationLayer::commitCandidate() m_pRootAssembly->RemovePart(m_pActiveSnapshotAssembly); } m_pActiveSnapshotAssembly = m_pCandidateSnapshotAssembly; - m_pActiveMarkerGroup = m_pCandidateMarkerGroup; - m_pActiveNameGroup = m_pCandidateNameGroup; + m_pActiveAnnotationGroup = m_pCandidateAnnotationGroup; m_pRootAssembly->AddPart(m_pActiveSnapshotAssembly); discardCandidate(); } @@ -199,8 +205,7 @@ void nmPebiResultWellAnnotationLayer::clear() m_pActiveSnapshotAssembly != nullptr) { m_pRootAssembly->RemovePart(m_pActiveSnapshotAssembly); } - m_pActiveNameGroup = nullptr; - m_pActiveMarkerGroup = nullptr; + m_pActiveAnnotationGroup = nullptr; m_pActiveSnapshotAssembly = nullptr; } @@ -209,21 +214,6 @@ bool nmPebiResultWellAnnotationLayer::hasActiveAnnotations() const return m_pActiveSnapshotAssembly != nullptr; } -void nmPebiResultWellAnnotationLayer::setWellMarkersVisible(bool bVisible) -{ - Q_ASSERT(isWellAnnotationGuiThread()); - if(!isWellAnnotationGuiThread()) { - return; - } - m_bWellMarkersVisible = bVisible; - if(m_pActiveMarkerGroup != nullptr) { - m_pActiveMarkerGroup->SetVisibility(bVisible ? 1 : 0); - } - if(m_pCandidateMarkerGroup != nullptr) { - m_pCandidateMarkerGroup->SetVisibility(bVisible ? 1 : 0); - } -} - void nmPebiResultWellAnnotationLayer::setWellNamesVisible(bool bVisible) { Q_ASSERT(isWellAnnotationGuiThread()); @@ -231,19 +221,14 @@ void nmPebiResultWellAnnotationLayer::setWellNamesVisible(bool bVisible) return; } m_bWellNamesVisible = bVisible; - if(m_pActiveNameGroup != nullptr) { - m_pActiveNameGroup->SetVisibility(bVisible ? 1 : 0); + if(m_pActiveAnnotationGroup != nullptr) { + m_pActiveAnnotationGroup->SetVisibility(bVisible ? 1 : 0); } - if(m_pCandidateNameGroup != nullptr) { - m_pCandidateNameGroup->SetVisibility(bVisible ? 1 : 0); + if(m_pCandidateAnnotationGroup != nullptr) { + m_pCandidateAnnotationGroup->SetVisibility(bVisible ? 1 : 0); } } -bool nmPebiResultWellAnnotationLayer::areWellMarkersVisible() const -{ - return m_bWellMarkersVisible; -} - bool nmPebiResultWellAnnotationLayer::areWellNamesVisible() const { return m_bWellNamesVisible; diff --git a/Src/nmNum/nmSubWxs/nmWxPebiResultViewWidget.cpp b/Src/nmNum/nmSubWxs/nmWxPebiResultViewWidget.cpp index 80482dbc..b8aca4ac 100644 --- a/Src/nmNum/nmSubWxs/nmWxPebiResultViewWidget.cpp +++ b/Src/nmNum/nmSubWxs/nmWxPebiResultViewWidget.cpp @@ -58,7 +58,6 @@ nmWxPebiResultViewWidget::nmWxPebiResultViewWidget( m_pStatusLabel(nullptr), m_pScalarBarAction(nullptr), m_pScaleGridAction(nullptr), - m_pWellMarkersAction(nullptr), m_pWellNamesAction(nullptr), m_bObservedSnapshotCurrent(false), m_bObservedStateValid(false), @@ -173,7 +172,6 @@ void nmWxPebiResultViewWidget::appendContextMenuActions(QMenu* pMenu) } pMenu->addAction(m_pScalarBarAction); pMenu->addAction(m_pScaleGridAction); - pMenu->addAction(m_pWellMarkersAction); pMenu->addAction(m_pWellNamesAction); } @@ -213,13 +211,6 @@ void nmWxPebiResultViewWidget::onScaleGridToggled(bool bVisible) } } -void nmWxPebiResultViewWidget::onWellMarkersToggled(bool bVisible) -{ - if(m_pSceneController != nullptr && m_pSceneController->hasSnapshot()) { - m_pSceneController->setWellMarkersVisible(bVisible); - } -} - void nmWxPebiResultViewWidget::onWellNamesToggled(bool bVisible) { if(m_pSceneController != nullptr && m_pSceneController->hasSnapshot()) { @@ -269,18 +260,14 @@ void nmWxPebiResultViewWidget::createUi() m_pScaleGridAction = new QAction( QIcon(resultViewIconPath("NmScaleGrid.png")), tr("Scale Grid"), this); - m_pWellMarkersAction = new QAction( - QIcon(resultViewIconPath("NmWell.png")), - tr("Well Markers"), this); m_pWellNamesAction = new QAction( QIcon(resultViewIconPath("NmShow.png")), tr("Well Names"), this); QAction* const pBusinessActions[] = { - m_pScalarBarAction, m_pScaleGridAction, - m_pWellMarkersAction, m_pWellNamesAction + m_pScalarBarAction, m_pScaleGridAction, m_pWellNamesAction }; - for(int nIndex = 0; nIndex < 4; ++nIndex) { + for(int nIndex = 0; nIndex < 3; ++nIndex) { pBusinessActions[nIndex]->setCheckable(true); pBusinessActions[nIndex]->setToolTip( pBusinessActions[nIndex]->text()); @@ -312,7 +299,7 @@ void nmWxPebiResultViewWidget::createUi() if(pFrontAction != nullptr) m_pToolBar->addAction(pFrontAction); if(pPickCenterAction != nullptr) m_pToolBar->addAction(pPickCenterAction); m_pToolBar->addSeparator(); - for(int nIndex = 0; nIndex < 4; ++nIndex) { + for(int nIndex = 0; nIndex < 3; ++nIndex) { m_pToolBar->addAction(pBusinessActions[nIndex]); } m_pToolBar->addSeparator(); @@ -323,8 +310,6 @@ void nmWxPebiResultViewWidget::createUi() this, SLOT(onScalarBarToggled(bool))); connect(m_pScaleGridAction, SIGNAL(toggled(bool)), this, SLOT(onScaleGridToggled(bool))); - connect(m_pWellMarkersAction, SIGNAL(toggled(bool)), - this, SLOT(onWellMarkersToggled(bool))); connect(m_pWellNamesAction, SIGNAL(toggled(bool)), this, SLOT(onWellNamesToggled(bool))); connect(m_pRenderContainer, SIGNAL(contextMenuAboutToShow(QMenu*)), @@ -484,15 +469,12 @@ void nmWxPebiResultViewWidget::synchronizeBusinessActions() m_pScalarBarAction, m_pSceneController->isScalarBarVisible()); setActionCheckedWithoutSignal( m_pScaleGridAction, m_pSceneController->isScaleGridVisible()); - setActionCheckedWithoutSignal( - m_pWellMarkersAction, m_pSceneController->areWellMarkersVisible()); setActionCheckedWithoutSignal( m_pWellNamesAction, m_pSceneController->areWellNamesVisible()); const bool bEnabled = m_pSceneController->hasSnapshot(); m_pScalarBarAction->setEnabled(bEnabled); m_pScaleGridAction->setEnabled(bEnabled); - m_pWellMarkersAction->setEnabled(bEnabled); m_pWellNamesAction->setEnabled(bEnabled); }