From b461b2f6e02a0d296792d1d0c07a85818f057a38 Mon Sep 17 00:00:00 2001 From: Magne Sjaastad Date: Wed, 10 Oct 2018 11:52:58 +0200 Subject: [PATCH] #3483 SetExportFolder : Add support for creating folders --- .../RicfSetExportFolder.cpp | 34 +++++++++++++++---- .../RicfSetExportFolder.h | 9 ++--- 2 files changed, 32 insertions(+), 11 deletions(-) diff --git a/ApplicationCode/CommandFileInterface/RicfSetExportFolder.cpp b/ApplicationCode/CommandFileInterface/RicfSetExportFolder.cpp index 7f74c3bdaa..f3d1040d12 100644 --- a/ApplicationCode/CommandFileInterface/RicfSetExportFolder.cpp +++ b/ApplicationCode/CommandFileInterface/RicfSetExportFolder.cpp @@ -1,18 +1,17 @@ -#include "RicfSetExportFolder.h" ///////////////////////////////////////////////////////////////////////////////// // // 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 +// +// See the GNU General Public License at // for more details. // ///////////////////////////////////////////////////////////////////////////////// @@ -20,23 +19,44 @@ #include "RicfSetExportFolder.h" #include "RiaApplication.h" +#include "RiaLogging.h" + +#include CAF_PDM_SOURCE_INIT(RicfSetExportFolder, "setExportFolder"); //-------------------------------------------------------------------------------------------------- -/// +/// //-------------------------------------------------------------------------------------------------- RicfSetExportFolder::RicfSetExportFolder() { + // clang-format off RICF_InitField(&m_type, "type", RicfCommandFileExecutor::ExportTypeEnum(RicfCommandFileExecutor::COMPLETIONS), "Type", "", "", ""); RICF_InitField(&m_path, "path", QString(), "Path", "", "", ""); + RICF_InitField(&m_createFolder, "createFolder", false, "Create Folder", "", "", ""); + // clang-format on } //-------------------------------------------------------------------------------------------------- -/// +/// //-------------------------------------------------------------------------------------------------- void RicfSetExportFolder::execute() { + if (m_createFolder) + { + QDir dir; + + if (!dir.exists(m_path)) + { + dir.mkdir(m_path); + + if (!dir.exists(m_path)) + { + RiaLogging::error("Could not create folder : " + m_path); + } + } + } + RicfCommandFileExecutor* executor = RicfCommandFileExecutor::instance(); executor->setExportPath(m_type(), m_path); } diff --git a/ApplicationCode/CommandFileInterface/RicfSetExportFolder.h b/ApplicationCode/CommandFileInterface/RicfSetExportFolder.h index a42fd51c6a..1882c42863 100644 --- a/ApplicationCode/CommandFileInterface/RicfSetExportFolder.h +++ b/ApplicationCode/CommandFileInterface/RicfSetExportFolder.h @@ -1,17 +1,17 @@ ///////////////////////////////////////////////////////////////////////////////// // // 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 +// +// See the GNU General Public License at // for more details. // ///////////////////////////////////////////////////////////////////////////////// @@ -41,4 +41,5 @@ public: private: caf::PdmField m_type; caf::PdmField m_path; + caf::PdmField m_createFolder; };