swift
loginmode.h
Go to the documentation of this file.
1 // SPDX-FileCopyrightText: Copyright (C) 2019 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_NETWORK_LOGINMODE_H
7 #define SWIFT_MISC_NETWORK_LOGINMODE_H
8 
9 #include "misc/swiftmiscexport.h"
10 #include "misc/valueobject.h"
11 
12 SWIFT_DECLARE_VALUEOBJECT_MIXINS(swift::misc::network, CLoginMode)
13 
14 namespace swift::misc::network
15 {
17  class SWIFT_MISC_EXPORT CLoginMode : public CValueObject<CLoginMode>
18  {
19  public:
21  enum LoginMode
22  {
25  };
26 
28  CLoginMode() = default;
29 
31  CLoginMode(LoginMode mode) : m_loginMode(mode) {}
32 
34  bool isPilot() const { return m_loginMode == Pilot; }
35 
37  bool isObserver() const { return m_loginMode == Observer; }
38 
40  LoginMode getLoginMode() const { return m_loginMode; }
41 
43  void setLoginMode(LoginMode mode) { m_loginMode = mode; }
44 
46  QString convertToQString(bool i18n = false) const;
47 
48  private:
49  LoginMode m_loginMode = Pilot;
50 
52  CLoginMode,
53  SWIFT_METAMEMBER(loginMode));
54  };
55 } // namespace swift::misc::network
56 
57 Q_DECLARE_METATYPE(swift::misc::network::CLoginMode)
58 
59 #endif // SWIFT_MISC_NETWORK_LOGINMODE_H
Mix of the most commonly used mixin classes.
Definition: valueobject.h:114
Value object encapsulating information about login mode.
Definition: loginmode.h:18
LoginMode getLoginMode() const
Get login mode.
Definition: loginmode.h:40
CLoginMode(LoginMode mode)
Constructor.
Definition: loginmode.h:31
bool isObserver() const
Is login as observer?
Definition: loginmode.h:37
@ Observer
Login as observer.
Definition: loginmode.h:24
bool isPilot() const
Is login as pilot?
Definition: loginmode.h:34
void setLoginMode(LoginMode mode)
Set login mode.
Definition: loginmode.h:43
CLoginMode()=default
Default constructor.
#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
#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