QGIS API Documentation  3.12.1-BucureČ™ti (121cc00ff0)
qgsmeshtimesettings.cpp
Go to the documentation of this file.
1 /***************************************************************************
2  qgsmeshtimesettings.cpp
3 -- ---------------------
4  begin : March 2019
5  copyright : (C) 2019 by Peter Petrik
6  email : zilolv at gmail dot com
7  ***************************************************************************/
8 
9 /***************************************************************************
10  * *
11  * This program is free software; you can redistribute it and/or modify *
12  * it under the terms of the GNU General Public License as published by *
13  * the Free Software Foundation; either version 2 of the License, or *
14  * (at your option) any later version. *
15  * *
16  ***************************************************************************/
17 
18 #include "qgsmeshtimesettings.h"
19 
21 
22 QgsMeshTimeSettings::QgsMeshTimeSettings( double relativeTimeOffsetHours, const QString &relativeTimeFormat )
23  : mUseAbsoluteTime( false )
24  , mRelativeTimeOffsetHours( relativeTimeOffsetHours )
25  , mRelativeTimeFormat( relativeTimeFormat )
26 {}
27 
29  : mUseAbsoluteTime( true )
30  , mAbsoluteTimeReferenceTime( absoluteTimeReferenceTime )
31  , mAbsoluteTimeFormat( absoluteTimeFormat )
32 {}
33 
34 QDomElement QgsMeshTimeSettings::writeXml( QDomDocument &doc, const QgsReadWriteContext &context ) const
35 {
36  Q_UNUSED( context )
37  QDomElement elem = doc.createElement( QStringLiteral( "mesh-time-settings" ) );
38  elem.setAttribute( QStringLiteral( "use-absolute-time" ), mUseAbsoluteTime ? QStringLiteral( "1" ) : QStringLiteral( "0" ) );
39  elem.setAttribute( QStringLiteral( "relative-time-offset-hours" ), mRelativeTimeOffsetHours );
40  elem.setAttribute( QStringLiteral( "relative-time-format" ), mRelativeTimeFormat );
41  elem.setAttribute( QStringLiteral( "absolute-time-reference-time" ), mAbsoluteTimeReferenceTime.toString() );
42  elem.setAttribute( QStringLiteral( "absolute-time-format" ), mAbsoluteTimeFormat );
43  elem.setAttribute( QStringLiteral( "provider-time-unit" ), mProviderTimeUnit );
44  return elem;
45 }
46 
47 void QgsMeshTimeSettings::readXml( const QDomElement &elem, const QgsReadWriteContext &context )
48 {
49  Q_UNUSED( context )
50  mUseAbsoluteTime = elem.attribute( QStringLiteral( "use-absolute-time" ) ).toInt(); //bool
51  mRelativeTimeOffsetHours = elem.attribute( QStringLiteral( "relative-time-offset-hours" ) ).toDouble();
52  mRelativeTimeFormat = elem.attribute( QStringLiteral( "relative-time-format" ) );
53  mAbsoluteTimeReferenceTime = QDateTime::fromString( elem.attribute( QStringLiteral( "absolute-time-reference-time" ) ) );
54  mAbsoluteTimeFormat = elem.attribute( QStringLiteral( "absolute-time-format" ) );
55  mProviderTimeUnit = static_cast<QgsMeshTimeSettings::TimeUnit>( elem.attribute( QStringLiteral( "provider-time-unit" ) ).toInt() );
56 }
57 
59 {
60  return mUseAbsoluteTime;
61 }
62 
64 {
65  mUseAbsoluteTime = useAbsoluteTime;
66 }
67 
68 
70 {
71  return mRelativeTimeOffsetHours;
72 }
73 
75 {
76  mRelativeTimeOffsetHours = relativeTimeOffsetHours;
77 }
78 
80 {
81  return mDatasetPlaybackIntervalSec;
82 }
83 
85 {
86  mDatasetPlaybackIntervalSec = seconds;
87 }
88 
90 {
91  return mRelativeTimeFormat;
92 }
93 
95 {
96  mRelativeTimeFormat = relativeTimeFormat;
97 }
98 
100 {
101  return mAbsoluteTimeReferenceTime;
102 }
103 
105 {
106  mAbsoluteTimeReferenceTime = absoluteTimeReferenceTime;
107 }
108 
110 {
111  return mAbsoluteTimeFormat;
112 }
113 
115 {
116  mAbsoluteTimeFormat = absoluteTimeFormat;
117 }
118 
120 {
121  return mProviderTimeUnit;
122 }
123 
125 {
126  mProviderTimeUnit = providerTimeUnit;
127 }
void setRelativeTimeFormat(const QString &relativeTimeFormat)
Sets format used for relative time.
The class is used as a container of context for various read/write operations on other objects...
void setUseAbsoluteTime(bool useAbsoluteTime)
Sets use absolute time flag.
void readXml(const QDomElement &elem, const QgsReadWriteContext &context)
Reads configuration from the given DOM element.
TimeUnit providerTimeUnit() const
Returns the provider time unit.
TimeUnit
Time units used to display time.
void setAbsoluteTimeFormat(const QString &absoluteTimeFormat)
Sets format used for absolute time.
double relativeTimeOffsetHours() const
Returns number of offset hours for relative time formatting.
void setDatasetPlaybackInterval(double seconds)
Sets number of seconds used as interval for dataset playback.
QString absoluteTimeFormat() const
Returns format used for absolute time.
void setRelativeTimeOffsetHours(double relativeTimeOffsetHours)
Sets number of offset hours for relative time formatting.
bool useAbsoluteTime() const
Returns whether to use absolute time format.
void setProviderTimeUnit(const TimeUnit &providerTimeUnit)
Sets the provider time unit.
QDateTime absoluteTimeReferenceTime() const
Returns reference time used for absolute time format.
void setAbsoluteTimeReferenceTime(const QDateTime &absoluteTimeReferenceTime)
Sets reference time used for absolute time format.
QDomElement writeXml(QDomDocument &doc, const QgsReadWriteContext &context) const
Writes configuration to a new DOM element.
double datasetPlaybackInterval() const
Returns number of seconds used as interval for dataset playback.
QString relativeTimeFormat() const
Returns format used for relative time.