Files
ResInsight/ApplicationLibCode/ProjectDataModel/Faults/RimFaultDistance.h
T
Kristian Bendiksen a90e7bb26a #14101 Make Fault Distance objects deletable
Enable the standard tree Delete action on RimFaultDistance via
setDeletable( true ). On deletion, remove the generated FAULTDIST result
from the case in the destructor; the object is still attached to the
project tree while the destructor body runs, so the owner case is
reachable.
2026-06-08 21:42:19 +02:00

71 lines
2.4 KiB
C++

/////////////////////////////////////////////////////////////////////////////////
//
// Copyright (C) 2026- Equinor 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 <http://www.gnu.org/licenses/gpl.html>
// for more details.
//
/////////////////////////////////////////////////////////////////////////////////
#pragma once
#include "cafPdmField.h"
#include "cafPdmObject.h"
#include "cafPdmPtrArrayField.h"
#include <QString>
#include <vector>
class RigFault;
class RimFaultInView;
namespace caf
{
class CmdFeatureMenuBuilder;
}
//==================================================================================================
///
//==================================================================================================
class RimFaultDistance : public caf::PdmObject
{
CAF_PDM_HEADER_INIT;
public:
RimFaultDistance();
~RimFaultDistance() override;
QString resultName() const;
void setResultName( const QString& name );
void setSelectedFaults( const std::vector<RimFaultInView*>& faults );
std::vector<const RigFault*> selectedRigFaults() const;
void compute();
protected:
void fieldChangedByUi( const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue ) override;
QList<caf::PdmOptionItemInfo> calculateValueOptions( const caf::PdmFieldHandle* fieldNeedingOptions ) override;
caf::PdmFieldHandle* userDescriptionField() override;
void defineUiOrdering( QString uiConfigName, caf::PdmUiOrdering& uiOrdering ) override;
void defineEditorAttribute( const caf::PdmFieldHandle* field, QString uiConfigName, caf::PdmUiEditorAttribute* attribute ) override;
void appendMenuItems( caf::CmdFeatureMenuBuilder& menuBuilder ) const override;
private:
void removeGeneratedResult( const QString& name );
caf::PdmPtrArrayField<RimFaultInView*> m_faults;
caf::PdmField<QString> m_resultName;
caf::PdmField<bool> m_generateButton;
};