A SMSPEC file without a UNSMRY data file is re-read on every request for a summary vector, since RifReaderEclipseSummary::open returns false and no reader is cached. For an ensemble with multiple realizations missing UNSMRY, this is a severe performance problem.
Guard RifReaderEclipseSummary::open so that when no ESMRY, h5 or resdata data file is present, it returns true and creates a valid but empty reader. Skip ESMRY conversion when no UNSMRY is present, and add RifEclipseSummaryTools::hasSummaryDataFiles to detect the missing data file.
Refactors restart file name retrieval to use preferences for reader mode.
Simplifies logic by removing separate OPM-specific retrieval methods, and
instead uses a unified method that dynamically selects the appropriate
reader based on user preferences.
Adds fallback mechanism to read restart file paths from SMSPEC files when
the RESTART keyword is missing in ESMRY files generated by ResInsight.
Corrects path handling for restart files by adjusting paths relative to the
header file.
Improves the handling of summary vector names by splitting the name and suffix (e.g., difference or history identifier) into separate components.
Make sure the stepping works the same way both for "Step Next" and "Step Next and Add Plot"
Do not show the extension H for available summery vectors in toolbar for source stepping. Make sure that curves with "NAME"H and "NAME"_DIFF will be modified when the summary vector "NAME" is changed.
Testing identified performance issues related to reading restart file name from summary files.
Make sure the reading of timesteps is done only when required in new function getFileInfoAndTimeSteps.
Add reading of restart file name using opm-common when opm-common is active. The performance of this reader is much better than resdata.
* Avoid ambiguous definition during unity build on Windows
* Add missing include
* Add Qt6 to expressionparser
* Add Qt6 to nightcharts
* Replace forward define of QStringList with include <QStringList>
* Use toMSecsSinceEpoch
* Use setContentsMargins
* Use one common variable for object name, use three ints
* Move enums to separate file
* Refactor use of enums
* Move implementation to cpp
* Refactor includes