mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-03-22 14:55:36 +08:00
Formatting, minor tweaks
This commit is contained in:
@@ -601,7 +601,7 @@ namespace BlackCore
|
||||
|
||||
QString CSimulatorCommon::getInvalidSituationLogMessage(const CCallsign &callsign, const CInterpolationStatus &status, const QString &details) const
|
||||
{
|
||||
static const QString msg("Cs: '%1' Interpolation: '%2'");
|
||||
static const QString msg("CS: '%1' Interpolation: '%2'");
|
||||
const QString m = msg.arg(callsign.asString(), status.toQString());
|
||||
if (details.isEmpty()) { return m; }
|
||||
|
||||
|
||||
@@ -24,6 +24,7 @@
|
||||
|
||||
using namespace BlackMisc;
|
||||
using namespace BlackMisc::Aviation;
|
||||
using namespace BlackMisc::PhysicalQuantities;
|
||||
|
||||
namespace BlackGui
|
||||
{
|
||||
@@ -191,22 +192,22 @@ namespace BlackGui
|
||||
if (dateTime.isNull()) return "";
|
||||
if (static_cast<QMetaType::Type>(dateTime.type()) == QMetaType::QDateTime)
|
||||
{
|
||||
QDateTime dt = dateTime.value<QDateTime>();
|
||||
const QDateTime dt = dateTime.value<QDateTime>();
|
||||
return dt.toString(m_formatString);
|
||||
}
|
||||
else if (static_cast<QMetaType::Type>(dateTime.type()) == QMetaType::QDate)
|
||||
{
|
||||
QDate d = dateTime.value<QDate>();
|
||||
const QDate d = dateTime.value<QDate>();
|
||||
return d.toString(m_formatString);
|
||||
}
|
||||
else if (static_cast<QMetaType::Type>(dateTime.type()) == QMetaType::QTime)
|
||||
{
|
||||
QTime t = dateTime.value<QTime>();
|
||||
const QTime t = dateTime.value<QTime>();
|
||||
return t.toString(m_formatString);
|
||||
}
|
||||
else if (dateTime.isIntegral())
|
||||
{
|
||||
QDateTime t = QDateTime::fromMSecsSinceEpoch(dateTime.value<qint64>());
|
||||
const QDateTime t = QDateTime::fromMSecsSinceEpoch(dateTime.value<qint64>());
|
||||
return t.toString(m_formatString);
|
||||
}
|
||||
else
|
||||
@@ -218,33 +219,27 @@ namespace BlackGui
|
||||
|
||||
CVariant CAirspaceDistanceFormatter::displayRole(const CVariant &dataCVariant) const
|
||||
{
|
||||
if (dataCVariant.canConvert<BlackMisc::PhysicalQuantities::CLength>())
|
||||
if (dataCVariant.canConvert<CLength>())
|
||||
{
|
||||
// special treatment for some cases
|
||||
BlackMisc::PhysicalQuantities::CLength l = dataCVariant.value<BlackMisc::PhysicalQuantities::CLength>();
|
||||
if (!l.isNull() && (l.isPositiveWithEpsilonConsidered() || l.isZeroEpsilonConsidered()))
|
||||
{
|
||||
return CPhysiqalQuantiyFormatter::displayRole(dataCVariant);
|
||||
}
|
||||
else
|
||||
{
|
||||
return "";
|
||||
}
|
||||
const CLength l = dataCVariant.value<CLength>();
|
||||
const bool valid = !l.isNull() && (l.isPositiveWithEpsilonConsidered() || l.isZeroEpsilonConsidered());
|
||||
return valid ? CPhysiqalQuantiyFormatter::displayRole(dataCVariant) : QStringLiteral("");
|
||||
}
|
||||
else
|
||||
{
|
||||
Q_ASSERT_X(false, "CAirspaceDistanceFormatter::formatQVariant", "No CLength class");
|
||||
return "";
|
||||
return QStringLiteral("");
|
||||
}
|
||||
}
|
||||
|
||||
CVariant CComFrequencyFormatter::displayRole(const CVariant &dataCVariant) const
|
||||
{
|
||||
if (dataCVariant.canConvert<BlackMisc::PhysicalQuantities::CFrequency>())
|
||||
if (dataCVariant.canConvert<CFrequency>())
|
||||
{
|
||||
// speical treatment for some cases
|
||||
BlackMisc::PhysicalQuantities::CFrequency f = dataCVariant.value<BlackMisc::PhysicalQuantities::CFrequency>();
|
||||
if (BlackMisc::Aviation::CComSystem::isValidComFrequency(f))
|
||||
const CFrequency f = dataCVariant.value<CFrequency>();
|
||||
if (CComSystem::isValidComFrequency(f))
|
||||
{
|
||||
return CPhysiqalQuantiyFormatter::displayRole(dataCVariant);
|
||||
}
|
||||
@@ -263,7 +258,7 @@ namespace BlackGui
|
||||
CVariant CSpeedKtsFormatter::displayRole(const CVariant &dataCVariant) const
|
||||
{
|
||||
// special treatment for some cases
|
||||
BlackMisc::PhysicalQuantities::CSpeed s = dataCVariant.value<BlackMisc::PhysicalQuantities::CSpeed>();
|
||||
const CSpeed s = dataCVariant.value<CSpeed>();
|
||||
if (!s.isNull() && (s.isPositiveWithEpsilonConsidered() || s.isZeroEpsilonConsidered()))
|
||||
{
|
||||
return CPhysiqalQuantiyFormatter::displayRole(dataCVariant);
|
||||
|
||||
@@ -83,7 +83,7 @@ namespace BlackGui
|
||||
return QModelIndex();
|
||||
}
|
||||
|
||||
BlackMisc::CPropertyIndex CListModelBaseNonTemplate::columnToPropertyIndex(int column) const
|
||||
CPropertyIndex CListModelBaseNonTemplate::columnToPropertyIndex(int column) const
|
||||
{
|
||||
return m_columns.columnToPropertyIndex(column);
|
||||
}
|
||||
@@ -93,7 +93,7 @@ namespace BlackGui
|
||||
return m_columns.propertyIndexToColumn(propertyIndex);
|
||||
}
|
||||
|
||||
BlackMisc::CPropertyIndex CListModelBaseNonTemplate::modelIndexToPropertyIndex(const QModelIndex &index) const
|
||||
CPropertyIndex CListModelBaseNonTemplate::modelIndexToPropertyIndex(const QModelIndex &index) const
|
||||
{
|
||||
return this->columnToPropertyIndex(index.column());
|
||||
}
|
||||
@@ -104,7 +104,7 @@ namespace BlackGui
|
||||
this->sort(column, order);
|
||||
}
|
||||
|
||||
void CListModelBaseNonTemplate::setSortColumnByPropertyIndex(const BlackMisc::CPropertyIndex &propertyIndex)
|
||||
void CListModelBaseNonTemplate::setSortColumnByPropertyIndex(const CPropertyIndex &propertyIndex)
|
||||
{
|
||||
m_sortColumn = m_columns.propertyIndexToColumn(propertyIndex);
|
||||
}
|
||||
@@ -278,7 +278,7 @@ namespace BlackGui
|
||||
// index, updront checking
|
||||
const int row = index.row();
|
||||
const int col = index.column();
|
||||
const BlackMisc::CPropertyIndex propertyIndex = this->columnToPropertyIndex(col);
|
||||
const CPropertyIndex propertyIndex = this->columnToPropertyIndex(col);
|
||||
if (static_cast<int>(CPropertyIndex::GlobalIndexLineNumber) == propertyIndex.frontCasted<int>())
|
||||
{
|
||||
return QVariant::fromValue(row + 1);
|
||||
@@ -304,7 +304,7 @@ namespace BlackGui
|
||||
|
||||
ObjectType obj = m_container[index.row()];
|
||||
ObjectType currentObject(obj);
|
||||
BlackMisc::CPropertyIndex propertyIndex = this->columnToPropertyIndex(index.column());
|
||||
CPropertyIndex propertyIndex = this->columnToPropertyIndex(index.column());
|
||||
obj.setPropertyByIndex(propertyIndex, value);
|
||||
|
||||
if (obj != currentObject)
|
||||
@@ -393,7 +393,7 @@ namespace BlackGui
|
||||
if (m_modelDestroyed) { return nullptr; }
|
||||
auto sortColumn = this->getSortColumn();
|
||||
auto sortOrder = this->getSortOrder();
|
||||
CWorker *worker = BlackMisc::CWorker::fromTask(this, "ModelSort", [this, container, sortColumn, sortOrder]()
|
||||
CWorker *worker = CWorker::fromTask(this, "ModelSort", [this, container, sortColumn, sortOrder]()
|
||||
{
|
||||
return this->sortContainerByColumn(container, sortColumn, sortOrder);
|
||||
});
|
||||
@@ -675,7 +675,7 @@ namespace BlackGui
|
||||
}
|
||||
|
||||
// this is the only part not really thread safe, but columns do not change so far
|
||||
BlackMisc::CPropertyIndex propertyIndex = m_columns.columnToSortPropertyIndex(column);
|
||||
const CPropertyIndex propertyIndex = m_columns.columnToSortPropertyIndex(column);
|
||||
Q_ASSERT(!propertyIndex.isEmpty());
|
||||
if (propertyIndex.isEmpty())
|
||||
{
|
||||
|
||||
@@ -323,7 +323,7 @@ namespace BlackGui
|
||||
template<class ObjectType>
|
||||
bool compareForModelSort(const ObjectType &a, const ObjectType &b, Qt::SortOrder order, const BlackMisc::CPropertyIndex &index, std::true_type)
|
||||
{
|
||||
int c = a.comparePropertyByIndex(index, b);
|
||||
const int c = a.comparePropertyByIndex(index, b);
|
||||
if (c == 0) { return false; }
|
||||
return (order == Qt::AscendingOrder) ? (c < 0) : (c > 0);
|
||||
}
|
||||
|
||||
@@ -37,20 +37,20 @@ namespace BlackGui
|
||||
|
||||
void CStatusMessageListModel::setMode(CStatusMessageListModel::Mode mode)
|
||||
{
|
||||
this->m_columns.clear();
|
||||
m_columns.clear();
|
||||
switch (mode)
|
||||
{
|
||||
case Detailed:
|
||||
{
|
||||
this->m_columns.addColumn(CColumn("time", CStatusMessage::IndexUtcTimestamp, new CDateTimeFormatter(CDateTimeFormatter::formatHms())));
|
||||
m_columns.addColumn(CColumn("time", CStatusMessage::IndexUtcTimestamp, new CDateTimeFormatter(CDateTimeFormatter::formatHmsz())));
|
||||
CColumn col = CColumn("severity", CStatusMessage::IndexIcon);
|
||||
col.setSortPropertyIndex(CStatusMessage::IndexSeverityAsString);
|
||||
this->m_columns.addColumn(col);
|
||||
this->m_columns.addColumn(CColumn::standardString("message", CStatusMessage::IndexMessage));
|
||||
this->m_columns.addColumn(CColumn::standardString("category", CStatusMessage::IndexCategoryHumanReadableOrTechnicalAsString));
|
||||
m_columns.addColumn(col);
|
||||
m_columns.addColumn(CColumn::standardString("message", CStatusMessage::IndexMessage));
|
||||
m_columns.addColumn(CColumn::standardString("category", CStatusMessage::IndexCategoryHumanReadableOrTechnicalAsString));
|
||||
|
||||
this->m_sortColumn = CStatusMessage::IndexUtcTimestamp;
|
||||
this->m_sortOrder = Qt::DescendingOrder;
|
||||
m_sortColumn = CStatusMessage::IndexUtcTimestamp;
|
||||
m_sortOrder = Qt::DescendingOrder;
|
||||
}
|
||||
break;
|
||||
case Simplified:
|
||||
@@ -58,11 +58,11 @@ namespace BlackGui
|
||||
this->m_columns.addColumn(CColumn("time", CStatusMessage::IndexUtcTimestamp, new CDateTimeFormatter(CDateTimeFormatter::formatHms())));
|
||||
CColumn col = CColumn("severity", CStatusMessage::IndexIcon);
|
||||
col.setSortPropertyIndex(CStatusMessage::IndexSeverityAsString);
|
||||
this->m_columns.addColumn(col);
|
||||
this->m_columns.addColumn(CColumn::standardString("message", CStatusMessage::IndexMessage));
|
||||
m_columns.addColumn(col);
|
||||
m_columns.addColumn(CColumn::standardString("message", CStatusMessage::IndexMessage));
|
||||
|
||||
this->m_sortColumn = CStatusMessage::IndexUtcTimestamp;
|
||||
this->m_sortOrder = Qt::DescendingOrder;
|
||||
m_sortColumn = CStatusMessage::IndexUtcTimestamp;
|
||||
m_sortOrder = Qt::DescendingOrder;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -158,16 +158,11 @@ namespace BlackMisc
|
||||
const ColumnIndex i = index.frontCasted<ColumnIndex>();
|
||||
switch (i)
|
||||
{
|
||||
case IndexCallsignString:
|
||||
return CVariant(this->asString());
|
||||
case IndexCallsignStringAsSet:
|
||||
return CVariant(this->getStringAsSet());
|
||||
case IndexTelephonyDesignator:
|
||||
return CVariant(this->getTelephonyDesignator());
|
||||
case IndexSuffix:
|
||||
return CVariant(this->getSuffix());
|
||||
default:
|
||||
return CValueObject::propertyByIndex(index);
|
||||
case IndexCallsignString: return CVariant(this->asString());
|
||||
case IndexCallsignStringAsSet: return CVariant(this->getStringAsSet());
|
||||
case IndexTelephonyDesignator: return CVariant(this->getTelephonyDesignator());
|
||||
case IndexSuffix: return CVariant(this->getSuffix());
|
||||
default: return CValueObject::propertyByIndex(index);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -177,17 +172,12 @@ namespace BlackMisc
|
||||
const ColumnIndex i = index.frontCasted<ColumnIndex>();
|
||||
switch (i)
|
||||
{
|
||||
case IndexCallsignString:
|
||||
m_callsign = variant.toQString();
|
||||
break;
|
||||
case IndexCallsignStringAsSet:
|
||||
m_callsignAsSet = variant.toQString();
|
||||
break;
|
||||
case IndexTelephonyDesignator:
|
||||
m_telephonyDesignator = variant.toQString();
|
||||
break;
|
||||
case IndexCallsignString: m_callsign = m_callsign = unifyCallsign(variant.toQString()); break;
|
||||
case IndexCallsignStringAsSet: m_callsignAsSet = variant.toQString(); break;
|
||||
case IndexTelephonyDesignator: m_telephonyDesignator = variant.toQString(); break;
|
||||
default:
|
||||
CValueObject::setPropertyByIndex(index, variant);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -197,16 +187,11 @@ namespace BlackMisc
|
||||
const ColumnIndex i = index.frontCasted<ColumnIndex>();
|
||||
switch (i)
|
||||
{
|
||||
case IndexCallsignString:
|
||||
return m_callsign.compare(compareValue.m_callsign, Qt::CaseInsensitive);
|
||||
case IndexCallsignStringAsSet:
|
||||
return m_callsignAsSet.compare(compareValue.m_callsignAsSet, Qt::CaseInsensitive);
|
||||
case IndexTelephonyDesignator:
|
||||
return m_telephonyDesignator.compare(compareValue.m_telephonyDesignator, Qt::CaseInsensitive);
|
||||
case IndexSuffix:
|
||||
return this->getSuffix().compare(compareValue.getSuffix(), Qt::CaseInsensitive);
|
||||
default:
|
||||
break;
|
||||
case IndexCallsignString: return m_callsign.compare(compareValue.m_callsign, Qt::CaseInsensitive);
|
||||
case IndexCallsignStringAsSet: return m_callsignAsSet.compare(compareValue.m_callsignAsSet, Qt::CaseInsensitive);
|
||||
case IndexTelephonyDesignator: return m_telephonyDesignator.compare(compareValue.m_telephonyDesignator, Qt::CaseInsensitive);
|
||||
case IndexSuffix: return this->getSuffix().compare(compareValue.getSuffix(), Qt::CaseInsensitive);
|
||||
default: break;
|
||||
}
|
||||
Q_ASSERT_X(false, Q_FUNC_INFO, "Compare failed");
|
||||
return 0;
|
||||
@@ -216,12 +201,9 @@ namespace BlackMisc
|
||||
{
|
||||
switch (m_typeHint)
|
||||
{
|
||||
case Atc:
|
||||
return isValidAtcCallsign(*this);
|
||||
case Aircraft:
|
||||
return isValidAircraftCallsign(*this);
|
||||
default:
|
||||
return !this->isEmpty();
|
||||
case Atc: return isValidAtcCallsign(*this);
|
||||
case Aircraft: return isValidAircraftCallsign(*this);
|
||||
default: return !this->isEmpty();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -143,19 +143,19 @@ namespace BlackMisc
|
||||
static const QStringList &atcAlikeCallsignSuffixes();
|
||||
|
||||
//! Suffix to icon
|
||||
static const BlackMisc::CIcon &atcSuffixToIcon(const QString &suffix);
|
||||
static const CIcon &atcSuffixToIcon(const QString &suffix);
|
||||
|
||||
//! Representing icon
|
||||
static const CIcon &convertToIcon(const CCallsign &callsign);
|
||||
|
||||
//! \copydoc BlackMisc::Mixin::Icon::toIcon()
|
||||
BlackMisc::CIcon toIcon() const { return convertToIcon(*this); }
|
||||
CIcon toIcon() const { return convertToIcon(*this); }
|
||||
|
||||
//! \copydoc BlackMisc::Mixin::Index::propertyByIndex
|
||||
CVariant propertyByIndex(const BlackMisc::CPropertyIndex &index) const;
|
||||
CVariant propertyByIndex(const CPropertyIndex &index) const;
|
||||
|
||||
//! \copydoc BlackMisc::Mixin::Index::setPropertyByIndex
|
||||
void setPropertyByIndex(const BlackMisc::CPropertyIndex &index, const CVariant &variant);
|
||||
void setPropertyByIndex(const CPropertyIndex &index, const CVariant &variant);
|
||||
|
||||
//! Compare for index
|
||||
int comparePropertyByIndex(const CPropertyIndex &index, const CCallsign &compareValue) const;
|
||||
|
||||
@@ -256,17 +256,13 @@ namespace BlackMisc
|
||||
{
|
||||
return myself<Derived>();
|
||||
}
|
||||
auto i = index.frontCasted<ColumnIndex>();
|
||||
const auto i = index.frontCasted<ColumnIndex>();
|
||||
switch (i)
|
||||
{
|
||||
case IndexIcon:
|
||||
return CVariant::from(derived()->toIcon());
|
||||
case IndexPixmap:
|
||||
return CVariant::from(derived()->toPixmap());
|
||||
case IndexString:
|
||||
return CVariant(derived()->toQString());
|
||||
default:
|
||||
return basePropertyByIndex(static_cast<const TIndexBaseOfT<Derived> *>(derived()), index);
|
||||
case IndexIcon: return CVariant::from(derived()->toIcon());
|
||||
case IndexPixmap: return CVariant::from(derived()->toPixmap());
|
||||
case IndexString: return CVariant(derived()->toQString());
|
||||
default: return basePropertyByIndex(static_cast<const TIndexBaseOfT<Derived> *>(derived()), index);
|
||||
}
|
||||
}
|
||||
template <class Derived>
|
||||
|
||||
@@ -133,42 +133,28 @@ namespace BlackMisc
|
||||
switch (type)
|
||||
{
|
||||
default:
|
||||
case QtDebugMsg:
|
||||
this->m_severity = SeverityDebug;
|
||||
break;
|
||||
case QtInfoMsg:
|
||||
this->m_severity = SeverityInfo;
|
||||
break;
|
||||
case QtWarningMsg:
|
||||
this->m_severity = SeverityWarning;
|
||||
break;
|
||||
case QtDebugMsg: m_severity = SeverityDebug; break;
|
||||
case QtInfoMsg: m_severity = SeverityInfo; break;
|
||||
case QtWarningMsg: m_severity = SeverityWarning; break;
|
||||
case QtCriticalMsg:
|
||||
case QtFatalMsg:
|
||||
this->m_severity = SeverityError;
|
||||
m_severity = SeverityError;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void CStatusMessage::toQtLogTriple(QtMsgType *o_type, QString *o_category, QString *o_message) const
|
||||
{
|
||||
*o_category = this->m_categories.toQString();
|
||||
*o_category = m_categories.toQString();
|
||||
*o_message = this->getMessage();
|
||||
|
||||
switch (this->m_severity)
|
||||
switch (m_severity)
|
||||
{
|
||||
default:
|
||||
case SeverityDebug:
|
||||
*o_type = QtDebugMsg;
|
||||
break;
|
||||
case SeverityInfo:
|
||||
*o_type = QtInfoMsg;
|
||||
break;
|
||||
case SeverityWarning:
|
||||
*o_type = QtWarningMsg;
|
||||
break;
|
||||
case SeverityError:
|
||||
*o_type = QtCriticalMsg;
|
||||
break;
|
||||
case SeverityDebug: *o_type = QtDebugMsg; break;
|
||||
case SeverityInfo: *o_type = QtInfoMsg; break;
|
||||
case SeverityWarning: *o_type = QtWarningMsg; break;
|
||||
case SeverityError: *o_type = QtCriticalMsg; break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -187,7 +173,7 @@ namespace BlackMisc
|
||||
|
||||
QString CStatusMessage::getCategoriesAsString() const
|
||||
{
|
||||
return this->m_categories.toQString();
|
||||
return m_categories.toQString();
|
||||
}
|
||||
|
||||
QString CStatusMessage::getHumanReadablePattern() const
|
||||
@@ -208,7 +194,7 @@ namespace BlackMisc
|
||||
|
||||
QString CStatusMessage::getHumanOrTechnicalCategoriesAsString() const
|
||||
{
|
||||
if (this->m_categories.isEmpty()) { return ""; }
|
||||
if (m_categories.isEmpty()) { return ""; }
|
||||
QString c(getHumanReadablePattern());
|
||||
return c.isEmpty() ? this->getCategoriesAsString() : c;
|
||||
}
|
||||
@@ -238,34 +224,34 @@ namespace BlackMisc
|
||||
void CStatusMessage::prependMessage(const QString &msg)
|
||||
{
|
||||
if (msg.isEmpty()) { return; }
|
||||
this->m_message = msg + this->m_message;
|
||||
m_message = msg + m_message;
|
||||
}
|
||||
|
||||
void CStatusMessage::appendMessage(const QString &msg)
|
||||
{
|
||||
if (msg.isEmpty()) { return; }
|
||||
this->m_message += msg;
|
||||
m_message += msg;
|
||||
}
|
||||
|
||||
void CStatusMessage::markAsHandledBy(const QObject *object) const
|
||||
{
|
||||
QWriteLocker lock(&m_lock);
|
||||
this->m_handledByObjects.push_back(quintptr(object));
|
||||
m_handledByObjects.push_back(quintptr(object));
|
||||
}
|
||||
|
||||
bool CStatusMessage::wasHandledBy(const QObject *object) const
|
||||
{
|
||||
QReadLocker lock(&m_lock);
|
||||
return this->m_handledByObjects.contains(quintptr(object));
|
||||
return m_handledByObjects.contains(quintptr(object));
|
||||
}
|
||||
|
||||
QString CStatusMessage::convertToQString(bool /** i18n */) const
|
||||
{
|
||||
return QLatin1String("Category: ") %
|
||||
this->m_categories.toQString() %
|
||||
m_categories.toQString() %
|
||||
|
||||
QLatin1String(" Severity: ") %
|
||||
severityToString(this->m_severity) %
|
||||
severityToString(m_severity) %
|
||||
|
||||
QLatin1String(" when: ") %
|
||||
this->getFormattedUtcTimestampYmdhms() %
|
||||
@@ -335,30 +321,16 @@ namespace BlackMisc
|
||||
{
|
||||
switch (severity)
|
||||
{
|
||||
case SeverityDebug:
|
||||
{
|
||||
static QString d("debug");
|
||||
return d;
|
||||
}
|
||||
case SeverityInfo:
|
||||
{
|
||||
static QString i("info");
|
||||
return i;
|
||||
}
|
||||
case SeverityWarning:
|
||||
{
|
||||
static QString w("warning");
|
||||
return w;
|
||||
}
|
||||
case SeverityError:
|
||||
{
|
||||
static QString e("error");
|
||||
return e;
|
||||
}
|
||||
case SeverityDebug: { static const QString d("debug"); return d; }
|
||||
case SeverityInfo: { static const QString i("info"); return i; }
|
||||
case SeverityWarning: { static const QString w("warning"); return w; }
|
||||
case SeverityError: { static const QString e("error"); return e; }
|
||||
default:
|
||||
static QString x("unknown severity");
|
||||
qFatal("Unknown severity");
|
||||
return x; // just for compiler warning
|
||||
{
|
||||
static const QString x("unknown severity");
|
||||
qFatal("Unknown severity");
|
||||
return x; // just for compiler warning
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -367,18 +339,9 @@ namespace BlackMisc
|
||||
auto minmax = std::minmax_element(severities.begin(), severities.end());
|
||||
auto min = *minmax.first;
|
||||
auto max = *minmax.second;
|
||||
if (min == SeverityDebug && max == SeverityError)
|
||||
{
|
||||
return "all severities";
|
||||
}
|
||||
if (min == SeverityDebug)
|
||||
{
|
||||
return "at or below " + severityToString(max);
|
||||
}
|
||||
if (max == SeverityError)
|
||||
{
|
||||
return "at or above " + severityToString(min);
|
||||
}
|
||||
if (min == SeverityDebug && max == SeverityError) { static const QString all("all severities"); return all; }
|
||||
if (min == SeverityDebug) { QStringLiteral("at or below ") % severityToString(max); }
|
||||
if (max == SeverityError) { QStringLiteral("at or above ") % severityToString(min); }
|
||||
auto list = severities.toList();
|
||||
std::sort(list.begin(), list.end());
|
||||
QStringList ret;
|
||||
@@ -388,7 +351,7 @@ namespace BlackMisc
|
||||
|
||||
const QString &CStatusMessage::getSeverityAsString() const
|
||||
{
|
||||
return severityToString(this->m_severity);
|
||||
return severityToString(m_severity);
|
||||
}
|
||||
|
||||
const QStringList &CStatusMessage::allSeverityStrings()
|
||||
@@ -397,29 +360,21 @@ namespace BlackMisc
|
||||
return all;
|
||||
}
|
||||
|
||||
CVariant CStatusMessage::propertyByIndex(const BlackMisc::CPropertyIndex &index) const
|
||||
CVariant CStatusMessage::propertyByIndex(const CPropertyIndex &index) const
|
||||
{
|
||||
if (index.isMyself()) { return CVariant::from(*this); }
|
||||
if (ITimestampBased::canHandleIndex(index)) { return ITimestampBased::propertyByIndex(index); }
|
||||
ColumnIndex i = index.frontCasted<ColumnIndex>();
|
||||
const ColumnIndex i = index.frontCasted<ColumnIndex>();
|
||||
switch (i)
|
||||
{
|
||||
case IndexMessage:
|
||||
return CVariant::from(this->getMessage());
|
||||
case IndexSeverity:
|
||||
return CVariant::from(this->m_severity);
|
||||
case IndexSeverityAsString:
|
||||
return CVariant::from(this->getSeverityAsString());
|
||||
case IndexCategoriesAsString:
|
||||
return CVariant::from(this->m_categories.toQString());
|
||||
case IndexCategoriesHumanReadableAsString:
|
||||
return CVariant::from(this->getHumanReadablePattern());
|
||||
case IndexCategoryHumanReadableOrTechnicalAsString:
|
||||
return CVariant::from(this->getHumanOrTechnicalCategoriesAsString());
|
||||
case IndexMessageAsHtml:
|
||||
return CVariant::from(this->toHtml());
|
||||
default:
|
||||
return CValueObject::propertyByIndex(index);
|
||||
case IndexMessage: return CVariant::from(this->getMessage());
|
||||
case IndexSeverity: return CVariant::from(m_severity);
|
||||
case IndexSeverityAsString: return CVariant::from(this->getSeverityAsString());
|
||||
case IndexCategoriesAsString: return CVariant::from(m_categories.toQString());
|
||||
case IndexCategoriesHumanReadableAsString: return CVariant::from(this->getHumanReadablePattern());
|
||||
case IndexCategoryHumanReadableOrTechnicalAsString: return CVariant::from(this->getHumanOrTechnicalCategoriesAsString());
|
||||
case IndexMessageAsHtml: return CVariant::from(this->toHtml());
|
||||
default: return CValueObject::propertyByIndex(index);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -427,22 +382,16 @@ namespace BlackMisc
|
||||
{
|
||||
if (index.isMyself()) { (*this) = variant.to<CStatusMessage>(); return; }
|
||||
if (ITimestampBased::canHandleIndex(index)) { ITimestampBased::setPropertyByIndex(index, variant); return; }
|
||||
ColumnIndex i = index.frontCasted<ColumnIndex>();
|
||||
const ColumnIndex i = index.frontCasted<ColumnIndex>();
|
||||
switch (i)
|
||||
{
|
||||
case IndexMessage:
|
||||
this->m_message = variant.value<QString>();
|
||||
this->m_args.clear();
|
||||
break;
|
||||
case IndexSeverity:
|
||||
this->m_severity = variant.value<StatusSeverity>();
|
||||
break;
|
||||
case IndexCategoriesAsString:
|
||||
this->m_categories = variant.value<CLogCategoryList>();
|
||||
break;
|
||||
default:
|
||||
CValueObject::setPropertyByIndex(index, variant);
|
||||
m_message = variant.value<QString>();
|
||||
m_args.clear();
|
||||
break;
|
||||
case IndexSeverity: m_severity = variant.value<StatusSeverity>(); break;
|
||||
case IndexCategoriesAsString: m_categories = variant.value<CLogCategoryList>(); break;
|
||||
default: CValueObject::setPropertyByIndex(index, variant); break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -450,24 +399,18 @@ namespace BlackMisc
|
||||
{
|
||||
if (index.isMyself()) { return Compare::compare(this->getSeverity(), compareValue.getSeverity()); }
|
||||
if (ITimestampBased::canHandleIndex(index)) { return ITimestampBased::comparePropertyByIndex(index, compareValue); }
|
||||
ColumnIndex i = index.frontCasted<ColumnIndex>();
|
||||
const ColumnIndex i = index.frontCasted<ColumnIndex>();
|
||||
switch (i)
|
||||
{
|
||||
case IndexMessageAsHtml:
|
||||
case IndexMessage:
|
||||
return this->getMessage().compare(compareValue.getMessage());
|
||||
case IndexSeverity:
|
||||
return Compare::compare(this->getSeverity(), compareValue.getSeverity());
|
||||
case IndexSeverityAsString:
|
||||
return this->getSeverityAsString().compare(compareValue.getSeverityAsString());
|
||||
case IndexCategoriesAsString:
|
||||
return this->getCategoriesAsString().compare(compareValue.getCategoriesAsString());
|
||||
case IndexCategoriesHumanReadableAsString:
|
||||
return this->getHumanReadablePattern().compare(compareValue.getHumanReadablePattern());
|
||||
case IndexCategoryHumanReadableOrTechnicalAsString:
|
||||
return this->getHumanOrTechnicalCategoriesAsString().compare(compareValue.getHumanOrTechnicalCategoriesAsString());
|
||||
default:
|
||||
break;
|
||||
case IndexSeverity: return Compare::compare(this->getSeverity(), compareValue.getSeverity());
|
||||
case IndexSeverityAsString: return this->getSeverityAsString().compare(compareValue.getSeverityAsString());
|
||||
case IndexCategoriesAsString: return this->getCategoriesAsString().compare(compareValue.getCategoriesAsString());
|
||||
case IndexCategoriesHumanReadableAsString: return this->getHumanReadablePattern().compare(compareValue.getHumanReadablePattern());
|
||||
case IndexCategoryHumanReadableOrTechnicalAsString: return this->getHumanOrTechnicalCategoriesAsString().compare(compareValue.getHumanOrTechnicalCategoriesAsString());
|
||||
default: break;
|
||||
}
|
||||
Q_ASSERT_X(false, Q_FUNC_INFO, "Comapre failed");
|
||||
return 0;
|
||||
@@ -475,26 +418,14 @@ namespace BlackMisc
|
||||
|
||||
QString CStatusMessage::toHtml() const
|
||||
{
|
||||
QString html;
|
||||
if (this->isEmpty()) return html;
|
||||
static const QString ef("</font>");
|
||||
switch (this->getSeverity())
|
||||
{
|
||||
case SeverityInfo:
|
||||
break;
|
||||
case SeverityWarning:
|
||||
html = "<font color=\"yellow\">";
|
||||
break;
|
||||
case SeverityError:
|
||||
html = "<font color=\"red\">";
|
||||
break;
|
||||
case SeverityDebug:
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
case SeverityWarning: return QStringLiteral("<font color=\"yellow\">") % this->getMessage() % ef;
|
||||
case SeverityError: return QStringLiteral("<font color=\"red\">") % this->getMessage() % ef;
|
||||
case SeverityDebug: break;
|
||||
default: break;
|
||||
}
|
||||
html.append(this->getMessage());
|
||||
if (this->getSeverity() == SeverityInfo) { return html; }
|
||||
html.append("</font>");
|
||||
return html;
|
||||
return this->getMessage();
|
||||
}
|
||||
} // ns
|
||||
|
||||
@@ -176,7 +176,7 @@ namespace BlackMisc
|
||||
//! Properties by index
|
||||
enum ColumnIndex
|
||||
{
|
||||
IndexCategoriesAsString = BlackMisc::CPropertyIndex::GlobalIndexCStatusMessage,
|
||||
IndexCategoriesAsString = CPropertyIndex::GlobalIndexCStatusMessage,
|
||||
IndexCategoriesHumanReadableAsString,
|
||||
IndexCategoryHumanReadableOrTechnicalAsString,
|
||||
IndexSeverity,
|
||||
|
||||
@@ -325,18 +325,15 @@ namespace BlackSimPlugin
|
||||
m_simSimulating = true; // only place where this should be set to true
|
||||
m_simConnected = true;
|
||||
HRESULT hr = SimConnect_RequestDataOnSimObject(m_hSimConnect, CSimConnectDefinitions::RequestOwnAircraft,
|
||||
CSimConnectDefinitions::DataOwnAircraft,
|
||||
SIMCONNECT_OBJECT_ID_USER, SIMCONNECT_PERIOD_VISUAL_FRAME);
|
||||
CSimConnectDefinitions::DataOwnAircraft, SIMCONNECT_OBJECT_ID_USER, SIMCONNECT_PERIOD_VISUAL_FRAME);
|
||||
|
||||
hr += SimConnect_RequestDataOnSimObject(m_hSimConnect, CSimConnectDefinitions::RequestOwnAircraftTitle,
|
||||
CSimConnectDefinitions::DataOwnAircraftTitle,
|
||||
SIMCONNECT_OBJECT_ID_USER, SIMCONNECT_PERIOD_SECOND,
|
||||
SIMCONNECT_DATA_REQUEST_FLAG_CHANGED);
|
||||
SIMCONNECT_OBJECT_ID_USER, SIMCONNECT_PERIOD_SECOND, SIMCONNECT_DATA_REQUEST_FLAG_CHANGED);
|
||||
|
||||
hr += SimConnect_RequestDataOnSimObject(m_hSimConnect, CSimConnectDefinitions::RequestSimEnvironment,
|
||||
CSimConnectDefinitions::DataSimEnvironment,
|
||||
SIMCONNECT_OBJECT_ID_USER, SIMCONNECT_PERIOD_SECOND,
|
||||
SIMCONNECT_DATA_REQUEST_FLAG_CHANGED);
|
||||
SIMCONNECT_OBJECT_ID_USER, SIMCONNECT_PERIOD_SECOND, SIMCONNECT_DATA_REQUEST_FLAG_CHANGED);
|
||||
|
||||
if (hr != S_OK)
|
||||
{
|
||||
@@ -428,12 +425,8 @@ namespace BlackSimPlugin
|
||||
// it is duplicated in parts
|
||||
aircraftSituation.setOnGround(simulatorOwnAircraft.simOnGround ? CAircraftSituation::OnGround : CAircraftSituation::NotOnGround, CAircraftSituation::OutOnGroundOwnAircraft);
|
||||
|
||||
const CAircraftLights lights(simulatorOwnAircraft.lightStrobe,
|
||||
simulatorOwnAircraft.lightLanding,
|
||||
simulatorOwnAircraft.lightTaxi,
|
||||
simulatorOwnAircraft.lightBeacon,
|
||||
simulatorOwnAircraft.lightNav,
|
||||
simulatorOwnAircraft.lightLogo);
|
||||
const CAircraftLights lights(simulatorOwnAircraft.lightStrobe, simulatorOwnAircraft.lightLanding, simulatorOwnAircraft.lightTaxi,
|
||||
simulatorOwnAircraft.lightBeacon, simulatorOwnAircraft.lightNav, simulatorOwnAircraft.lightLogo);
|
||||
|
||||
CAircraftEngineList engines;
|
||||
const QList<bool> helperList
|
||||
@@ -543,12 +536,8 @@ namespace BlackSimPlugin
|
||||
|
||||
void CSimulatorFsxCommon::updateOwnAircraftFromSimulator(const DataDefinitionClientAreaSb &sbDataArea)
|
||||
{
|
||||
CTransponder::TransponderMode newMode;
|
||||
if (sbDataArea.isIdent())
|
||||
{
|
||||
newMode = CTransponder::StateIdent;
|
||||
}
|
||||
else
|
||||
CTransponder::TransponderMode newMode = CTransponder::StateIdent;
|
||||
if (!sbDataArea.isIdent())
|
||||
{
|
||||
newMode = sbDataArea.isStandby() ? CTransponder::StateStandby : CTransponder::ModeC;
|
||||
}
|
||||
@@ -636,12 +625,9 @@ namespace BlackSimPlugin
|
||||
const SIMCONNECT_DATA_REQUEST_ID requestId = this->obtainRequestIdForSimData();
|
||||
const DWORD objectId = simObject.getObjectId();
|
||||
HRESULT hr = SimConnect_AIReleaseControl(m_hSimConnect, objectId, requestId);
|
||||
hr += SimConnect_TransmitClientEvent(m_hSimConnect, objectId, EventFreezeLat, 1,
|
||||
SIMCONNECT_GROUP_PRIORITY_HIGHEST, SIMCONNECT_EVENT_FLAG_GROUPID_IS_PRIORITY);
|
||||
hr += SimConnect_TransmitClientEvent(m_hSimConnect, objectId, EventFreezeAlt, 1,
|
||||
SIMCONNECT_GROUP_PRIORITY_HIGHEST, SIMCONNECT_EVENT_FLAG_GROUPID_IS_PRIORITY);
|
||||
hr += SimConnect_TransmitClientEvent(m_hSimConnect, objectId, EventFreezeAtt, 1,
|
||||
SIMCONNECT_GROUP_PRIORITY_HIGHEST, SIMCONNECT_EVENT_FLAG_GROUPID_IS_PRIORITY);
|
||||
hr += SimConnect_TransmitClientEvent(m_hSimConnect, objectId, EventFreezeLat, 1, SIMCONNECT_GROUP_PRIORITY_HIGHEST, SIMCONNECT_EVENT_FLAG_GROUPID_IS_PRIORITY);
|
||||
hr += SimConnect_TransmitClientEvent(m_hSimConnect, objectId, EventFreezeAlt, 1, SIMCONNECT_GROUP_PRIORITY_HIGHEST, SIMCONNECT_EVENT_FLAG_GROUPID_IS_PRIORITY);
|
||||
hr += SimConnect_TransmitClientEvent(m_hSimConnect, objectId, EventFreezeAtt, 1, SIMCONNECT_GROUP_PRIORITY_HIGHEST, SIMCONNECT_EVENT_FLAG_GROUPID_IS_PRIORITY);
|
||||
|
||||
if (hr != S_OK)
|
||||
{
|
||||
@@ -658,7 +644,7 @@ namespace BlackSimPlugin
|
||||
if (updated)
|
||||
{
|
||||
emit aircraftRenderingChanged(simObject.getAircraft());
|
||||
if (this->showDebugLogMessage()) { this->debugLogMessage(Q_FUNC_INFO, QString("Cs: '%1' model: '%2' verified, request/object id: %3 %4").arg(callsign.toQString(), remoteAircraft.getModelString()).arg(requestId).arg(objectId)); }
|
||||
if (this->showDebugLogMessage()) { this->debugLogMessage(Q_FUNC_INFO, QString("CS: '%1' model: '%2' verified, request/object id: %3 %4").arg(callsign.toQString(), remoteAircraft.getModelString()).arg(requestId).arg(objectId)); }
|
||||
}
|
||||
}
|
||||
while (false);
|
||||
@@ -921,8 +907,8 @@ namespace BlackSimPlugin
|
||||
Q_ASSERT_X(!hasPendingAdded || m_simConnectObjects.countPendingAdded() < 2, Q_FUNC_INFO, "There must be only 0..1 pending objects");
|
||||
if (this->showDebugLogMessage())
|
||||
{
|
||||
this->debugLogMessage(Q_FUNC_INFO, QString("Cs: '%1' mode: '%2' model: '%3'").arg(newRemoteAircraft.getCallsignAsString(), modeToString(addMode), newRemoteAircraft.getModelString()));
|
||||
this->debugLogMessage(Q_FUNC_INFO, QString("Cs: '%1' pending callsigns: '%2', pending objects: '%3'").arg(newRemoteAircraft.getCallsignAsString(), m_addPendingAircraft.getCallsignStrings().join(", "), m_simConnectObjects.getPendingAddedCallsigns().getCallsignStrings().join(", ")));
|
||||
this->debugLogMessage(Q_FUNC_INFO, QString("CS: '%1' mode: '%2' model: '%3'").arg(newRemoteAircraft.getCallsignAsString(), modeToString(addMode), newRemoteAircraft.getModelString()));
|
||||
this->debugLogMessage(Q_FUNC_INFO, QString("CS: '%1' pending callsigns: '%2', pending objects: '%3'").arg(newRemoteAircraft.getCallsignAsString(), m_addPendingAircraft.getCallsignStrings().join(", "), m_simConnectObjects.getPendingAddedCallsigns().getCallsignStrings().join(", ")));
|
||||
}
|
||||
|
||||
// do we need to remove/add again because something has changed
|
||||
@@ -936,13 +922,13 @@ namespace BlackSimPlugin
|
||||
// same model, nothing will change, otherwise add again when removed
|
||||
if (sameModel)
|
||||
{
|
||||
if (this->showDebugLogMessage()) { this->debugLogMessage(Q_FUNC_INFO, QString("Cs: '%1' re-added same model '%2'").arg(newRemoteAircraft.getCallsignAsString(), newModelString)); }
|
||||
if (this->showDebugLogMessage()) { this->debugLogMessage(Q_FUNC_INFO, QString("CS: '%1' re-added same model '%2'").arg(newRemoteAircraft.getCallsignAsString(), newModelString)); }
|
||||
return true;
|
||||
}
|
||||
|
||||
this->physicallyRemoveRemoteAircraft(newRemoteAircraft.getCallsign());
|
||||
m_addAgainAircraftWhenRemoved.replaceOrAddByCallsign(newRemoteAircraft);
|
||||
if (this->showDebugLogMessage()) { this->debugLogMessage(Q_FUNC_INFO, QString("Cs: '%1' re-added changed model '%2', will be added again").arg(newRemoteAircraft.getCallsignAsString(), newModelString)); }
|
||||
if (this->showDebugLogMessage()) { this->debugLogMessage(Q_FUNC_INFO, QString("CS: '%1' re-added changed model '%2', will be added again").arg(newRemoteAircraft.getCallsignAsString(), newModelString)); }
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -990,7 +976,7 @@ namespace BlackSimPlugin
|
||||
const SIMCONNECT_DATA_REQUEST_ID requestId = this->obtainRequestIdForSimData();
|
||||
const SIMCONNECT_DATA_INITPOSITION initialPosition = CSimulatorFsxCommon::aircraftSituationToFsxPosition(newRemoteAircraft.getSituation(), sendGround);
|
||||
const QString modelString(newRemoteAircraft.getModelString());
|
||||
if (this->showDebugLogMessage()) { this->debugLogMessage(Q_FUNC_INFO, QString("Cs: '%1' model: '%2' request: %3, init pos: %4").arg(callsign.toQString(), modelString).arg(requestId).arg(fsxPositionToString(initialPosition))); }
|
||||
if (this->showDebugLogMessage()) { this->debugLogMessage(Q_FUNC_INFO, QString("CS: '%1' model: '%2' request: %3, init pos: %4").arg(callsign.toQString(), modelString).arg(requestId).arg(fsxPositionToString(initialPosition))); }
|
||||
|
||||
const HRESULT hr = SimConnect_AICreateNonATCAircraft(m_hSimConnect, qPrintable(modelString), qPrintable(callsign.toQString().left(12)), initialPosition, requestId);
|
||||
if (hr != S_OK)
|
||||
@@ -1079,7 +1065,7 @@ namespace BlackSimPlugin
|
||||
// avoid further data from simulator
|
||||
this->stopRequestingDataForSimObject(simObject);
|
||||
simObject.setPendingRemoved(true);
|
||||
if (this->showDebugLogMessage()) { this->debugLogMessage(Q_FUNC_INFO, QString("Cs: '%1' request/object id: %2/%3").arg(callsign.toQString()).arg(simObject.getRequestId()).arg(simObject.getObjectId())); }
|
||||
if (this->showDebugLogMessage()) { this->debugLogMessage(Q_FUNC_INFO, QString("CS: '%1' request/object id: %2/%3").arg(callsign.toQString()).arg(simObject.getRequestId()).arg(simObject.getObjectId())); }
|
||||
|
||||
// call in SIM
|
||||
const SIMCONNECT_DATA_REQUEST_ID requestId = this->obtainRequestIdForSimData();
|
||||
@@ -1737,7 +1723,7 @@ namespace BlackSimPlugin
|
||||
this->physicallyRemoveRemoteAircraft(callsign);
|
||||
}
|
||||
|
||||
if (this->showDebugLogMessage()) { this->debugLogMessage(Q_FUNC_INFO, QString("Cs: '%1'").arg(toBeRemoved.toStringList().join(", "))); }
|
||||
if (this->showDebugLogMessage()) { this->debugLogMessage(Q_FUNC_INFO, QString("CS: '%1'").arg(toBeRemoved.toStringList().join(", "))); }
|
||||
return toBeRemoved;
|
||||
}
|
||||
|
||||
|
||||
@@ -8,11 +8,8 @@
|
||||
*/
|
||||
|
||||
//! \cond PRIVATE_TESTS
|
||||
|
||||
/*!
|
||||
* \file
|
||||
* \ingroup testblackmisc
|
||||
*/
|
||||
//! \file
|
||||
//! \ingroup testblackmisc
|
||||
|
||||
#include "testflightplan.h"
|
||||
#include "blackmisc/aviation/flightplan.h"
|
||||
@@ -34,26 +31,26 @@ namespace BlackMiscTest
|
||||
|
||||
remarks = QStringLiteral("RT/KESTREL OPR/MYTRAVEL REG/G-DAJC SEL/FP-ES PER/C NAV/RNP10");
|
||||
fpRemarks = CFlightPlanRemarks(remarks);
|
||||
QVERIFY2(fpRemarks.getSelcalCode().getCode() == "FPES" , "Wrong SELCAL code");
|
||||
QVERIFY2(fpRemarks.getFlightOperator() == "MYTRAVEL" , "Wrong flight operator");
|
||||
QVERIFY2(fpRemarks.getRegistration().asString() == "GDAJC" , "Wrong registration");
|
||||
QVERIFY2(fpRemarks.getSelcalCode().getCode() == "FPES", "Wrong SELCAL code");
|
||||
QVERIFY2(fpRemarks.getFlightOperator() == "MYTRAVEL", "Wrong flight operator");
|
||||
QVERIFY2(fpRemarks.getRegistration().asString() == "GDAJC", "Wrong registration");
|
||||
|
||||
remarks = QStringLiteral("OPR/UAL CALLSIGN/UNITED");
|
||||
fpRemarks = CFlightPlanRemarks(remarks);
|
||||
QVERIFY2(fpRemarks.getAirlineIcao().getDesignator() == "UAL" , "Wrong airline, expect UAL");
|
||||
QVERIFY2(fpRemarks.getFlightOperator().isEmpty() , "Expect to operator, should be in airline");
|
||||
QVERIFY2(fpRemarks.getAirlineIcao().getDesignator() == "UAL", "Wrong airline, expect UAL");
|
||||
QVERIFY2(fpRemarks.getFlightOperator().isEmpty(), "Expect to operator, should be in airline");
|
||||
QVERIFY2(fpRemarks.getRegistration().isEmpty(), "Expect no registration");
|
||||
QVERIFY2(fpRemarks.getRadioTelephony() == "UNITED" , "Expect telephony");
|
||||
QVERIFY2(fpRemarks.getRadioTelephony() == "UNITED", "Expect telephony");
|
||||
|
||||
remarks = QStringLiteral("/v/FPL-VIR9-IS-A346/DEP/S-EGLL/ARR/KJFK/REG/G-VGAS/TCAS RVR/200 OPR/VIRGIN AIRLINES");
|
||||
fpRemarks = CFlightPlanRemarks(remarks);
|
||||
QVERIFY2(fpRemarks.getRegistration().asString() == "GVGAS" , "Wrong registration");
|
||||
QVERIFY2(fpRemarks.getRegistration().asString() == "GVGAS", "Wrong registration");
|
||||
QVERIFY2(fpRemarks.getFlightOperator() == "VIRGIN AIRLINES", "Wrong operator");
|
||||
QVERIFY2(fpRemarks.getVoiceCapabilities().getCapabilities() == CVoiceCapabilities::Voice, "Wrong airline, expect UAL");
|
||||
|
||||
remarks = QStringLiteral("/v/FPL-VIR9-IS-A346/ OPR/VIRGIN AIRLINES DEP/S-EGLL/ARR/KJFK/REG/G-VGAS/TCAS RVR/200");
|
||||
fpRemarks = CFlightPlanRemarks(remarks);
|
||||
QVERIFY2(fpRemarks.getRegistration().asString() == "GVGAS" , "Wrong registration");
|
||||
QVERIFY2(fpRemarks.getRegistration().asString() == "GVGAS", "Wrong registration");
|
||||
QVERIFY2(fpRemarks.getFlightOperator() == "VIRGIN AIRLINES", "Wrong operator");
|
||||
QVERIFY2(fpRemarks.getVoiceCapabilities().getCapabilities() == CVoiceCapabilities::Voice, "Wrong airline, expect UAL");
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user