///////////////////////////////////////////////////////////////////////////////// // // 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 // for more details. // ///////////////////////////////////////////////////////////////////////////////// #include "RicImportWellFormationsFeature.h" #include "RiaApplication.h" #include "RiaGuiApplication.h" #include "Formations/RimWellFormationsCollection.h" #include "Formations/RimWellFormationsFile.h" #include "RimOilField.h" #include "RimProject.h" #include "RiuFileDialogTools.h" #include "RiuPlotMainWindowTools.h" #include #include CAF_CMD_SOURCE_INIT( RicImportWellFormationsFeature, "RicImportWellFormationsFeature" ); //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- void RicImportWellFormationsFeature::onActionTriggered( bool isChecked ) { std::vector importedFiles = importFilesWithDialog(); if ( !importedFiles.empty() ) { // Well formations are shown in the plot window data sources tree RiuPlotMainWindowTools::onObjectAppended( importedFiles.back(), importedFiles.back()->firstAncestorOrThisOfType() ); } } //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- std::vector RicImportWellFormationsFeature::importFilesWithDialog() { RiaApplication* app = RiaApplication::instance(); QString defaultDir = app->lastUsedDialogDirectory( "WELLPATHFORMATIONS_DIR" ); QStringList filePaths = RiuFileDialogTools::getOpenFileNames( RiaGuiApplication::widgetToUseAsParent(), "Import Well Formations", defaultDir, "Well Formations (*.csv);;All Files (*.*)" ); if ( filePaths.empty() ) return {}; // Remember the path for next time app->setLastUsedDialogDirectory( "WELLPATHFORMATIONS_DIR", QFileInfo( filePaths.last() ).absolutePath() ); RimProject* project = RimProject::current(); if ( !project || !project->activeOilField() ) return {}; RimWellFormationsCollection* collection = project->activeOilField()->wellFormationsCollection(); if ( !collection ) return {}; std::vector importedFiles = collection->importFiles( filePaths ); collection->updateConnectedEditors(); return importedFiles; } //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- void RicImportWellFormationsFeature::setupActionLook( QAction* actionToSetup ) { actionToSetup->setIcon( QIcon( ":/Formations16x16.png" ) ); actionToSetup->setText( "Import Well Formations..." ); }