1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
|
/***************************************************************************
File : DateTime2StringFilter.cpp
Project : SciDAVis
--------------------------------------------------------------------
Copyright : (C) 2007 by Tilman Benkert,
Knut Franke
Email (use @ for *) : thzs*gmx.net, knut.franke*gmx.de
Description : Conversion filter QDateTime -> QString.
***************************************************************************/
/***************************************************************************
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
* *
* This program is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU General Public License for more details. *
* *
* You should have received a copy of the GNU General Public License *
* along with this program; if not, write to the Free Software *
* Foundation, Inc., 51 Franklin Street, Fifth Floor, *
* Boston, MA 02110-1301 USA *
* *
***************************************************************************/
#include "DateTime2StringFilter.h"
#include "lib/XmlStreamReader.h"
#include <QXmlStreamWriter>
void DateTime2StringFilter::setFormat(const QString& format)
{
exec(new DateTime2StringFilterSetFormatCmd(static_cast<DateTime2StringFilter*>(this), format));
}
DateTime2StringFilterSetFormatCmd::DateTime2StringFilterSetFormatCmd(DateTime2StringFilter* target, const QString &new_format)
: d_target(target), d_other_format(new_format)
{
if(d_target->parentAspect())
setText(QObject::tr("%1: set date-time format to %2").arg(d_target->parentAspect()->name()).arg(new_format));
else
setText(QObject::tr("set date-time format to %1").arg(new_format));
}
void DateTime2StringFilterSetFormatCmd::redo()
{
QString tmp = d_target->d_format;
d_target->d_format = d_other_format;
d_other_format = tmp;
emit d_target->formatChanged();
}
void DateTime2StringFilterSetFormatCmd::undo()
{
redo();
}
void DateTime2StringFilter::writeExtraAttributes(QXmlStreamWriter * writer) const
{
writer->writeAttribute("format", format());
}
bool DateTime2StringFilter::load(XmlStreamReader * reader)
{
QXmlStreamAttributes attribs = reader->attributes();
QString str = attribs.value(reader->namespaceUri().toString(), "format").toString();
if (AbstractSimpleFilter::load(reader))
setFormat(str);
else
return false;
return !reader->hasError();
}
|