mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-09 23:16:00 -06:00
ASCII import dialog. Update preview when cell separator is modified
This commit is contained in:
parent
fb63647457
commit
e53059e2c8
@ -89,6 +89,20 @@ RicPasteAsciiDataToSummaryPlotFeatureUi::CellSeparator mapCellSeparator(const QS
|
||||
return RicPasteAsciiDataToSummaryPlotFeatureUi::CELL_TAB;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
QString mapCellSeparator(RicPasteAsciiDataToSummaryPlotFeatureUi::CellSeparator cellSep)
|
||||
{
|
||||
switch (cellSep)
|
||||
{
|
||||
case RicPasteAsciiDataToSummaryPlotFeatureUi::CELL_COMMA: return ",";
|
||||
case RicPasteAsciiDataToSummaryPlotFeatureUi::CELL_SEMICOLON: return ";";
|
||||
case RicPasteAsciiDataToSummaryPlotFeatureUi::CELL_TAB: return "\t";
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@ -188,21 +202,7 @@ const AsciiDataParseOptions RicPasteAsciiDataToSummaryPlotFeatureUi::parseOption
|
||||
|
||||
parseOptions.timeSeriesColumnName = m_timeSeriesColumnName();
|
||||
|
||||
{
|
||||
switch (m_cellSeparator())
|
||||
{
|
||||
case CELL_COMMA:
|
||||
parseOptions.cellSeparator = ",";
|
||||
break;
|
||||
case CELL_SEMICOLON:
|
||||
parseOptions.cellSeparator = ";";
|
||||
break;
|
||||
case CELL_TAB:
|
||||
default:
|
||||
parseOptions.cellSeparator = "\t";
|
||||
break;
|
||||
}
|
||||
}
|
||||
parseOptions.cellSeparator = mapCellSeparator(m_cellSeparator());
|
||||
|
||||
parseOptions.curveLineStyle = m_curveLineStyle();
|
||||
parseOptions.curveSymbol = m_curveSymbol();
|
||||
@ -318,6 +318,17 @@ void RicPasteAsciiDataToSummaryPlotFeatureUi::defineEditorAttribute(const caf::P
|
||||
}
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RicPasteAsciiDataToSummaryPlotFeatureUi::fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue)
|
||||
{
|
||||
if (changedField == &m_cellSeparator)
|
||||
{
|
||||
m_previewText = m_parser->previewText(PREVIEW_TEXT_LINE_COUNT, mapCellSeparator(m_cellSeparator()));
|
||||
}
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@ -337,5 +348,5 @@ void RicPasteAsciiDataToSummaryPlotFeatureUi::initialize(RifCsvUserDataParser* p
|
||||
m_timeSeriesColumnName = QString::fromStdString(parser->tableData().columnInfos()[0].summaryAddress.quantityName());
|
||||
}
|
||||
|
||||
m_previewText = parser->previewText(PREVIEW_TEXT_LINE_COUNT);
|
||||
m_previewText = parser->previewText(PREVIEW_TEXT_LINE_COUNT, cellSep);
|
||||
}
|
||||
|
@ -126,6 +126,7 @@ protected:
|
||||
virtual void defineUiOrdering(QString uiConfigName, caf::PdmUiOrdering& uiOrdering) override;
|
||||
virtual QList<caf::PdmOptionItemInfo> calculateValueOptions(const caf::PdmFieldHandle* fieldNeedingOptions, bool* useOptionsOnly) override;
|
||||
virtual void defineEditorAttribute(const caf::PdmFieldHandle* field, QString uiConfigName, caf::PdmUiEditorAttribute* attribute) override;
|
||||
virtual void fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue);
|
||||
|
||||
private:
|
||||
void initialize(RifCsvUserDataParser* parser);
|
||||
|
@ -97,7 +97,7 @@ bool RifCsvUserDataParser::parseColumnInfo(const QString& cellSeparator)
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
QString RifCsvUserDataParser::previewText(int lineCount)
|
||||
QString RifCsvUserDataParser::previewText(int lineCount, const QString& cellSeparator)
|
||||
{
|
||||
QTextStream *stream = openDataStream();
|
||||
|
||||
@ -118,7 +118,7 @@ QString RifCsvUserDataParser::previewText(int lineCount)
|
||||
iLine++;
|
||||
}
|
||||
closeDataStream();
|
||||
return columnifyText(preview);
|
||||
return columnifyText(preview, cellSeparator);
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@ -291,16 +291,15 @@ bool RifCsvUserDataParser::parseData(const AsciiDataParseOptions& parseOptions)
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
QString RifCsvUserDataParser::columnifyText(const QString& text)
|
||||
QString RifCsvUserDataParser::columnifyText(const QString& text, const QString& cellSeparator)
|
||||
{
|
||||
QString pretty = text;
|
||||
|
||||
QString cellSep = tryDetermineCellSeparator();
|
||||
if (!cellSep.isEmpty())
|
||||
if (!cellSeparator.isEmpty())
|
||||
{
|
||||
if (cellSep == ";" || cellSep == ",")
|
||||
if (cellSeparator == ";" || cellSeparator == ",")
|
||||
{
|
||||
pretty = pretty.replace(cellSep, QString("\t") + cellSep);
|
||||
pretty = pretty.replace(cellSeparator, QString("\t") + cellSeparator);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -48,7 +48,7 @@ public:
|
||||
const ColumnInfo* columnInfo(size_t columnIndex) const;
|
||||
|
||||
bool parseColumnInfo(const QString& cellSeparator);
|
||||
QString previewText(int lineCount);
|
||||
QString previewText(int lineCount, const QString& cellSeparator);
|
||||
|
||||
QString tryDetermineCellSeparator();
|
||||
|
||||
@ -61,7 +61,7 @@ private:
|
||||
const QString& cellSeparator,
|
||||
std::vector<ColumnInfo>* columnInfoList);
|
||||
bool parseData(const AsciiDataParseOptions& parseOptions);
|
||||
QString columnifyText(const QString& text);
|
||||
QString columnifyText(const QString& text, const QString& cellSeparator);
|
||||
static QStringList splitLineAndTrim(const QString& line, const QString& separator);
|
||||
static QDateTime tryParseDateTime(const std::string& colData, const QString& format);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user