diff --git a/ApplicationCode/Commands/WellLogCommands/CMakeLists_files.cmake b/ApplicationCode/Commands/WellLogCommands/CMakeLists_files.cmake index b9a5827d4f..5bbc65a195 100644 --- a/ApplicationCode/Commands/WellLogCommands/CMakeLists_files.cmake +++ b/ApplicationCode/Commands/WellLogCommands/CMakeLists_files.cmake @@ -7,6 +7,7 @@ endif() set (SOURCE_GROUP_HEADER_FILES ${CEE_CURRENT_LIST_DIR}RicAddWellLogToPlotFeature.h ${CEE_CURRENT_LIST_DIR}RicNewWellLogCurveExtractionFeature.h +${CEE_CURRENT_LIST_DIR}RicNewWellLogRftCurveFeature.h ${CEE_CURRENT_LIST_DIR}RicNewRftPlotFeature.h ${CEE_CURRENT_LIST_DIR}RicDeleteRftPlotFeature.h ${CEE_CURRENT_LIST_DIR}RicNewWellLogFileCurveFeature.h @@ -28,6 +29,7 @@ ${CEE_CURRENT_LIST_DIR}RicAsciiExportWellLogPlotFeature.h set (SOURCE_GROUP_SOURCE_FILES ${CEE_CURRENT_LIST_DIR}RicAddWellLogToPlotFeature.cpp ${CEE_CURRENT_LIST_DIR}RicNewWellLogCurveExtractionFeature.cpp +${CEE_CURRENT_LIST_DIR}RicNewWellLogRftCurveFeature.cpp ${CEE_CURRENT_LIST_DIR}RicNewRftPlotFeature.cpp ${CEE_CURRENT_LIST_DIR}RicDeleteRftPlotFeature.cpp ${CEE_CURRENT_LIST_DIR}RicNewWellLogFileCurveFeature.cpp diff --git a/ApplicationCode/Commands/WellLogCommands/RicNewWellLogRftCurveFeature.cpp b/ApplicationCode/Commands/WellLogCommands/RicNewWellLogRftCurveFeature.cpp new file mode 100644 index 0000000000..161a2d848b --- /dev/null +++ b/ApplicationCode/Commands/WellLogCommands/RicNewWellLogRftCurveFeature.cpp @@ -0,0 +1,96 @@ +///////////////////////////////////////////////////////////////////////////////// +// +// Copyright (C) 2017 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 "RicNewWellLogRftCurveFeature.h" + +#include "RiaApplication.h" + +#include "RimProject.h" +#include "RimWellLogRftCurve.h" +#include "RimWellLogTrack.h" + +#include "RiuSelectionManager.h" +#include "RiuMainPlotWindow.h" + +#include "cafSelectionManager.h" + +#include + +#include + + +CAF_CMD_SOURCE_INIT(RicNewWellLogRftCurveFeature, "RicNewWellLogRftCurveFeature"); + +//-------------------------------------------------------------------------------------------------- +/// +//-------------------------------------------------------------------------------------------------- +bool RicNewWellLogRftCurveFeature::isCommandEnabled() +{ + return (selectedWellLogPlotTrack() != nullptr); +} + +//-------------------------------------------------------------------------------------------------- +/// +//-------------------------------------------------------------------------------------------------- +void RicNewWellLogRftCurveFeature::onActionTriggered(bool isChecked) +{ + RimWellLogTrack* wellLogPlotTrack = selectedWellLogPlotTrack(); + if (!wellLogPlotTrack) return; + + RicNewWellLogRftCurveFeature::addCurve(wellLogPlotTrack); +} + +//-------------------------------------------------------------------------------------------------- +/// +//-------------------------------------------------------------------------------------------------- +void RicNewWellLogRftCurveFeature::setupActionLook(QAction* actionToSetup) +{ + actionToSetup->setText("New Well Log RFT Curve"); + actionToSetup->setIcon(QIcon(":/WellLogCurve16x16.png")); +} + +//-------------------------------------------------------------------------------------------------- +/// +//-------------------------------------------------------------------------------------------------- +RimWellLogTrack* RicNewWellLogRftCurveFeature::selectedWellLogPlotTrack() +{ + std::vector selection; + caf::SelectionManager::instance()->objectsByType(&selection); + return selection.size() > 0 ? selection[0] : nullptr; +} + +//-------------------------------------------------------------------------------------------------- +/// +//-------------------------------------------------------------------------------------------------- +RimWellLogRftCurve* RicNewWellLogRftCurveFeature::addCurve(RimWellLogTrack* plotTrack) +{ + CVF_ASSERT(plotTrack); + + RimWellLogRftCurve* curve = new RimWellLogRftCurve(); + plotTrack->addCurve(curve); + + plotTrack->updateConnectedEditors(); + + RiuMainPlotWindow* plotwindow = RiaApplication::instance()->getOrCreateAndShowMainPlotWindow(); + + RiaApplication::instance()->project()->updateConnectedEditors(); + + plotwindow->selectAsCurrentItem(curve); + + return curve; +} diff --git a/ApplicationCode/Commands/WellLogCommands/RicNewWellLogRftCurveFeature.h b/ApplicationCode/Commands/WellLogCommands/RicNewWellLogRftCurveFeature.h new file mode 100644 index 0000000000..c749101fea --- /dev/null +++ b/ApplicationCode/Commands/WellLogCommands/RicNewWellLogRftCurveFeature.h @@ -0,0 +1,41 @@ +///////////////////////////////////////////////////////////////////////////////// +// +// Copyright (C) 2017 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 RimWellLogRftCurve; +class RimWellLogTrack; + +//================================================================================================== +/// +//================================================================================================== +class RicNewWellLogRftCurveFeature : public caf::CmdFeature +{ + CAF_CMD_HEADER_INIT; + +public: + static RimWellLogRftCurve* addCurve(RimWellLogTrack* plotTrack); + static RimWellLogTrack* selectedWellLogPlotTrack(); + +private: + virtual bool isCommandEnabled() override; + virtual void onActionTriggered( bool isChecked ) override; + virtual void setupActionLook( QAction* actionToSetup ) override; +};