#2555 Add time period for current file as well

This commit is contained in:
Bjørn Erik Jensen 2018-03-20 13:28:06 +01:00
parent d5bbeffdd0
commit 95a9744241
4 changed files with 49 additions and 25 deletions

View File

@ -66,7 +66,7 @@ RicSummaryCaseRestartDialog::RicSummaryCaseRestartDialog(QWidget* parent)
: QDialog(parent, RiuTools::defaultDialogFlags())
{
// Create widgets
m_currentFile = new QLabel();
m_currentFileGridLayout = new QGridLayout();
m_readAllRadioButton = new QRadioButton(this);
m_notReadRadionButton = new QRadioButton(this);
m_separateCasesRadionButton = new QRadioButton(this);
@ -88,9 +88,8 @@ RicSummaryCaseRestartDialog::RicSummaryCaseRestartDialog(QWidget* parent)
QVBoxLayout* dialogLayout = new QVBoxLayout();
QGroupBox* currentFileGroup = new QGroupBox("Current Summary File");
QVBoxLayout* currentFileLayout = new QVBoxLayout();
currentFileLayout->addWidget(m_currentFile);
currentFileGroup->setLayout(currentFileLayout);
m_currentFileGridLayout = new QGridLayout();
currentFileGroup->setLayout(m_currentFileGridLayout);
QGroupBox* filesGroup = new QGroupBox("Found Restart Files");
m_filesGridLayout = new QGridLayout();
@ -132,10 +131,13 @@ RicSummaryCaseRestartDialogResult RicSummaryCaseRestartDialog::openDialog(const
{
RicSummaryCaseRestartDialog dialog(parent);
RifRestartFileInfo currentFileInfo = dialog.getFileInfo(summaryHeaderFile);
dialog.appendFileInfoToGridLayout(*dialog.m_currentFileGridLayout, currentFileInfo);
std::vector<RifRestartFileInfo> fileInfos = dialog.getRestartFiles(summaryHeaderFile);
for (const auto& fileInfo : fileInfos)
{
dialog.appendToFileList(fileInfo);
dialog.appendFileInfoToGridLayout(*dialog.m_filesGridLayout, fileInfo);
}
// If no restart files are found, do not show dialog
@ -154,7 +156,6 @@ RicSummaryCaseRestartDialogResult RicSummaryCaseRestartDialog::openDialog(const
{
dialog.setWindowTitle("Summary Case Restart Files");
dialog.m_readAllRadioButton->setChecked(true);
dialog.m_currentFile->setText(summaryHeaderFile);
dialog.m_applyToAllCheckBox->setVisible(showApplyToAllWidget);
dialog.resize(DEFAULT_DIALOG_WIDTH, DEFAULT_DIALOG_INIT_HEIGHT);
dialog.exec();
@ -203,13 +204,13 @@ bool RicSummaryCaseRestartDialog::applyToAllSelected() const
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RicSummaryCaseRestartDialog::appendToFileList(const RifRestartFileInfo& fileInfo)
void RicSummaryCaseRestartDialog::appendFileInfoToGridLayout(QGridLayout& gridLayout, const RifRestartFileInfo& fileInfo)
{
QDateTime startDate = QDateTime::fromTime_t(fileInfo.startDate);
QString startDateString = startDate.toString(RimTools::dateFormatString());
QDateTime endDate = QDateTime::fromTime_t(fileInfo.endDate);
QString endDateString = endDate.toString(RimTools::dateFormatString());
int rowCount = m_filesGridLayout->rowCount();
int rowCount = gridLayout.rowCount();
QLabel* fileNameLabel = new QLabel();
QLabel* dateLabel = new QLabel();
@ -217,8 +218,11 @@ void RicSummaryCaseRestartDialog::appendToFileList(const RifRestartFileInfo& fil
dateLabel->setText(startDateString + " - " + endDateString);
fileNameLabel->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred);
m_filesGridLayout->addWidget(fileNameLabel, rowCount, 0);
m_filesGridLayout->addWidget(dateLabel, rowCount, 1);
gridLayout.addWidget(fileNameLabel, rowCount, 0);
gridLayout.addWidget(dateLabel, rowCount, 1);
// Full path in tooltip
fileNameLabel->setToolTip(fileInfo.fileName);
}
//--------------------------------------------------------------------------------------------------
@ -230,6 +234,15 @@ std::vector<RifRestartFileInfo> RicSummaryCaseRestartDialog::getRestartFiles(con
return reader.getRestartFiles(summaryHeaderFile);
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
RifRestartFileInfo RicSummaryCaseRestartDialog::getFileInfo(const QString& summaryHeaderFile)
{
RifReaderEclipseSummary reader;
return reader.getFileInfo(summaryHeaderFile);
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------

View File

@ -60,15 +60,16 @@ public:
bool applyToAllSelected() const;
private:
void appendToFileList(const RifRestartFileInfo& fileInfo);
void appendFileInfoToGridLayout(QGridLayout& gridLayout, const RifRestartFileInfo& fileInfo);
std::vector<RifRestartFileInfo> getRestartFiles(const QString& summaryHeaderFile);
RifRestartFileInfo getFileInfo(const QString& summaryHeaderFile);
private slots:
void slotDialogOkClicked();
void slotDialogCancelClicked();
private:
QLabel* m_currentFile;
QGridLayout* m_currentFileGridLayout;
QGridLayout* m_filesGridLayout;

View File

@ -147,6 +147,24 @@ std::vector<RifRestartFileInfo> RifReaderEclipseSummary::getRestartFiles(const Q
return restartFiles;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
RifRestartFileInfo RifReaderEclipseSummary::getFileInfo(const QString& headerFileName)
{
RifRestartFileInfo fileInfo;
ecl_sum_type* ecl_sum = openEclSum(headerFileName, false);
std::vector<time_t> timeSteps = getTimeSteps(ecl_sum);
if (timeSteps.size() > 0)
{
fileInfo.fileName = headerFileName;
fileInfo.startDate = timeSteps.front();
fileInfo.endDate = timeSteps.back();
}
closeEclSum(ecl_sum);
return fileInfo;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
@ -402,8 +420,6 @@ time_t getStartDate(ecl_file_type * header)
//--------------------------------------------------------------------------------------------------
RifRestartFileInfo RifReaderEclipseSummary::getRestartFile(const QString& headerFileName)
{
RifRestartFileInfo restartFile;
ecl_sum_type* ecl_sum = openEclSum(headerFileName, true);
const ecl_smspec_type* smspec = ecl_sum ? ecl_sum_get_smspec(ecl_sum) : nullptr;
@ -415,21 +431,14 @@ RifRestartFileInfo RifReaderEclipseSummary::getRestartFile(const QString& header
{
QString path = QFileInfo(headerFileName).dir().path();
QString restartBase = QDir(restartCase).dirName();
char* smspec_header = ecl_util_alloc_exfilename(path.toStdString().data(), restartBase.toStdString().data(), ECL_SUMMARY_HEADER_FILE, false /*unformatted*/, 0);
restartFile.fileName = RiaFilePathTools::toInternalSeparator(RiaStringEncodingTools::fromNativeEncoded(smspec_header));
QString restartFileName = RiaFilePathTools::toInternalSeparator(RiaStringEncodingTools::fromNativeEncoded(smspec_header));
util_safe_free(smspec_header);
ecl_sum = openEclSum(headerFileName, false);
std::vector<time_t> timeSteps = getTimeSteps(ecl_sum);
if (timeSteps.size() > 0)
{
restartFile.startDate = timeSteps.front();
restartFile.endDate = timeSteps.back();
}
closeEclSum(ecl_sum);
return getFileInfo(restartFileName);
}
return restartFile;
return RifRestartFileInfo();
}
//--------------------------------------------------------------------------------------------------

View File

@ -57,6 +57,7 @@ public:
bool open(const QString& headerFileName, bool includeRestartFiles);
std::vector<RifRestartFileInfo> getRestartFiles(const QString& headerFileName);
RifRestartFileInfo getFileInfo(const QString& headerFileName);
virtual const std::vector<time_t>& timeSteps(const RifEclipseSummaryAddress& resultAddress) const override;