swift
crashinfo.h
Go to the documentation of this file.
1 // SPDX-FileCopyrightText: Copyright (C) 2018 swift Project Community / Contributors
2 // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-swift-pilot-client-1
3 
5 
6 #ifndef SWIFT_MISC_CRASHINFO_H
7 #define SWIFT_MISC_CRASHINFO_H
8 
9 #include <QString>
10 
11 #include "misc/valueobject.h"
12 
14 
15 namespace swift::misc
16 {
20  class SWIFT_MISC_EXPORT CCrashInfo : public CValueObject<CCrashInfo>
21  {
22  public:
25  {
26  IndexUserName = CPropertyIndexRef::GlobalIndexCCrashInfo,
27  IndexInfo,
28  IndexSimulatorString,
29  IndexFlightNetworkInfo
30  };
31 
33  CCrashInfo() = default;
34 
36  const QString &getUserName() const { return m_userName; }
37 
39  void setUserName(const QString &userName) { m_userName = userName; }
40 
42  bool hasInfo() const { return !m_info.isEmpty(); }
43 
45  const QString &getInfo() const { return m_info; }
46 
48  void setInfo(const QString &info) { m_info = info; }
49 
51  const QString &getSimulatorString() const { return m_simulatorString; }
52 
54  void setSimulatorString(const QString &simString) { m_simulatorString = simString; }
55 
57  const QString &getFlightNetworkString() const { return m_flightNetwork; }
58 
60  void setFlightNetworkString(const QString &network) { m_flightNetwork = network; }
61 
63  void appendInfo(const QString &extraInfo);
64 
66  void setLogPathAndFileName(const QString &fileName);
67 
69  QString convertToQString(bool i18n = false) const;
70 
72  QVariant propertyByIndex(CPropertyIndexRef index) const;
73 
75  void setPropertyByIndex(CPropertyIndexRef index, const QVariant &variant);
76 
78  int comparePropertyByIndex(CPropertyIndexRef index, const CCrashInfo &compareValue) const;
79 
81  void triggerWritingFile() const;
82 
84  bool writeToFile() const;
85 
87  QString summary() const;
88 
89  private:
90  QString m_userName;
91  QString m_info;
92  QString m_simulatorString;
93  QString m_flightNetwork;
94  QString m_logFileAndPath;
95 
97  CCrashInfo,
98  SWIFT_METAMEMBER(userName),
99  SWIFT_METAMEMBER(info),
100  SWIFT_METAMEMBER(simulatorString),
101  SWIFT_METAMEMBER(flightNetwork),
102  SWIFT_METAMEMBER(logFileAndPath));
103  };
104 } // namespace swift::misc
105 
106 Q_DECLARE_METATYPE(swift::misc::CCrashInfo)
107 
108 #endif // SWIFT_MISC_CRASHINFO_H
const QString & getSimulatorString() const
Simulator string.
Definition: crashinfo.h:51
void setFlightNetworkString(const QString &network)
Network string.
Definition: crashinfo.h:60
bool hasInfo() const
Any info available?
Definition: crashinfo.h:42
const QString & getUserName() const
Get user name.
Definition: crashinfo.h:36
void setUserName(const QString &userName)
User name.
Definition: crashinfo.h:39
CCrashInfo()=default
Default constructor.
const QString & getFlightNetworkString() const
Network string.
Definition: crashinfo.h:57
void setSimulatorString(const QString &simString)
Simulator string.
Definition: crashinfo.h:54
ColumnIndex
Properties by index.
Definition: crashinfo.h:25
void setInfo(const QString &info)
Set info.
Definition: crashinfo.h:48
const QString & getInfo() const
Get the info.
Definition: crashinfo.h:45
Non-owning reference to a CPropertyIndex with a subset of its features.
Mix of the most commonly used mixin classes.
Definition: valueobject.h:114
#define SWIFT_METAMEMBER(MEMBER,...)
Macro to define an element within a metaclass.
Definition: metaclass.h:73
#define SWIFT_METACLASS(CLASS,...)
Macro to define a nested metaclass that describes the attributes of its enclosing class.
Definition: metaclass.h:53
Free functions in swift::misc.
#define SWIFT_MISC_EXPORT
Export a class or function from the library.
#define SWIFT_DECLARE_VALUEOBJECT_MIXINS(Namespace, Class)
Explicit template declaration of mixins for a CValueObject subclass to be placed near the top of the ...
Definition: valueobject.h:65