QTime Column::Private::timeAt(int row) const { return dateTimeAt(row).time(); }
QDate Column::Private::dateAt(int row) const { return dateTimeAt(row).date(); }
QTime String2DateTimeFilter::timeAt(int row) const { return dateTimeAt(row).time(); }
/** * \brief Save the column as XML */ void Column::save(QXmlStreamWriter* writer) const { writer->writeStartElement("column"); writeBasicAttributes(writer); writer->writeAttribute("mode", QString::number(columnMode())); writer->writeAttribute("width", QString::number(width())); //save the formula used to generate column values, if available if (!formula().isEmpty() ) { writer->writeStartElement("formula"); writer->writeTextElement("text", formula()); writer->writeStartElement("variableNames"); for (int i=0; i<formulaVariableNames().size(); ++i) { writer->writeTextElement("name", formulaVariableNames().at(i)); } writer->writeEndElement(); writer->writeStartElement("columnPathes"); for (int i=0; i<formulaVariableColumnPathes().size(); ++i) { writer->writeTextElement("path", formulaVariableColumnPathes().at(i)); } writer->writeEndElement(); writer->writeEndElement(); } writeCommentElement(writer); writer->writeStartElement("input_filter"); m_column_private->inputFilter()->save(writer); writer->writeEndElement(); writer->writeStartElement("output_filter"); m_column_private->outputFilter()->save(writer); writer->writeEndElement(); //TODO: formula in cells is not implemented yet // XmlWriteMask(writer); // QList< Interval<int> > formulas = formulaIntervals(); // foreach(const Interval<int>& interval, formulas) { // writer->writeStartElement("formula"); // writer->writeAttribute("start_row", QString::number(interval.start())); // writer->writeAttribute("end_row", QString::number(interval.end())); // writer->writeCharacters(formula(interval.start())); // writer->writeEndElement(); // } int i; switch(columnMode()) { case AbstractColumn::Numeric: { const char* data = reinterpret_cast<const char*>( static_cast< QVector<double>* >(m_column_private->dataPointer())->constData()); int size = m_column_private->rowCount()*sizeof(double); writer->writeCharacters(QByteArray::fromRawData(data,size).toBase64()); break; } case AbstractColumn::Text: for(i=0; i<rowCount(); ++i) { writer->writeStartElement("row"); writer->writeAttribute("index", QString::number(i)); writer->writeCharacters(textAt(i)); writer->writeEndElement(); } break; case AbstractColumn::DateTime: case AbstractColumn::Month: case AbstractColumn::Day: for(i=0; i<rowCount(); ++i) { writer->writeStartElement("row"); writer->writeAttribute("index", QString::number(i)); writer->writeCharacters(dateTimeAt(i).toString("yyyy-dd-MM hh:mm:ss:zzz")); writer->writeEndElement(); } break; } writer->writeEndElement(); // "column" }
QDate String2DateTimeFilter::dateAt(int row) const { return dateTimeAt(row).date(); }