#2555 Add applyToAll checkbox

This commit is contained in:
Bjørn Erik Jensen 2018-03-16 09:02:28 +01:00
parent f98dc2fe5e
commit 8889bdf6d4
5 changed files with 50 additions and 14 deletions

View File

@ -99,7 +99,7 @@ bool RicImportSummaryCaseFeature::createAndAddSummaryCaseFromFile(const QString&
RimSummaryCaseMainCollection* sumCaseColl = proj->activeOilField() ? proj->activeOilField()->summaryCaseMainCollection() : nullptr; RimSummaryCaseMainCollection* sumCaseColl = proj->activeOilField() ? proj->activeOilField()->summaryCaseMainCollection() : nullptr;
if (!sumCaseColl) return false; if (!sumCaseColl) return false;
RicSummaryCaseRestartDialogResult result = RicSummaryCaseRestartDialog::openDialog(fileName); RicSummaryCaseRestartDialogResult result = RicSummaryCaseRestartDialog::openDialog(fileName, false);
if (result.ok) if (result.ok)
{ {

View File

@ -76,9 +76,10 @@ void RicImportSummaryCasesFeature::onActionTriggered(bool isChecked)
RimSummaryCaseMainCollection* sumCaseColl = proj->activeOilField() ? proj->activeOilField()->summaryCaseMainCollection() : nullptr; RimSummaryCaseMainCollection* sumCaseColl = proj->activeOilField() ? proj->activeOilField()->summaryCaseMainCollection() : nullptr;
if (!sumCaseColl) return; if (!sumCaseColl) return;
RicSummaryCaseRestartDialogResult savedDialogResult;
for (auto f : fileNames) for (auto f : fileNames)
{ {
RicImportSummaryCasesFeature::createAndAddSummaryCaseFromFile(f); RicImportSummaryCasesFeature::createAndAddSummaryCaseFromFile(f, &savedDialogResult);
} }
std::vector<RimCase*> cases; std::vector<RimCase*> 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(); RiaApplication* app = RiaApplication::instance();
RimProject* proj = app->project(); RimProject* proj = app->project();
RimSummaryCaseMainCollection* sumCaseColl = proj->activeOilField() ? proj->activeOilField()->summaryCaseMainCollection() : nullptr; RimSummaryCaseMainCollection* sumCaseColl = proj->activeOilField() ? proj->activeOilField()->summaryCaseMainCollection() : nullptr;
if (!sumCaseColl) return false; 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) if (result.ok)
{ {
@ -125,6 +128,8 @@ bool RicImportSummaryCasesFeature::createAndAddSummaryCaseFromFile(const QString
} }
app->addToRecentFiles(fileName); app->addToRecentFiles(fileName);
*savedDialogResult = result;
} }
return true; return true;
} }

View File

@ -22,6 +22,8 @@
#include <QString> #include <QString>
class RicSummaryCaseRestartDialogResult;
//================================================================================================== //==================================================================================================
/// ///
//================================================================================================== //==================================================================================================
@ -32,7 +34,7 @@ class RicImportSummaryCasesFeature : public caf::CmdFeature
public: public:
RicImportSummaryCasesFeature() : m_pathFilter("*"), m_fileNameFilter("*") { } RicImportSummaryCasesFeature() : m_pathFilter("*"), m_fileNameFilter("*") { }
static bool createAndAddSummaryCaseFromFile(const QString& fileName); static bool createAndAddSummaryCaseFromFile(const QString& fileName, RicSummaryCaseRestartDialogResult *lastResult);
protected: protected:
// Overrides // Overrides

View File

