diff --git a/ApplicationCode/Commands/CMakeLists_files.cmake b/ApplicationCode/Commands/CMakeLists_files.cmake index dd3cf03a34..d97c5d9633 100644 --- a/ApplicationCode/Commands/CMakeLists_files.cmake +++ b/ApplicationCode/Commands/CMakeLists_files.cmake @@ -31,6 +31,7 @@ ${CEE_CURRENT_LIST_DIR}RicImportFormationNamesFeature.h ${CEE_CURRENT_LIST_DIR}RicReloadFormationNamesFeature.h ${CEE_CURRENT_LIST_DIR}RicNewSliceRangeFilterFeature.h ${CEE_CURRENT_LIST_DIR}RicHideIntersectionFeature.h +${CEE_CURRENT_LIST_DIR}RicHideIntersectionBoxFeature.h ${CEE_CURRENT_LIST_DIR}RicWellLogsImportFileFeature.h @@ -106,6 +107,7 @@ ${CEE_CURRENT_LIST_DIR}RicImportFormationNamesFeature.cpp ${CEE_CURRENT_LIST_DIR}RicReloadFormationNamesFeature.cpp ${CEE_CURRENT_LIST_DIR}RicNewSliceRangeFilterFeature.cpp ${CEE_CURRENT_LIST_DIR}RicHideIntersectionFeature.cpp +${CEE_CURRENT_LIST_DIR}RicHideIntersectionBoxFeature.cpp ${CEE_CURRENT_LIST_DIR}RicTogglePerspectiveViewFeature.cpp ${CEE_CURRENT_LIST_DIR}RicImportGeoMechCaseFeature.cpp diff --git a/ApplicationCode/Commands/RicHideIntersectionBoxFeature.cpp b/ApplicationCode/Commands/RicHideIntersectionBoxFeature.cpp new file mode 100644 index 0000000000..7d3823c7b0 --- /dev/null +++ b/ApplicationCode/Commands/RicHideIntersectionBoxFeature.cpp @@ -0,0 +1,85 @@ +///////////////////////////////////////////////////////////////////////////////// +// +// 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 "RicHideIntersectionBoxFeature.h" + +#include "RiaApplication.h" + +#include "RimIntersectionBox.h" +#include "RimView.h" + +#include "RiuSelectionManager.h" + +#include + +CAF_CMD_SOURCE_INIT(RicHideIntersectionBoxFeature, "RicHideIntersectionBoxFeature"); + +//-------------------------------------------------------------------------------------------------- +/// +//-------------------------------------------------------------------------------------------------- +bool RicHideIntersectionBoxFeature::isCommandEnabled() +{ + RimView* activeView = RiaApplication::instance()->activeReservoirView(); + if (!activeView) return false; + + RiuSelectionManager* riuSelManager = RiuSelectionManager::instance(); + RiuSelectionItem* selItem = riuSelManager->selectedItem(RiuSelectionManager::RUI_TEMPORARY); + + RiuGeneralSelectionItem* generalSelectionItem = static_cast(selItem); + if (!generalSelectionItem) return false; + + RimIntersectionBox* intersectionBox = dynamic_cast(generalSelectionItem->m_object); + if (intersectionBox) + { + return true; + } + return false; +} + +//-------------------------------------------------------------------------------------------------- +/// +//-------------------------------------------------------------------------------------------------- +void RicHideIntersectionBoxFeature::onActionTriggered(bool isChecked) +{ + RimView* activeView = RiaApplication::instance()->activeReservoirView(); + if (!activeView) return; + + RiuSelectionManager* riuSelManager = RiuSelectionManager::instance(); + RiuSelectionItem* selItem = riuSelManager->selectedItem(RiuSelectionManager::RUI_TEMPORARY); + + RiuGeneralSelectionItem* generalSelectionItem = static_cast(selItem); + if (!generalSelectionItem) return; + + RimIntersectionBox* intersectionBox = dynamic_cast(generalSelectionItem->m_object); + if (intersectionBox) + { + intersectionBox->isActive = false; + intersectionBox->updateConnectedEditors(); + + activeView->scheduleCreateDisplayModelAndRedraw(); + } +} + +//-------------------------------------------------------------------------------------------------- +/// +//-------------------------------------------------------------------------------------------------- +void RicHideIntersectionBoxFeature::setupActionLook(QAction* actionToSetup) +{ + actionToSetup->setText("Hide Intersection Box"); + actionToSetup->setIcon(QIcon(":/IntersectionBox16x16.png")); +} diff --git a/ApplicationCode/Commands/RicHideIntersectionBoxFeature.h b/ApplicationCode/Commands/RicHideIntersectionBoxFeature.h new file mode 100644 index 0000000000..0b7ef7508d --- /dev/null +++ b/ApplicationCode/Commands/RicHideIntersectionBoxFeature.h @@ -0,0 +1,35 @@ +///////////////////////////////////////////////////////////////////////////////// +// +// 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 RicHideIntersectionBoxFeature : public caf::CmdFeature +{ + CAF_CMD_HEADER_INIT; + +protected: + virtual bool isCommandEnabled() override; + virtual void onActionTriggered( bool isChecked ) override; + virtual void setupActionLook( QAction* actionToSetup ) override; +};