예제 #1
0
QTime Column::Private::timeAt(int row) const
{
    return dateTimeAt(row).time();
}
예제 #2
0
QDate Column::Private::dateAt(int row) const
{
    return dateTimeAt(row).date();
}
예제 #3
0
QTime String2DateTimeFilter::timeAt(int row) const {
	return dateTimeAt(row).time();
}
예제 #4
0
파일: Column.cpp 프로젝트: KDE/labplot
/**
 * \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"
}
예제 #5
0
QDate String2DateTimeFilter::dateAt(int row) const {
	return dateTimeAt(row).date();
}