@ -37,6 +37,7 @@
#include <QLabel> #include <QLabel>
#include <QLineEdit> #include <QLineEdit>
#include <QTextEdit> #include <QTextEdit>
#include <QCheckBox>
#include <QDialogButtonBox> #include <QDialogButtonBox>
#include <QPushButton> #include <QPushButton>
#include <QRadioButton> #include <QRadioButton>
@ -68,6 +69,7 @@ RicSummaryCaseRestartDialog::RicSummaryCaseRestartDialog(QWidget* parent)
m_readAllRadioButton = new QRadioButton(this); m_readAllRadioButton = new QRadioButton(this);
m_notReadRadionButton = new QRadioButton(this); m_notReadRadionButton = new QRadioButton(this);
m_separateCasesRadionButton = new QRadioButton(this); m_separateCasesRadionButton = new QRadioButton(this);
m_applyToAllCheckBox = new QCheckBox(this);
m_buttons = new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel); m_buttons = new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel);
@ -79,7 +81,8 @@ RicSummaryCaseRestartDialog::RicSummaryCaseRestartDialog(QWidget* parent)
m_readAllRadioButton->setText("Import All Restart Files"); m_readAllRadioButton->setText("Import All Restart Files");
m_notReadRadionButton->setText("Do Not Import Restart Files"); m_notReadRadionButton->setText("Do Not Import Restart Files");
m_separateCasesRadionButton->setText("Import Restart Files as Separate Cases"); m_separateCasesRadionButton->setText("Import Restart Files as Separate Cases");
m_applyToAllCheckBox->setText("Apply to All Files");
// Define layout // Define layout
QVBoxLayout* dialogLayout = new QVBoxLayout(); QVBoxLayout* dialogLayout = new QVBoxLayout();
@ -99,10 +102,14 @@ RicSummaryCaseRestartDialog::RicSummaryCaseRestartDialog(QWidget* parent)
optionsLayout->addWidget(m_separateCasesRadionButton); optionsLayout->addWidget(m_separateCasesRadionButton);
optionsGroup->setLayout(optionsLayout); optionsGroup->setLayout(optionsLayout);
QHBoxLayout* buttonsLayout = new QHBoxLayout();
buttonsLayout->addWidget(m_applyToAllCheckBox);
buttonsLayout->addWidget(m_buttons);
dialogLayout->addWidget(currentFileGroup); dialogLayout->addWidget(currentFileGroup);
dialogLayout->addWidget(filesGroup); dialogLayout->addWidget(filesGroup);
dialogLayout->addWidget(optionsGroup); dialogLayout->addWidget(optionsGroup);
dialogLayout->addWidget(m_buttons); dialogLayout->addLayout(buttonsLayout);
setLayout(dialogLayout); 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); RicSummaryCaseRestartDialog dialog(parent);
dialog.setWindowTitle("Summary Case Restart Files"); dialog.setWindowTitle("Summary Case Restart Files");
dialog.m_readAllRadioButton->setChecked(true); dialog.m_readAllRadioButton->setChecked(true);
dialog.m_currentFile->setText(summaryHeaderFile); dialog.m_currentFile->setText(summaryHeaderFile);
dialog.m_applyToAllCheckBox->setVisible(showApplyToAllWidget);
std::vector<RifRestartFileInfo> files = dialog.getRestartFiles(summaryHeaderFile); std::vector<RifRestartFileInfo> files = dialog.getRestartFiles(summaryHeaderFile);
for (const auto& file : files) for (const auto& file : files)
@ -134,13 +144,13 @@ RicSummaryCaseRestartDialogResult RicSummaryCaseRestartDialog::openDialog(const
// If no restart files are found, do not show dialog // If no restart files are found, do not show dialog
if (files.empty()) if (files.empty())
{ {
return RicSummaryCaseRestartDialogResult(true, READ_ALL); return RicSummaryCaseRestartDialogResult(true, READ_ALL, false);
} }
dialog.resize(DEFAULT_DIALOG_WIDTH, DEFAULT_DIALOG_INIT_HEIGHT); dialog.resize(DEFAULT_DIALOG_WIDTH, DEFAULT_DIALOG_INIT_HEIGHT);
dialog.exec(); 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; READ_ALL;
} }
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
bool RicSummaryCaseRestartDialog::applyToAllSelected() const
{
return m_applyToAllCheckBox->isChecked();
}
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
/// ///
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------

View File

@ -35,6 +35,7 @@ class QPushButton;
class QMainWindow; class QMainWindow;
class QListWidget; class QListWidget;
class QGridLayout; class QGridLayout;
class QCheckBox;
class RicSummaryCaseRestartDialogResult; class RicSummaryCaseRestartDialogResult;
//================================================================================================== //==================================================================================================
@ -50,9 +51,12 @@ public:
RicSummaryCaseRestartDialog(QWidget* parent); RicSummaryCaseRestartDialog(QWidget* parent);
~RicSummaryCaseRestartDialog(); ~RicSummaryCaseRestartDialog();
static RicSummaryCaseRestartDialogResult openDialog(const QString& summaryHeaderFile, QWidget *parent = nullptr); static RicSummaryCaseRestartDialogResult openDialog(const QString& summaryHeaderFile,
bool showApplyToAllWidget,
QWidget *parent = nullptr);
ReadOptions selectedOption() const; ReadOptions selectedOption() const;
bool applyToAllSelected() const;
private: private:
void appendToFileList(const RifRestartFileInfo& fileInfo); void appendToFileList(const RifRestartFileInfo& fileInfo);
@ -71,6 +75,7 @@ private:
QRadioButton* m_notReadRadionButton; QRadioButton* m_notReadRadionButton;
QRadioButton* m_separateCasesRadionButton; QRadioButton* m_separateCasesRadionButton;
QCheckBox* m_applyToAllCheckBox;
QDialogButtonBox* m_buttons; QDialogButtonBox* m_buttons;
}; };
@ -81,10 +86,16 @@ private:
class RicSummaryCaseRestartDialogResult class RicSummaryCaseRestartDialogResult
{ {
public: public:
RicSummaryCaseRestartDialogResult(bool ok, RicSummaryCaseRestartDialogResult() :
RicSummaryCaseRestartDialog::ReadOptions option) : ok(false), option(RicSummaryCaseRestartDialog::READ_ALL), applyToAll(false) {}
ok(ok), option(option) {}
RicSummaryCaseRestartDialogResult(bool _ok,
RicSummaryCaseRestartDialog::ReadOptions _option,
bool _applyToAll) :
ok(_ok), option(_option), applyToAll(_applyToAll) {
}
bool ok; bool ok;
RicSummaryCaseRestartDialog::ReadOptions option; RicSummaryCaseRestartDialog::ReadOptions option;
bool applyToAll;
}; };