mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
#1633 Updating options for which wells to include in export to depend on whether a wellPathCollection or WellPaths have been chosen. Also fixing last-save directory to remain at the directory last used.
This commit is contained in:
@@ -34,6 +34,8 @@ namespace caf
|
||||
{
|
||||
addItem(RicExportCompletionDataSettingsUi::ALL_WELLS, "ALL_WELLS", "All Wells");
|
||||
addItem(RicExportCompletionDataSettingsUi::CHECKED_WELLS, "CHECKED_WELLS", "Checked Wells");
|
||||
addItem(RicExportCompletionDataSettingsUi::SELECTED_WELLS, "SELECTED_WELLS", "Selected Wells");
|
||||
addItem(RicExportCompletionDataSettingsUi::CHECKED_AND_SELECTED_WELLS, "CHECKED_AND_SELECTED_WELLS", "Checked and Selected Wells");
|
||||
setDefault(RicExportCompletionDataSettingsUi::ALL_WELLS);
|
||||
}
|
||||
|
||||
@@ -53,6 +55,13 @@ CAF_PDM_SOURCE_INIT(RicExportCompletionDataSettingsUi, "RicExportCompletionDataS
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RicExportCompletionDataSettingsUi::RicExportCompletionDataSettingsUi()
|
||||
{
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RicExportCompletionDataSettingsUi::RicExportCompletionDataSettingsUi(bool onlyWellPathCollectionSelected)
|
||||
{
|
||||
CAF_PDM_InitObject("RimExportCompletionDataSettings", "", "", "");
|
||||
|
||||
@@ -66,6 +75,8 @@ RicExportCompletionDataSettingsUi::RicExportCompletionDataSettingsUi()
|
||||
CAF_PDM_InitField(&includeFishbones, "IncludeFishbones", true, "Include Fishbones", "", "", "");
|
||||
|
||||
CAF_PDM_InitField(&excludeMainBoreForFishbones, "ExcludeMainBoreForFishbones", false, "Exclude Main Bore Transmissibility For Fishbones", "", "", "");
|
||||
m_onlyWellPathCollectionSelected = onlyWellPathCollectionSelected;
|
||||
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@@ -88,6 +99,19 @@ QList<caf::PdmOptionItemInfo> RicExportCompletionDataSettingsUi::calculateValueO
|
||||
options.push_back(caf::PdmOptionItemInfo(timeStepNames[i], i));
|
||||
}
|
||||
}
|
||||
else if (fieldNeedingOptions == &wellSelection)
|
||||
{
|
||||
if (m_onlyWellPathCollectionSelected)
|
||||
{
|
||||
options.push_back(caf::PdmOptionItemInfo("All Wells", ALL_WELLS));
|
||||
options.push_back(caf::PdmOptionItemInfo("Checked Wells", CHECKED_WELLS));
|
||||
}
|
||||
else
|
||||
{
|
||||
options.push_back(caf::PdmOptionItemInfo("Selected Wells", SELECTED_WELLS));
|
||||
options.push_back(caf::PdmOptionItemInfo("Selected and Checked Wells", CHECKED_AND_SELECTED_WELLS));
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
options = RicCaseAndFileExportSettingsUi::calculateValueOptions(fieldNeedingOptions, useOptionsOnly);
|
||||
@@ -100,12 +124,15 @@ QList<caf::PdmOptionItemInfo> RicExportCompletionDataSettingsUi::calculateValueO
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RicExportCompletionDataSettingsUi::defineUiOrdering(QString uiConfigName, caf::PdmUiOrdering& uiOrdering)
|
||||
{
|
||||
|
||||
caf::PdmUiGroup* generalExportSettings = uiOrdering.addNewGroup("General Export Settings");
|
||||
generalExportSettings->add(&folder);
|
||||
generalExportSettings->add(&caseToApply);
|
||||
generalExportSettings->add(&timeStep);
|
||||
generalExportSettings->add(&compdatExport);
|
||||
|
||||
generalExportSettings->add(&wellSelection);
|
||||
if(!m_onlyWellPathCollectionSelected) wellSelection.setValue(SELECTED_WELLS);
|
||||
|
||||
generalExportSettings->add(&fileSplit);
|
||||
|
||||
|
||||
@@ -115,4 +142,5 @@ void RicExportCompletionDataSettingsUi::defineUiOrdering(QString uiConfigName, c
|
||||
|
||||
caf::PdmUiGroup* perfIntervalGroup = uiOrdering.addNewGroup("Export of Perforation Completions");
|
||||
perfIntervalGroup->add(&includePerforations);
|
||||
perfIntervalGroup->add(&timeStep);
|
||||
}
|
||||
|
||||
@@ -41,6 +41,8 @@ public:
|
||||
enum WellSelection {
|
||||
ALL_WELLS,
|
||||
CHECKED_WELLS,
|
||||
SELECTED_WELLS,
|
||||
CHECKED_AND_SELECTED_WELLS
|
||||
};
|
||||
typedef caf::AppEnum<WellSelection> WellSelectionType;
|
||||
|
||||
@@ -52,6 +54,7 @@ public:
|
||||
|
||||
|
||||
RicExportCompletionDataSettingsUi();
|
||||
RicExportCompletionDataSettingsUi(bool onlyWellPathCollectionSelected);
|
||||
|
||||
|
||||
caf::PdmField<ExportSplitType> fileSplit;
|
||||
@@ -73,4 +76,7 @@ protected:
|
||||
|
||||
virtual void defineUiOrdering(QString uiConfigName, caf::PdmUiOrdering& uiOrdering) override;
|
||||
|
||||
private:
|
||||
bool m_onlyWellPathCollectionSelected;
|
||||
|
||||
};
|
||||
|
||||
@@ -79,8 +79,10 @@ void RicWellPathExportCompletionDataFeature::onActionTriggered(bool isChecked)
|
||||
|
||||
QString projectFolder = app->currentProjectPath();
|
||||
QString defaultDir = RiaApplication::instance()->lastUsedDialogDirectoryWithFallback("COMPLETIONS", projectFolder);
|
||||
|
||||
bool onlyWellPathCollectionSelected = noWellPathsSelectedDirectly();
|
||||
|
||||
RicExportCompletionDataSettingsUi exportSettings;
|
||||
RicExportCompletionDataSettingsUi exportSettings(onlyWellPathCollectionSelected);
|
||||
std::vector<RimCase*> cases;
|
||||
app->project()->allCases(cases);
|
||||
for (auto c : cases)
|
||||
@@ -98,7 +100,7 @@ void RicWellPathExportCompletionDataFeature::onActionTriggered(bool isChecked)
|
||||
caf::PdmUiPropertyViewDialog propertyDialog(RiuMainWindow::instance(), &exportSettings, "Export Completion Data", "");
|
||||
if (propertyDialog.exec() == QDialog::Accepted)
|
||||
{
|
||||
RiaApplication::instance()->setLastUsedDialogDirectory("COMPLETIONS", QFileInfo(exportSettings.folder).absolutePath());
|
||||
RiaApplication::instance()->setLastUsedDialogDirectory("COMPLETIONS", exportSettings.folder);
|
||||
|
||||
exportCompletions(wellPaths, exportSettings);
|
||||
}
|
||||
@@ -136,6 +138,18 @@ std::vector<RimWellPath*> RicWellPathExportCompletionDataFeature::selectedWellPa
|
||||
return wellPaths;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
bool RicWellPathExportCompletionDataFeature::noWellPathsSelectedDirectly()
|
||||
{
|
||||
std::vector<RimWellPath*> wellPaths;
|
||||
caf::SelectionManager::instance()->objectsByType(&wellPaths);
|
||||
|
||||
if (wellPaths.empty()) return true;
|
||||
else return false;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@@ -150,11 +164,13 @@ void RicWellPathExportCompletionDataFeature::exportCompletions(const std::vector
|
||||
}
|
||||
|
||||
std::vector<RimWellPath*> usedWellPaths;
|
||||
if (exportSettings.wellSelection == RicExportCompletionDataSettingsUi::ALL_WELLS)
|
||||
if (exportSettings.wellSelection == RicExportCompletionDataSettingsUi::ALL_WELLS
|
||||
|| exportSettings.wellSelection == RicExportCompletionDataSettingsUi::SELECTED_WELLS)
|
||||
{
|
||||
usedWellPaths = wellPaths;
|
||||
}
|
||||
else if (exportSettings.wellSelection == RicExportCompletionDataSettingsUi::CHECKED_WELLS)
|
||||
else if (exportSettings.wellSelection == RicExportCompletionDataSettingsUi::CHECKED_WELLS
|
||||
|| exportSettings.wellSelection == RicExportCompletionDataSettingsUi::CHECKED_AND_SELECTED_WELLS)
|
||||
{
|
||||
for (auto wellPath : wellPaths)
|
||||
{
|
||||
|
||||
@@ -126,6 +126,7 @@ protected:
|
||||
virtual void setupActionLook(QAction* actionToSetup) override;
|
||||
|
||||
std::vector<RimWellPath*> selectedWellPaths();
|
||||
bool noWellPathsSelectedDirectly();
|
||||
|
||||
public:
|
||||
static std::vector<WellSegmentLocation> findWellSegmentLocations(const RimEclipseCase* caseToApply, const RimWellPath* wellPath);
|
||||
|
||||
Reference in New Issue
Block a user