OpenLexocad  27.1
PropertyDateTime.h
Go to the documentation of this file.
1 #pragma once
2 #include <QDateTime>
3 #include <string>
4 
5 #include "Core/Property.h"
6 #include "Core/Variant.h"
7 
8 namespace Core
9 {
10 class LX_CORE_EXPORT PropertyDateTime : public Core::Property
11 {
13 
14 public:
15  PropertyDateTime(void);
16  virtual ~PropertyDateTime(void);
17 
18  void setValue(const QDateTime& t);
19  bool setValueFromVariant(const Core::Variant& value);
20  void copyValue(Core::Property* p);
21 
22  const QDateTime& getValue() const;
23  Core::Variant getVariant(void) const;
24 
25  virtual void save(Base::AbstractWriter& writer, Base::PersistenceVersion& save_version);
26  virtual bool createSQL(Base::AbstractWriter& writer, Base::PersistenceVersion& save_version, bool data) override;
27  virtual void restore(Base::AbstractXMLReader& reader, Base::PersistenceVersion& version);
28  virtual bool isEqual(const Property*) const;
29  virtual Core::Property* copy(void) const override;
30  virtual void paste(const Core::Property& from) override;
31 
32 
33 protected:
34  QDateTime _datetime;
35 };
36 
37 class LX_CORE_EXPORT PropertyDateTimeList : public Core::Property
38 {
40 
41 public:
43  virtual ~PropertyDateTimeList();
44 
45  void setValue(const std::list<QDateTime>& dtlist);
46  bool setValueFromVariant(const Core::Variant& value);
47  void copyValue(Core::Property* p);
48 
49  void addDateTime(const QDateTime& t);
50  void setEmpty();
51  bool isEmpty() const;
52 
53  const std::list<QDateTime>& getValue() const;
54 
55  Core::Variant getVariant(void) const { return Core::Variant(_dateTimeList); }
56 
57  virtual void save(Base::AbstractWriter& writer, Base::PersistenceVersion& save_version);
58  virtual void restore(Base::AbstractXMLReader& reader, Base::PersistenceVersion& version);
59  virtual bool isEqual(const Property*) const;
60  virtual Core::Property* copy(void) const override;
61  virtual void paste(const Core::Property& from) override;
62 
63 protected:
65 };
66 
67 DECLARE_PROPERTY_FACTORY(PropertyDateTime_Factory, Core::PropertyDateTime);
68 DECLARE_PROPERTY_FACTORY(PropertyDateTimeList_Factory, Core::PropertyDateTimeList);
69 
70 
71 } // namespace Core
Definition: Persistence.h:14
QDateTime _datetime
Definition: PropertyDateTime.h:34
LX_CORE_EXPORT Version & version
Definition: Variant.h:87
Definition: AbstractXMLReader.h:7
Definition: Base.h:12
Core::Variant getVariant(void) const
Definition: PropertyDateTime.h:55
std::list< QDateTime > _dateTimeList
Definition: PropertyDateTime.h:64
Definition: Writer.h:16
Definition: Property.h:77
Definition: PropertyDateTime.h:37
Definition: PropertyDateTime.h:10
TYPESYSTEM_HEADER()
DECLARE_PROPERTY_FACTORY(PropertyAxis1_Factory, Core::PropertyAxis1)