From ab800390ddb98bfa8cf2030f5b173a563c73d184 Mon Sep 17 00:00:00 2001 From: Rebecca Cox Date: Thu, 15 Mar 2018 13:03:22 +0100 Subject: [PATCH] #2597 3D Well Log Curve: Context command to add new curve --- .../Commands/CMakeLists_files.cmake | 2 - .../WellLogCommands/CMakeLists_files.cmake | 4 + .../RicAdd3dWellLogCurveFeature.cpp | 0 .../RicAdd3dWellLogCurveFeature.h | 0 .../RicAdd3dWellLogFileCurveFeature.cpp | 75 +++++++++++++++++++ .../RicAdd3dWellLogFileCurveFeature.h | 34 +++++++++ .../RimContextCommandBuilder.cpp | 5 ++ .../UserInterface/RiuViewerCommands.cpp | 5 ++ 8 files changed, 123 insertions(+), 2 deletions(-) rename ApplicationCode/Commands/{ => WellLogCommands}/RicAdd3dWellLogCurveFeature.cpp (100%) rename ApplicationCode/Commands/{ => WellLogCommands}/RicAdd3dWellLogCurveFeature.h (100%) create mode 100644 ApplicationCode/Commands/WellLogCommands/RicAdd3dWellLogFileCurveFeature.cpp create mode 100644 ApplicationCode/Commands/WellLogCommands/RicAdd3dWellLogFileCurveFeature.h diff --git a/ApplicationCode/Commands/CMakeLists_files.cmake b/ApplicationCode/Commands/CMakeLists_files.cmake index 025ff74bce..4ca7189620 100644 --- a/ApplicationCode/Commands/CMakeLists_files.cmake +++ b/ApplicationCode/Commands/CMakeLists_files.cmake @@ -31,7 +31,6 @@ ${CMAKE_CURRENT_LIST_DIR}/RicHideIntersectionFeature.h ${CMAKE_CURRENT_LIST_DIR}/RicHideIntersectionBoxFeature.h ${CMAKE_CURRENT_LIST_DIR}/RicImportElementPropertyFeature.h ${CMAKE_CURRENT_LIST_DIR}/RicSelectColorResult.h -${CMAKE_CURRENT_LIST_DIR}/RicAdd3dWellLogCurveFeature.h ${CMAKE_CURRENT_LIST_DIR}/RicWellLogsImportFileFeature.h @@ -100,7 +99,6 @@ ${CMAKE_CURRENT_LIST_DIR}/RicHideIntersectionFeature.cpp ${CMAKE_CURRENT_LIST_DIR}/RicHideIntersectionBoxFeature.cpp ${CMAKE_CURRENT_LIST_DIR}/RicImportElementPropertyFeature.cpp ${CMAKE_CURRENT_LIST_DIR}/RicSelectColorResult.cpp -${CMAKE_CURRENT_LIST_DIR}/RicAdd3dWellLogCurveFeature.cpp ${CMAKE_CURRENT_LIST_DIR}/RicTogglePerspectiveViewFeature.cpp ${CMAKE_CURRENT_LIST_DIR}/RicImportGeoMechCaseFeature.cpp diff --git a/ApplicationCode/Commands/WellLogCommands/CMakeLists_files.cmake b/ApplicationCode/Commands/WellLogCommands/CMakeLists_files.cmake index 7f31e9a079..6e3d66d559 100644 --- a/ApplicationCode/Commands/WellLogCommands/CMakeLists_files.cmake +++ b/ApplicationCode/Commands/WellLogCommands/CMakeLists_files.cmake @@ -23,6 +23,8 @@ ${CMAKE_CURRENT_LIST_DIR}/RicChangeDataSourceFeatureUi.h ${CMAKE_CURRENT_LIST_DIR}/RicAsciiExportWellLogPlotFeature.h ${CMAKE_CURRENT_LIST_DIR}/RicWellLogFileCloseFeature.h ${CMAKE_CURRENT_LIST_DIR}/RicMoveWellLogFilesFeature.h +${CMAKE_CURRENT_LIST_DIR}/RicAdd3dWellLogCurveFeature.h +${CMAKE_CURRENT_LIST_DIR}/RicAdd3dWellLogFileCurveFeature.h ) set (SOURCE_GROUP_SOURCE_FILES @@ -49,6 +51,8 @@ ${CMAKE_CURRENT_LIST_DIR}/RicChangeDataSourceFeatureUi.cpp ${CMAKE_CURRENT_LIST_DIR}/RicAsciiExportWellLogPlotFeature.cpp ${CMAKE_CURRENT_LIST_DIR}/RicWellLogFileCloseFeature.cpp ${CMAKE_CURRENT_LIST_DIR}/RicMoveWellLogFilesFeature.cpp +${CMAKE_CURRENT_LIST_DIR}/RicAdd3dWellLogCurveFeature.cpp +${CMAKE_CURRENT_LIST_DIR}/RicAdd3dWellLogFileCurveFeature.cpp ) list(APPEND CODE_HEADER_FILES diff --git a/ApplicationCode/Commands/RicAdd3dWellLogCurveFeature.cpp b/ApplicationCode/Commands/WellLogCommands/RicAdd3dWellLogCurveFeature.cpp similarity index 100% rename from ApplicationCode/Commands/RicAdd3dWellLogCurveFeature.cpp rename to ApplicationCode/Commands/WellLogCommands/RicAdd3dWellLogCurveFeature.cpp diff --git a/ApplicationCode/Commands/RicAdd3dWellLogCurveFeature.h b/ApplicationCode/Commands/WellLogCommands/RicAdd3dWellLogCurveFeature.h similarity index 100% rename from ApplicationCode/Commands/RicAdd3dWellLogCurveFeature.h rename to ApplicationCode/Commands/WellLogCommands/RicAdd3dWellLogCurveFeature.h diff --git a/ApplicationCode/Commands/WellLogCommands/RicAdd3dWellLogFileCurveFeature.cpp b/ApplicationCode/Commands/WellLogCommands/RicAdd3dWellLogFileCurveFeature.cpp new file mode 100644 index 0000000000..2befb1cac1 --- /dev/null +++ b/ApplicationCode/Commands/WellLogCommands/RicAdd3dWellLogFileCurveFeature.cpp @@ -0,0 +1,75 @@ +///////////////////////////////////////////////////////////////////////////////// +// +// Copyright (C) 2018- Statoil ASA +// +// ResInsight is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// ResInsight is distributed in the hope that it will be useful, but WITHOUT ANY +// WARRANTY; without even the implied warranty of MERCHANTABILITY or +// FITNESS FOR A PARTICULAR PURPOSE. +// +// See the GNU General Public License at +// for more details. +// +///////////////////////////////////////////////////////////////////////////////// + +#include "RicAdd3dWellLogFileCurveFeature.h" + +#include "RiaApplication.h" + +#include "RicWellLogTools.h" + +#include "Rim3dWellLogFileCurve.h" +#include "RimProject.h" +#include "RimWellPath.h" + +#include "Riu3DMainWindowTools.h" + +#include + +CAF_CMD_SOURCE_INIT(RicAdd3dWellLogFileCurveFeature, "RicAdd3dWellLogFileCurveFeature"); + +//-------------------------------------------------------------------------------------------------- +/// +//-------------------------------------------------------------------------------------------------- +bool RicAdd3dWellLogFileCurveFeature::isCommandEnabled() +{ + std::vector cases; + RiaApplication::instance()->project()->allCases(cases); + if (cases.empty()) return false; + + return (RicWellLogTools::selectedWellPathWithLogFile() != nullptr); +} + +//-------------------------------------------------------------------------------------------------- +/// +//-------------------------------------------------------------------------------------------------- +void RicAdd3dWellLogFileCurveFeature::onActionTriggered(bool isChecked) +{ + RimWellPath* selectedWellPath = RicWellLogTools::selectedWellPathWithLogFile(); + if (!selectedWellPath) return; + + Rim3dWellLogFileCurve* rim3dWellLogFileCurve = new Rim3dWellLogFileCurve(); + selectedWellPath->add3dWellLogCurve(rim3dWellLogFileCurve); + + rim3dWellLogFileCurve->setDefaultFileCurveDataInfo(); + + RiaApplication::instance()->project()->updateConnectedEditors(); + + Riu3DMainWindowTools::selectAsCurrentItem(rim3dWellLogFileCurve); + Riu3DMainWindowTools::setExpanded(selectedWellPath); + + selectedWellPath->updateConnectedEditors(); +} + +//-------------------------------------------------------------------------------------------------- +/// +//-------------------------------------------------------------------------------------------------- +void RicAdd3dWellLogFileCurveFeature::setupActionLook(QAction* actionToSetup) +{ + actionToSetup->setIcon(QIcon(":/WellLogCurve16x16.png")); + actionToSetup->setText("Add 3D Well Log LAS Curve"); +} diff --git a/ApplicationCode/Commands/WellLogCommands/RicAdd3dWellLogFileCurveFeature.h b/ApplicationCode/Commands/WellLogCommands/RicAdd3dWellLogFileCurveFeature.h new file mode 100644 index 0000000000..7251912f61 --- /dev/null +++ b/ApplicationCode/Commands/WellLogCommands/RicAdd3dWellLogFileCurveFeature.h @@ -0,0 +1,34 @@ +///////////////////////////////////////////////////////////////////////////////// +// +// Copyright (C) 2018- Statoil ASA +// +// ResInsight is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// ResInsight is distributed in the hope that it will be useful, but WITHOUT ANY +// WARRANTY; without even the implied warranty of MERCHANTABILITY or +// FITNESS FOR A PARTICULAR PURPOSE. +// +// See the GNU General Public License at +// for more details. +// +///////////////////////////////////////////////////////////////////////////////// + +#pragma once + +#include "cafCmdFeature.h" + +//================================================================================================== +/// +//================================================================================================== +class RicAdd3dWellLogFileCurveFeature : public caf::CmdFeature +{ + CAF_CMD_HEADER_INIT; + +protected: + virtual bool isCommandEnabled() override; + virtual void onActionTriggered( bool isChecked ) override; + virtual void setupActionLook( QAction* actionToSetup ) override; +}; diff --git a/ApplicationCode/ProjectDataModel/RimContextCommandBuilder.cpp b/ApplicationCode/ProjectDataModel/RimContextCommandBuilder.cpp index 9919024bd5..443be275d9 100644 --- a/ApplicationCode/ProjectDataModel/RimContextCommandBuilder.cpp +++ b/ApplicationCode/ProjectDataModel/RimContextCommandBuilder.cpp @@ -262,7 +262,12 @@ caf::CmdFeatureMenuBuilder RimContextCommandBuilder::commandsFromSelection() menuBuilder.addSeparator(); + menuBuilder.subMenuStart("3D Well Log Curves", QIcon(":/WellLogCurve16x16.png")); + menuBuilder << "RicAdd3dWellLogCurveFeature"; + menuBuilder << "RicAdd3dWellLogFileCurveFeature"; + + menuBuilder.subMenuEnd(); menuBuilder << "RicNewWellPathIntersectionFeature"; diff --git a/ApplicationCode/UserInterface/RiuViewerCommands.cpp b/ApplicationCode/UserInterface/RiuViewerCommands.cpp index f5ace6df12..4a164d69a7 100644 --- a/ApplicationCode/UserInterface/RiuViewerCommands.cpp +++ b/ApplicationCode/UserInterface/RiuViewerCommands.cpp @@ -368,7 +368,12 @@ void RiuViewerCommands::displayContextMenu(QMouseEvent* event) menuBuilder.addSeparator(); + menuBuilder.subMenuStart("3D Well Log Curves", QIcon(":/WellLogCurve16x16.png")); + menuBuilder << "RicAdd3dWellLogCurveFeature"; + menuBuilder << "RicAdd3dWellLogFileCurveFeature"; + + menuBuilder.subMenuEnd(); menuBuilder.addSeparator();