From 8889bdf6d4ac6fbcafe33fc0416abdbe607064f6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B8rn=20Erik=20Jensen?= Date: Fri, 16 Mar 2018 09:02:28 +0100 Subject: [PATCH] #2555 Add applyToAll checkbox --- .../Commands/RicImportSummaryCaseFeature.cpp | 2 +- .../Commands/RicImportSummaryCasesFeature.cpp | 11 ++++++-- .../Commands/RicImportSummaryCasesFeature.h | 4 ++- .../Commands/RicSummaryCaseRestartDialog.cpp | 28 +++++++++++++++---- .../Commands/RicSummaryCaseRestartDialog.h | 19 ++++++++++--- 5 files changed, 50 insertions(+), 14 deletions(-) diff --git a/ApplicationCode/Commands/RicImportSummaryCaseFeature.cpp b/ApplicationCode/Commands/RicImportSummaryCaseFeature.cpp index fdff26c6af..8656bac68b 100644 --- a/ApplicationCode/Commands/RicImportSummaryCaseFeature.cpp +++ b/ApplicationCode/Commands/RicImportSummaryCaseFeature.cpp @@ -99,7 +99,7 @@ bool RicImportSummaryCaseFeature::createAndAddSummaryCaseFromFile(const QString& RimSummaryCaseMainCollection* sumCaseColl = proj->activeOilField() ? proj->activeOilField()->summaryCaseMainCollection() : nullptr; if (!sumCaseColl) return false; - RicSummaryCaseRestartDialogResult result = RicSummaryCaseRestartDialog::openDialog(fileName); + RicSummaryCaseRestartDialogResult result = RicSummaryCaseRestartDialog::openDialog(fileName, false); if (result.ok) { diff --git a/ApplicationCode/Commands/RicImportSummaryCasesFeature.cpp b/ApplicationCode/Commands/RicImportSummaryCasesFeature.cpp index 61ff285c14..557d669827 100644 --- a/ApplicationCode/Commands/RicImportSummaryCasesFeature.cpp +++ b/ApplicationCode/Commands/RicImportSummaryCasesFeature.cpp @@ -76,9 +76,10 @@ void RicImportSummaryCasesFeature::onActionTriggered(bool isChecked) RimSummaryCaseMainCollection* sumCaseColl = proj->activeOilField() ? proj->activeOilField()->summaryCaseMainCollection() : nullptr; if (!sumCaseColl) return; + RicSummaryCaseRestartDialogResult savedDialogResult; for (auto f : fileNames) { - RicImportSummaryCasesFeature::createAndAddSummaryCaseFromFile(f); + RicImportSummaryCasesFeature::createAndAddSummaryCaseFromFile(f, &savedDialogResult); } std::vector cases; @@ -102,14 +103,16 @@ void RicImportSummaryCasesFeature::setupActionLook(QAction* actionToSetup) //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- -bool RicImportSummaryCasesFeature::createAndAddSummaryCaseFromFile(const QString& fileName) +bool RicImportSummaryCasesFeature::createAndAddSummaryCaseFromFile(const QString& fileName, RicSummaryCaseRestartDialogResult *savedDialogResult) { RiaApplication* app = RiaApplication::instance(); RimProject* proj = app->project(); RimSummaryCaseMainCollection* sumCaseColl = proj->activeOilField() ? proj->activeOilField()->summaryCaseMainCollection() : nullptr; if (!sumCaseColl) return false; - RicSummaryCaseRestartDialogResult result = RicSummaryCaseRestartDialog::openDialog(fileName); + RicSummaryCaseRestartDialogResult result; + if (savedDialogResult->applyToAll) result = *savedDialogResult; + else result = RicSummaryCaseRestartDialog::openDialog(fileName, true); if (result.ok) { @@ -125,6 +128,8 @@ bool RicImportSummaryCasesFeature::createAndAddSummaryCaseFromFile(const QString } app->addToRecentFiles(fileName); + + *savedDialogResult = result; } return true; } diff --git a/ApplicationCode/Commands/RicImportSummaryCasesFeature.h b/ApplicationCode/Commands/RicImportSummaryCasesFeature.h index 3f40088646..0f14501d59 100644 --- a/ApplicationCode/Commands/RicImportSummaryCasesFeature.h +++ b/ApplicationCode/Commands/RicImportSummaryCasesFeature.h @@ -22,6 +22,8 @@ #include +class RicSummaryCaseRestartDialogResult; + //================================================================================================== /// //================================================================================================== @@ -32,7 +34,7 @@ class RicImportSummaryCasesFeature : public caf::CmdFeature public: RicImportSummaryCasesFeature() : m_pathFilter("*"), m_fileNameFilter("*") { } - static bool createAndAddSummaryCaseFromFile(const QString& fileName); + static bool createAndAddSummaryCaseFromFile(const QString& fileName, RicSummaryCaseRestartDialogResult *lastResult); protected: // Overrides diff --git a/ApplicationCode/Commands/RicSummaryCaseRestartDialog.cpp b/ApplicationCode/Commands/RicSummaryCaseRestartDialog.cpp index 7770f8ff28..db8c5f2abe 100644 --- a/ApplicationCode/Commands/RicSummaryCaseRestartDialog.cpp +++ b/ApplicationCode/Commands/RicSummaryCaseRestartDialog.cpp @@ -37,6 +37,7 @@ #include #include #include +#include #include #include #include @@ -68,6 +69,7 @@ RicSummaryCaseRestartDialog::RicSummaryCaseRestartDialog(QWidget* parent) m_readAllRadioButton = new QRadioButton(this); m_notReadRadionButton = new QRadioButton(this); m_separateCasesRadionButton = new QRadioButton(this); + m_applyToAllCheckBox = new QCheckBox(this); m_buttons = new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel); @@ -79,7 +81,8 @@ RicSummaryCaseRestartDialog::RicSummaryCaseRestartDialog(QWidget* parent) m_readAllRadioButton->setText("Import All Restart Files"); m_notReadRadionButton->setText("Do Not Import Restart Files"); m_separateCasesRadionButton->setText("Import Restart Files as Separate Cases"); - + m_applyToAllCheckBox->setText("Apply to All Files"); + // Define layout QVBoxLayout* dialogLayout = new QVBoxLayout(); @@ -99,10 +102,14 @@ RicSummaryCaseRestartDialog::RicSummaryCaseRestartDialog(QWidget* parent) optionsLayout->addWidget(m_separateCasesRadionButton); optionsGroup->setLayout(optionsLayout); + QHBoxLayout* buttonsLayout = new QHBoxLayout(); + buttonsLayout->addWidget(m_applyToAllCheckBox); + buttonsLayout->addWidget(m_buttons); + dialogLayout->addWidget(currentFileGroup); dialogLayout->addWidget(filesGroup); dialogLayout->addWidget(optionsGroup); - dialogLayout->addWidget(m_buttons); + dialogLayout->addLayout(buttonsLayout); setLayout(dialogLayout); } @@ -117,13 +124,16 @@ RicSummaryCaseRestartDialog::~RicSummaryCaseRestartDialog() //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- -RicSummaryCaseRestartDialogResult RicSummaryCaseRestartDialog::openDialog(const QString& summaryHeaderFile, QWidget *parent) +RicSummaryCaseRestartDialogResult RicSummaryCaseRestartDialog::openDialog(const QString& summaryHeaderFile, + bool showApplyToAllWidget, + QWidget *parent) { RicSummaryCaseRestartDialog dialog(parent); dialog.setWindowTitle("Summary Case Restart Files"); dialog.m_readAllRadioButton->setChecked(true); dialog.m_currentFile->setText(summaryHeaderFile); + dialog.m_applyToAllCheckBox->setVisible(showApplyToAllWidget); std::vector files = dialog.getRestartFiles(summaryHeaderFile); for (const auto& file : files) @@ -134,13 +144,13 @@ RicSummaryCaseRestartDialogResult RicSummaryCaseRestartDialog::openDialog(const // If no restart files are found, do not show dialog if (files.empty()) { - return RicSummaryCaseRestartDialogResult(true, READ_ALL); + return RicSummaryCaseRestartDialogResult(true, READ_ALL, false); } dialog.resize(DEFAULT_DIALOG_WIDTH, DEFAULT_DIALOG_INIT_HEIGHT); dialog.exec(); - return RicSummaryCaseRestartDialogResult(dialog.result() == QDialog::Accepted, dialog.selectedOption()); + return RicSummaryCaseRestartDialogResult(dialog.result() == QDialog::Accepted, dialog.selectedOption(), dialog.applyToAllSelected()); } //-------------------------------------------------------------------------------------------------- @@ -154,6 +164,14 @@ RicSummaryCaseRestartDialog::ReadOptions RicSummaryCaseRestartDialog::selectedOp READ_ALL; } +//-------------------------------------------------------------------------------------------------- +/// +//-------------------------------------------------------------------------------------------------- +bool RicSummaryCaseRestartDialog::applyToAllSelected() const +{ + return m_applyToAllCheckBox->isChecked(); +} + //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- diff --git a/ApplicationCode/Commands/RicSummaryCaseRestartDialog.h b/ApplicationCode/Commands/RicSummaryCaseRestartDialog.h index 821129d1a3..25fef906a3 100644 --- a/ApplicationCode/Commands/RicSummaryCaseRestartDialog.h +++ b/ApplicationCode/Commands/RicSummaryCaseRestartDialog.h @@ -35,6 +35,7 @@ class QPushButton; class QMainWindow; class QListWidget; class QGridLayout; +class QCheckBox; class RicSummaryCaseRestartDialogResult; //================================================================================================== @@ -50,9 +51,12 @@ public: RicSummaryCaseRestartDialog(QWidget* parent); ~RicSummaryCaseRestartDialog(); - static RicSummaryCaseRestartDialogResult openDialog(const QString& summaryHeaderFile, QWidget *parent = nullptr); + static RicSummaryCaseRestartDialogResult openDialog(const QString& summaryHeaderFile, + bool showApplyToAllWidget, + QWidget *parent = nullptr); ReadOptions selectedOption() const; + bool applyToAllSelected() const; private: void appendToFileList(const RifRestartFileInfo& fileInfo); @@ -71,6 +75,7 @@ private: QRadioButton* m_notReadRadionButton; QRadioButton* m_separateCasesRadionButton; + QCheckBox* m_applyToAllCheckBox; QDialogButtonBox* m_buttons; }; @@ -81,10 +86,16 @@ private: class RicSummaryCaseRestartDialogResult { public: - RicSummaryCaseRestartDialogResult(bool ok, - RicSummaryCaseRestartDialog::ReadOptions option) : - ok(ok), option(option) {} + RicSummaryCaseRestartDialogResult() : + ok(false), option(RicSummaryCaseRestartDialog::READ_ALL), applyToAll(false) {} + + RicSummaryCaseRestartDialogResult(bool _ok, + RicSummaryCaseRestartDialog::ReadOptions _option, + bool _applyToAll) : + ok(_ok), option(_option), applyToAll(_applyToAll) { + } bool ok; RicSummaryCaseRestartDialog::ReadOptions option; + bool applyToAll; }; \ No newline at end of file