swift
callsignset.cpp
1 // SPDX-FileCopyrightText: Copyright (C) 2013 swift Project Community / Contributors
2 // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-swift-pilot-client-1
3 
5 
6 #include <QDBusMetaType>
7 #include <QString>
8 
9 #include "misc/containerbase.h"
10 
11 SWIFT_DEFINE_COLLECTION_MIXINS(swift::misc::aviation, CCallsign, CCallsignSet)
12 
13 namespace swift::misc::aviation
14 {
16  {
17  for (const QString &c : callsigns)
18  {
19  if (c.isEmpty()) { continue; }
20  const CCallsign cs = CCallsign(c, typeHint);
21  this->push_back(cs);
22  }
23  }
24 
26  {
27  if (callsign.isEmpty()) { return; }
28  this->push_back(callsign);
29  }
30 
32 
33  bool CCallsignSet::containsCallsign(const QString &callsign) const { return this->contains(CCallsign(callsign)); }
34 
36  {
37  QStringList callsigns;
38  for (const CCallsign &cs : *this) { callsigns.push_back(cs.asString()); }
39  if (sorted) { callsigns.sort(); }
40  return callsigns;
41  }
42 
43  QString CCallsignSet::getCallsignsAsString(bool sorted, const QString &separator) const
44  {
45  if (this->isEmpty()) { return {}; }
46  return this->getCallsignStrings(sorted).join(separator);
47  }
48 
50  {
51  qRegisterMetaType<swift::misc::CSequence<CCallsign>>();
52  qDBusRegisterMetaType<swift::misc::CSequence<CCallsign>>();
53  qRegisterMetaType<swift::misc::CCollection<CCallsign>>();
54  qDBusRegisterMetaType<swift::misc::CCollection<CCallsign>>();
55  qRegisterMetaType<CCallsignSet>();
56  qDBusRegisterMetaType<CCallsignSet>();
57  registerMetaValueType<CCallsignSet>();
58  }
59 } // namespace swift::misc::aviation
bool isEmpty() const
Synonym for empty.
Definition: collection.h:191
iterator push_back(const CCallsign &value)
Synonym for insert.
Definition: collection.h:238
bool contains(const T &object) const
Return true if there is an element equal to given object. Uses the most efficient implementation avai...
Definition: range.h:109
Value object encapsulating information of a callsign.
Definition: callsign.h:30
const QString & asString() const
Get callsign (normalized)
Definition: callsign.h:96
TypeHint
Representing what.
Definition: callsign.h:44
bool isEmpty() const
Is empty?
Definition: callsign.h:63
static void registerMetadata()
Register metadata.
Definition: callsignset.cpp:49
QStringList getCallsignStrings(bool sorted=false) const
The callsign strings.
Definition: callsignset.cpp:35
QString getCallsignsAsString(bool sorted=false, const QString &separator=", ") const
Callsigns as string.
Definition: callsignset.cpp:43
CCallsignSet()=default
Default constructor.
bool containsCallsign(const QString &callsign) const
Contains by string.
Definition: callsignset.cpp:33
#define SWIFT_DEFINE_COLLECTION_MIXINS(Namespace, T, Set)
Explicit template definition of mixins for a CCollection subclass.
Definition: collection.h:63
void push_back(QList< T >::parameter_type value)
QString join(QChar separator) const const
void sort(Qt::CaseSensitivity cs)