#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;
if (!sumCaseColl) return false;
RicSummaryCaseRestartDialogResult result = RicSummaryCaseRestartDialog::openDialog(fileName);
RicSummaryCaseRestartDialogResult result = RicSummaryCaseRestartDialog::openDialog(fileName, false);
if (result.ok)
{

View File

@ -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<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();
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;
}

View File

@ -22,6 +22,8 @@
#include <QString>
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

View File

@ -37,6 +37,7 @@
#include <QLabel>
#include <QLineEdit>
#include <QTextEdit>
#include <QCheckBox>
#include <QDialogButtonBox>
#include <QPushButton>
#include <QRadioButton>
@ -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<RifRestartFileInfo> 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();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------

View File

@ -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;
};